Eigenvectors and Eigenvalues
square matrix 의 eigenvector는 임의의 스칼라 값 에 대해 를 만족하는
0이 아닌 벡터 이다. 또한 값이 eigenvalue가 된다.
Eigenvectors 와 Eigenvalues는 서로 연관되어 있다.
위 예제를 살펴보면, 주어진 벡터 가 eigenvector일 때, 변환을 행하는 의 결과값이
벡터 의 방향과 동일하고 크기만 다르다는 것을 알 수 있다.
이러한 방법으로 계산하는 경우 계산 속도가 현저히 빠르다는 것을 알수 있다.
(행렬계산으로 하는 것보단 스칼라 값으로 계산하는 것이 훨씬 빠르니까 ^^;)
Null space
행렬 에 대해 를 만족하는 모든 해의 집합을 말하며, 라고 표기한다.
이 때 백터 는 반드시 모든 row vector와 orthogonal 해야 한다.
임의의 행렬 에 대해 , 아래 조건을 만족한다.
Orthogonal Complement
백터 가 subspace 의 모든 벡터와 orthogonal 하다면, 그러한 벡터 의 성질을 만족하는 집합을 의 orthogonal complement라고 하고 라고 작성한다.
Characteristic Equation
그렇다면 이러한 eigenvalue를 찾기 위해서는 어떻게 해야 할까?
이런 경우 사용하는 것이 바로 특성 방정식이다. 아래와 같이 서술한다.
어떻게 determinant로 eigenvalue를 찾을 수 있을까?
를 만족하는 0이 아닌 nontrivial solution을 찾기 위해서는 를 구성하는
column vector들이 서로 linearly dependent 해야 하고, 그러기 위해서는 non-invertible해야 한다.
즉, 역행렬이 존재해서는 안되기 때문에, 자연스럽게 determinant 값도 0을 만족해야 한다.
Eigenspace
앞서 제시한 수식을 정리하면, 로 표현 할 수 있으며, 이 때 0을 제외한 해를 찾아야 하므로,
nontrivial solution을 찾게 된다. 따라서 행렬 의 null space를
eigenvalue 에 대한 eigenspace라고 한다.(이 때, eigenspace에는 벡터 또한 포함된다.)
eigenvalue는 유일하지만, eigenvector는 무수히 많다. (다양한 조합으로 표현가능, 단 span은 동일)
이러한 eigenvector들이 형성하는 subspace가 eigenspace가 된다.
Diagonalization
square matrix 가 주어졌을 때, 이 행렬을 diagonal matrix 형태로 표현하고 싶을 때, 아래와 같이 분해하는 것을 diagonalization이라고 한다.
이 때, 는 invertible matrix이며, 는 diagonal matrix를 의미한다.
Diagonalization이 가능하려면?
위의 식을 보면 알수 있겠지만, square matrix가 주어진다고 항상 diagonalize 할수 있는 것은 아니다.
가 역행렬이 존재해야만 대각화가 가능하다. 다시 말하면,
•
행렬 를 만족하는 square matrix이다.
•
행렬 를 구성하는 eigenvector(=column vector of )들이 linearly independent 해야 한다.
•
헷갈리지 말자! 일반행렬은 고유벡터들이 선형독립! 대칭행렬은 고유벡터들이 직교한다!
Eigendecomposition
행렬 가 diagonalizable하다면, 로 작성할 수 있고, 의 역행렬이 존재하기 때문에 수식을 전개하면 아래와 같이 서술 할 수 있다.
결국 diagonalizable하다는 것은 eigendecomposition이 가능하다는 것과 같은 말이다.
Linear Transformation via Eigendecomposition
임의의 벡터 가 주어졌을 때에는 연산을 어떻게 해야 할까?
이러한 경우에는 벡터 가 eigenvector가 아니기 때문에 가 성립하지 않기 때문에 앞서 언급한
계산 속도의 이점을 누릴 수 없다. 이 때 우리가 이전 포스트에서 언급했던 linearity의 성질을 떠올려본다면 주어진 벡터 를 eigenvector의 linear combination의 형태로 표현할 수 있다.
이렇게 되면 의 성질을 이용하여 따로 따로 값을 구한후 더하면 된다. 계산 속도가 향상될 수 있다!
이를 수식적으로 표현하면 아래와 같이 서술한다.
행렬 가 diagonalizable하다면, 의 형태로 eigendecomposition 가능하고,
이를 통해 linear Transformation 를 생각해 볼 수 있다.
총 3단계의 연속적인 변환으로 해석하게 된다. 임의로 주어진 백터 를 eigenvector들의 linear combination으로 표현하고 이를 이용해 쉬운 식으로 치환하고 계산한 후 다시 복원하는 형태를 띈다.
1단계. Basis 바꾸기
주어진 벡터 를 eigenvector를 basis로 하는 linear combination으로 표현한다.
이를 위해 각 basis에 대한 coefficient를 구해야 한다. eigenvector로 이루어진 변환행렬을 로 두고, 각 column에 대한 coefficient vector를 라고 한다면, 아래와 같이 서술할 수 있다.
이해하기 쉽게 그림으로 제시하면 다음과 같다.
각 eigenvalue, eigenvector의 관계가 아래와 같다고 가정한다.
주어진 벡터 는 원래 standard basis의 linear combination으로 이루어져 있었지만,
eigenvector 로 이루어진 새로운 basis를 이용해 표현할 수 있고, 이때 각 eigenvector에 대한 coefficient vector 로 나타낼 수 있다.
2단계. Element-wise Scaling
를 이용해 계산량을 줄이는 과정이다.
주어진 행렬곱을 스칼라와 벡터 곱으로 바꾼다.
3단계. 원래 Basis로 복귀하기
다시 standard basis의 형태로 구하기 위해 eigenvector를 각각 곱해주고 더하면 된다.
위에서 제시한 transformation과정을 그림으로 표현하면 아래와 같다.
Linear Transformation via
연속해서 행렬을 곱하는 상황 을 생각해보면,
만약 행렬 가 diagonalizable하다면 아래와 같이 치환해 곱셈을 구할 수 있다.
이 때 는 간단히 계산될 수 있다.
eigendecomposition 를 이용해 계산하게 되면 를 직접 구하는 것 보다 훨씬 빠르게 행렬 곱셈을 수행할 수 있게 된다!
Eigenvalue, Diagonalization의 중요한 성질들
•
triangular matrix의 main diagonal의 요소들은 eigenvalue가 된다.
•
만약 가 행렬 의 distinct eigenvalues 에 대응하는 eigenvector라면,
집합 은 linearly independent하다.
•
행렬 가 n개의 linearly independent eigenvector를 가지면 diagonalizable 합니다.
•
행렬이 n개의 distinct한(서로 다른) eigenvalue를 가지면 diagonalizable 합니다.