brunch

(!) {선형대수} 고유값과 고유벡터

아 근데 좀 맘에 안들어서 고쳐야 되는...

by mashed moshirakano
목차

머신러닝에서 고유값이 중요한 이유

고유값과 고유벡터의 정의

특성방정식

행렬식과의 관계

고유값 분해

대각화





머신러닝에서 고유값이 중요한 이유

고유값을 통해, 어떤 행렬 변환을 하나의 스칼라배로 나타낼 수 있다는 점이 가장 중요한 포인트이다. 즉, 행렬변환을 적은 데이터 양으로 나타내면서도 그 연산의 결과는 동일하게 얻을 수 있다는 것이다. 행렬을 하나의 스칼라값으로 압축하는 과정에서 해당 행렬의 가장 essential characteristic을 얻을 수 있기 때문에, 이 특징이 머신러닝에서 주요하게 도입되고 있는 것이다.


적용가능한 예시는 다음과 같다.

Dimensionality Reduction (e.g. PCA)

Linear Transformations 의 해석 (행렬을 늘리거나 압축시키기, 어떤 방향으로 얼만큼의 크기가 변형되었는지 등)

Spectral Clustering

Graph-based Learning (라플라시안 행렬을 통해 그래프 구조상에서의 연결성을 포착)

Neural Networks (신경망의 가중치 행렬을 분석- stability, convergence, and generalization properties)



고유값과 고유벡터의 정의

다운로드 (1).jpeg

선형 변환고유벡터; eigenvector는 그 선형 변환이 일어난 후에도 방향이 변하지 않는, 0이 아닌 벡터이다. 고유 벡터의 길이가 변하는 배수를 선형 변환의 그 고유 벡터에 대응하는 고유값; eigenvalue이라고 한다. 선형 변환은 대개 고유 벡터와 그 고윳값만으로 완전히 설명할 수 있다 (wikipedia)



특성방정식

https://gosamy.tistory.com/355

위의 블로그가 잘 나와있네.

스크린샷 2023-08-12 02.54.17.png
스크린샷 2023-08-12 02.48.35.png



행렬식과의 관계

들어가기전에

행렬식(determinant)이란, 어떤 정사각 행렬을 스칼라값에 “mapping”하는 연산(함수)으로 생각할 수 있다. 정사각 행렬의 행렬식의 절댓값은 그 행렬이 나타내는 선형변환이 부피를 확대시키는 양을 나타내고, 행렬식의 부호는 방향 보존여부를 나타낸다 (wikipedia) 또한 matrix가 invertible인지(역행렬이 존재하는지)를 알 수 있다.


행렬식과 고유값 간의 관계

행렬식과 고유값 사이에는 다음의 성질이 성립한다.

임의의 행렬 A에 대해, det(A)는 A의 모든 고유값의 곱과 같다. 이에 대한 전개는 stackexchange에서 달린 답변을 그저 가져와본다. 위에서 배운 특성 방정식을 n차 다항식으로 전개한 뒤, lambda에 0을 대입하여 정리하면 얻을 수 있다.

스크린샷 2023-08-12 02.56.45.png stackexchange

고유값의 또 다른 성질로는, 모든 고유값의 합은 trace(대각합)과 같다.

스크린샷 2023-08-12 02.41.33.png 데이터사이언스 스쿨-고유값 분해

선형 변환의 부피

앞서, 행렬식이 선형변환의 부피의 증감 정도를 나타낸다고 했다. 고유값을 통해 이에 대한 인사이트를 얻을 수 있다. 먼저, 평행사변형의 넓이 = absinx 라는 공식을 떠올려보자.

만약, 이 평행사변형을 이루는 두 변 a, b가 늘어나면 어떻게 될까? 예를 들어 a는 2배, b는 3배 늘어난다면, 늘어난 평행사변형의 넓이는 (2a)*(3b)sinx = 6absinx 가 될 것이다.






고유값은 고유 벡터를 얼마나 늘리느냐를 의미한다고 했다. 그리고 위의 평행사변형의 넓이의 증감 예시처럼, 부피가 얼마나 커지는 지 알려면 그 부피를 이루는 벡터들이 얼마나 늘어났는지를 알면 된다. 결국, 모든 고유 벡터들이 각각 늘어난 정도를 곱해주면, 전체 부피가 늘어난 정도를 알 수 있다. 정확하게는, |모든 고유값의 곱|(=행렬식)은, 선형변환의 부피변화를 정량화한 값을 나타낸다.



자, 행렬식이 선형변환의 부피변화를 정량화한 값이라면, 우리는 행렬식을 (선형변환 후의 부피) / (선형변환 전의 부피) 로도 나타낼 수 있을 것이다. 이를 통해, 행렬식 값에 따른 부피 변화를 아래의 4가지 경우로 나눠서 해석해볼 수 있다.

스크린샷 2023-08-12 03.21.03.png

(1) |det(X)| = 0이면, X는 적어도 한개 이상의 차원에서 "공간을 뭉개버리기" 때문에, 그 결과 전체 부피도 아예 0이 되어버린다. 모든 고유값 중 적어도 한개 이상의 고유값이 0이 되었기 때문에, "공간이 뭉개졌다"고 표현했다.

(2) 0 < |det(X)| < 1이면, (X에) 곱해지는 임의의 텐서의 부피를 수축시킨다.

(3) |det(X)| = 1 이면, 곱해지는 임의의 텐서의 부피를 완벽하게 보존한다.

(4) |det(X)| > 1 이면, 곱해지는 임의의 텐서의 부피를 확장시킨다.


아래의 조악한 필기를 통해, |det(X)|=0일 때 행렬 곱 전후의 텐서의 부피가 동일한 예시를 살펴보자.

행렬 곱 이후의 벡터들은 원래의 기저 벡터들의 span 위에 움직이고 있다. 이를 통해, 두 기저벡터들이 고유벡터임을 알 수 있다. 그리고 위의 고유벡터들의 고유값은 각각 -0.5, 2이다.

행렬 곱 이후, 두 벡터가 이루는 사각형의 모양은 매우 달라졌지만, 그 크기(1)는 동일한 것을 볼 수 있다 (앞서, 우리는 |det(X)| = 1임을 확인했기 때문에, 행렬곱에 의해 곱해지는 텐서의 부피가 보존될 것이라는 것을 알 수 있었다)




singular matrix

정방행렬 A의 역행렬이 존재하지 않을 때, 행렬 A가 singular하다고 한다. 즉, det(X) = 0 이면, 역행렬을 가질 수 없기 때문에 X는 singular matrix가 된다. 따라서, singular matrix는 다음의 특성도 가지게 된다.

X의 열벡터들이 linearly dependent하다.

해가 없거나, 무한히 많은 경우

고유값이 최소한 하나라도 0이다.



선형변환의 방향

스크린샷 2023-08-12 02.28.49.png 유튜브에서 봤는데, 출처를 잃어버렸다..ㅠ



고유값 분해

고유값 분해(eigen decomposition)는 고유값고유벡터로부터 유도되는 고유값 행렬과 고유벡터 행렬에 의해 분해될수있는 행렬의 표현이다. 선형대수학에서 , 고유값 분해 또는 고유 분해(때때로 스펙트럼 분해)는 매트릭스(행렬)를 정형화된 형태로 분해함으로써 행렬이 고유값 및 고유 벡터로 표현된다. 대각화 가능 행렬만이 인수분해될 수 있다 (wikipedia)

스크린샷 2023-08-12 03.44.15.png

V는 A의 모든 고유 벡터를 이어붙인 행렬이다.

람다행렬은 고유값을 대각원소에 모아놓은 대각행렬이다 (이 때, 람다 행렬안의 고유값은 큰 값 → 작은 값 순으로 정렬되어있다. 따라서, 람다 행렬의 가장 첫번째 고유값은, 행렬A의 특성을 가장 주요하게 가지고 있다)

스크린샷 2023-08-12 03.54.13.png

모든 행렬에 대해 고유값 분해가 항상 가능한 것은 아니다. 고유값 분해가 가능한 경우에도, 그 결과가 복소수를 포함하는 경우도 있다. 머신러닝에서는, 보통 실수의 대칭행렬에 대해서 다루기 때문에, 실수의 고유벡터, 고유값로만 분해를 하는 것이 편하다.


만약 A가 실수의 대칭행렬이라면,

스크린샷 2023-08-12 03.53.15.png


여기서는 Q가 V의 자리를 대신하고 있다. 이 떄 주의할 점은 Q가 orthogonal matrix라는 것이다.

또한 inverse를 쓰는 것이 아니라 transpose를 쓰게 된다






참고자료

Stanford CS229: Machine Learning | Summer 2019 | Lecture 2 - Matrix Calculus and Probability Theory

https://math.stackexchange.com/questions/507641/show-that-the-determinant-of-a-is-equal-to-the-product-of-its-eigenvalues

https://skyil.tistory.com/154


나중에 보면 좋을 글들

https://blog.naver.com/gdpresent/220606727951

https://angeloyeo.github.io/2020/11/19/eigen_decomposition.html

https://darkpgmr.tistory.com/106

keyword
작가의 이전글{선형대수} 이차방정식의 근의 판별 (2)