본문 바로가기
Python과 확률

선형대수 행렬 기초적인 내용들 정리 - (대각, 항등, 직교, Eigen(고유), 대칭)

by Yoo Sung Hyun 2022. 7. 3.
728x90

경력이 늘어난다는 것은, 어떻게 보면 필드에서의 노하우가 많이 생기며, 다양한 실생활적인 리스크를 피해가는 지식은 쌓이는 것 같다. 근데 계속 학문을 정진하지 않으면, 결국 기초적인 논리를 놓치게 되며, 전반적인 기술적 흐름을 놓치게 되는 것 같다.

 

물론, 까먹는 것이 잘못은 아니지만, 적어도 다시 찾아보는데 시간을 줄이기 위해, 기본적인 내용들은 정리를 해놓을까 싶다.

좋은 강의: https://www.youtube.com/playlist?list=PLUl4u3cNGP61iQEFiWLE21EJCxwmWvvek 

 

A 2020 Vision of Linear Algebra, Spring 2020

Instructor: Gilbert Strang View the complete course: https://ocw.mit.edu/2020-vision YouTube Playlist: https://www.youtube.com/playlist?list=PLUl4u3cNGP61iQE...

www.youtube.com

선형대수는 연속적인 값들에 의해 생기는 다양한 연립방정식들을 최대한 오차 최소화 근사해를 찾기 위해 활용된다.

선형대수에서의 행렬(Vector) 중에 특이한 특성을 가지는 녀석들은, 명명해놓고 사용하며,

그런 특성들을 이용해서 복잡한 연립방정식을 더 쉽게 해결할 수 있도록 유도할 수 있다. (선형대수의 강력함)

정사영과 최소제곱법: http://matrix.skku.ac.kr/math4ai-intro/W5/

 

정사영과 최소제곱문제

 

matrix.skku.ac.kr

수 많은 연속값에서 가장 근사할 수 있는 직선을 그릴수 있도록. (일차함수를 찾는다.)

회귀에서 가장 기초가 될 수 있는 문제임.

많은 연속점과 변수를 행렬로 정의하여, 행렬의 특성을 이용해서 최소제곱직선(오차가 최소가 되는)을 찾는 과정이 선형회귀임.

http://matrix.skku.ac.kr/math4ai-intro/W5/

Diagonal Matrix(\(\Lambda\)): 대각행렬. 주 대각선의 원소가 어떤 값이고, 나머지가 0인 정사각 행렬.

대각행렬은 주 대각성분이 0도 올 수 있으며, 이 경우 역행렬은 존재할 수 없다. (무조건 0으로 만드는데 뭔 역행렬)

Identitiy Matrix (I): 항등(단위) 행렬. 주 대각선의 원소가 모두 1이고 나머지가 0인 정사각 행렬

Orthogonal Matrix (Q): 직교행렬.

모든 컬럼이 Orthonormal Set을 이룬다. (= 내적이 0이다 (=cos 90 Orthogonal) + Normal (모든 벡터의 크기가 1로 맞춰져있다. = 자기 자신과 내적 한뒤 제곱근을 구한 것(벡터의 크기)이 1)

직교행렬의 성질

1. 전치행렬과 곱하면 단위행렬 (I)가 나온다.

2. Q의 역행렬은 Q의 전치행렬이다.

    - 역행렬: 어떤 행렬 A와 곱했을때, 곱셈에 대한 항등원인 단위행렬 I가 나오도록 하는 행렬을 'A의 역행렬이다.' 라고 함.

    - 역행렬이 중요한 이유: 역행렬을 구할 수 있어야, 항등원과 역원의 특성인 '교환법칙이 사용 가능'하다.

    - 역행렬의 중요성을 사용하는 사례: 선형 연립방정식을 풀때, AX=B를 \(X=A^{-1}B\)로 쉽게 표현하여 해결 가능하니까. (https://darkpgmr.tistory.com/104)

3. Q는 row 벡터들도 orthonormal set을 이룬다. (Q역==Q전치 이므로, row도 똑같이 가능함.)

4. 벡터와 곱했을 때, 길이, 내적 값이 보존된다.

5. Q1과 Q2가 직교행렬이면, 그 곱도 직교행렬을 만족한다.

이런 성질을 이용해서 복잡한 선형 연립방정식을 쉽게 해결하고자 노력하는 것, 그리고 가능한 것이 선형대수의 아름다움이다.

Eigenvalue, Eigenvector: 정방행렬 A에 대해 \(Ax=\lambda x\) (람다는 상수)가 되는 0이 아닌 벡터가 있을때, 람다는 고유값(Eigenvalue), x는 고유벡터(Eigenvector)라고 표현한다.

아이젠(고유)이 중요한 이유

정방행렬 n차의 A를 곱해도, 람다와 같다? -> 행렬을 곱했는데도 방향은 일정하게 크기만 배율로 증가한다는 얘기

즉, 복잡해보일 수 있는 n차의 패턴이 없는 정방행렬 A를 매우 간단하게 해석할 수 있게 해준다.

(90X90) X x행렬 = 20 X x행렬 이 된다는 얘기

이는 고차방정식의 인수분해와 같은 맥락으로 작용한다. (고유값 고유벡터로 분해 가능하다는 것은, 인수분해 된다는 말과 같다. 직교행렬의 역행렬 성질과 고유값, 고유벡터를 이용하여 항을 좌우로 넘겨가며 간단하게 표현해나감)

Symmetric Matrix (S): 대칭행렬.전치와 본인 스스로가 같다. (때문에 정방이어야만함)

대칭행렬의 성질

고유값, 고유벡터로 분해 가능하다. -> 행렬 방정식에서 인수분해를 할 수 있도록 작용한다.

여기서 람다는 상수.

때문에, \(S=Q\Lambda Q^{-1}=Q\Lambda Q^{T}\)을 만족한다. (Spectral Theorem)

위의 식은 결국 \(SQ=\lambda Q\)를 만족하기 때문이다.

대칭행렬이 아니라면 고유값과 고유벡터를 얻을 수 있나?

\(A^{2}x=A(\Lambda x)=\Lambda (Ax)=\Lambda^{2}x\)       \(A^{n}x=\Lambda^{n}x\)

\(A^{2}=(X\Lambda X^{-1})(XAX^{-1})=X\Lambda^{2}X^{-1}\)       \(A^{n}=X\Lambda^{n}X^{-1}\)

고유값이 아무리 커져도, 고유벡터는 변함이 없다. (매우 중요)

그렇다면 A의 거듭제곱이 0에 수렴하려면, 람다(고유값)가 어떻게 되면 될까?

정답은, 소수 값이면 된다. (곱할 수록 무한히 작아질 것이므로...) 행렬의 거듭제곱을 단순 실수 거듭제곱으로 단순화 시킬 수 있다. (= 최소 제곱법과 이어지는 이야기)

 

흠 뭔가 고유값과 고유벡터를 찾는다는 것은, 외부에서의 변화가 적용되더라도, 최대한 변화되지 않을 근본 지점을 찾아서, 그 지점의 값들을 활용하는 것으로 계산량을 줄인다던지, 복잡도를 줄인다던지 할 수 있을 것 같습니다.

HMM을 먼저 본 저에게는, 마코프 행렬이 좀 더 익숙한데요, 제한적인 규칙속에서 100년 200년 뒤의 변화값을 알기 위해서는, 일정 조건의 함수를 100회 200회씩 행렬제곱을 실시해야합니다. 여기서 stable matrix가 나오는데, 어떤 특정 조건을 무한히 곱하면, 더 이상 숫자가 바뀌지 않는 안정한 상태의 행렬을 구할 수 있고, 이게 어떤 계수 처럼 사용된다는 말을 본 적이 있는 것 같은데요... 혹시 이게 위의 Eigenvector 혹은 value와 비슷한 의미일지도 모르겠습니다.

 

근데 옛날에도 봤을때, 당장에 모든 상황이 정방행렬처럼 주어지지는 않을건데, 어떻게 고유값을 찾을 수 있는가?에 대한 생각을 해본적이 있는데,

특이값(\(\sigma \)) 분해로 가능하게 합니다. (이젠 더 이상 고유값이 아님)

\(A=U\Sigma V^{T}\) with \(U^{T}U=I\) and \(V^{T}V=I\)

\(AV=\Sigma U\)가 되는 셈이고, 시그마는 결국 고유값과 같은 의미로 해석할 수 있다.

 

일단 고유값의 핵심은, 방향은 바뀜이 없이, 크기만 바뀐다는 점입니다.

일단 직교행렬의 전치를 이용해서, 벡터를 수직으로 만듭니다. (위에 소개된 정리로 가능)

그 다음에 특이값(시그마)를 곱합니다. 여기서 특이값은 고유값이랑 같은 의미거든요? 결국 크기만 늘어납니다.

그 다음 U를 곱해서, 회전이 발생되게 합니다. (원래 위치로 돌아가죠)

즉, 계산하기 편하게 수직으로 만들고, 특이값으로 늘리고, 다시 원위치 시킵니다.

 

특이값을 이용해서 연산하는 것은, 지금까지 다루었던 직교, 회전, 크기 증가 대각 행렬등이 전부 쓰입니다.

(복잡한 선형 연립방정식을, 정방이 아닌 어느 상황에도 대입하여, 편하고 빠르게 계산하기 위해, 지금까지의 모든 선형대수 이론과 특징, 규칙들이 사용된다고 생각하시면 될 것 같습니다.)

 

지금 일요일에 작성하고 있는데, 시간이 너무 늦어져서, 가장 중요한 특이값은 다음 아티클에 소개하던지 해야겠습니다.

딥러닝도 정리할 것 많은데 큰일이네요....ㅋㅋㅋ

728x90

댓글