3B1B: Essence of Linear Algebra ch.13 Eigenvectors and Eigenvalues

Eigenvectors(고유벡터)Eigenvalues(고유값)은 학생들이 유난히 직관적이지 않다고 느끼는 주제 중 하나이다. 왜 이걸 배우는지, 이게 진짜로 의미하는 게 뭔지 같은 의구심을 많이 갖는다. 계산만하다가 끝나는 느낌이다.

대부분의 선형대수학 교과서에서 Eigen-things는 설명이 잘되어 있는 편이다. 문제는 이전에 배웠던 여러 주제들에 대한 기하학적, 시각적 의미를 탄탄히 가지고 있어야만 Eigen-things 또한 제대로 이해할 수 있다는 것이다. 이 중 가장 중요한 건 행렬을 Linear transformations으로 생각하는 방법이다. 이외에도 Determinants, Linear systems, Change of basis에 익숙해있어야 한다.

ch13-1

Eigenvectors & Eigenvalues

들어가며, 2차원에 한 linear transformation이 있다고 해보자. 이 transformation은 $\hat{i}$을 (3, 0)으로 $\hat{j}$를 (1, 2)로 움직이게 한다. 이를 행렬로 나타내면 다음과 같다.

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

이때, 이 행렬이 특정 벡터에 어떤 작용을 하는지 살펴보자. 이 벡터의 span을 생각해보면 이 때 한 직선이 생기고 이 직선은 원점(origin)과 이 벡터의 tip을 지날 것이다.

ch13-2

대부분의 벡터는 transformation과정 동안 자기 자신의 span에서 벗어날 것이다. 만약 transformation 후에도 그 벡터가 자기 자신의 span으로 이루어진 직선위에 놓인다면 그건 상당한 우연이다.

ch13-3

하지만, 몇몇 특별한 벡터들은 자기 자신의 span위에 남아있다. 행렬변환이 그러한 벡터를 그저 stretching하거나 squishing한 효과를 준 것처럼 보인다. 마치 scalar처럼 말이다.

ch13-4

이러한 특수한 벡터의 대표적인 예로 basis vector인 $\hat{i}$이 있다. $\hat{i}$의 span은 x-axis(x축)이다. \(\begin{bmatrix} 3 & 1 \\ 0 & 2 \\ \end{bmatrix}\) 을 $\hat{i}$에 곱해도 그 길이만 3배가 될 뿐 여전히 x-axis 위에 있다. 일반화해보면, $\hat{i}$뿐만 아니라 x-axis 위에 있는 모든 벡터들은 transformation 후에도 여전히 x-axis 위에 있다.

ch13-5

x-axis축 위에 있는 벡터 외에 transformation 후에도 span이 변하지 않는 또 다른 벡터는 \(\begin{bmatrix} -1 \\ 1 \end{bmatrix}\) 이다. 이 벡터는 2배로 늘어난다.

그리고 linearity(선형성)에 의해 이 벡터가 span한 대각선 위에 모든 벡터도 2배로 늘어난다.

ch13-6

정리하자면, x-axis위에 있던 벡터들은 transformation 후 3배가 되며, 대각선 위에 있던 벡터들은 2배가 된다.

짐작했을거 같은데, 이 특수한 벡터들을 the transformation의 eigenvectors(고유벡터)라고 부른다. 각각의 eigenvectors는 eigenvalue(고유값)라 부르는 녀석과 연관성을 지닌다. 위의 예시에서 3과 2가 eigenvalue이다.

ch13-7

negative

stretching 혹은 squshing할 때, eigenvalue가 양수(+)인건 별로 특별해보이지 않는다. 그렇다면 음수(-)를 갖는 eigenvector도 있을까? 물론이다.

예를 들어, eigenvalue가 $-1/2$라면 벡터는 get flipped되는 동시에 squished된다. 여기서 중요한 점은 변환된 벡터 역시 그 span한 선위에 여전히 놓여있고 이 rotation에서 벗어나지 않는다는 사실이다.

three dimension

이게 왜 중요한지를 따져보기 위해 3차원에서의 rotation을 생각해보자.

만약 이 rotation에서의 eigenvector, 즉 자신의 span에 남아있는 벡터를 찾는다면 그게 바로 Axis of rotation(회전축)이다.

ch13-8

그리고 이 3D회전을 생각할 때는 몇 개의 회전축과 회전하게 되는 각을 가지고 생각하는 것이 훨씬 편하다.

이 변환과 관련된 3 x 3 행렬 전체를 생각하는 것보다 말이다. 아래의 두 번째 그림처럼 행렬을 계산하기는 싫다.

ch13-9

ch13-10

이러한 패턴은 선형대수학에서 흔히 등장한다. 다시 말해, linear transformation의 columns는 basis vectors의 변환 후 위치를 나타내는데, 이를 읽어낼 수만 있으면 transformation이 어떻게 일어나는지 알 수 있다.

그러나 특정 coordinate system위에서 덜 의존하며 linear transformation이 무슨 일을 벌이는지 확실하게 아는 더 좋은 방법이 있는데, 그게 바로 eigenvectors와 eigenvalues를 찾는 것이다.

여기서는 eigenvectors와 eigenvalues를 계산하는 디테일한 방법론은 다루지 않겠다. 다만, 개념을 이해하는데 중요한 역할을 하는 계산 아이디어의 큰그림을 그려볼 예정이다.

$det((A - \lambda)v) = 0 $

먼저 표기법을 살펴보자. 좌변에 행렬-벡터 곱은 $A$와 $v$의 곱셈인데 이는 eigenvector인 $v$를 특정 값인 $\lambda$로 scaling해준 결과다. 그래서 행렬 $A$의 eigenvectors와 eigenvalues를 찾는 건 $v$와 $\lambda$의 값을 찾는 것이다.

ch13-11

이는 처음에 낯설게 보일 것이다. 왜냐하면 좌변은 행렬과 벡터의 곱이고, 우변은 scalar와 벡터의 곱이기 때문이다. 그래서 우변의 $\lambda$를 다시 써보면 diagonal matrix에 $\lambda$를 곱한 행렬로 표현할 수 있다. 이 행렬은 어떤 벡터든 $\lambda$만큼 scaling하는 효과를 지닌다. 이러한 행렬의 columns는 각각의 basis vector에 무슨 일이 일어나는지 나타낸다. 즉, basis vector에 $\lambda$를 곱한 것이다.

ch13-12

위의 식 $Av = \lambda v$에서 우변을 좌변으로 이항시키고 $v$로 묶어주면 아래 그림의 식처럼 나타날 것이다. 결국, 우리는 이 식에서 non-zero인 벡터 $v$를 찾는게 목적이다.

ch13-13

5장과 6장에서도 말했지만, 행렬과 non-zero인 벡터의 곱($Av$)이 zero vector가 되는 유일한 방법은 이 행렬이 하는 transformation이 공간을 낮은 차원으로 축소시킬 때이다. 그리고 이 축소화는 이 행렬의 determinant가 zero일 때와 대응된다.

ch13-14

예를 들어보자, \(\begin{bmatrix} 2 & 2 \\ 1 & 3 \end{bmatrix}\) 라는 행렬에 $\lambda$라는 변수만큼 대각행에서 뺀다고 하자. 그러면 이렇게 된다. \(\begin{bmatrix} 2 - \lambda & 2\\ 1 & 3 - \lambda \end{bmatrix}\)

이 새로운 행렬의 determinant가 0이되게 만드는 $\lambda$를 찾는게 관건이다. $\lambda$값을 바꾸면 행렬도 바뀌고 이 행렬이 이루는 평행사변형의 넓이, 즉 determinant도 바뀐다. 이 경우에 $\lambda$는 1일때 determinant가 0이 된다. 즉, 2차원 평면에서 1차원 직선으로으로 축소한다.

이는 non-zero 벡터인 $v$를 위의 행렬로 transformation하면 zero vector로 바뀐다는 뜻이다. 잊지말아야 할 점은, 우리가 이 determinant에 관심을 가진 이유는 transformation하는 행렬 $A$에서도 eigenvector인 $v$의 span은 변하지 않게 만드는 $\lambda$를 찾기 위함이었다.

ch13-15

요약하자면 다음과 같다.

\[Av = \lambda v \\ Av - \lambda I v = 0 \\ (A - \lambda I)v = 0\\ det(A - \lambda I) = 0\]
  • solutions exist

이번 장 도입부에 언급한 사전지식 탓에, determinants에 대한 이해와 왜 determinants가 non-zero solutions를 가지는 linear system of equations와 관련있는지에 대한 이해가 없다면, 위와 같은 표기가 난데없다고 생각할 것이다.

처음 예를 들었던 \(\begin{bmatrix} 3 & 1 \\ 0 & 2 \\ \end{bmatrix}\) 를 생각해보자. eigenvalue $\lambda$를 찾기 위하여, $\lambda$를 이 transformation 행렬의 대각원소에 빼고 이에 대한 determinant를 구하자.

이 determinant를 계산하면 $(3 - \lambda)(2 - \lambda) - 1 \cdot 0$이 된다. $(3 - \lambda)(2 - \lambda)$는 quadratic polynomial(2차 다항식)이다. $(3 - \lambda)(2 - \lambda) = 0$에서만 eigenvalue를 갖으므로, $\lambda = 2 or 3$이다.

이때 $\lambda = 2$를 취하면, \(\begin{bmatrix} 3 - 2 & 1 \\ 0 & 2 - 2 \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 0 & 0 \\ \end{bmatrix}\) 이 된다.

그 다음, 대각원소가 바뀐 이 transformation행렬이 어떤 벡터를 0으로 변환시킬지를 찾기 위해 아래의 식을 계산한다.

\[\begin{bmatrix} 1 & 1 \\ 0 & 0 \\ \end{bmatrix} \begin{bmatrix} x \\ y\\ \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ \end{bmatrix}\]

이를 계산하면 $x + y = 0$이고 $y = -x$라는 직선이 나오게 된다. 즉, solution (-1, 1)이 span하는 대각선 위에 있는 모든 벡터다. 이건 원래 행렬 \(\begin{bmatrix} 3 & 1 \\ 0 & 2 \\ \end{bmatrix}\) 가 이 벡터들을 eigenvalue였던 2 배만큼 stretching한다는 사실과 같은 말이다.

지금까지의 과정을 시각화한 게 아래의 그림이다.

ch13-16

  • solutions don’t exist

그런데, 2차원에서의 linear transformations는 eigenvectors가 항상 존재하는 건 아니다.

예를 들어, eigenvectors가 없는 90º rotation 변환의 경우엔 모든 벡터가 자기 자신의 span을 벗어난다. 그치만 억지로 eigenvalue를 계산하려고 시도한다면 imaginary number(허수)의 결과를 얻게 된다. real number에서는 그 solutions이 없다는 뜻이다.

ch13-17

  • shear

이전에도 살펴보았던 특수한 linear transformation인 shear는 다음과 같은 행렬로 나타낼 수 있다.

\[\begin{bmatrix} 1 & 1 \\ 0 & 1 \\ \end{bmatrix}\]

x-axis위에 있는 모든 벡터들이 eigenvectors이며, 이때 eigenvalue는 1이다. 근데 이 eigenvectors가 유일한 경우다. 왜인지는 다음의 식을 풀면 알 수 있다.

\[det( \begin{bmatrix} 1 - \lambda & 1 \\ 0 & 1 - \lambda \\ \end{bmatrix} ) = (1 - \lambda)(1 - \lambda) = 0\]

여기서 $\lambda = 1$이며 유일하다.

eigenvalue는 1개 뿐이지만, eigenvectors는 여러 개일수도 있다는 점도 기억해야한다.

가장 간단한 예로 모든 걸 2배로 scaling하는 행렬을 꼽을 수 있다.

\[\begin{bmatrix} 2 & 0 \\ 0 & 2 \\ \end{bmatrix}\]

여기서 eigenvalue는 2뿐이지만 eigenvectors는 평면 상의 모든 벡터이다.

eigenbasis

both basis vectors and eigenbasis

끝으로, 12장에서 배운 change of basis와 관련 깊은 eigenbasis(고유기저)를 다뤄보도록 하겠다.

basis vectors이면서 동시에 eigenvectors이면 어떤 일이 벌어질까?

이러한 경우엔 Diagonal matrix(대각행렬)형태를 띠게 된다.

ch13-18

대각 원소를 제외한 나머지 원소가 0일때, 각 columns는 basis vectors이며 그 원소값이 eigenvalue가 된다.

Diagonal matrix를 다루기 좋은 이유 중 하나는 만약 이 행렬을 여러개 곱한다면, 앞으로 일어날 일을 계산하기 쉽기 때문이다. 이러한 행렬이 하는 일은 각 basis vector를 특정한 eigenvalue로 scaling하는 것이다.

\[\begin{bmatrix} 3 & 0\\ 0 & 2 \\ \end{bmatrix} ^n \begin{bmatrix} x\\ y\\ \end{bmatrix} = \begin{bmatrix} 3^nx\\ 2^nx \end{bmatrix}\]

Diagonal matrix가 아닌 행렬을 여러번 곱한다고 생각하면 그 계산은 매우매우 복잡하다.

change of basis

basis vectors이면서 동시에 eigenvectors인 상황은 매우 lucky이다. 흔치 않다.

흔치는 않지만 특수한 경우에 임의로 이러한 상황을 만들어낼 수 있다.

Linear transformation이 eigenvectors를 여러개 갖고 있을 만큼 충분해서 full space를 span할 정도의 set를 고를 수 있다면, 현재 coordinate system을 바꿔서 이 eigenvectors를 basis vectors로 바꿀 수 있다. 즉, "Eigenvectors span space"하는 상황이라면, "Use eigenvectors as basis"하는 것이다.

12장에서 배운 걸 다시 떠올려보자.

새로운 basis로 사용하고 싶은 vectors의 coordinates(좌표)를 취해보자. 이 경우엔 두 eigenvectors가 된다. 그리고 이 cooridnates를 columns로하는 matrix를 만든다. 그럼 이게 the change of basis matrix이다. 그리고 이 matrix와 이의 역행렬로 the original transformation 앞뒤로 감싸준다.

\[\begin{bmatrix} 1 & -1\\ 0 & 1 \\ \end{bmatrix} ^{-1} \begin{bmatrix} 3 & 1\\ 0 & 2 \\ \end{bmatrix} \begin{bmatrix} 1 & -1\\ 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} 3 & 0\\ 0 & 2 \\ \end{bmatrix}\]

동일한 transformation을 나타내지만 새로운 basis vectors의 coordinate system의 관점에서의 행렬을 얻어냈다. 이걸 eigenvectors라 하는 이유는 새로운 행렬이 diagonal에 eigenvalue를 가지는 diagonal matrix가 되게 하기 위해서이다.

이제 basis vectors를 변환할 때 scaling하기만 하는 coordinate system에서 작업할 수 있다.

다시 말하지만, basis vectors이면서 동시에 eigenvectors인 벡터를 eigenbasis라 부른다.

ch13-19

만약에 아래의 행렬을 100제곱한다면

\[\begin{bmatrix} 3 & 1\\ 0 & 2 \\ \end{bmatrix} ^{100}\]

우선, eigenbasis로 나타낸 행렬을 구한 다음 이걸 100제곱 한 다음에 다시 원래의 계로 바꾸는 게 훨씬 계산 쉽다.

모든 공간에서 이 방법이 적용되지 않는다. 예를 들어, shear는 모든 space를 span하는 eigenvectors가 없다. 그러나 이러한 벡터를 찾는다면 쉽게 할 수 있다.

마치며

오늘 배운 내용과 관련된 퀴즈 하나를 소개합니다.

ch13-20

업데이트:

댓글남기기