고윳값과 케일리-해밀턴 정리

3,111 단어·7 분·원문(.md)

고윳값과 고유벡터 (Eigenvalues and Eigenvectors) #

비유를 하면, 강풍속을 걸어갈 대 몸이 돌아가지 않고 그대로 밀려나기만하는 특별한 방향과 밀려나는 세기인데

거센 태풍(변환 행렬 A)이 불어오는 거리를 걷고 있다고 해보자. 대부분 방향으로 서 있으면 바람을 맞아 몸이 팽이처럼 옆으로 비틀거리거나 회전하며 밀려나게 된다.

하지만 바람과 정확히 일직선이 되는 단 하나의 특별한 방향으로 서있으면 몸이 옆으로 돌아가지 않고 가던 방향 그대로 뒤로 밀려나기만 한다.

이처럼 바람을 맞아도 회전을 하지 않고 자기 방향을 그대로 유지하는 특별한 방향을 '고유벡터'라고 하며 그 방향을 원래보다 몇 배나 세게 밀려나가는지 비율은 '고윳값'이다.

고윳값과 고유벡터 정의 #

n×nn \times n 크기의 행렬 AA에 어떤 영벡터(0)가 아닌 벡터 v\mathbf{v}를 곱했을 때, 그 결과가 원래 벡터 v\mathbf{v}에 단지 실수 λ\lambda(람다)를 곱한 스칼라배 형태와 같아진다면

Av=λv(v0)A\mathbf{v} = \lambda\mathbf{v} \quad (\mathbf{v} \neq \mathbf{0})
  • v\mathbf{v}: 행렬 AA의 고유벡터 (Eigenvector) (변환 후에도 방향이 변하지 않는 벡터)
  • λ\lambda: 행렬 AA의 고윳값 (Eigenvalue) (방향은 그대로 둔 채 길이를 늘리거나 줄이는 배율)

즉 람다는 고윳값을 나타내는 표기고, 고유벡터는 v

  • 고유 (Eigen): 그 대상이 본래부터 가지고 있는 고유한/독특한 성질이라는 뜻 독일어에서 따온말
  • 특성방정식 (Characteristic Equation): 행렬 A의 고윳값 λ\lambda를 찾아내기 위해 (AλI)v=0(A - \lambda I)\mathbf{v} = \mathbf{0} 에서 역행렬이 존재하지 않 조건(det(AλI)=0\det(A - \lambda I) = 0)을 이용하여 푸는 방정식 -** 대각화 (Diagonalization)**: 복잡하게 숫자가 얽힌 행렬을, 고유벡터들을 새로운 기준축으로 삼아 대각선 위치에만 고윳값이 남는 단순한 대각행렬로 형태를 바꾸는 작업 (A=PDP1A = PDP^{-1}).

수학에서 det는 행렬식 Determinant를 뜻하는 수학 기호로 디터미넌트라고 읽고 정사각형 행렬의 고유한 특성을 하나의 숫자 스칼라로 나타내는 값이다.

고윳값 구하는 과정 #

Av=λvA\mathbf{v} = \lambda\mathbf{v}를 이항하면 (AλI)v=0(A - \lambda I)\mathbf{v} = \mathbf{0}이 됩니다. v\mathbf{v}00이 아닌 의미 있는 해를 가지려면 앞의 행렬 (AλI)(A - \lambda I)의 행렬식(Determinant)이 00이어야 한다.

det(AλI)=0\det(A - \lambda I) = 0

이 방정식 (특성 방정식)을 풀어 나오는 근 λ\lambda가 바로 고윳값이다.

AI Engineering 맥락 #

  • PCA 주성분 분석, Principal Component Analysis: 수백 차원의 고차원 데이터에서 가장 중요한 정보만 남기고 차원을 줄일 대 데이터가 가장 넓게 퍼져잇는 핵심 축을 찾아야한다. 데이터의 공분산 행렬을 구한뒤 가장 큰 고윳값을 가지는 고유벡터 방향을 첫 번째 주성분 축으로 선정하여 정보 손실을 최소화한다.
  • RNN / 딥러닝 신경망 기울기 폭주 및 소멸 (Exploding / Vanishing Gradient): 수십 개의 레이어를 가진 딥러닝이나 시계열 데이터를 다루는 순환 신경망 RNN 에서는 가중치 행렬 W가 계속 반복해서 곱해진다 이때 W의 최대 고윳값 (λmax\lambda_{max})이 11보다 크면 레이어를 거칠수록 미분값이 무한히 발산하고(기울기 폭주), 11보다 작으면 0으로 오차가 사라져버려 기울기 소멸이 되어 학습이 불가능해진다.

케일리-해밀턴 정리 #

직관적인 비유를 들어보겠다. 어떤 로봇 A가 있다고 해보자. 이 로봇은 움직일때마다 위치나 모양을 바꾸는 규칙(행렬)을 가지고 있다.

  1. 로봇의 신체검사: 로봇 A의 키, 무게같은 고유한 특징 몇개를 측정해서 수식 하나를 만든다. 이 수식은 원래 숫자 x를 넣어서 계산하라고 만든 수식이다. (예: x25x+6=0x^2 - 5x + 6 = 0)
  2. 맞춤형 수식에 로봇 자신을 입력" 그런데 이 수식에 숫자 x 대신에 로봇 A 자신을 그대로 집어넣어본다. A25A+6I=?A^2 - 5A + 6I = ? (여기서 II는 아무것도 안 바꾸는 기본 상태)
  3. 결과는 항상 0 (정지): 신기하게도 로봇의 고유 특징으로 만든 수식에 로봇 자신을 입력하면 모든 동작이 완벽하게 상쇄되어 결과가 항상 0 (동작정지가) 된다.

핵심 요약은 모든 행렬은 자신이 고유한 성질로 만든 뼈대 수식(특성 방정식)에 자기 자신을 집어넣으면 항상 0이 된다는 법칙이다.

수학적 설명 #

수학적으로 케일리-헤밀턴 정리는 모든 정사각형행렬은 자신의 특정방정식을 만족한다는 정리다.

특성방정식과 정리의 정의를 해보면 n×nn \times n 정사각행렬 AA에 대하여, 고유값 λ\lambda를 구하기 위한 특성다항식(Characteristic Polynomial) p(λ)p(\lambda)는 다음과 같이 정의된다.

p(λ)=det(λIA)=λn+cn1λn1++c1λ+c0p(\lambda) = \det(\lambda I - A) = \lambda^n + c_{n-1}\lambda^{n-1} + \dots + c_1 \lambda + c_0

이때 스칼라 변수 λ\lambda 대신 행렬 AA를 대입하면 다음이 성립한다.

p(A)=An+cn1An1++c1A+c0I=Op(A) = A^n + c_{n-1}A^{n-1} + \dots + c_1 A + c_0 I = O

(단, II는 단위행렬, OO는 영행렬)

2×22 \times 2 행렬에서의 예시 #

2×22 \times 2 행렬 A=(ab cd)A = \begin{pmatrix} a & b \ c & d \end{pmatrix}가 있을 때

  • 대각합(Trace): tr(A)=a+d\text{tr}(A) = a + d
  • 행렬식(Determinant): det(A)=adbc\det(A) = ad - bc

특성방정식은 p(λ)=λ2tr(A)λ+det(A)=0p(\lambda) = \lambda^2 - \text{tr}(A)\lambda + \det(A) = 0이 되며, 케일리-해밀턴 정리에 의해 아래 식이 반드시 성립한다.

A2tr(A)A+det(A)I=OA^2 - \text{tr}(A)A + \det(A)I = O

정리하면 모든 행렬은 자기만의 공식을 갖고있고 숫자를 넣으면 겨로가가 0이 나오는 전용 공식 같은게 케일리-해밀턴 정리다.

그 공식에 숫자를 쓰는 대신 행렬 자신을 통째로 넣어도 결과는 0이 된다

이걸 쓰는 이유는 노가다 계산 숏컷이다.

똑같은 작업을 1,000번 반복해서 계산해야할때

(A1000A^{1000}), 이 성질을 이용하면 1,000번 일일이 곱할 필요 없이 단 1~2번 만에 답을 구하는 꼼수(압축)를 쓸 수 있다.

AI Engineering 분야 활용 #

State Space Models (SSM - Mamba, S4) 의 행렬 지수함수 계산 #

최근 트랜스포머 대안으로 주목받는 Mamba, S4 같은 상태 공간 모델 SSM은 연속 시간 신호를 처리하기 위해 행렬 지수함수를 계산해야 했다.

  • 문제: exp(A)=I+A+A22!+A33!+\exp(A) = I + A + \frac{A^2}{2!} + \frac{A^3}{3!} + \dots (무한급수 연산 필요)
  • 해결: 케일리-해밀턴 정리에 의해, n×nn \times n 행렬 AA의 무한급수 표현식은 결국 n1n-1차 다항식의 합으로 귀결할 수 있다.
exp(A)=k=0n1αkAk\exp(A) = \sum_{k=0}^{n-1} \alpha_k A^k

그래프 신경망 GGN 에서의 스펙트럼 필터링 ChebNet #

소셜 네트워크 분자 구조 등을 다루는 Graph Neural Network 에서는 그래프의 인접 행렬 및 라플라시안 행렬 행렬 LL의 거듭제곱(LkL^k)을 통해 이웃 노드 간의 정보를 합성한다

  • 문제: kk-hop 떨어진 노드 정보를 얻기 위해 LkL^k를 직접 계산하면 메모리와 연산량이 급증.
  • 해결: 케일리-해밀턴 정리에 기반하여 LL의 고차 다항식 필터를 Chebyshev 다항식 등 저차 다항식의 선형 결합으로 근사.
  • 효과: 전체 그래프 구조를 다 곱하지 않고도 근묵자흑(이웃 노드 정보 전달) 연산을 효율적으로 수행.
Math/math5.md