Search
Duplicate

수학/ 투영(Projection)

투영(Projection)

투영은 주어진 벡터에 대해 가장 가까운 벡터를 찾는 것으로 볼 수 있다.
벡터공간 VVV=W1W2V = W_1 \oplus W_2인 부분공간 W1,W2W_1, W_2에 대하여 다음과 같이 정의한 함수 T:VVT : V \to VW2W_2에 대한 W1W_1위로의 VV의 투영(projection)이라고 한다.
\oplus는 직합(direct sum) 연산으로 W1W2={0}W_1 \cap W_2 = \{ \bold{0}\}이고 W1+W2=VW_1 + W_2 = V를 의미한다.
x=x1+x2일 때, T(x)=x1 (x1W1,x2W2)\bold{x} = \bold{x}_1 + \bold{x}_2 \text{일 때, } T(\bold{x}) = \bold{x}_1 \ (\bold{x}_1 \in W_1, \bold{x}_2 \in W_2)
벡터공간 VV와 선형변환 TT에 대해 T=T2T = T^2이기 위한 필요충분조건은 TTN(T)N(T)에 대한 W1={y:T(y)=y}W_1 = \{ \bold{y} : T(\bold{y}) = \bold{y} \}로의 사영이다.
선형변환 T2T^2는 선형변환을 두 번 연속으로 적용한다는 의미이다. T2(x)=T(T(x))T^2(\bold{x}) = T(T(\bold{x}))

단일 벡터에 대한 투영

두 벡터 a,b\bold{a, b}가 주어졌을 때, a\bold{a}b\bold{b}에 투영한 벡터 b\bold{b}'는 다음의 절차를 따른다.
1.
두 벡터 a,b\bold{a, b}를 내적을 b\bold{b}의 길이로 나누어 b\bold{b}'의 크기를 구한다. a,bb{\langle \bold{a, b} \rangle \over \|\bold{b}\|}
벡터의 내적과 노름은 모두 스칼라이므로 이 값은 스칼라가 된다.
2.
b\bold{b}를 정규화하여 방향을 구한다. bb{\bold{b} \over \|\bold{b}\|}
벡터를 스칼라로 나눈 것이므로 이 값은 벡터이다.
3.
정규화된 b\bold{b} (방향)와 b\bold{b}'의 크기를 곱해 b\bold{b}'를 구한다. a,bb×bb=b{\langle{\bold{a, b}}\rangle \over \|\bold{b}\|} \times {\bold{b} \over \|\bold{b}\|} = \bold{b}'
(a,bb2)b=b\left( {\langle{\bold{a, b}}\rangle \over \|\bold{b}\|^2}\right) \bold{b} = \bold{b}'
이것은 일반적으로 a\bold{a}의 그림자라고도 표현하기도 하는데, 이것은 b\bold{b}에 존재하는 벡터 중 a\bold{a}에 가장 가까운 벡터를 찾는 것이라고 볼 수 있다. a\bold{a}와 가장 가까운 것은 다시 말해 수직인 벡터가 된다.
참고로 벡터를 자기 자신과 내적하면 노름의 제곱이 되므로, 벡터를 자기 자신에게 투영(projection)하면 자기 자신이 된다. 이는 자기 자신과 가장 가까운 벡터는 자기 자신이라는 의미가 된다.
(a,aa2)a=(a2a2)a=a\left({\langle \bold{a}, \bold{a} \rangle \over \|\bold{a}\|^2}\right) \bold{a} = \left({\|\bold{a}\|^2 \over \|\bold{a}\|^2}\right) \bold{a} = \bold{a}

벡터의 Span에 대한 투영

단일 벡터가 아닌 벡터의 span에 대해 투영은 다음 같이 정의할 수 있다.
투영이 가장 가까운 벡터를 찾는 것이므로 벡터를 다른 벡터 공간에 투영하는 것은 그 벡터 공간 내에서 주어진 벡터에 가장 가까운 벡터를 찾는다는 의미가 된다. 아래에서 보겠지만, 이것은 해를 구할 수 없을 때 가장 근사(approximate) 해를 찾는 방법이 된다.
벡터들의 집합 {x1,...,xn}\{ \bold{x}_1,...,\bold{x}_n\}의 span을 span({x1,...,xn})\text{span}(\{ \bold{x}_1,...,\bold{x}_n\})이라 하고, 이 생성 집합에 대해 벡터 yRm\bold{y} \in \mathbb{R}^m를 투영한 벡터를 v\bold{v}라 하면 vspan({x1,...,xn})\bold{v} \in \text{span}(\{\bold{x}_1,...,\bold{x}_n\})이다. 이것을 Proj(y;{x1,...,xn})\text{Proj}(\bold{y}; \{\bold{x}_1,...,\bold{x}_n\})으로 표기하고 다음처럼 정의할 수 있다.
Proj(y;{x1,...,xn})=arg minvspan({x1,...,xn})yv2\text{Proj}(\bold{y};\{\bold{x}_1, ... , \bold{x}_n\}) = \argmin_{\bold{v} \in \text{span}(\{\bold{x}_1,...,\bold{x}_n\})}\|\bold{y} - \bold{v}\|_2
v\bold{v}y\bold{y}에 가장 가까운 —수직인— 벡터가 되고, span({x1,...,xn})\text{span}(\{ \bold{x}_1,...,\bold{x}_n\})의 선형 조합에 의해 표현될 수 있다.
{x1,...,xn}\{ \bold{x}_1,...,\bold{x}_n\} 중에 y\bold{y}에 가장 가까운 벡터를 고르는게 아니다.
mnm \geq n인 (풀 랭크) 행렬 ARm×n\bold{A} \in \mathbb{R}^{m \times n}이 주어졌을 때, A\bold{A}의 range에 대한 벡터 yRm\bold{y} \in \mathbb{R}^m의 projection은 다음처럼 정의할 수 있다.
Proj(y;A)=arg minvR(A)vy2=A(AA)1Ay\text{Proj}(\bold{y};\bold{A}) = \argmin_{\bold{v} \in \mathcal{R}(A)}\|\bold{v} - \bold{y}\|_2 = \bold{A}(\bold{A}^\top\bold{A})^{-1}\bold{A}^\top\bold{y}
위의 식에서 arg min\argmin은 값을 가장 작게 만드는 것을 취한다는 의미가 되고, 이것은 A\bold{A}의 range R(A)\mathcal{R}(A)에서 벡터 yRm\bold{y} \in \mathbb{R}^m에 가장 가까운 —y\bold{y}와 수직인— 벡터를 찾는다는 의미가 된다.
이것은 주어진 벡터 공간에서 해를 찾을 수 없을 때, 해에 가장 가까운 벡터를 찾는 의미가 된다. 이 벡터는 에러 벡터라고 하며 e\bold{e}로 표기한다.
위의 식을 통해 해를 구하는 것을 최소자승법(least squares)라고 하고, 이때 A(AA)1A\bold{A}(\bold{A}^\top\bold{A})^{-1}\bold{A}^\topy\bold{y}에 대한 투영 행렬(projection matrix)라고 한다.
참고로 위의 투영행렬을 적절히 변형한 Ay=AAx^\bold{A}^\top\bold{y} = \bold{A}^\top\bold{A}\hat{\bold{x}}의 형식을 정규방정식(normal equation)이라고 한다.

참조