Stargazer

[기계학습] 최소 제곱법(Least Square Estimation) 본문

인공지능/ML, DL

[기계학습] 최소 제곱법(Least Square Estimation)

COM2IT 2022. 3. 23. 01:59
반응형

최소제곱법이 뭔지는 알겠는데,

당최 머신러닝에서 쓰는 최소제곱법의 유도식이 이해되질 않아서 정리를 한번 해보겠다.

 

최소 제곱법은 오차의 제곱합이 최소가 되도록하는 추정값을 산출할 때 사용한다

쉽게 말하면, 오차를 가장 적게하는 근사치를 구하는 것이다.

대부분의 데이터들은 완벽한 그래프를 그리는게 아니라, 오차가 존재하여 불완전한 그래프를 그린다.

그래서 이 점들을 가장 오차없이 그리는 간단한 그래프를 구하기 위해 근사치를 구하는 것이 목적이다. 

 

최소 제곱법으로 부터 근사치 유도

최소제곱법, 말그대로 오차의 제곱을 해서 다 더하여서 확인한다.

이 방식이 간단해서, 선형회귀에서 기본적으로 접근할때 사용되는 방식이다.

 

오차를 e라고 하면, 

오차 : $e_i = y_i - \hat{f}(x_i)$ 이기 때문에

오차의 제곱합$=\sum_{i=1}^{n}e_{i}^2$ 이다.

 

가중치(weight): $w = (w_1,w_2, ... , w_p)^T$

예측값: $\hat{f}(x_i) = \hat{y}_i = w^Tx_i + b$

 

$X$는 주어진 입력이고, $y$는 정답레이블, $\hat{w}$은 우리가 구하려는 근사치이다. 

 

$y=Xw$   <- 이 식을 만족할 만한 근사치를 구해보자.

$\hat{w} = argmin_w \sum_{i=1}^{n}e_{i}^2 = argmin_w (y-Xw)^T(y-Xw)$

위 식이 의미하는 바는, 오차 e를 가장 작게 만드는 w로 넣은 값을 근사치라고 하겠다라는 의미가 되겠다.

 

$\begin{matrix}e &=& (y-Xw)^T(y-Xw)\\&=&(y^T-w^TX^T)(y-Xw) \\&=& y^Ty - y^TXw - w^TX^Ty + w^TX^TXw \\&=& y^Ty - 2w^TX^Ty + w^TX^TXw \end{matrix}$

위처럼 변형될 수 있는 이유는 $y^TXw$가 대칭행렬이라서 이다.

대칭행렬인 이유는 연산 결과가 스칼라(1 by 1)여서 전치행렬이 원래 행렬과 같기 때문

 

$\frac{\partial e}{\partial w} = \frac{\partial }{\partial w}(y^Ty - 2w^TX^Ty + w^TX^TXw) \\ = -2X^Ty + 2X^TXw$

 

이 식을 만족하는 w를 구하면

$X^Ty = X^TXw$

$w = (X^TX)^{-1}Xy^T$ <- 유도 결과

 

$\hat{w} = (X^TX)^TX^Ty$ <- 교수님이 주신 자료 결과


지금 정리해보니 교수님의 실수인 것 같다.

행렬 shape도 중간에 계속 바꾸고 이유없이 자리 바꾸는게 보여서 헷갈렸던 것 같다.

그리고 마지막 결론이 $\hat{w} =(X^TX)^TX^T$ 처럼 왜 $X^TX$ 가 직교행렬인가에 대한 설명이 부족하다.

다시 유도해달라고 요청해야 할 듯 싶다.

반응형
Comments