[프로그래머를 위한 선형대수] Review (3~4)
3. 컴퓨터에서의 계산 (1) - LU분해
이 장의 핵심은 행렬 A를 어떻게 해야 효율적으로 계산할 수 있을지에 대해 다루고
그에 대한 해결책으로 LU분해를 제시한다.
LU분해는 행렬 A를 L(하삼각행렬)과 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에서라도 발산이 되면 안 된다.
대각화의 과정에는 고윳값과 고유벡터의 개념이 연결되어있고 이를 알면 폭주의 위험을 판단할 수 있다.
이후 내용은 진도를 더 나가는 대로 작성하도록 하겠다.
'Machine Learning' 카테고리의 다른 글
지금까지 캐글을 시작하지 못햇던 이유 (34) | 2022.02.07 |
---|---|
[프로그래머를 위한 선형대수] Review (2) (6) | 2022.02.05 |
[프로그래머를 위한 선형대수] Review (1) (34) | 2022.01.30 |
금융데이터와 머신러닝의 결합 실패 이유 - Qraft Technoledge (34) | 2022.01.08 |
Project : QQQ Price Predict (3) | 2021.10.05 |