본문 바로가기

수학/선형대수

[선형대수] 벡터투영과 최소제곱법

Projection(투영)으로 가장 가까운 거리를 찾아낼 수 있다.

 

선형대수를 미지수와 방정식 수로 나타내면 크게 3가지로 나눌 수 있다.

 

1. 미지수의 수= 방정식의 수: unique 한 값을 가짐

 

2. 미지수의 수< 방정식의 수: 무한한 값을 가지며, 벡터 공간으로 표현할 수 있다.

 

3. 미지수의 수> 방정식의 수: 해가 없음

 

1,2번의 경우 가우스 조던법을 사용해서 문제를 풀 수 있다.

이번에 배울 3번의 경우는 '최소제곱법'으로 풀 수 있다. 이는 error를 가장 최소로 하는 space를 구한다는 뜻이며, 최소 거리를 구한다는 뜻이다.

식으로 표현하면 다음과 같다.

 

최소 제곱법 (Least square)

$min||Ax-b||^2$

 

 

내적과 cosine

https://ekdud7667.tistory.com/35?category=887593

 

[선형대수] 벡터의 직교성과 직선투영

직교성(orthogonality) 벡터가 수직이라는 뜻은 linearly independent basis하다는 뜻이며, linear combination의 계산이 쉽다. - $x^t y=0$ 증명) 아래와 같은 벡터가 있을 때 피타고라스의 정리로 증명할 수 있..

ekdud7667.tistory.com

위의 게시글에서 내적과 cosine이라는 부분이 있다. 이는 직선과 직선의 내적을 나타낸 것인데, 이번에는 직선과 평면의 내적을 살펴보겠다.

 

https://www.slideshare.net/ahra-cho/11-111070980

 

b 구하는 법

$(b-\hat{x}A)\perp A$
$A^T(b- A\hat{x})=0$
$A^TA\hat{x} = A^Tb$이다. 

 

P 구하는 법(투영된 점)
그런데, $A^TA$의 역행렬이 존재 할 경우, P좌표를 쉽게 구할 수 있다.
$A^TA\hat{x} = A^Tb$에서 $\hat{x}= (A^TA)^-1A^Tb$가 되며
$P= A\hat{x} = A(A^TA^-1)A^Tb$인 P(projection matrix)를 구할 수 있다.



예시
x-y 평면과, $b=\begin{bmatrix}4\\ 5\\ 6\end{bmatrix}$의 최소 거리를 찾아라.

위의 b벡터를 x-y 평면에 투영하면 된다.
고등학교 때 배웠던걸 활용하면, b의 투영값 P는 [4,5,0]이 된다. 이것을 어떻게 찾을까?

1. A는 x,y를 표현하는 아무 행렬로 둔다.
$A= \begin{bmatrix}
1 &0 \\ 
 0& 1\\ 
 0&0 
\end{bmatrix} 혹은, A= \begin{bmatrix}
1 &2 \\ 
 1& 3\\ 
 0&0 
\end{bmatrix}$ 등.. 무수히 많이 표현할 수 있다.
두번째 케이스로 풀어보겠다.

 

2. 공식에 대입한다.

$A^{-1}A = \begin{bmatrix}1 &1  & 0\\  2&  3& 0\end{bmatrix}\begin{bmatrix}
1 &2 \\  1& 3\\  0&0 \end{bmatrix} = \begin{bmatrix}2 & 5\\ 5 &13 \end{bmatrix}$

$P$(projection matrix)= $A(A^TA)^{-1}A^T= \begin{bmatrix}
1 &2 \\ 
 1& 3\\ 
 0&0 
\end{bmatrix}\begin{bmatrix}13 & -5\\ -5 &2 \end{bmatrix}\begin{bmatrix}1 &1  & 0\\  2&  3& 0\end{bmatrix}$

위의 값을 계산한 후 대입하면 $Pb=\begin{bmatrix}4\\ 5\\ 6\end{bmatrix}$이 나온다.

 

 

Least square for line fitting

https://www.slideshare.net/ahra-cho/12-gramschmidt-orthogonalization?next_slideshow=1


위의 그림과 같이 점이 여러 개 있을 때, 이 점들을 대표하는 최적의 선을 구하고 싶다. 
이때, b1, b2의 점에 대해서만 fitting이 되는 직선을 그으면 나머지 점들에 대해서 error값이 커지게 된다. 따라서 많은 샘플 데이터를 이용해 error를 최소화시켜야 한다.
이를 식으로 나타내면 다음과 같다.

$y_1= ax_1+b$
$y_2= ax_2+b$
...
$y_n= ax_n+b$ 로 나타낼 수 있고, 행렬로 나타내면
$\begin{bmatrix}
x_1 &1 \\ 
 x_2& 1\\ 
 ..&..\\ 
 x_n&1 
\end{bmatrix}\begin{bmatrix}
a\\ 
b
\end{bmatrix}
=\begin{bmatrix}
y_1\\ 
y_2\\ 
...\\ 
y_n
\end{bmatrix}$, $Ax-b= \begin{bmatrix}ax_1+b-y_1
\\ 
ax_2+b-y_2\\ 
...\\ 
ax_n+b-y_n
\end{bmatrix}$

$||Ax-b||^2= \Sigma(ax_i+b-y_i)$인데, $Ax=b$인 값을 구할 수 없으므로 $min||Ax-b||$를 구한다.

다른식으로 해석해보면, 점들로 그을 수 있는 모든 벡터들의 평균으로 수렴한다.

 

 

정규직교인 기저벡터로 이루진 벡터공간

 

 한 벡터를 벡터공간에 투영하는것은, 이전에 배웠던 벡터를 벡터에 투영하는것과 같다.

차이가 있다면, 벡터 공간에 있는 모든 벡터들과 선형조합을 해야한다.

$x^{||v} = (x^Tv_1)v_1 + (x^Tv_2)v_2 + ... + (x^Tv_n)v_n $
$||x^{||v}||^2= \Sigma(x^Tv_i)^2$

 

표준기저벡터: 기저 벡터중에서도 원소 중 하나만 값이 1이고 다른 값은 0으로 이뤄진 벡터

 

 

좌표

좌표는 기저벡터를 선형조합하여 그 벡터를 나타내기 위한 계수벡터이다. 

$c_1v_1+ c_2v_2$에서 $c_1, c_2$가 좌표이다.

만약, 벡터들이 표준기저벡터들이라면 좌표가 그대로 벡터 x가 된다.

또한, 하나의 벡터도 기저벡터에 따라 여러 좌표를 가질 수 있다.

 

 

 

 

출처

https://www.youtube.com/watch?v=Vx1IZ3lGRCM&list=PLSN_PltQeOyjDGSghAf92VhdMBeaLZWR3&index=12

https://www.slideshare.net/ahra-cho/12-gramschmidt-orthogonalization?next_slideshow=1