일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 구문트리
- Rust
- 다익스트라
- 컴파일러
- 알고리즘
- linear algebra
- 스레드전용리소스
- column space
- 대상파일
- 다이나믹 프로그래밍
- vector
- 백준
- 재배치
- 심벌 해석
- 선형대수학
- 정적링크
- 적재도구loader
- eigenvalue
- 동적링크
- matrix
- rust 스터디
- 행렬
- c++
- 코드포스
- unity
- CS정리
- 링커
- 스레드전용저장소
- 벡터
- 컴퓨터밑바닥의비밀
- Today
- Total
개발_기록용
[선형대수학 정리] 16. 최소자승법 본문
1. 배경
그래픽스 공부에 들어가기 전, 근본 중에서도 근본인 선형대수학을 먼저 파야겠다고 생각했다!
Chris Ohk 님의 Game Developer Roadmap 2022를 보고 내가 부족한 부분을 채워나가기로 결심했기 때문이다.
https://github.com/utilForever/game-developer-roadmap
GitHub - utilForever/game-developer-roadmap: Roadmap to becoming a game developer in 2022
Roadmap to becoming a game developer in 2022. Contribute to utilForever/game-developer-roadmap development by creating an account on GitHub.
github.com
.
2. 정리
최소자승법(Least squares)
먼저 최소자승법을 통해 풀려고 하는 상황을 살펴보자.
full column rank인 10x3 행렬 A가 있다.
그럼 A의 column은 10차원에서 3차원 공간을 span하며 b도 10차원에 존재한다.
이때, b가 C(A)와 다른 방향으로 향한다고 했을 때
C(A)안의 Ax를 아무리 바꿔도 b와 같아질 수 없다는 것을
https://dev-check.tistory.com/44 글을 통해 알고 있다.
그럼 이 때 해는 없다고 배웠지만
최대한 b와 가까운 Ax를 찾아보자! 하는 것이 최소자승법의 문제 상황이다.
최소자승법 : b와 최대한 가까운 Ax를 찾는 것.
그러면 b와 Ax의 교점을 원점이라 하고,
b - Ax인 벡터를 error 벡터 e라 하자.
$$b-Ax = e$$
그럼 이 벡터 e의 크기가 제일 작을 때의 x가
우리가 최소자승법을 통해 구하고자 하는 값이다.
최소자승법으로 error 벡터의 크기 구하기
구체적으로 최소자승법에선 e의 크기 중에서도
2-norm을 최소로 하는 경우를 찾는다.
$$\left\|e_{2} \right\|$$
=> 그래서 최소자승법 (Least squares) 라는 이름이 붙은 것이다.
이는 b를 C(A) 평면에 정사영한 것과 같다.
그러면 e의 2-norm은 루트로 표현하니, 이를 제곱한
$$\left\|e_{2} \right\|^{2}$$
값을 다룰 것이고, 이 값은 Ax와 e가 수직할 때 제일 작을 것이다.
그때의 x를 x̂ 이라 하자.
그러면 두 벡터의 dot product는 0이고
수직해야 하니 x̂ 는 0이 아니다.
따라서, 식을 정리하면
$$B^{T}A=\hat{x}^{T}A^{T}A$$
이고 양변을 전치하면
$$A^{T}B=A^{T}A\hat{x}$$
이고, 이를 normal equation이라 한다.
따라서, x̂에 관해 식을 정리하면
$$\hat{x} = (A^{T}A)^{-1}A^{T}B$$
그러면 Ax̂에 대해서는 아래와 같이 정리할 수 있다.
=> 결과적으로, b를 C(A)에 정사영할 때
$$\hat{x} = (A^{T}A)^{-1}A^{T}B$$
이 부분이 곱해졌으니, 이를 projection matrix, P_{A}라고도 한다.
$$P_{A}= (A^{T}A)^{-1}A^{T}B$$
'선형대수학' 카테고리의 다른 글
[선형대수학 정리] 18. 고윳값 분해 (eigen decomposition) (7) | 2024.07.24 |
---|---|
[선형대수학 정리] 17. 고윳값과 고유벡터(eigen value & eigen vector) (3) | 2024.07.24 |
[선형대수학 정리] 15. trace (3) | 2024.07.22 |
[선형대수학 정리] 14. determinant (행렬식) (4) | 2024.07.22 |
[선형대수학 정리] 13. 가우스-조던 소거법 (2) | 2024.07.22 |