[프로그래머를 위한 선형대수] Review (3~4)

Machine Learning|2022. 2. 8. 20:20
반응형

3. 컴퓨터에서의 계산 (1) - LU분해

이 장의 핵심은 행렬 A를 어떻게 해야 효율적으로 계산할 수 있을지에 대해 다루고

그에 대한 해결책으로 LU분해를 제시한다.

 

LU분해는 행렬 AL(하삼각행렬)U(상삼각행렬)의 곱으로 나타낸다

 

분해하면 무엇이 좋은가?

- 행렬식을 구하거나 일차방정식을 풀거나 하는 것이 간단해진다

 

행렬식

det A = det(LU) = det L* det U인데, L과 U의 행렬식은 대각 성분의 곱과 같으므로

det L은 1, det A = det U가 된다.

 

일차방정식

Ax = y 문제가 y에서 x를 찾는 문제였다면, LU분해에서는 LUx = y문제로 볼 수 있다.

y-> x의 과정에서 y -> z -> x 로 단계는 늘었지만 계산은 간단해졌다.

 

4. 고윳값, 대각화, 요르단 표준형 - 폭주의 위험이 있는지를 판단

이 장의 핵심은 시계열 데이터로 이뤄진 자기회귀모델이 발산하는지에 대한 여부를 판단한다.

이때 자기회귀 모델은 선형 사상 A와 초기값 x(0)의 행렬곱으로 표현 가능한데, 발산 여부를 판단하려면,

행렬 A이 대각화된 상태여야 한다. 

대각화에서 더 나아가 고윳값와 고유벡터 의미를 알면 된다.  

 

4.1 문제설정 : 안정성

자기회귀모델 ξ(t)가 어떤 상황에서도 폭주하지 않는가를 판정해야 한다.
이때 "폭주"는 발산함을 의미한다.
수학적인 개념으로는  고윳값, 고유벡터, 대각화, 요르단 표준형을 다룬다. 

ξ(t) = Aξ(t-1)를 x(t) = Λx(0) 로 나타냈을 때, (Λ는 대각 행렬)
Λ의 요소중 하나라도 절댓값 1보다 커지는 순간 폭주하게 된다.
등비급수의 합을 생각하면 이해가 쉽다.

 

 

4.4 대각화 할 수 있는 경우

<A가 대각행렬이 아닌 경우, 대각행렬로 바꿔야 함>

 

대각화를 변수변환 좌표변환 거듭제곱계산의 세가지 관점으로 바라보는데,

변수변환이 가장 직관적이고

좌표변환은 고유벡터를 기하학적으로 해석한 것과 같기에 변수변환으로 간단하게 설명해보겠다.

 

기존 x(t) = Ax(t-1)을 (A는 대각행렬이 아님)  

y(t) = Λ^t y(0) (Λ = P⁻¹AP) 로

적절한 P를 선택해 대각화(Λ) 한 후, 안정성 판단 후 다시 x로 바꿔주면 된다.

y에서 폭주하면 x에서도 폭주하는 것이기에 굳이 x로 바꾸어줄 필요는 없다.

 

4.5 고윳값, 고유벡터

어떠한 벡터 x에 선형변환 A를 취했을 때, 그 크기만 변하고 방향은 원래 벡터와 평행한 벡터 P는 무엇인가?

 

(Λ = P⁻¹AP)에서 (ΛP = AP) 로 생각해보면

AP의 의미는 벡터 P를 선형사상으로 옮긴 것이고,

ΛP의 의미는 P가 선형사상 A로 옮겨졌어도, 방향은 안 바뀌고 길이만 바뀐 것이기에

고윳값 Λ = diag(λ₁, λ₂ ...)ⁿ 로 그 길이를 등호에 맞게 맞춰준 것으로 이해할 수 있다.

 

 

4장을 다시 한번 정리하면
자기 선형 모델이 발산하는지를 판단하기 위해선 대각화된 A를 통해 알아야 하고,
이때 어떠한 x에서라도 발산이 되면 안 된다.
대각화의 과정에는 고윳값과 고유벡터의 개념이 연결되어있고 이를 알면 폭주의 위험을 판단할 수 있다.

 

이후 내용은 진도를 더 나가는 대로 작성하도록 하겠다.

반응형

댓글()