Eigenvectors and Eigenvalues

Rainy Night for Sapientia·2023년 7월 2일

Eigenvectors and Eigenvalues

선형대수학의 꽃이라고 감히 말할 수 있는 고유벡터와 고유값에 대해 정리합니다.

Intuition

먼저 선형변환(linear transformation)의 개념을 떠올려봅시다.
다음과 같이 특정한 벡터를 선형변환을 시켰을 경우
선형변환 매트릭스 TT의 각 컬럼 값에 따라 grid의 기저(basis)가 뒤틀리며
변환된 벡터 v\overrightarrow{v}'는 기존 v\overrightarrow{v}이 그리던 선의 span에서 이탈하게 되는 경우가 대부분입니다. 당연하겠죠?

Tv=vT\overrightarrow{v} = \overrightarrow{v}'

하지만 선형변환을 취했음에도 이탈하지 않는 경우가 있을까요?
네, 그럴 수 있습니다. 그 경우에 해당 벡터 v\overrightarrow{v}를 선형변환 매트릭스 TT에 대한 고유벡터(eigenvectors)라 칭하고 v|\overrightarrow{v}|보다 얼마나 큰지에 따른 scale의 배수를 고유값(eigenvalues)라 합니다.

즉 고유벡터와 고유값은 선형변환 매트릭스에 따라 존재할 수도 있고, 존재하지 않을 수도 있습니다.

존재한다면 해당 고유벡터 v\overrightarrow{v} 고유값 λ\lambda에 대하여 다음과 같은 수식이 성립합니다.
해당 선형변환 매트릭스는 AA라고 칭하겠습니다.

Av=λvA\overrightarrow{v} = \lambda\overrightarrow{v}

Computation

그럼 고유벡터와 고유값을 구하는 방법에 대해 알아보겠습니다.

위 수식을 다시 가져옵시다.

Av=λvA\overrightarrow{v} = \lambda\overrightarrow{v}

AA가 정방형 매트릭스이므로 동일한 형태의 II행렬을 이용하여 수식을 변형시킵니다.

Av=λIvA\overrightarrow{v} = \lambda I \overrightarrow{v}

그리고 좌변으로 옮겨 다음과 같은 형태로 만들어봅시다.

(AλI)v=0(A-\lambda I)\overrightarrow{v} = \overrightarrow{0}

여기서 AλIA-\lambda I 가 어떻게 생겼는지 잠깐 살펴보면 다음과 같습니다.
(3 * 3매트릭스를 가정했습니다.)

[aλbcdeλfghiλ]\begin{bmatrix} a -\lambda & b & c\\ d& e-\lambda & f \\ g & h & i-\lambda \\ \end{bmatrix}

자 다시 돌아가서 위 수식을 보면 이는 v\overrightarrow{v}라는 벡터를 AλIA-\lambda I이라는 매트릭스로 선형변환 한 것과 같습니다.
그 결과 영벡터로 기존 고차원 벡터 공간이 뭉개져버리는 것을 알 수 있습니다.
다른 포스트에서 차원을 저차원으로 뭉개기 위해선 해당 선형변환 매트릭스의 determinant가 0이어야 한다는 것을 이미 학습한 적이 있습니다.

내용이 생소하시면 아래 링크를 참조해주세요.

https://velog.io/@kimgeonhee317/Cross-Products

이에 따라 AλIA-\lambda I 의 determinant가 0이 될 것을 알 수 있습니다.

v\overrightarrow{v} 가 고유벡터로 영벡터가 아니라는 것을 생각하면 그냥 AλIA-\lambda I가 역행렬을 가지면 안된다고 간주해도 동일합니다.

그리하여 이에 대한 determinant를 계산하면 고유값과 고유벡터를 계산해낼 수 있습니다.

Example

그럼 예제로 고유벡터와 고유값을 구해봅시다.
다음과 같은 매트릭스 AA가 있다고 가정했을때, 고유값과 고유벡터는 어떻게 될까요?

A=[3102]A = \begin{bmatrix} 3 & 1\\ 0 & 2 \\ \end{bmatrix}

determinant를 계산해봅시다. 다음과 같이 λ\lambda의 값을 구할 수 있습니다.

AλI=[3λ102λ]A-\lambda I = \begin{bmatrix} 3-\lambda & 1\\ 0 & 2-\lambda \\ \end{bmatrix}
det(AλI)=0det(A-\lambda I) = 0
(3λ)(2λ)=0(3-\lambda)(2-\lambda) = 0
λ=2or3\lambda = 2 \:\:\:\text{or}\:\:\: 3

고유값이 될 수 있는 값은 2와 3이네요, 그럼 λ=2\lambda = 2 일때 고유벡터를 구해봅시다.

(AλI)v=0(A-\lambda I)\overrightarrow{v} = \overrightarrow{0}
[1100][v1v2]=[00]\begin{bmatrix} 1 & 1\\ 0 & 0 \\ \end{bmatrix} \begin{bmatrix} v_1\\ v_2 \\ \end{bmatrix} = \begin{bmatrix} 0\\ 0 \\ \end{bmatrix}
v1+v2=0v_1 + v_2 = 0 \\

해가 무수히 많습니다. v2=v1v_2 = -v_1을 만족하는 직선 상의 모든 벡터가 고유벡터가 됩니다.

λ=3\lambda = 3 일경우를 봅시다.

(AλI)v=0(A-\lambda I)\overrightarrow{v} = \overrightarrow{0}
[0101][v1v2]=[00]\begin{bmatrix} 0 & 1\\ 0 & -1 \\ \end{bmatrix} \begin{bmatrix} v_1\\ v_2 \\ \end{bmatrix} = \begin{bmatrix} 0\\ 0 \\ \end{bmatrix}
v2=0v_2 = 0 \\

v2=0v_2 = 0이며 v1v_1은 임의의 수를 가지네요.
역시 해가 무수히 많은 벡터가 됩니다.
변환 이후에는 고유값인 3만큼 길어지는 형태를 보일겁니다.

Eigenbasis

다음은 고유기저(벡터)에 대해 알아봅시다.
어떤 매트릭스에 대하여 기저벡터가 그 고유벡터의 역할도 하고 있다면 고유기저라고 합니다.

기저벡터(basis vector)가 고유벡터인 경우를 상상해볼까요?

특정한 선형변환(TT)을 취했을때도 대상이 되는 열벡터(v)(\overrightarrow{v}) 가 자신의 span에서 벗어나지 않으면 고유벡터라고 했었습니다.

기저벡터가 고유벡터라면 i^\hat{i}j^\hat{j}가 선형변환 이후에도 고유값의 크기인 λ\lambda만큼 scaling은 될지언정 같은 방향을 유지한다는 것이죠. 근데 선형변환의 경우 선형변환 매트릭스의 각 컬럼에 따라 기저벡터를 변형시키는 특징이 있습니다.

다음 선형변환 매트릭스를을 봅시다.

A=[1002]A= \begin{bmatrix} -1 & 0\\ 0 & 2 \\ \end{bmatrix}

선형변환 이후에 기저벡터는 각각 다음과 같이 바뀔 겁니다.

i^new=[10]j^new=[02]\hat{i}_{new} =\begin{bmatrix} -1\\ 0\\ \end{bmatrix} \:\:\: \hat{j}_{new} =\begin{bmatrix} 0\\ 2\\ \end{bmatrix}

그리고 고유벡터를 계산해보면 각 기저벡터와 평행한 벡터가 나올겁니다.
즉 이 선형변환 매트릭스는 기저벡터를 고유벡터로 가진다는 것이죠.

결론부터 얘기드리자면 위와 같은 대각행렬(diagonal matrix)의 형태라면 반드시 고유기저를 가집니다. 즉 고유벡터가 자신의 기저벡터이며 고유값은 각 대각행렬의 성분이 됩니다.

What is a diagonal matrix?

참고로 대각행렬은 행렬간 곱연산을 매우 쉽게만드는 성질이 있습니다.
만약 매트릭스 AA가 대각행렬이라면 다음과 같은 연산이 성립하기 때문입니다.

An=([a00b])n=[an00bn]A^n = \left ( \begin{bmatrix} a & 0\\ 0 & b \\ \end{bmatrix} \right ) ^n = \begin{bmatrix} a^n & 0\\ 0 & b^n \\ \end{bmatrix}

즉 연산의 대상이 대각행렬이라면 매트릭스가 100개든 1,000개든 손쉽게 계산할 수 있다는 것입니다.

Diagonalization

고유기저를 이용하여 대각화(Digaonalization)을 가능하게 할 수 있습니다.

이 내용을 이해하기 위해서는 먼저 기저변환에 대해 생소하다면 아래 링크를 참조하고 오시면 좋습니다.

https://velog.io/@kimgeonhee317/Change-of-basis

우선 대각행렬이 아닌 일반적인 매트릭스라도 이 매트릭스의 고유벡터를 이용해서 이 고유벡터들을 기저벡터로하는 시스템으로 기저변환을 할 수 있습니다.

다음과 매트릭스 AA가 있다고 가정했을때 다음과 같은 선형변환을 취하고자 합니다.

Av=vA\overrightarrow{v} = \overrightarrow{v}'

그 매트릭스의 eigenvector가 basis인 세상을 가정해봅시다.
이 곳을 통상 eigenbasis system이라 합니다.
그리고 AA이 eigenvector들을 기저컬럼으로 하는 매트릭스를 PP라고 한다면
먼저 PP를 취해서 대상 벡터를 현재의 시스템으로 불러오고 원하는 선형변환 AA을 취한 후 다시 역행렬 P1P^{-1} 취해 eigenbasis system으로 돌려보낼 수 있습니다.

이를 새로운 선형변환 AnewA_{new}라고 해보겠습니다.
matrix composition(매트릭스들의 곱으로 합쳐진 형태)로 AnewA_{new}를 표현하면 다음과 같습니다.

Anew=P1APA_{new} = P^{-1}AP

중요한 점은 이 새로운 선형변환 AnewA_{new}은 eigenbasis 시스템에 존재하는 선형변환이기 때문에 반드시 대각행렬(Diagonal Matrix)임을 보장합니다.

Anew=ΛA_{new} = \Lambda

이를 좀더 제네럴한 방식으로 수식을 좀 수정하면 다음과 같고 이를 대각화(Diagonalization) 이라고 합니다.

A=PΛP1A = P\Lambda P^{-1}

Example

예를 들어서 이해해봅시다.
다음과 같은 선형변환 매트릭스 AA가 있습니다. 위에서 봤던 매트릭스죠
특정 열벡터 v\overrightarrow{v}에 대한 A100A^{100} 변환을 하고싶다고 가정해봅시다.
A100A^{100}를 구하기는 여간 어려운일이 아닐 겁니다.

A=[3102]A = \begin{bmatrix} 3 & 1\\ 0 & 2 \\ \end{bmatrix}
Av=vA\overrightarrow{v} = \overrightarrow{v}'

동 매트릭스의 고유값과 고유벡터를 봅시다.
λ=2\lambda=2 일때 [1,1]T[1, -1]^T, λ=3\lambda=3 일때, [1,0]T[1, 0]^T가 고유벡터가 될 수 있습니다.

이를 통해 고유벡터를 기저로 선형변환할 수 있는 매트릭스 EE를 다음과 같이 만들 수 있습니다.

P=[1110]P = \begin{bmatrix} 1 & 1\\ -1 & 0 \\ \end{bmatrix}

위 식을 다시 가져와 대각행렬을 계산해봅시다.

P1AP=ΛP^{-1}AP = \Lambda
([1110])1[3102][1110]=[2003]\left ( \begin{bmatrix} 1 & 1\\ -1 & 0 \\ \end{bmatrix} \right)^{-1} \begin{bmatrix} 3 & 1\\ 0 & 2 \\ \end{bmatrix} \begin{bmatrix} 1 & 1\\ -1 & 0 \\ \end{bmatrix} = \begin{bmatrix} 2 & 0\\ 0 & 3 \\ \end{bmatrix}

즉 구하고자 한 대각행렬은 다음과 같습니다. 보시다시피 사실 대각행렬은 각 고유값들이 됩니다.

Λ=[2003]\Lambda = \begin{bmatrix} 2 & 0\\ 0 & 3 \\ \end{bmatrix}

그리고 다음과 같이 100승을 계산할 수 있습니다.

(P1AP)100=Λ100(P^{-1}AP)^{100} = \Lambda^{100}
P1A100P=Λ100\\P^{-1}A^{100}P = \Lambda^{100}
A100=PΛ100P1\\A^{100} = P\Lambda^{100}P^{-1}

Tips

  • 참고로 대상 행렬인 AA가 대칭행렬(symmetric matrix)일 경우에만 고유벡터(eigenvectors)들이 서로 직교(orthogonal) 합니다.
  • 위에서는 eigenvector를 임의로 나열했지만 보통 eigenvalues별로 매핑되는 eigenvector들에 대하여 각각 크기로 나누어 크기가 1인 단위벡터로 만들어 버립니다.
    (uTu=1u^Tu = 1)

References

[1] 3Blue1Brown - Essence of linear algebra

profile
Artificial Intelligence study note

0개의 댓글