Eigendecomposition

Diagonalization: ()

Notation

: 정사각행렬

: 대각행렬 (대각성분을 제외한 모든 값이 0인 행렬)

ex)

: invertible 행렬 (역행렬이 있음)

V는 무엇? D는 무엇?

식을 바꿔보자..

==>

따라서 의 eigen vector 들이 되고 에 대응하는 eigen value 가 된다.

다시 정리해서 말하면 에서 1. 의 eigen vector 들을 column vector 로 가지는 행렬이고

  1. 의 각 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)