수학/인공지능을 위한 선형대수

11. 정규 방정식(Normal equation)

공부중인학생 2021. 11. 10. 00:22

머신러닝에서 사용하는 gradient descent와 달리 normal equation은 최솟값을 직접 계산하는 방법입니다.

 

 

$A^TAx = A^Tb$ 

$\hat{x} = (A^TA)^{-1}A^Tb$ 

다음과 같이 역행렬이 존재한다면 가장 거리가 가까운 solution을 구할 수 있습니다.

 

여기서 x는 최단 거리의 수선의 발을 의미합니다. 그리고  x를 최단 거리의 벡터로 만들어주기 위해서 만족해야 할 식이 normal equation입니다. 정규 방정식도 일종의 선형 결합으로 우리가 방정식을 풀어서 x값을 구하게 된다면 그 값은 $x = arg \min \limits_{x} \| b-Ax \|$를 만족하게 됩니다.

 

- 정확하게 $\|b - Ax\| = 0$으로 만들어주는 $x$값을 찾을 수 없으니 이 값이 0에 가장 가깝게 해주는 값을 찾는 방법으로 최소 제곱법을 사용해보자 

 

미분을 통한 정규 방정식 도출

 

 

제곱은 자기 자신을 전치한 다음에 행렬 곱한것과 같습니다. 그렇기 때문에 $\|b - Ax\|$값이 작아지면 $\|b - Ax\|^2$(길이)의 값도 작아지게 됩니다. $\|b - Ax\|$는 복잡해보이지만 하나의 벡터입니다.

 

$arg \min \limits_{x} (b - Ax)^T (b - Ax) = b^Tb - x^T A^T b - b^TAx + x^T$

 

다음과 같이 복잡한 object function이 나왔습니다. 이런 경우가 의외로 많이 존재하고 이 함수를 미분해야 하는 경우가 많은데 그런 경우 벡터와 행렬이 서로 엉켜있을 때 shape을 잘 봐주면 됩니다. 어떻게 섞여있던지 길이를 나타내는 값으로 scalar 값으로 답이 나오게 됩니다.

 

정규 표현식은 특수한 성질 때문에 solution이 없는 경우는 없습니다. solution이 최소한 1개 이상 있습니다. b에서 수선의 발을 내렸을 때 수직이 되는 값은 1곳만 존재하는데 그 점을 표현할 방법이 여러 개 있으면 해가 1개 이상 있는 것입니다.