역행렬 (Inverse Matrix)

수학
한 줄 정의: 어떤 행렬에 곱했을 때 아무 변화도 일어나지 않은 것처럼 원상태로 되돌려주는 짝이 되는 행렬입니다.

쉽게 풀면

숫자 5에 5분의 1(1/5)을 곱하면 1이 되듯이, 행렬에도 곱했을 때 "아무것도 안 한 것"과 같은 효과를 내는 항등행렬(단위행렬)로 되돌려주는 짝이 있습니다. 그것이 바로 역행렬입니다. 어떤 행렬 A에 그 역행렬 A⁻¹을 곱하면 항등행렬 I가 됩니다. 이 성질은 연립방정식을 풀 때 특히 유용합니다. "Ax = b"라는 식이 있을 때, 양변에 A⁻¹을 곱하면 "x = A⁻¹b"가 되어 x를 바로 구할 수 있기 때문입니다. 다만 숫자 0에는 역수가 없듯이, 모든 행렬에 역행렬이 있는 것은 아닙니다. 행렬식이 0이 되는 행렬(특이행렬)은 역행렬을 갖지 않습니다.

왜 중요한가

역행렬은 연립방정식을 푸는 가장 기본적인 도구이면서, 선형회귀 계수 추정, 칼만 필터의 상태 갱신, 최적화 알고리즘의 뉴턴법 등 수치 계산이 필요한 거의 모든 정량적 연구 분야에서 반복적으로 등장하는 연산입니다. 특히 통계학에서는 공분산 행렬의 역행렬이 변수 간 관계를 보정한 추정치를 구하는 데 필수적이어서, 다변량 분석이나 회귀분석을 다루는 논문의 방법론 부분에 자주 등장합니다. 이 때문에 역행렬을 얼마나 빠르고 안정적으로 계산하느냐는 대규모 데이터 분석의 실무적 효율성과도 직결됩니다.

논문에서는 이렇게 쓰입니다

"회귀계수는 공분산 행렬의 역행렬(inverse matrix)을 이용하여 최소제곱법으로 추정하였다."

이 문장은 통계 모델의 파라미터를 구할 때, 데이터로 만든 행렬을 뒤집어(역행렬을 구해) 방정식을 직접 푸는 방식으로 계산했다는 뜻입니다. 선형회귀, 칼만 필터, 최적화 알고리즘 등 수치 계산이 들어가는 거의 모든 분야에서 역행렬 계산은 핵심 단계로 등장합니다.

"칼만 필터의 갱신 단계에서 관측 공분산 행렬의 역행렬을 계산하여 칼만 이득을 산출하였다."

로봇공학이나 신호처리에서 센서 데이터를 실시간으로 보정할 때도, 오차의 크기와 상관관계를 담은 행렬을 뒤집는 계산이 핵심 단계로 들어간다는 것을 보여줍니다.

"뉴턴-랩슨 방법을 이용한 최적화 과정에서 헤시안 행렬의 역행렬을 매 반복마다 갱신하여 파라미터를 조정하였다."

기계학습이나 최적화 연구에서도 함수의 곡률 정보를 담은 행렬을 뒤집어 다음 단계의 파라미터를 찾아가는 방식이 쓰입니다.

조금 더 깊게 보면

실제 계산에서는 역행렬을 정의대로 직접 구하기보다, LU분해나 촐레스키 분해 같은 행렬 분해 기법을 이용해 더 안정적이고 효율적으로 문제를 푸는 경우가 많습니다. 또한 행렬이 특이행렬에 가까워 역행렬이 존재하더라도 수치적으로 불안정한 경우(조건수가 큰 경우)에는 계산 오차가 크게 증폭될 수 있어, 리지 회귀처럼 행렬에 작은 값을 더해 안정성을 높이는 정규화 기법이 함께 쓰이기도 합니다. 역행렬이 아예 존재하지 않는 경우에는 유사역행렬(무어-펜로즈 역행렬) 같은 대안적 개념을 사용해 근사적인 해를 구합니다.

주의할 점

행렬이 크고 데이터가 많을수록 역행렬을 직접 계산하는 것은 연산량이 매우 크고 수치적으로 불안정할 수 있습니다. 그래서 실제 계산에서는 역행렬을 직접 구하기보다 행렬식이나 분해 기법을 활용한 더 안정적인 방법을 쓰는 경우가 많습니다.

관련 용어