gyeo-ri.com

사영(Projection)과 최소제곱법(Least Squared Method) 본문

Study Note/선형대수학

사영(Projection)과 최소제곱법(Least Squared Method)

겨리_Gyeori 2021. 1. 21. 09:22

사영(Orthogonal Projection)


  사영(Projection)은 어떤 벡터의 성질을 유지한 채로 다른 벡터나 공간 위에 표현하는 것이라고 설명할 수 있다(엄밀한 정의는 아님). 이 중 정사영(Orthogonal Projection)은 어떤 벡터를 수직 방향으로 내려 표현하는 것을 의미하며, 일반적으로 projection한다는 것은 정사영을 의미한다.  벡터 $v_{a}$를 벡터 $v_{b}$에 projection한 벡터는 $proj_{v_{b}}v_{a}$와 같이 표기하며, 이 벡터는 다음의 공식으로 구할 수 있다. 

  $\Large \frac{v_{a} \cdot v_{b}}{||v_{b}||^{2}} \cdot v_{b}$ 


  특정 벡터가 아닌 공간에도 projection할 수 있다. 벡터공간 $V_{space}$에 대하여 벡터 $v_{a}$를 projection할 때, $proj_{V_{space}}v_{a}$와 같이 표기한다. 이때 벡터 $v_{b}$가 벡터공간 $V_{space}$에 속하면서, $v_{a}$를 $v_{b}$에 사영시킨 벡터 $proj_{V_{space}} v_{a}$가 $v_{b}$ 위에 있다면, $proj_{V_{space}}v_{a}$와 $proj_{v_{b}}v_{a}$의 결과는 동일한 벡터이다. 

 

 

 

  벡터 $v$를 $x$에 대해 projection하여 다음과 같이 벡터 $Proj_{x}v$를 얻을 수 있다.

 

 

정사영 정리(Projection Theorem)


  정사영 정리는 projection의 성질을 이용하여, 어떤 벡터 $v$가 공간 $\mathbb{R}^{n}$에 속하고, $v$가 부분공간일 때 $\mathbb{R}^{n}$의 벡터 $x$는 부분공간 $v$의 벡터 $x_{1}$과 $v$에 수직인 부분공간 $v^{\perp}$의 벡터 $x_{2}$에 의해 $x = x_{1} + x_{2}$로 유일하게 표현된다는 사실과 관련된 정리이다.

  정사영 정리에서 $x_{1}$은 $x$를 $v$에 projection한 $proj_{v}x$이며, $x_{2}$는 $x$를 $v^{\perp}$에 projection한  $proj_{v^{\perp}}x$이다. 벡터 $v_{1},v_{2}$는 $x = v_{1} + v_{2}$를 표현하기 위해 정의된 벡터이므로, $v_{1} = x - v_{2}$, 즉 $proj_{v^{\perp}}x = x - proj_{v}x$이다.

 

  이때, 벡터 $x_{1}$를 부분공간 $v$의 기저 집합 $B$를 $a$만큼 선형결합한 결과, 즉 $B \cdot a$로 나타낼 수 있고, $x_{2}$ 또한 기저 $B$를 사용하여 $x_{2} = x - B \cdot a $로 표현할 수 있다. ($a$는 각 기저벡터에 대한 상수배) , $x_{1}, x_{2}$는 각각 벡터공간 $v, ^{\perp}$의 원소이며, 두 벡터공간은 직교하므로 원소인 두 벡터공간끼리도 직교, 두 벡터의 내적(Dot Product) $x_{1} \cdot x_{2} = 0$이다. 이것을 정리하여 $x_{1}$의 선형결합 $a$에 대한 식을 만들 수 있다.

 

$x_{1} \cdot x_{2} = 0$
$\Leftrightarrow B \cdot a \cdot (x - B \cdot a) = 0 $    $\Leftrightarrow a \cdot B^{T}  \cdot (x - B \cdot a) = 0 $  ($\because  a \cdot B^{T} = B \cdot a$) 
$\Leftrightarrow B^{T}  \cdot x - B^{T} \cdot B \cdot a = 0 \cdot a = 0$  
$\Leftrightarrow B^{T}  \cdot x = B^{T} \cdot B \cdot a  $  
$\therefore a = (B^{T} \cdot B)^{-1} \cdot B^{T} \cdot x  $     ($\because B^{T} \cdot B$는 가역행렬)

 

  정사영 정리에 의해, 벡터 $x$와, $x$를 projection할 공간 $v$의 기저 $B$를 알면

$proj_{v}x = B \cdot (B^{T} \cdot B)^{-1} \cdot B^{T} \cdot x $

를 구할 수 있다.

 

 

최소제곱법(Least Squared Method)


   최소제곱법은 벡터공간 $v$의 벡터 중 '어떤 벡터 $x$와 가장 가까운 벡터는 $proj_{v}x$라는 사실을 이용하여, 어떤 샘플이 주어졌을 때 비용함수(RMSE 등)를 최소화하는 회귀식, 즉 해당 샘플을 가장 잘 표현하는 추세선을 도출해 내는 방법이다. 

 

  선형회귀모델의 비용함수 중 하나인 MSE(평균제곱오차)는 실제 데이터인 $f(\textrm{x}) = \textrm{y}$와, 예측된 회귀식 $\textrm{x} \cdot \hat{\theta}  = \hat{\textrm{y}}$의 차를 모두 제곱한 뒤 더하여 구한다($\textrm{x}$는 상수항 $x_{0}$을 포함한 입력값 벡터, $\hat{\theta}$는 $\textrm{x}$의 각 특성의 가중치(파라미터)).  즉 $MSE(\hat{\theta}) = ||\hat{\textrm{y}} - \textrm{y} ||^{2} = ||\textrm{x}\cdot \hat{\theta} - \textrm{y}||^{2} $이며, 식이 최소가 되는 $\hat{\theta}$ 값을 구하는 것이 결국 회귀식을 추정하는 것과 같다. 이것을 편미분(이전 포스트)하여 정규방정식이라는 최적해 공식을 바로 유도할 수도 있으나, 위에서 언급한 정사영 정리의 특성을 이용하여도 같은 식을 얻을 수 있다.

 

  $\textrm{x} \cdot \hat{\theta}$는  $\textrm{x}$의 열벡터들의 선형결합, 즉 열공간인 $col(\textrm{x}) = [x^{1}, x^{2}, \cdots, x^{n}]$ ($x^{i}$는 $\textrm{x}$의 열벡터 = 데이터셋의 각 샘플) 로 표현할 수 있다. 따라서 공간 $col(\textrm{x})$위의 벡터 중 $\textrm{y}$와 최단거리의 벡터는 $proj_{col(\textrm{x})} \textrm{y}$이며, 이를 비용함수 공식에 대입하여 최종적으로 다음과 같이 유도할 수 있다.

$\textrm{x}\cdot \hat{\theta} - \textrm{y}$

$= proj_{col(\textrm{x})} \textrm{y} - \textrm{y}$

$= - proj_{col(\textrm{x})^{\perp}} \textrm{y}$                #벡터 $\textrm{y}$를 $col(\textrm{x})$와 그에 직교한 $col(\textrm{x})^{\perp}$의 벡터의 결합으로 표현

$ =   - proj_{row(\textrm{x}^{T})^{\perp}}  \textrm{y}$            #$ col(\textrm{x})^{\perp} = row(\textrm{x}^{T})^{\perp}$
$ =  - proj_{null(\textrm{x}^{T})} $ #행공간의 직교여공간은 영공간(= 해공간)

$ \therefore  MSE(\hat{\theta}) = \textrm{x}\cdot \hat{\theta} - \textrm{y} =  - proj_{null(\textrm{x}^{T})}$

 

  위 정리에 의해 비용함수 $MSE(\hat{\theta})$는 $\textrm{x}^{T}$ 영공간이라는 사실을 알 수 있고, 따라서

$\textrm{x}^{T} \cdot (\textrm{x}\cdot \hat{\theta} - \textrm{y}) = 0$

$\Leftrightarrow \textrm{x}^{T} \cdot \textrm{x}\cdot \hat{\theta} =  \textrm{x}^{T} \cdot\textrm{y}$

 

  이것을 $\hat{\theta}$에 대하여 정리하면 정규방정식 $\hat{\theta} =  (\textrm{x}^{T} \cdot \textrm{x})^{-1} \cdot \textrm{x}^{T} \cdot\textrm{y}$을 얻을 수 있고, 이 $\hat{\theta}$가 선형회귀모델에서 각 변수(특성)에 대한 파라미터 값이다.

 

 

최소제곱법을 활용한 선형회귀식 추정


  1차방정식 $f(x) = 2x + 1$에 대해, 0에서 5 사이의 실수를 원소로 하는 샘플 집합 $X$와,  $X$의 원소를 $f(x)$에 대입했을 때 -1~1 사이의 무작위 오차가 반영되어 도출된 결과 집합 $Y$를 각각 정의하고, $X,Y$의 원소로 구성된 좌표 $(x,y)$를 좌표평면에 나타내면 다음과 같다.

 

 

  여기서, 샘플을 생성한 회귀식이 $y= 2x + 1 +  \epsilon$ 이라는 사실을 모를 때, 최소제곱법을 활용하여 근사치를 구할 수 있다. 정규방정식에 $X, Y$를 대입하여 추정된 파라미터 $\theta$를 구하는 것인데, 이때 $\theta$에는 각 특성의 파라미터인 $\theta_{1}, \theta_{2}, \cdot, \theta_{n}$과 함께 모델 편항(상수항)에 해당하는 $\theta_{0}$가 포함된다, 마찬가지로 $X$에는 상수항에 1을 곱해주기 위해 $x_{0} = 1$이 추가된다.

 

 

  최소제곱법을 활용한 추정의 결과로 $\hat{y} = 1.998x + 1.144 + \epsilon$ 이 도출되었다(소숫점 셋째자리까지 반올림). 기존 식인$y = f(x)$와 유사하지만, 무작위오차의 존재로 인해 미묘한 차이가 발생한 것을 확인할 수 있다.

 

  최소제곱법은 데이터셋인 $x$를 한꺼번에 사용하여 연산을 수행하기 때문에, 연산 시간이 샘플의 크기 및 특성의 수에많은 영향을 받는다. 위 예시와 같이 비교적 적은 수의 샘플을 사용할 경우 효율적으로 회귀식을 추정할 수 있겠지만, 대용량의 데이터셋을 다루는 경우에는 상대적으로 비효율적이다.

 

  또한, $X^{T} \cdot T$의 역행렬이 존재하지 않는 경우가 있을 수 있다. 이 경우, 일반적인 방법으로는 정규방정식을 전개하지 못하지만, 유사역행렬(=의사역행렬 : pseudo inverse)을 사용하면 역시 해를 구할 수 있다. $X^{T} \cdot T$의역행렬이 존재하지 않는 것은 1) 데이터셋의 특성이 과도하게 많거나, 2) 특성 간에 선형성이 존재할 때이다(관련 브런치 참조). 

 

 

 

참고자료

1. 프로그래머를 위한 선형대수(히라오카 카즈유키 저, 이창신 옮김) - 길벗(2017)

2. [Youtube] 쑤튜브 : 10분 선형대수 강의 모음(youtu.be/x-Ewz1ukXEA)

3. 핸즈온 머신러닝(오렐리앙 제롱 저, 박해선 옮김) - 한빛미디어(2020)

4. 정규방정식의 비가역성 관련 브런치(brunch.co.kr/@linecard/467)

Comments