6.3 Orthogonal Projection

Jaehyun_onelion·2023년 3월 17일
0

선형대수학

목록 보기
32/42

이번 포스트에서는 orthogonal projection에 대해 알아보겠습니다.


1) Orthogonal Projection


(1) Orthogonal projection


Orthogonal projection의 목표는 다음과 같습니다.

Rn\mathbb R^n의 subspace WW와 벡터 y\boldsymbol y에 대해서 WW에 속하는 벡터 중 다음 조건을 만족하는 벡터 y^\hat {\boldsymbol y}을 찾고 싶습니다.

  1. yy^\boldsymbol{y}-\hat{\boldsymbol{y}}WW에 orthogonal합니다.
(yy^)W(\boldsymbol{y} - \hat{\boldsymbol y}) \perp W
  1. y\boldsymbol y에서 WW에 가장 가까운 벡터가 y^\hat{\boldsymbol{y}}입니다.
yy^yx  for  all  xW\|\boldsymbol y -\hat{\boldsymbol y}\| \leq \|\boldsymbol{y}-\boldsymbol x\| \ \ for \ \ all \ \ x\in W

해당 상황을 시각적으로 표현하면 다음과 같습니다.

이러한 y^\hat{\boldsymbol{y}}는 unique하게 존재하는데, 왜 unique하게 존재하는지, 어떻게 해당 벡터를 찾을 수 있는지 알아보겠습니다.


{u1,...,un}\{\boldsymbol{u_1}, ..., \boldsymbol{u_n}\}Rn\mathbb R^n의 orthogonal basis면, yRn\boldsymbol y \in \mathbb R^n

y=z1+z2\boldsymbol{y} = \boldsymbol{z_1} + \boldsymbol{z_2}

로 표현이 가능합니다. 여기서, z1\boldsymbol{z_1}은 basis에 속한 몇 개의 벡터의 linear combination으로 표현되는 벡터이고, z2\boldsymbol{z_2}는 basis에 속한 벡터 중 z1\boldsymbol{z_1}에 포함된 벡터를 제외한 나머지 벡터들의 linear combination으로 표현되는 벡터입니다.

이 때, z1\boldsymbol{z_1}z2\boldsymbol{z_2}는 orthogonal합니다. 예를 들어

z1=c1u1++ckukz2=ck+1uk+1++cnun\boldsymbol{z_1} = c_1\boldsymbol{u_1}+\cdots+c_k\boldsymbol{u_k}\\ \boldsymbol{z_2} = c_{k+1}\boldsymbol{u_{k+1}} + \cdots + c_n\boldsymbol{u_n}

일 경우,

z1z2\boldsymbol{z_1} \perp \boldsymbol{z_2}

가 됩니다. 또한 z1\boldsymbol{z_1}을 표현할 때 사용한 벡터 {u1,...,uk}\{\boldsymbol{u_1}, ..., \boldsymbol{u_k}\}를 basis로 하는 subspace WW를 생각한다면, z1W\boldsymbol{z_1}\in W을 만족합니다. 이 때, {u1,...,un}\{\boldsymbol{u_1}, ..., \boldsymbol{u_n}\}이 orthogonal basis이므로,

z2W\boldsymbol{z_2} \in W^\perp

를 만족합니다. 또한, z2\boldsymbol{z_2}을 표현할 때 사용한 벡터 {uk+1,...,un}\{\boldsymbol{u_{k+1}, ..., \boldsymbol{u_{n}}}\}을 basis로 하는 subspace는 바로 WW^\perp입니다.

이 성질을 이용하면 orthogonal projection의 목적에 부합하는 y^\hat{\boldsymbol y}를 찾을 수 있습니다.


Theorem

Let WW be a subspace of Rn\mathbb R^n. Then each y\boldsymbol{y} in Rn\mathbb R^n can be written uniquely in the form

y=y^+z\boldsymbol{y} =\hat{\boldsymbol{y}} +\boldsymbol{z}

where y^W\hat{\boldsymbol{y}} \in W and zW\boldsymbol z \in W^\perp.

In fact, if {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\} is any orthogonal basis for WW, then

y^=u1yu1u1u1+u2yu2u2u2++upyupupup\hat{\boldsymbol y} = \frac{\boldsymbol{u_1}\cdot \boldsymbol{y}}{\boldsymbol{u_1}\cdot \boldsymbol{u_1}}\boldsymbol{u_1} + \frac{\boldsymbol{u_2}\cdot \boldsymbol{y}}{\boldsymbol{u_2}\cdot \boldsymbol{u_2}}\boldsymbol{u_2} + \cdots + \frac{\boldsymbol{u_p}\cdot \boldsymbol{y}}{\boldsymbol{u_p}\cdot \boldsymbol{u_p}}\boldsymbol{u_p}

and

z=yy^\boldsymbol z = \boldsymbol y - \hat{\boldsymbol y}

y^\hat {\boldsymbol y} is called the orthogonal projection of y\boldsymbol y onto WW

y^=projWy\hat{\boldsymbol y} = proj_{W}\boldsymbol y

이전 포스트에서 orthogonal basis를 알고 있다면, 해당 subspace에 있는 벡터를 orthogonal basis의 linear combination으로 표현할 수 있는 방법을 배웠습니다. 그 방법이 위 정리에 적용이 되었습니다. 또한, 앞서 말한 특정 subspace와 subspace의 orthogonal complement에 속한 두 개의 벡터로 쪼갤 수 있는 성질을 이용하여 위 정리를 나타낼 수 있습니다. 특히, y\boldsymbol{y}WW에 속한 벡터와 WW^\perp에 속한 벡터로 나타내었을 때, WW에 속한 벡터인 y^\hat{\boldsymbol y}를 orthogonal projection of y\boldsymbol y onto WW라고 합니다.


example

Let {u1,...,u5}\{\boldsymbol{u_1}, ..., \boldsymbol{u_5}\} be an orthogonal basis for R5\mathbb R^5 and let

y=c1u1+c5u5\boldsymbol{y} = c_1\boldsymbol{u_1}+\cdots c_5\boldsymbol{u_5}

Consider the subspace W=Span{u1,u2}W=Span\{\boldsymbol{u_1}, \boldsymbol{u_2}\}

u1,u2\boldsymbol{u_1}, \boldsymbol{u_2}가 orthogonal하기 때문에, WW의 basis는 {u1,u2}\{\boldsymbol{u_1}, \boldsymbol{u_2}\}입니다.

y\boldsymbol{y} 벡터는 두 개의 벡터로 쪼개질 수 있습니다.

y=y^+zy^=c1u1+c2u2z=c3u3+c4u4+c5u5\boldsymbol{y}=\hat{\boldsymbol{y}} + \boldsymbol{z} \\ \hat{\boldsymbol{y}} =c_1\boldsymbol{u_1}+c_2\boldsymbol{u_2} \\ \boldsymbol{z} = c_3\boldsymbol{u_3}+c_4\boldsymbol{u_4}+c_5\boldsymbol{u_5}

이 때, y^W\hat{\boldsymbol{y}} \in W이고, zW\boldsymbol{z} \in W^\perp을 만족합니다. 따라서 y^=projWy\hat{\boldsymbol{y}} = proj_W\boldsymbol{y} 가 됩니다.


example

u1=[251],u2=[211],y=[123],W=Span{u1,u2}\boldsymbol{u_1} = \begin{bmatrix} 2 \\ 5 \\ -1 \end{bmatrix}, \boldsymbol{u_2} = \begin{bmatrix}-2 \\ 1 \\ 1 \end{bmatrix}, \boldsymbol{y}=\begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}, W=Span\{\boldsymbol{u_1}, \boldsymbol{u_2}\}

projWyproj_W \boldsymbol y를 구해봅시다. 먼저

u1u2=0\boldsymbol{u_1}\cdot \boldsymbol{u_2} = 0

이므로 {u1,u2}\{\boldsymbol{u_1}, \boldsymbol{u_2}\}WW의 orthogonal basis입니다.

u1y=9,  u2y=3,  u1u1=30,  u2u2=6\boldsymbol{u_1}\cdot \boldsymbol{y} = 9, \ \ \boldsymbol{u_2}\cdot \boldsymbol{y} = 3 , \ \ \boldsymbol{u_1}\cdot\boldsymbol{u_1} =30, \ \ \boldsymbol{u_2} \cdot \boldsymbol{u_2} = 6

을 이용하면

u1yu1u1=310,  u2yu2u2=12\frac{\boldsymbol{u_1}\cdot\boldsymbol{y}}{\boldsymbol{u_1}\cdot\boldsymbol{u_1}}=\frac{3}{10}, \ \ \frac{\boldsymbol{u_2}\cdot \boldsymbol{y}}{\boldsymbol{u_2}\cdot \boldsymbol{u_2}} = \frac{1}{2}

이므로

projWy=310u1+12u2proj_W\boldsymbol y = \frac{3}{10}\boldsymbol u_1 + \frac{1}{2}\boldsymbol{u_2}

임을 알 수 있습니다.


(2) Properties of orthogonal projection


orthogonal projection과 projection vector에 대한 다양한 성질에 대해 알아보도록 하겠습니다.


Theorem

Let {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\} be an orthogonal basis for a subspace WW of Rn\mathbb R^n. For each y\boldsymbol{y} in WW, the weights in the linear combination

y=c1u1++cpup\boldsymbol{y}=c_1\boldsymbol{u_1}+\cdots + c_p\boldsymbol{u_p}

where ci=uiyuiuiuic_i = \frac{\boldsymbol{u_i}\cdot \boldsymbol{y} }{\boldsymbol{u_i} \cdot \boldsymbol{u_i}}\boldsymbol{u_i}

In this case projWy=yproj_W \boldsymbol{y} = \boldsymbol{y}

Projection의 목적이 WW 밖에 있는 벡터를 WW에 존재하는 벡터와 WW^\perp에 존재하는 벡터로 분리하여 표현하는 것이 목적입니다. 따라서, 만약 yW\boldsymbol{y} \in W이면, y\boldsymbol{y}WW의 orthogonal basis 벡터로 표현이 가능합니다.

y=y^+z\boldsymbol{y} = \hat{\boldsymbol{y}}+\boldsymbol{z}

로 표현하였을 때, z=0W\boldsymbol{z}=0 \in W^\perp가 되는 것이구요.


Theorem : The best approximation theorem

Let WW be a subspace of Rn\mathbb R^n, let y\boldsymbol{y} be any vector in Rn\mathbb R^n, and let y^\hat{\boldsymbol{y}} be the orthogonal projection of y\boldsymbol{y} onto WW. Then y^\hat{\boldsymbol{y}} is the closest point in WW to y\boldsymbol{y}, in the sense that

yy^<yv\|\boldsymbol{y}-\hat{\boldsymbol{y}}\|<\|\boldsymbol{y}-\boldsymbol{v}\|

for all v\boldsymbol{v} in WW distinct from y^\hat{\boldsymbol{y}}

위 정리를 통해서, y\boldsymbol{y}WW로의 orthogonal projection y^\hat{\boldsymbol{y}}WW에 존재하는 벡터 중에 가장 y\boldsymbol{y}와 가까운 것을 알 수 있습니다. 이를 시각적으로 나타내면 다음과 같습니다.

=

y\boldsymbol{y}WW에 projection시킨 벡터 y^\hat{\boldsymbol{y}}WW에 속한 다른 벡터 v1,v2\boldsymbol{v_1}, \boldsymbol{v_2}보다 가까운 것을 알 수 있습니다.


Caution and notation

orthogonal projection 벡터는 해당 벡터에서 subspace WW에 가장 가까운 벡터임을 알 수 있었습니다. 즉, WW에 있는 벡터 중에서 가장 y\boldsymbol{y}와 비슷한 벡터가 y^\hat{\boldsymbol{y}}입니다. 따라서

y^=projWy\hat{\boldsymbol{y}} = proj_W \boldsymbol{y}

를 the best approximation to y\boldsymbol{y} by elements of WW라고 표현합니다. 또한 the best approximation theorem에서 사용한

yv\|\boldsymbol{y}-\boldsymbol{v}\|

지표를 error of using v\boldsymbol{v} in place of y\boldsymbol{y}라고 합니다. 이 때, 이 error는 v=y^\boldsymbol{v}=\hat{\boldsymbol{y}}일 때 최소화됩니다.

또한, y^\hat{\boldsymbol{y}}는 orthogonal basis에 의존하지 않습니다. 즉, 어떤 subspace WW에 존재하는 orthogonal basis는 수없이 많을 수 있습니다. 하지만 y^\hat{\boldsymbol{y}}는 orthogonal basis와 상관없이 고정이되며, orthogonal basis가 바뀌었을 때 해당 orthogonal basis를 이용하여 y^\hat{\boldsymbol{y}}를 표현하는 방법(coefficient)만 달라집니다.


Theorem

If {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\} is an orthonormal basis for a subspace WW of Rn\mathbb R^n, then

y^=(u1y)u1++(upy)up\hat{\boldsymbol{y}} = (\boldsymbol{u_1}\cdot \boldsymbol{y})\boldsymbol{u_1} + \cdots + (\boldsymbol{u_p}\cdot \boldsymbol{y})\boldsymbol{u_p}

If U=[u1...up]U=\begin{bmatrix} \boldsymbol{u_1} & ... & \boldsymbol{u_p} \end{bmatrix},

projWy=UTUyproj_W\boldsymbol{y} = U^TU\boldsymbol{y}

for all yRn\boldsymbol{y}\in\mathbb R^n

orthonormal basis인 경우에는 basis에 속한 벡터의 length가 1이기 때문에, y^\hat{\boldsymbol{y}}를 계산할 때 각 coefficient부분의 분모부분을 계산하지 않아도 됩니다. 또한, 위 식을 matrix를 이용하여 표현 또한 가능합니다.


지금까지 orthogonal projection에 대해 알아보았습니다. 다음 포스트에서는 Gram-Schmidt Process에 대해 알아보겠습니다. 질문이나 오류 있으면 댓글 남겨주세요! 감사합니다!


Appendix : Proof of Theorem


Theorem

Let WW be a subspace of Rn\mathbb R^n. Then each y\boldsymbol{y} in Rn\mathbb R^n can be written uniquely in the form

y=y^+z\boldsymbol{y} =\hat{\boldsymbol{y}} +\boldsymbol{z}

where y^W\hat{\boldsymbol{y}} \in W and zW\boldsymbol z \in W^\perp.

In fact, if {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\} is any orthogonal basis for WW, then

y^=u1yu1u1u1+u2yu2u2u2++upyupupup\hat{\boldsymbol y} = \frac{\boldsymbol{u_1}\cdot \boldsymbol{y}}{\boldsymbol{u_1}\cdot \boldsymbol{u_1}}\boldsymbol{u_1} + \frac{\boldsymbol{u_2}\cdot \boldsymbol{y}}{\boldsymbol{u_2}\cdot \boldsymbol{u_2}}\boldsymbol{u_2} + \cdots + \frac{\boldsymbol{u_p}\cdot \boldsymbol{y}}{\boldsymbol{u_p}\cdot \boldsymbol{u_p}}\boldsymbol{u_p}

and

z=yy^\boldsymbol z = \boldsymbol y - \hat{\boldsymbol y}

  • Proof

{u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\}WW의 orthogonal의 basis이고, y^W\hat{\boldsymbol{y}} \in W이기 때문에

y^=c1u1++cpup\hat{\boldsymbol{y}} =c_1\boldsymbol{u_1}+\cdots + c_p\boldsymbol{u_p}

를 만족해야 합니다. orthogonal basis의 성질을 이용하면

cj=ujyujujc_j = \frac{\boldsymbol{u_j}\cdot \boldsymbol{y}}{\boldsymbol{u_j}\cdot \boldsymbol{u_j}}

인 것을 알 수 있습니다. 즉,

y^=u1yu1u1u1+u2yu2u2u2++upyupupup\hat{\boldsymbol y} = \frac{\boldsymbol{u_1}\cdot \boldsymbol{y}}{\boldsymbol{u_1}\cdot \boldsymbol{u_1}}\boldsymbol{u_1} + \frac{\boldsymbol{u_2}\cdot \boldsymbol{y}}{\boldsymbol{u_2}\cdot \boldsymbol{u_2}}\boldsymbol{u_2} + \cdots + \frac{\boldsymbol{u_p}\cdot \boldsymbol{y}}{\boldsymbol{u_p}\cdot \boldsymbol{u_p}}\boldsymbol{u_p}

입니다. 두 번째로, z=yy^\boldsymbol{z} = \boldsymbol{y}-\hat{\boldsymbol{y}}WW^\perp에 속하는지 확인하기 위해,

zuj=(yy^)uj=ujyujyujujujuj=ujyujy=0\boldsymbol{z}\cdot\boldsymbol{u_j} = (\boldsymbol{y}-\hat{\boldsymbol{y}})\cdot\boldsymbol{u_j} = \boldsymbol{u_j}\cdot \boldsymbol{y} - \frac{\boldsymbol{u_j}\cdot \boldsymbol{y}}{\boldsymbol{u_j}\cdot\boldsymbol{u_j}}\boldsymbol{u_j}\cdot\boldsymbol{u_j} = \boldsymbol{u_j}\cdot \boldsymbol{y} - \boldsymbol{u_j}\cdot\boldsymbol{y} = 0

이 성립하므로, z\boldsymbol{z}WW의 orthogonal basis에 있는 모든 벡터와 orthogonal합니다. 따라서

zW\boldsymbol{z} \in W^\perp

를 만족합니다.


Theorem

Let {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\} be an orthogonal basis for a subspace WW of Rn\mathbb R^n. For each y\boldsymbol{y} in WW, the weights in the linear combination

y=c1u1++cpup\boldsymbol{y}=c_1\boldsymbol{u_1}+\cdots + c_p\boldsymbol{u_p}

where ci=uiyuiuiuic_i = \frac{\boldsymbol{u_i}\cdot \boldsymbol{y} }{\boldsymbol{u_i} \cdot \boldsymbol{u_i}}\boldsymbol{u_i}

In this case projWy=yproj_W \boldsymbol{y} = \boldsymbol{y}


  • Proof

yW\boldsymbol y \in W이므로, y\boldsymbol yWW의 basis 벡터의 linear combination으로 표현할 수 있습니다. 이 때 {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\}는 orthogonal basis이므로

y=u1yu1u1u1+upyupupup\boldsymbol{y}=\frac{\boldsymbol{u_1}\cdot\boldsymbol{y}}{\boldsymbol{u_1}\cdot\boldsymbol{u_1}}\boldsymbol{u_1}+\cdots \frac{\boldsymbol{u_p}\cdot\boldsymbol{y}}{\boldsymbol{u_p}\cdot\boldsymbol{u_p}}\boldsymbol{u_p}

가 됩니다.


Theorem : The best approximation theorem

Let WW be a subspace of Rn\mathbb R^n, let y\boldsymbol{y} be any vector in Rn\mathbb R^n, and let y^\hat{\boldsymbol{y}} be the orthogonal projection of y\boldsymbol{y} onto WW. Then y^\hat{\boldsymbol{y}} is the closest point in WW to y\boldsymbol{y}, in the sense that

yy^<yv\|\boldsymbol{y}-\hat{\boldsymbol{y}}\|<\|\boldsymbol{y}-\boldsymbol{v}\|

for all v\boldsymbol{v} in WW distinct from y^\hat{\boldsymbol{y}}


  • Proof
yv2=(yy^)(vy^)2=yy^22(yy^)(vy^)+vy^2\begin{aligned} \|\boldsymbol{y}-\boldsymbol{v}\|^2 &= \|(\boldsymbol{y}-\hat{\boldsymbol{y}})-(\boldsymbol{v}-\hat{\boldsymbol{y}})\|^2 \\ &= \|\boldsymbol{y}-\hat{\boldsymbol{y}}\|^2 - 2(\boldsymbol{y}-\boldsymbol{\hat{\boldsymbol{y}}})\cdot(\boldsymbol{v}-\hat{\boldsymbol{y}}) + \|\boldsymbol{v}-\hat{\boldsymbol{y}}\|^2 \end{aligned}

이 때, yy^\boldsymbol{y}-\hat{\boldsymbol{y}}WW에 orthogonal하므로, vy^\boldsymbol{v}-\hat{\boldsymbol{y}}에도 orthogonal합니다. 즉

yv2=yy^2+vy^2\|\boldsymbol{y}-\boldsymbol{v}\|^2 = \|\boldsymbol{y}-\hat{\boldsymbol{y}}^2\| + \|\boldsymbol{v}-\hat{\boldsymbol{y}}\|^2

가 됩니다. $|\boldsymbol{v}-\hat{\boldsymbol{y}}|\geq 0 $이므로

yv2yy^2\|\boldsymbol{y}-\boldsymbol{v}\|^2\geq\|\boldsymbol{y}-\hat{\boldsymbol{y}}\|^2

을 만족합니다. 즉

yvyy^\|\boldsymbol{y}-\boldsymbol{v}\|\geq\|\boldsymbol{y}-\hat{\boldsymbol{y}}\|

을 만족합니다.


Theorem

If {u1,...,up}\{\boldsymbol{u_1}, ..., \boldsymbol{u_p}\} is an orthonormal basis for a subspace WW of Rn\mathbb R^n, then

y^=(u1y)u1++(upy)up\hat{\boldsymbol{y}} = (\boldsymbol{u_1}\cdot \boldsymbol{y})\boldsymbol{u_1} + \cdots + (\boldsymbol{u_p}\cdot \boldsymbol{y})\boldsymbol{u_p}

If U=[u1...up]U=\begin{bmatrix} \boldsymbol{u_1} & ... & \boldsymbol{u_p} \end{bmatrix},

projWy=UTUyproj_W\boldsymbol{y} = U^TU\boldsymbol{y}

for all yRn\boldsymbol{y}\in\mathbb R^n


  • Proof
y^=(u1y)u1++(upy)up\begin{aligned} \hat{\boldsymbol{y}} &= (\boldsymbol{u_1}\cdot \boldsymbol{y})\boldsymbol{u_1} + \cdots + (\boldsymbol{u_p}\cdot \boldsymbol{y})\boldsymbol{u_p} \\ \end{aligned}

는 다음과 같이 matrix와 벡터의 곱으로 나타낼 수 있습니다.

[u1up][u1yupy]\begin{bmatrix}\boldsymbol{u_1} & \cdots & \boldsymbol{u_p}\end{bmatrix} \begin{bmatrix}\boldsymbol{u_1}\cdot\boldsymbol{y} \\ \vdots \\ \boldsymbol{u_p}\cdot\boldsymbol{y} \end{bmatrix}

ujy=ujTy\boldsymbol{u_j}\cdot\boldsymbol{y} =\boldsymbol{u_j}^T\boldsymbol{y}이므로

[u1up][u1yupy]=[u1up][u1TyupTy]=[u1up][u1TupT]y\begin{bmatrix}\boldsymbol{u_1} & \cdots & \boldsymbol{u_p}\end{bmatrix} \begin{bmatrix}\boldsymbol{u_1}\cdot\boldsymbol{y} \\ \vdots \\ \boldsymbol{u_p}\cdot\boldsymbol{y} \end{bmatrix} = \begin{bmatrix}\boldsymbol{u_1} & \cdots & \boldsymbol{u_p}\end{bmatrix} \begin{bmatrix}\boldsymbol{u_1}^T\boldsymbol{y} \\ \vdots \\ \boldsymbol{u_p}^T\boldsymbol{y} \end{bmatrix} = \begin{bmatrix}\boldsymbol{u_1} & \cdots & \boldsymbol{u_p}\end{bmatrix} \begin{bmatrix}\boldsymbol{u_1}^T \\ \vdots \\ \boldsymbol{u_p}^T \end{bmatrix}\boldsymbol{y}

가 되어

U=[u1up]U =\begin{bmatrix}\boldsymbol{u_1} & \cdots & \boldsymbol{u_p}\end{bmatrix}

일 때,

y^=UUTy\hat{\boldsymbol{y}} = UU^T\boldsymbol{y}

가 됩니다.

profile
데이터 분석가 새싹

0개의 댓글