Notice
Recent Posts
Recent Comments
Today
Total
04-20 00:20
Archives
관리 메뉴

Jeongchul Kim

EigenDecomposition 고유값 분해, eigenvector 본문

MachineLearning

EigenDecomposition 고유값 분해, eigenvector

김 정출 2018. 9. 7. 15:00


EigenDecomposition 고유값 분해, eigenvector

EigenVector, EigenValue

우선 eigenvector 뭔지 살펴봅시다. 선형대수학에서 eigenvector는 선형 변환(linear transformation)을 통해 나온 결과가 자기 자신의 벡터의 상수배를 만족해야 하며, eigenvector는 non-zero(0이 아닌 값) 여야 합니다.


즉 다음의 수식을 만족해야 합니다.


Eigenvector의 중요성을 알기 위해서는 기하학적인 측면으로 많이 접근합니다.

예를 들어서 컬러 그림(3차원 RGB의 값으로 이루어진 Matrix)을 각도 회전(rotation) 시킨다고 생각을 해봅시다.


이미지 전체를 회전을 하는 경우(선형 변환) 벡터 중에 방향은 보존이 되고 크기(scale)만 변화되는 방향 벡터가 존재하게 될 것입니다. 이 eigenvector들로 우리는 선형 변환을 훨씬 쉽게 적용할 수 있습니다.


선형 변환(linear transformation)은 기하학적 의미에서 다음과 같습니다.


eigenvector와 eigenvalue의 예를 들어봅시다.

벡터를 2배로 증가시키는 선형변환이 있을 수 있습니다.

A라는 선형변환이라는 matrix로 표현하면 2x2 행렬로 가능합니다.

이 A를 만족하는 eigenvector는 여러가지 존재합니다.


eigenvalue와 eigenvector는 다음과 같습니다.


그래서 위의 2개의 eigenvector는 선형변환이 발생하여도 방향은 보존되고 크기(scale)만 변형되는 벡터가 됩니다.


원형으로 표현된 단위 벡터에서도 eigenvector는 존재합니다.


자, 그렇다면 eigenvector와 eigenvalue를 계산할 수 있는 수식은 어떻게 될까요?


다시 수식을 살펴봅시다.


수식의 우변을 좌변으로 넘깁니다.


여기서 eigenvector는 정의하기를 0이 아닌 vector입니다.

그러므로 다음의 수식이 만족됩니다.


determinant는 행렬식으로 다음의 수식을 만족합니다.

A가 2차원인 경우,


A가 3차원인 경우,

이에 따라 p(λ)는 λ로 이루어진 방정식으로 치환됩니다.


이를 위의 예제에서 다시 한번 살펴봅시다.


위의 식에 따라 λ로 이루어진 방정식으로 치환됩니다.


해가 2개가 존재하게 됩니다.

eigenvalue가 1일 때, 다음과 같습니다.


eigenvalue가 3일 때, 다음과 같습니다.


2차원 좌표계에서 살펴보면 다음과 같습니다.

위의 파란색 벡터는 eigenvalue가 3일 때, 핑크색 벡터는 eigenvalue가 1일 때 선형 변환이 일어나도,

방향은 유지하고, 크기만 변화하게 됩니다.


선형 변환 matrix의 크기가 3x3일 경우에도 구해봅시다.


다음의 방정식이 적용됩니다.


위의 방정식을 풀면 방정식의 해로 1, 2, 11이라는 값이 나오고 이것이 eigenvalue가 되겠습니다.

eigenvalue인 λ = 2, 1, 11에 따라 eigenvector는 다음과 같습니다.


Eigen Decomposition

eigen decomposition을 통해 eigenvector와 eigenvalue로 분해할 수 있습니다.

단, eigenvalue와 eigenvector가 존재하는 정사각행렬에만 적용이 가능합니다. 하지만 machine learning에서는 정사각행렬이 아닌 경우의 분해도 필요하므로 한계가 존재합니다.


식은 다음과 같습니다.


예를 들면, 다음과 같습니다.


우리는 eigenvalue와 eigenvector와 eigendecomposition 을 통해 matrix를 이해할 수 있는 특성으로 사용됩니다.

eigenvalue와 eigenvector를 통해서 우리는 쉽게 matrix의 역행렬(inverse matrix)를 구할 수 있습니다.

역행렬을 쉽게 구할 수 있음으로 머신러닝 또는 딥러닝에 쓰이는 알고리즘 내부에서 사용되는 matrix의 역행렬을 쉽게 구할 수 있고, 계산이 단축된다는 점입니다.



Comments