1. 고유값과 고유벡터
고유벡터와 고유값
고유하다는 것은 상황이 변화해도 그 특성을 잃지 않는 것을 의미한다. 그럼, 벡터가 고유하다는 것은 무엇일까? 벡터가 어떠한 상황에서도 그 특성, 즉 방향성을 잃지 않는 것을 의미한다. 즉, 고유벡터란 선형변환 이후에도 변환 결과가 자신의 상수배를 한 결과일 때의 벡터를 의미한다. 선형 변환이란 쉽게 말해 어떤 행렬을 벡터에 곱하는 것이다.
여러가지 선형변환들
선형변환이란?
벡터에 어떠한 행렬을 곱하는 것을 '벡터에 행렬을 통과시킨다'라고 표현한다. 아무튼, 벡터에 어떠한 행렬을 곱하게 되면 벡터의 크기와 방향이 변한다.
하지만, 아무리 벡터의 크기나 방향이 변해 봤자, 조금 더 벡터의 크기가 커진다거나, 벡터의 방향이 치우치는 정도에 그치게 된다. 벡터가 곡선의 형상을 띄거나 하지는 않는다는 것이다. 이를 '선형적으로 변화했다'라고 말한다.
이처럼, 벡터가 어떠한 행렬을 통과하여 선형적인 변화를 일으키게 하는 것을 선형변환 (linear transformation) 이라고 한다.
선형변환에 속하는 다양한 변환들이 있으며, 모든 변환들은 행렬을 곱하여 이뤄진다. 어찌보면, 벡터에 곱해지는 행렬이 곧 함수와도 같은 역할을 한다고 볼 수 있다. 이런 변환들은 주로 컴퓨터 그래픽에 많이 활용된다. 하지만 아핀변환이라는 것은 LLM에서도 자주 언급되긴 한다.
▶️scailing (비례변환) 비례변환은 벡터의 방향과 크기가 변화하는 변환을 의미한다.
▶️Rotation (회전변환) 회전변환은 좌표평면이 원점을 중심으로 회전하는 것을 의미한다. 회전변환된 벡터는 원래의 벡터와 선형독립이며, 회전변환시 고유값과 고유벡터는 존재하지 않는다.
▶️Shearing (전단변환) 전단변환은 특정 차원값에만 변화를 주는 변환을 의미한다. 기하학적으로 이해하면, y축을 고정하고 x축 방향으로만 변화를 가하는 것을 의미한다.
앞서 살펴본 변환들은 모두 원점이 변화하지 않는 변환이다. 원점을 이동시키는 변환도 있다. 바로 이동변환 이라는 것인데, 대표적으로 아핀변환(Affine) 이 있다.
아핀변환 (Affine Transformation)
TBD식으로 나타내면 다음과 같이 표현할 수 있다.
여기서
고유벡터는 하나만 존재할 수도, 무한하게 존재할 수도 있으며, 고유 벡터가 아예 존재하지 않을 수 있다. 다음은 고유벡터를 구하는 과정을 나타낸 식이다.
고유벡터가 무한히 존재하는 경우, 보통 해당 벡터의 basis를 고유벡터로 삼는다. 고유벡터가 무한히 존재하는 경우는 보통 행렬식이 0, 즉, 곱해지는 행렬이 선형 종속이라 1차원에서 span하는 경우이다. 이런 케이스를 시각적으로 보면, 좌표 평면이 일직선으로 짜부라드는 것을 확인할 수 있다.
고유값 분해 (eigenvalue decomposition)
고유값 분해는 말 그대로 어떤 벡터를 스칼라(고유값)과 고유 벡터로 나누는 것을 의미한다.
이번에는
다음은 고유값 분해와 관련된 특성들이다.
의 고유값은 A의 고유값과 같다. A가 orthogonal matrix이면,
이다. 이렇게 되면
가 성립한다.
A가 Postivie Semi Definite (PSD) 이면
는 무조건 0보다 크거나 같다.
Positive Semi Definte란?
Diagonal Matrix
의 Non-Zero 고유값의 개수는 rank와 동일하다. 이 성질은 고유값 분해를 기하학적으로 이해하는데 중요하다.
rank라는 것은, 벡터의 계수, 즉 벡터가 span하는 차원을 의미한다.
A는 고유벡터와 고유값의 곱으로 표현된다. 즉, 벡터와 벡터의 스팬하는 비율을 구하는 것이다.
즉, 고유값 분해란 A의 고유벡터가 span하는 차원들에 대한 벡터로 쪼개고,
각 차원에 곱해진
를 찾는 과정이다. 여기서
는 각 차원별로 곱해지는 값의 모음이므로, 대각행렬성분의 개수가 곧 고유벡터의 랭크와 같다. Lambda의 값은 제각각인데, 데이터 압축의 분야에서는 고유값 분해 후, 크기가 작은 고유값은 제거하는 방식으로 데이터를 압축한다.
Symmetric Matrix는 무조건 Diagonalizable 하며 (역 성립 X), 따라서
된다. 대칭행렬이란
인 행렬이다. 대칭행렬은 무조건 대각화가 가능하다는 성질을 갖는다.
(+) 대각화란?(diangolize)
대각화란 어떠한 행렬을 고유벡터로 이뤄진 가역행렬과 가역행렬에 곱해진 고유값들에 대한 대각행렬의 곱으로 나타내는 것을 의미한다. 즉,
대각화가능조건
- n x n 행렬 A는 일차독립인 교유벡터를 가져야 한다. 즉, 행렬 A의 고유벡터들은 Full-rank여야 한다.
- n x n 행렬 A가 서로 다른 n개의 고유값을 갖는 경우 대각화 가능하다. 고유값분해와 혼동하지 말아야 할 것은, 고유값분해는 꼭 서로 다른 고유값을 가질 필요는 없다는 것이다.(
의 대각성분으로 0이 대다수 나타나는 경우가 있다.)
고유값 분해의 장점
고유값 분해로 얻을 수 있는 장점은 무엇일까?
행렬의 거듭제곱 계산이 용이해진다
고유값분해가 되는 행렬을 거듭제곱하면 다음과 같이 나타낼 수 있다.
여기서
는 로, 나열된 수식에서 소거된다. 따라서, 이를 정리하면 을 얻을 수 있는데,
는 대각행렬의 제곱이므로 복잡한 연산 없이 대각성분들을 k승 해주기만 하면 된다. 고유값 분해를 통해 쉽게 Inverse Matrix를 얻을 수 있다
행렬식을 구하기 쉽다
A의 행렬식을 고유값과 고유벡터의 곱으로 나타내면
인데, invese 벡터의 행렬식은 벡터의 행렬식의 약수이다.
따라서, 결국에는
만 남는다. 그리고, 대각행렬에서의 행렬식은 곧 대각성분들의 총 곱과 같으므로
가 성립한다.
trace(대각합)값을 구하기 쉽다
대각합은 대각선상의 성분들을 더하는 것이다.
이고, 대각합의 성질 상, 로도 정리할 수 있다. 이므로, 이다. 따라서,
가 성립한다. 즉, A의 대각합은 고유값의 합과 동일하다는 것이다.
rank-deficient인 행렬일 경우, 0인 고유값이 하나 이상 존재함을 알 수 있다.
rank-deficient는 선형 종속인 행렬임을 파악할 수 있는 요소이다. rank-deficient인 경우, $$\lambda$$는 0인 고유값을 반드시 갖게 되는 성질이 있다. 직관적으로 생각하면, full rank가 아닌 이상, 백터의 스팬 차원이 하나 줄어든다.
따라서, 고유벡터를 각 차원 공간에서 스팬하도록 하는 행렬 $$\Lambda$$도 원본 행렬과 동일한 크기의 대각행렬이 되겠지만, 스팬하지 않는 차원의 대각 성분값은 0이 될 수 밖에 없는 것이다.
이를 수식으로 증명하면 다음과 같다.
로 정리할 수 있다. 이를 $$3x+6y = \lambda y$$ 에 대입하면,
이를 다시 원래 식에 대입하면
를 구할 수 있다.
이를 다시 식에 대입하면 첫 번째 방정식에선 다음의 값이 도출된다.
두 번째 방정식에선 다음의 식이 도출된다.
두 번째 방정식에서 얻은 x의 값을 첫 번째 방정식에 대입하면
x를 앞서 정리한
에 대입하면 위의 식에서
는 0 또는 7의 값을 갖는 것을 확인 할 수 있다.