Logical Scribbles

[선형대수학] 고유값 분해 본문

기초 수학/선형대수학

[선형대수학] 고유값 분해

KimJake 2023. 11. 19. 01:08

지난 포스팅에서 고유값과 고유벡터에 대해 알아보았다.

 

 

[선형대수학] 고유값(Eigenvalue)과 고유벡터(Eigenvector)

고유값과 고유벡터를 이해하기 위해서는 선형변환과 행렬의 의미에 대해 먼저 알아야 한다. [선형대수학] 선형변환과 행렬 이번 포스팅에서는 선형변환에 대해 알아보자. 본격적으로 선형변환

stydy-sturdy.tistory.com

 

이번에 알아볼 고유값 분해와 이후 소개할 특이값 분해는 행렬의 내부 구조를 파악하거나 효율적인 계산을 가능하게 하는 수학적인 스킬이다.

 

이전에 행렬곱에 대해 살펴본 적 있다. 이는 행렬을 실수처럼 곱셈 해보자는 아이디어인데, 다들 어릴 적 곱셈공식을 배우고 인수분해를 배웠던 기억이 있을 것이다. 마찬가지로, 두 행렬을 곱할 수 있는 것처럼 한 행렬도 두개 이상의 행렬의 곱으로 분해할 수 있다. 이러한 개념에 대해 살펴보기 전 한가지 사실을 알고 넘어가자.

 

어떤 행렬의 고윳값이 λ1,λ2,⋯이라고 하면 모든 고윳값의 곱은 행렬식의 값과 같고 모든 고윳값의 합은 대각합(trace)의 값과 같다.  

 

이를 수식으로 보면 다음과 같다.

 

왜 이럴까

 

이제 본격적으로 고유값 분해를 알아보자!

 

고유값 분해

임의의  정방행렬 에 대해 여러개의 고윳값과 고유벡터를 얻었다고 해보자. 한마디로 다음과 같은 고유벡터와 고유값을 n개씩 얻었다는 것이다.

식(1) 출처 :https://angeloyeo.github.io/2020/11/19/eigen_decomposition.html

 

그러면 고유벡터들을 모아 행렬로 만들 수 있다.

 

 

이제 행렬 AV는 다음과 같아진다. 

AV 행렬이 다음과 같아지는 이유는 식(1)에서 확인할 수 있다. AV는 고유값과 고유벡터를 곱한 벡터들을 모아놓은 행렬이다.

 

이제 이 고유값들을 이용하여 행렬을 만들어보자. 고유값들을 모아놓은 행렬을 다음과 같이 정의해보자. 이 때, 이 행렬도 정방행렬도 만든다. (nXn 정방행렬)

 

 

이제 다음과 같은 식을 얻을 수 있다. 

따라서 우리가 얻게 되는 최종적인 식은

 

이렇게 되고, 이것이 A를 A의 고유값과 고유벡터로 분해한, 고유값 분해이다. 너무 쉽다!

 

그런데 이렇게 끝내면 재미가 없다. 이 고유값 분해가 의미하는 것이 무엇이며 이후 어떤 곳에 사용되는지 알아야한다.

 

고유값 분해는 간단히 말해 "돌리기, 늘리기, 원상복구 돌리기" 이다. 원상복구라는 단어를 사용해서 우려되는 점은 고유값 분해의 결과를 돌리고 늘린 뒤, 돌리기가 원상복구 되어 늘리기만 적용되는 것이라고 착각할 수 있다는 것이다. 하지만 돌리고 늘어난 기저벡터를 원상복구 돌리기 하는 것은 다른 이야기이다.

 

어찌됐든 돌리고 늘리고 원상복구 돌리기가 진행된 후의 결과는 A라는 선형변환이 진행된 결과와 같아야 한다. 단지 그 과정을 세 과정으로 쪼개 생각할 수 있다는 부분에 의의가 있다고 볼 수 있다.

 

그런데 대칭행렬의 고유값 분해는 약간 특이하다.

 

대칭행렬이란 아래와 같은 성질을 만족하는 행렬을 말한다. (대표적인 예로 아주 중요한 공분산 행렬이 있다.)

 

대칭행렬을 고유값 분해한다고 생각해보자. 그러면 다음이 성립한다.

 

따라서 아래의 식이 성립한다.

 

따라서 대칭행렬의 고유벡터들을 행렬로 만든 행렬 V는 직교행렬이다.

 

여기서 직교행렬이란 행렬의 row 벡터와 column 벡터들이 자기 자신을 제외한 모든 row 벡터 혹은 column 벡터들과 직교, 즉 내적이 0이며 크기가 1인 벡터들(orthonormal vector)로 이루어진 행렬이다.

 

 

Orthonormality - Wikipedia

From Wikipedia, the free encyclopedia Property of two or more vectors that are orthogonal and of unit length In linear algebra, two vectors in an inner product space are orthonormal if they are orthogonal unit vectors. A unit vector means that the vector h

en.wikipedia.org

 

따라서 직교행렬 Q와 Q^T를 행렬곱 하면 항등행렬 I가 나온다.

 

 

즉, 직교행렬 Q의 전치행렬은 자기 자신의 역행렬이라는 것이다.

 

다시 본론으로 돌아와서 대칭행렬의 고유벡터들을 모아놓은 행렬 V는 직교행렬이고, 자연스럽게 다음 두가지 식을 만족한다.

 

 

 

고유벡터의 관점에서 봤을 때, 일반적인 정방행렬과 대칭행렬의 차이점은 고유벡터들이 직교한다는 점이다.

 

따라서 대칭행렬일때 행렬 V에 의한 선형변환의 결과로 기저의 변화는 오직 회전 뿐인것이다. (물론 기저의 상대적 위치는 변할 수 있다.) 왜냐하면, 행렬 V는 직교 행렬이고 선형변환 된 기저도 서로 직교할테니 말이다!

 

이 글의 맨 밑에 이 대칭행렬의 고유값 분해의 의미에 대해 더 자세히 써보겠다. (필수는 아니지만 선형대수의 엄청난 위엄을 느낄수 있다.)

 

잠깐 다른 얘기를 해보자. 바로 대각화에 대한 이야기이다. 아래 사진의 글을 잘 읽어보자.

 

잘 생각해보면 아래의 두번째 식이 만족됨을 알 수 있다.

 

위로부터 알 수 있는 사실은 A의 고유값 분해가 가능하면 A는 대각화 가능하다는 것이다. 사실 이 두 명제는 동치이며 A가 대각화 가능하면 nxn 정방행렬 A는 선형독립인 고유벡터를 정확히 n개씩 갖는다는 것과도 동치이다.

 

따라서 행렬 A를 대각화하는 것은 그것의 고유값 분해를 하는 것과 같다.

 

이제 A를 대각화 혹은 고유값 분해 함으로써 얻을 수 있는 것들에 대해 알아보자.

 

1. 행렬 A의 거듭제곱 행렬을 구하기 너무나 쉬워진다.

 

2. 행렬 A의 역행렬을 구하기 쉬워진다.

3. 다음이 성립한다.

앞에 소개했던 이 식이 증명된다.

 

 

4. 대각화 가능 행렬 A의 non-zero 고유값의 개수는 rank(A)와 같아진다..! 

 

 

 

이제부터는 필수는 아니지만 선형대수학의 위엄을 보여주는 설명들이다. 주로 대칭행렬에 대해서 다룬다.

 

 

 

끝!