[선형대] 정규방정식(Normal equation)
- 수학
- 2021. 12. 15.
앞선 포스팅에서 최소제곱방법을 다뤘었는데 행렬표현으로 하지 않고 직관적인 설명 위주로 했습니다.
가장 간단한 (x,y) 에 대한 설명을 하였습니다.
이번에는 변수의 갯수를 n개까지 늘리는 소위 말하는 정규방정식 유도 방법을 포스팅하겠습니다.
이전 포스팅과 같은 최소제곱방법이지만 좀 더 일반적인 상황이고 초점이 파라미터가 아니라 x에 있습니다.
변수가 n 개까지 늘어나고 m 개의 데이터라고 보시면 될 것 같습니다.
즉, 변수 n개에 대한 m개의 방정식을 푸는 연립방정식이 되겠습니다.
보통 식이 많은 연립방정식은 선형대에서 배우는 linear system으로 넘겨 행렬 문제로 바꿔버립니다.
즉, linear system으로 표현하면 Ax = b 를 푸는 문제가 됩니다.
n개의 변수와 n 개의 방정식이라면 정확하게 답이 하나 나오는 상황이 되지만
변수와 방정식의 갯수가 다르면 원래 데이터와 구한 값 간에 에러가 발생할 수 밖에 없습니다.
이를 최소화하는 문제가 최소제곱문제(Least Squares Problem)가 됩니다.
최소화된 값을 해(solution)라고 하면 정규방정식(Normal equation)은 그 해를 구하는 공식이 됩니다.
최소제곱문제(Least Squares Problem)
최소제곱문제를 수학적으로 정의하면 다음과 같습니다.
변수 n개와 m개의 방정식인 Linear system Ax=b 에 대하여, $R^m$에서의 유클리안 내적이 가능할 때, 에러인 $ \|b-Ax\| $ 가 최소화되는 벡터 x를 구하여라.
만약 x가 존재하면 이를 Ax=b의 least squares solution 이라 하고 $ \|b-Ax\| $ 를 least squares error 라고 합니다.
실제로 구할 때는 b-Ax 가 가장 작아지는 값을 구하기 위해 벡터를 사용합니다.
b-Ax 는 벡터의 뺄셈이 됩니다.
b- Ax 가 그림처럼 그려진다면 변하는 것은 Ax 이므로 Ax 와 직각이 되게끔 움직여준다면 b-Ax 가 가장 짧은 선이 될 것입니다. 이는 b를 Ax로 정사영한 것과 같으니 W가 A를 포함하는 벡터 스페이스라면 $ Ax = \mathrm{proj}_{W} \ b $ 이 됩니다.
이를 정리하면 다음과 같습니다.
W가 유한차원의 내적이 가능한 공간 V의 서브공간이고 $ b \in V $ 이면, $ \mathrm{proj}_W \ b $ 을 제외한 모든 $ w \in W $ 에 대하여,
$$ \|b-\mathrm{proj}_W \ b \| < \| b-w \| $$
정규방정식(Normal equation)
$ Ax = \mathrm{proj}_{W} \ b $ 일때 최소값이므로 오차도 최소값이 됩니다.
$$ b - Ax = b - \mathrm{proj}_{W} \ b $$ 이고 $ A^T$ 를 양변에 곱합니다.
$$ A^T(b-Ax) = A^T(b-\mathrm{proj}_{W} \ b) \tag{1} $$
여기서 $ b-\mathrm{proj}_{W} \ b $ 는 열공간 A 와 직교하므로 $ A^T $ 의 영공간에 있습니다.
따라서 $ A^T(b-\mathrm{proj}_{W} \ b) = 0 $ 이 됩니다.
(1)에 적용하면 $ A^T(b-Ax) = 0 $ 이므로 정리하면 정규방정식을 얻습니다.
$$ A^{T} Ax = A^Tb $$
구하고자 하는 건 x 이므로 정리하면 다음과 같습니다.
$$ x = (A^{T}A)^{-1} A^T b$$
정리
정규방정식에 대한 유도과정이었습니다.
최소제곱문제를 풀기위한 방정식이고 이를 활용해서 수치해석이나 머신러닝에 많이 쓰입니다.
활용도가 좀 있으니 잘 알아두면 좋을 것 같습니다.
관련 포스팅
'수학' 카테고리의 다른 글
수학 기호 입력 사이트들 (0) | 2022.06.17 |
---|---|
[sympy] 파이썬으로 함수 그래프 그리기 (0) | 2022.04.11 |
[Sympy] 파이썬으로 미분하기 (0) | 2021.11.17 |
[Sympy] 파이썬으로 수학식 만들기(기초연산) (0) | 2021.11.14 |
[미적분] 파이썬으로 적분하기(Integration) (0) | 2021.11.13 |