Eigendecomposition
Diagonalization: ()
Notation
: 정사각행렬
: 대각행렬 (대각성분을 제외한 모든 값이 0인 행렬)
ex)
: invertible 행렬 (역행렬이 있음)
V는 무엇? D는 무엇?
식을 바꿔보자..
==>
따라서 는 의 eigen vector 들이 되고 는 에 대응하는 eigen value 가 된다.
다시 정리해서 말하면 에서 1. 는 의 eigen vector 들을 column vector 로 가지는 행렬이고
- 는 의 각 column vector 에 대응하는 eigen value 들을 대각성분으로 가지는 diagonal matrix 이다!
Note that
가 존재하기 위해서는 의 eigen vector 들 ( 의 column vectors)이 서로 linearly independent 해야 한다.
마지막으로 정리해서 말하자면
-
로 square matrix 를 decomposition 하는 것을 eigendecomposition 이라고 하며
-
eigen 이라는 이름에서 알 수 있듯이 는 의 eigen vector 들을 column vector 로 가지는 행렬이고 는 corresponding eigen value 들을 대각성분으로 가지는 diagonal matrix 이다
-
이 때 가 존재하기 위해서는 의 eigen vector 들이 서로 linearly independent 해야하므로 eigendecomposition 이 언제나 가능한 것은 아니다.
-
참고: 특수한 경우로 가 symmetric matrix 라면 언제나 eigendecomposition 이 가능하다. covariance matrix 가 symmatric matrix 이므로 covariance matrix 를 분석 할 때 eigendecomposition 이 많이 사용된다.
의 의미
어떤 벡터 에 행렬 를 곱함으로써 linear transformation 을 한다고 해보자
1. 의 의미: Change of basis
- 라고 해보면
- 이고 다르게 쓰면 (가 행렬이라고 가정)
- 즉, 좌변과 우변의 벡터는 서로 동일한 벡터인데 좌변의 경우 standard basis 와 라는 coefficient 로 벡터를 표현한 것이고 우변의 경우 라는 두 basis 와 라는 coefficient 로 벡터를 표현한 것이다. ( 은 서로 linearly independent 이어야 하므로 space 를 span 할 수 있다. 즉 어떤 벡터 든 표현할 수 있다.)
- 다시 말해서 는 라는 벡터를 의 linear combination 으로 표현했을 때의 coefficient 가 된다.
2. 의 의미: Element-wise Scaling
- 라고 할 때 는 대각행렬이고 대각행렬의 linear transformation 연산은 매우 간단하다.
- ex) ,
- 위의 예에서 는 를 basis 로 하는 공간의 coefficient 를 의미했었다. 그런데 이고 따라서 에는 를 제외한 어떤 다른 도 관여하지 않으므로 의 연산은 axis (각 basis) 를 따라 Scaling 해주는 연산을 의미한다.
3. 의 의미: Back to Original Basis
- 는 를 basis로 표현한 coefficient 이다.
- 라고 했을 때 로 표현할 수 있으므로 #1 에서와 동일한 이유로 는 를 basis 로 했을 때의 coefficient 인 를 standard basis 의 coefficient 로 바꾸는 과정을 의미한다.
라는 linear transformation 을 여러 번 반복한다면?
일 때,
보다 훨씬 효율적이다.
(참고: 위의 선형대수 내용이 RNN gradient vanishing 문제에 적용된 사례 - "orthogonal initialization" https://smerity.com/articles/2016/orthogonal_init.html)