수학적 대상 중에는 그것을
구성요소들로 분해해서, 표현 방식과는 무관하게 보편적인 어떤 성질을 찾아내면 더 잘 이해
할 수 있는 것이 많다.
예시)
어떤 경우이든 십진수 12는 2 X 2 X 3이라는 사실은 참이다.
이러한 소인수분해 표현에서 여러 유용한 성질을 이끌어낼 수 있다.
이를테면, 12는 5로 나누어지지 않으며, 12의 임의의 정수배는 3으로 나누어짐 같은 것..
정수를 소인수들로 분해하면 정수의 진정한 본성에 관한 뭔가를 알아낼 수 있는 것과 비슷하게,
행렬을 다양한 방식으로 분해해 보면 성분들의 배열 형태로 표현된 행렬에서는
미처 발견하지 못한 여러 기능적인 속성이 드러난다.
가장 널리 쓰이는 행렬 분해 방법의 하나는 고윳값 분해(eigen decomposition)라는 것이다.
고윳값 분해에서는 행렬을 일단의 고유벡터(eigen vector)들과 고유값(eigen value)들로 분해한다.
정방행렬 A 의 고유벡터(eigen vector)는 하나의 0이 아닌
벡터 v인데, A와 곱해도 v의 scale만 변한다는 조건을 만족한다.
Av = λv
간단히 얘기해서,
A를 선형변환으로 봤을 때, 선형변환 A에 의한 변환 결과가 자기 자신의 상수배가 되는 0이 아닌 벡터를
고유벡터(eigenvector)라 하고 이 상수배 값을 고유값(eigenvalue)이다.
여기서 스칼라 λ 를 고유벡터에 대응되는 고윳값(eigenvalue)라고 부른다.
고윳값과 고유벡터는 정방행렬에 대해서만 정의된다.
위를 더 정확히 표현하면 λ는 '행렬 A의 고윳값', v는 행렬 A의 λ에 대한 고유벡터
행렬은 선형 변환 연산이다.
쉽게 얘기하면 벡터에 행렬 연산을 취해준다면, 벡터의 방향과 크기도 모두 변할 수 있다는 것.
그러나 어떤 크기의 행렬은 방향을 변화시키지 않고 크기만 변화시킨다.
v가 A의 한 고유벡터이면, 그것을 임의의 s ∈ ℝ, s ≠ 0으로 비레한 벡터 sv도 A의 한 고유벡터이다.
더 나아가서, sv의 고윳값은 v의 고윳값과 같다.
따라서 보통 비례되지 않은 단위 고유벡터만 고려한다.
(여기서 특징은... 벡터에 대해서 크기만 바뀌고 방향은 바뀌지 않는다는 것)
행렬 A에 일차독립인 n개의 고유벡터가 있으며,
{v^(1), ...., v^(n)}
이들에 대응되는 고윳값들이 있다고하면,
{λ^(1), ...., λ^(n)}
이 고유벡터들을 열마다 하나씩 연결해서 행렬 V를만들 수 있다.
V = {v^(1), ...., v^(n)}.
마찬가지로, 고윳값들로 하나의 벡터를 만들 수 있다.
λ = {λ_(1), ...., λ_(n)}^
이 때 A의 고윳값 분해는 다음과 같이 정의
(diag는 대각행렬)
고윳값들과 고유벡터들로 행렬을 구축함으로써 공간을 원하는 방향들로 확장할 수 있음을 보여준다.
정수를 그 소인수들로 분해하면 그 정수의 행동을 이해하는데 도움이 되는 것처럼,
행렬을 분해하면 행렬의 특정 성질을 분석하는 데 도움이 된다.
- 왼쪽 그림 : 모든 unit vector u를 unit circle로 표시한 그래프
- 오른쪽 그림: 모든 점 Au를 표시한 그래프. A가 공간을 v^(i) 방향으로 λ_i 만큼 비례했기 때문에 단위 원이 그 방향으로 길쭉한 타원이 됨
참고
imlab.postech.ac.kr/dkim/class/csed514_2019s/DeepLearningBook.pdf
https://angeloyeo.github.io/2019/07/17/eigen_vector.html
'딥러닝관련 > 기초 이론' 카테고리의 다른 글
행렬식(determinant) (0) | 2021.03.10 |
---|---|
직교 행렬, 정규 직교 벡터, 직교 행렬, 특이값 분해 (singular value decomposition) (0) | 2021.03.10 |
Orthogonal (직교) vector (0) | 2021.02.07 |
Norm (0) | 2021.02.06 |
Representation (0) | 2020.07.07 |