본문 바로가기

머신러닝/[인공지능을 위한 선형대수]

고유값 분해와 선형변환

학습목표

 드디어 이번 강의에서는 이제까지 우리가 배워온 개념을 토대로 고유값 분해에 대해 배워보겠습니다. 그리고 고유값 분해를 통한 선형변환의 과정을 다루겠습니다.

핵심 키워드

  • 고유값 분해(Eigen Decomposition)

학습하기

 그럼 이제, A matrix가 Diagonalizable이라고 가정해봅시다. 그럼 D=V^-1 A V로 표현할 수 있을테구요. 이는 다시 VDV^-1 = A라고 표현할 수 있을 테고, 이를 저희는 Eigen Decomposition이라고 부릅니다. 역행렬을 갖는 V 행렬과, Diagonal matrix D로 분해한거죠. 저희가 인수분해를 하듯, 어떤 행렬을 다른 행렬의 곱으로 표현하는 거죠. QR Factorization(Decomposition)처럼요. 

 다음과 같은 행렬 A가 있고, 이게 Linear transformation이라고 가정해봅시다. 그럼 Ax 를 계산하기 위해 V, D를 사용할 수 있습니다. 생각해봅시다. V는 고유벡터였죠. 그리고 Linear하기 때문에, af(x)+bf(y) = f(ax+by)라는 성질이 성립합니다. 그래서, 어떤 x가 들어왔을 때, 이것을 고유벡터의 선형결합으로 표현하게 되면, Ax라는 계산식을, rx라는 식으로 바꿔서 설명할 수 있게되고, 이것의 계산은 Ax에 비해 훨씬 간편하죠. 일종의 트릭인거죠.

 이러한 내용들을 더 잘 이해하기 위해, Change of Basis를 한 번 진행해봅시다. 전에 말씀드렸듯이, 기저는 하나로 고정되지 않습니다. 여러 가지의 기저가 존재할 수 있어요. 그 중에서도 Standard vector는 값을 표현하기에 굉장히 편리하죠. 그런데 저희가 하고싶은건, 어떤 벡터 x를 고유벡터의 선형결합으로 표현하는 겁니다. 그러니까 기저를 고유벡터로 변경하고자 하는거죠. v1 = [3,1], v2 = [-2,1]를 고유벡터로 갖는다고 가정하면, x = [4,3] = 2v1 + 1v2임을 알 수 있습니다. 여기서 2와 1이라는 Coefficient를 어떻게 찾는가-가 저희가 직면한 문제인겁니다. 사실 [4,3] = [v1, v2][x1, x2]를 풀면 되는 문제죠. 만약 [v1, v2]가 역행렬을 갖는다면, 이것의 역행렬을 양변에 곱해줌으로써 [x1, x2]를 도출할 수 있습니다. 이런 식으로 생각하셔도 좋습니다. Ax = V(D(V^-1x))를 떠올린 다음, 먼저, V^-1x를 생각해봅시다. y = V^-1x -> Vy = x. V = [v1, v2]이다. 쨋든, V의 역행렬이 존재하면 문제가 쉬워집니다. 물론 정방행렬이 아닌 등, 역행렬이 없으면 어떻게 하는가-하는 생각을 할 수 있지만, 애초에 저희는 V의 역행렬이 존재하는 가정이, Eigen Decomposition을 진행할 때 부터 깔려있습니다. 해서 V^-1x의 의미는, 그 자체로 고유벡터들의 선형결합으로 x를 표현하기 위한 계수를 계산하는 과정이 되는 겁니다.

 이제 D(V^-1x)를 다뤄보죠. D는 Diagonal matrix였습니다. 때문에 아래 그림에서 보실 수 있듯이, D와 y를 행렬곱한다는 것의 의미는, 단순히 y의 각 성분을 스칼라곱해주는 의미가 되는거죠. V^-1x = y가 x를 고유벡터의 선형결합으로 표현하기 위한 계수였는데, 이를 스칼라(고유값)곱해줌으로써, 그 길이만 변동시킨 셈입니다. 정확히는 해당 고유벡터에 대한 해당 고유값을 곱해준다는 의미겠죠.

 좌측이 y, 우측이 Dy에 대한 그림이 되겠죠.

 이제 마지막으로 VDy = Vz를 생각해봅시다. V는 고유벡터로 구성된 행렬입니다. 그리고 Dy = z는 고유벡터의 계수를 의미했습니다. 마지막으로 곱해지는 V의 역활은 고유벡터를 기저로 삼았던 좌표계를, 본래의 Standard basis 좌표계의 값으로 돌려놓는 역활을 하게 됩니다.

  결국 아래와 같은 계산이 성립하겠습니다.

 그래서, 결론적으로 다음과 같이 생각할 수 있습니다. Ax를 바로 계산 하는 것은, Eigen Decomposition을 통해 둘러둘러 계산할 수 있는데, V^-1를 통해 계수를 계산하고, D를 통해 고유값으로 간단히 계산하고, V를 통해 원래의 좌표계에 값을 표현한다. 가 되겠습니다.

 이제 A^k을 생각해봅시다. 예를 들어 A^10을 연산하고자하면, 곧이곧대로 하면, A를 10번이나 연산해야합니다. 그런데 이걸 Eigen Decomposition을 통해 연산해보면, 아래 수식과 같이 VD^kV^-1로 간단하게 표현할 수 있게 되죠. 좌표계를 여기갔다 저기갔다를 무수히 할 필요 없이, 한 번 고유벡터 좌표로 가서 모든 연산을 다 처리하고, 마지막으로 본래 좌표계로 돌아오는 겁니다. 그리고 D^k는 Diagonal matrix이기 때문에, 그 연산이 굉장히 단순하죠. 이상입니다.

'머신러닝 > [인공지능을 위한 선형대수]' 카테고리의 다른 글

특이값 분해 2  (0) 2020.05.28
특이값 분해 1  (0) 2020.05.27
대각화  (0) 2020.05.25
특성방정식  (0) 2020.05.24
영공간과 직교여공간  (0) 2020.05.23