고윳값과 케일리-해밀턴 정리
고윳값과 고유벡터 (Eigenvalues and Eigenvectors) #
비유를 하면, 강풍속을 걸어갈 대 몸이 돌아가지 않고 그대로 밀려나기만하는 특별한 방향과 밀려나는 세기인데
거센 태풍(변환 행렬 A)이 불어오는 거리를 걷고 있다고 해보자. 대부분 방향으로 서 있으면 바람을 맞아 몸이 팽이처럼 옆으로 비틀거리거나 회전하며 밀려나게 된다.
하지만 바람과 정확히 일직선이 되는 단 하나의 특별한 방향으로 서있으면 몸이 옆으로 돌아가지 않고 가던 방향 그대로 뒤로 밀려나기만 한다.
이처럼 바람을 맞아도 회전을 하지 않고 자기 방향을 그대로 유지하는 특별한 방향을 '고유벡터'라고 하며 그 방향을 원래보다 몇 배나 세게 밀려나가는지 비율은 '고윳값'이다.
고윳값과 고유벡터 정의 #
크기의 행렬 에 어떤 영벡터(0)가 아닌 벡터 를 곱했을 때, 그 결과가 원래 벡터 에 단지 실수 (람다)를 곱한 스칼라배 형태와 같아진다면
- : 행렬 의 고유벡터 (Eigenvector) (변환 후에도 방향이 변하지 않는 벡터)
- : 행렬 의 고윳값 (Eigenvalue) (방향은 그대로 둔 채 길이를 늘리거나 줄이는 배율)
즉 람다는 고윳값을 나타내는 표기고, 고유벡터는 v
- 고유 (Eigen): 그 대상이 본래부터 가지고 있는 고유한/독특한 성질이라는 뜻 독일어에서 따온말
- 특성방정식 (Characteristic Equation): 행렬 A의 고윳값 를 찾아내기 위해 에서 역행렬이 존재하지 않 조건()을 이용하여 푸는 방정식 -** 대각화 (Diagonalization)**: 복잡하게 숫자가 얽힌 행렬을, 고유벡터들을 새로운 기준축으로 삼아 대각선 위치에만 고윳값이 남는 단순한 대각행렬로 형태를 바꾸는 작업 ().
수학에서 det는 행렬식 Determinant를 뜻하는 수학 기호로 디터미넌트라고 읽고 정사각형 행렬의 고유한 특성을 하나의 숫자 스칼라로 나타내는 값이다.
고윳값 구하는 과정 #
를 이항하면 이 됩니다. 가 이 아닌 의미 있는 해를 가지려면 앞의 행렬 의 행렬식(Determinant)이 이어야 한다.
이 방정식 (특성 방정식)을 풀어 나오는 근 가 바로 고윳값이다.
AI Engineering 맥락 #
- PCA 주성분 분석, Principal Component Analysis: 수백 차원의 고차원 데이터에서 가장 중요한 정보만 남기고 차원을 줄일 대 데이터가 가장 넓게 퍼져잇는 핵심 축을 찾아야한다. 데이터의 공분산 행렬을 구한뒤 가장 큰 고윳값을 가지는 고유벡터 방향을 첫 번째 주성분 축으로 선정하여 정보 손실을 최소화한다.
- RNN / 딥러닝 신경망 기울기 폭주 및 소멸 (Exploding / Vanishing Gradient): 수십 개의 레이어를 가진 딥러닝이나 시계열 데이터를 다루는 순환 신경망 RNN 에서는 가중치 행렬 W가 계속 반복해서 곱해진다 이때 W의 최대 고윳값 ()이 보다 크면 레이어를 거칠수록 미분값이 무한히 발산하고(기울기 폭주), 보다 작으면 0으로 오차가 사라져버려 기울기 소멸이 되어 학습이 불가능해진다.
케일리-해밀턴 정리 #
직관적인 비유를 들어보겠다. 어떤 로봇 A가 있다고 해보자. 이 로봇은 움직일때마다 위치나 모양을 바꾸는 규칙(행렬)을 가지고 있다.
- 로봇의 신체검사: 로봇 A의 키, 무게같은 고유한 특징 몇개를 측정해서 수식 하나를 만든다. 이 수식은 원래 숫자 x를 넣어서 계산하라고 만든 수식이다. (예: )
- 맞춤형 수식에 로봇 자신을 입력" 그런데 이 수식에 숫자 x 대신에 로봇 A 자신을 그대로 집어넣어본다. (여기서 는 아무것도 안 바꾸는 기본 상태)
- 결과는 항상 0 (정지): 신기하게도 로봇의 고유 특징으로 만든 수식에 로봇 자신을 입력하면 모든 동작이 완벽하게 상쇄되어 결과가 항상 0 (동작정지가) 된다.
핵심 요약은 모든 행렬은 자신이 고유한 성질로 만든 뼈대 수식(특성 방정식)에 자기 자신을 집어넣으면 항상 0이 된다는 법칙이다.
수학적 설명 #
수학적으로 케일리-헤밀턴 정리는 모든 정사각형행렬은 자신의 특정방정식을 만족한다는 정리다.
특성방정식과 정리의 정의를 해보면 정사각행렬 에 대하여, 고유값 를 구하기 위한 특성다항식(Characteristic Polynomial) 는 다음과 같이 정의된다.
이때 스칼라 변수 대신 행렬 를 대입하면 다음이 성립한다.
(단, 는 단위행렬, 는 영행렬)
행렬에서의 예시 #
행렬 가 있을 때
- 대각합(Trace):
- 행렬식(Determinant):
특성방정식은 이 되며, 케일리-해밀턴 정리에 의해 아래 식이 반드시 성립한다.
정리하면 모든 행렬은 자기만의 공식을 갖고있고 숫자를 넣으면 겨로가가 0이 나오는 전용 공식 같은게 케일리-해밀턴 정리다.
그 공식에 숫자를 쓰는 대신 행렬 자신을 통째로 넣어도 결과는 0이 된다
이걸 쓰는 이유는 노가다 계산 숏컷이다.
똑같은 작업을 1,000번 반복해서 계산해야할때
(), 이 성질을 이용하면 1,000번 일일이 곱할 필요 없이 단 1~2번 만에 답을 구하는 꼼수(압축)를 쓸 수 있다.
AI Engineering 분야 활용 #
State Space Models (SSM - Mamba, S4) 의 행렬 지수함수 계산 #
최근 트랜스포머 대안으로 주목받는 Mamba, S4 같은 상태 공간 모델 SSM은 연속 시간 신호를 처리하기 위해 행렬 지수함수를 계산해야 했다.
- 문제: (무한급수 연산 필요)
- 해결: 케일리-해밀턴 정리에 의해, 행렬 의 무한급수 표현식은 결국 차 다항식의 합으로 귀결할 수 있다.
그래프 신경망 GGN 에서의 스펙트럼 필터링 ChebNet #
소셜 네트워크 분자 구조 등을 다루는 Graph Neural Network 에서는 그래프의 인접 행렬 및 라플라시안 행렬 행렬 의 거듭제곱()을 통해 이웃 노드 간의 정보를 합성한다
- 문제: -hop 떨어진 노드 정보를 얻기 위해 를 직접 계산하면 메모리와 연산량이 급증.
- 해결: 케일리-해밀턴 정리에 기반하여 의 고차 다항식 필터를 Chebyshev 다항식 등 저차 다항식의 선형 결합으로 근사.
- 효과: 전체 그래프 구조를 다 곱하지 않고도 근묵자흑(이웃 노드 정보 전달) 연산을 효율적으로 수행.