Ch 3-8. Orthogonal Projections

DYN.kim·2024년 2월 20일

Orthogonal Projections

머신러닝에서 주로 다루는 고차원의 데이터는 시각화하거나 분석하기 어렵기 어렵다. 고차원 데이터는 대부분의 차원이 불필요한 요소로 되어 있기 때문에 데이터의 압축손실을 최소화하기 위해 가장 정보를 많이 담고 있는 차원을 찾는 것이 이상적이다. 주어진 저차원 subspace에서 고차원 데이터의 orthogonal projection(정사영)은 가능한 많은 정보를 유지하고, 원본 데이터와의 차이나 오차를 최소화한다.

벡터공간 VV, 부분공간 UVU⊆V가 있을 때, linear mapping πππ2=ππ=ππ^2=π∘π=π를 만족한다면 ππ를 projection이라고 한다.Linear mapping은 transformation matrix로 표현될 수 있기 때문에, linear mapping ππ 는 projection matrices PπP_π로 표현될 수 있다. π2=ππ=ππ^2=π∘π=πP2π=Pπ{P^2}_π=P_π를 만족한다.

Projection onto One-Dimensional Subspaces (Lines)

원본 데이터로부터 기저벡터가 bRnb∈R^n인 1차원 subspace인 직선이 주어졌을 때 이 직선은 b에의해 span되는 subspace UU이다.xRnx∈R^nUU로 투영할 때, xx에 가장 가까운 벡터 πU(x)Uπ_U(x)∈U를 찾는다. πU(x)π_U(x)의 속성은 다음과 같다.

πU(x)π_U(x)는 x와 가장 가깝다. 즉, 거리 xπU(x)∥x−π_U(x)∥가 최소다. 이는 xπU(x)x−π_U(x)UU에 직교하며 이는 b와도 직교하며 πU(x)x,b=0⟨π_U(x)−x,b⟩=0가 만족한다는 뜻이다.
πU(x)π_U(x)UU의 element이므로 기저 b로 표현가능하므로 πU(x)=λbπ_U(x)=λb이다.

다음의 3단계로 projection matrix PπP_π를 결정할 수 있다.

  1. 다음의 orthogonality condition을 통해 coordinate λλ 를 찾을 수 있다.

    내적의 bilinearity을 이용하여 다음 식을 도출할 수 있고,

    내적은 symmertic하다는 사실을 이용하여 내적으로 dot product를 사용하면 다음 식이 도출된다.

    b=1∥b∥=1라면 projection의 coordinate λλbxb^⊤x로 주어진다.

  2. 위의 식에서 λλ를 얻었으므로 projection point πU(x)π_U(x)를 구할 수 있다.

    πU(x)π_U(x)의 길이는 다음과 계산할 수 있다.

    projection의 길이는 bb의 길이에 λλ배 한 것과 같고 위 식 λλ는 기저벡터 bb에 대한 πU(x)π_U(x)의 coordinate다. 내적으로 dot product를 사용하면 아래식을 얻을 수 있다.

    ww는 x와 b사이의 각도이다.

  3. 마지막으로 projection matrix PπP_π를 찾는다. 내적을 dot product라 하면 다음 식을 통해

    projection matrix를 구할 수 있다.

    Projection πU(x)π_U(x)sms projection 된 후에도 n차원이며 스칼라값이 아니지만 더이상 n개의 좌표를 필요로 하지 않고 기저 b에 대해 λλ 하나로 표현가능하다.

Projection onto General Subspaces

1 이상 m차원 부분공간 UU에 orthogonal projection하느 경우를 살펴보자. 아래 그림은 3차원 데이터를 2차원으로 projection하는 것을 보여준다.

UU의 기저를 (b1,...,bm)(b_1,..., b_m)이라고 할 떄 모든 UU로의 projection πU(x)π_U(x)UU의 element다 따라서 다음과 같은 기저들의 선형결합으로 표현할 수 있다.

1차원으로 투영하는 방법과 같이 3단계를 통해 구할 수 있다.

  1. projection의 coordinates λ1,,λmλ_1,…,λ_m을 찾아야 한다.


xx에 가장 가깝다는 것은 πU(x)π_U(x)xx를 연결하는 모든 벡터가 UU의 기저벡터와 직교한다는 것을 의미한다. 따라서 동시에 만족해야는 m개의 조건들이 있다. 여기서 내적은 dot product다.

πU(x)=Bλπ_U(x)=Bλ이므로 위 식은 다음과 같아진다.

따라서 다음의 homogeneous linear equation system을 얻을 수 있다.

여기서 마지막 표현식을 normal equation이라 하고 (b1,...,bm)(b_1,..., b_m)UU의 기저이고 따라서 선형독립이기 때문에 BBB^⊤B는 regular이고 역행렬이 존재하므로 coordinate는 다음과 같다.


(BB)1B(B^⊤B)^{-1}B^⊤을 유사역행렬이라 하며 이를 사용하루수 있는 조건은 (BB)(B^⊤B)가 positive definite해야 하며 이는 BB가 full rank임을 의미한다.

  1. πU(x)=Bλπ_U(x)=Bλ이므로 위의 식으로 부터 다음을 구할 수 있다.

  1. 위 식으로부터 Pπx=πU(x)P_πx=π_U(x)를 풀면 projection matrix를 구할 수 있다.

projection πU(x)π_U(x)는 m차원 subspace UU에 놓여있지만 RnR^n의 벡터이다. UU의 기저벡터와 m개의 coordinate로 표현할 수 있을 뿐이다.

projection은 해가 없는 선형 방정식 Ax=b에서 사용할 수 있다. 해가 없다는 것은 b가 A의 span상에 놓여 있지 않다는 뜻으로 근사해를 통해 풀 수 있다. 근사해는 A에 의해 span되는 부분공간에서 b와 가장 가까이 있는 해를 찾는 것이다. 즉, A의 열들이 의해 span되는 부분공간에 대한 b의 정사영을 계산하는 것이다. 이러한 해를 least-squars solution of an overdetermined system이라 한다.

기저벡터가 b1,....,bkb_1,...., b_k인 부분공간 UU에 투영되는 xx의 projection을 살펴보면 만약 이 기저벡터가 orthonormal basis라면, BB=IB^⊤B=I이므로 projection equation은 다음과 같다.

Gram-Schmidt Orthogonalization

Gram-Schmidt method는 벡터공간 V의 어떤한 기저도 orthogonal/orthonormal basis로 변환하도록 해주는 방법으로 이렇게 변환 된 기저는 항상 존재하며 span은 같다. 방법은 다음과 같다.


위의 식에서 k번째 기저벡터 bkb_k는 이전에 구한 k-1개의 orthogonal vector에 의해 span되는 subspace에 projection된다. 그 다음 bkb_k에서 이 projection을 빼 uku_k를 구한다. 즉 uku_k는 k-1개의 orthogonal vector에 의해 span되는 부분공간과 직교한다. 이 과정을 n개의 기저벡터에 대해 반복한다. uku_k를 정규화하면 ONB를 구할 수 있다.(uk=1∥u_k∥=1) 아래 그림은 예시다.

Projection onto Affine Subspaces


위의 그림을 보면 Affine space L=x0+UL=x_0+U가 주어지며 UU의 기저벡터는 b1,b2b_1, b_2이다. LL에 투영되는 πL(x)π_L(x)를 구할 때, vector subspace에 투영하는 문제로 변형하면 되는데 그림 (b)처럼 xxLL에서 support point x0x_0를 빼주면 부분공간 U=Lx0U=L−x_0을 얻을 수 있고 projection π_U(x−x_0)을 구한 후 다시 x0x_0를 더해 LL로 변환하면 다음과 같이 LL로의 정사영을 얻을 수 있다.


그림 (c)로부터 LLxx의 distance는 xx0x - x_0사이의 distance와 같으며 식으로 표현하면 다음과 같다.

profile
AI 개발자를 목표로 하고 있는 꿈 많은 공대생입니다. a deo vocatus rite paratus

0개의 댓글