본문 바로가기

선형대수학

[Linear Algebra] Lecture 15, 투영행렬(Projection Matrix)과 부분 공간(Subspaces)

Introduction

이번에 선형대수를 공부하면서 내용을 정리해보았습니다.

강의 영상 : https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/

 

Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare

This section contains a complete set of video lectures on linear algebra along with transcripts and related resource files.

ocw.mit.edu

스터디 github : https://github.com/jwkweon/study-linear-algebra

 

GitHub - jwkweon/study-linear-algebra

Contribute to jwkweon/study-linear-algebra development by creating an account on GitHub.

github.com

참고한 블로그 :

https://blog.naver.com/PostView.naver?blogId=skkong89&logNo=221390717941&categoryNo=48&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postList&userTopListOpen=true&userTopListCount=30&userTopListManageOpen=false&userTopListCurrentPage=1 

 

Lecture 15: Projections onto subspaces

Lecture 15: Projections onto subspaces (5/24) - 좋아. 친구들, 우리는 이 강의가 죽지 않게 만들 준비...

blog.naver.com

 

https://twlab.tistory.com/31

 

[Linear Algebra] Lecture 15-(1) 해가 존재하지 않는 선형연립방정식(Ax=b)의 해 (overdetermined case)

이번 강의에서 배울 내용은 바로 해가 존재하지 않는 선형연립방정식의 해를 구하는 방법이다. 이는 바로 다음 강의에서 배울 투영 행렬(Projection matrix)을 배우기 위함이다. 투영 행렬에 대해 본

twlab.tistory.com

https://twlab.tistory.com/34

 

[Linear Algebra] Lecture 15-(2) 투영행렬(Projection matrix)과 부분 공간(subspaces)

이번 시간에 배울 내용은 바로 투영 행렬(Projection matrix)에 관한 내용이다. 이번 강의는 매우 중요하므로 잘 공부해 두도록 하자. 투영 행렬에 관한 내용을 공부하기에 앞서 2차원 벡터의 투영을

twlab.tistory.com

(주로 https://twlab.tistory.com/31, https://twlab.tistory.com/34블로그의 사진과 내용을 보면서 공부했고 추가로 나머지 블로그를 참고하였습니다.)

(저는 제가 이해하기 쉽게 요약해서 적었으므로 좀더 자세히 공부하고싶다면 위 블로그를 참고하시면 됩니다.)


해가 존재하지 않는 선형연립방정식 Ax=b

먼저 투영을 배우기전에 다음을 배워보자.

Ax=b의 선형방정식에서 b가 A의 column space상에 존재하지 않으면, 즉 가해조건을 만족하지 않으면 해를 구할 수 없다고 했다. 하지만, 아주 정확한 해는 아니더라도 가장 근사한 해를 구할수는 있다.

 

행렬 A의 미지수보다 방정식이 더 많은 경우(m>n), 이런 경우 일반적으로 해가 존재하지 않을 가능성이 높으며, Overdetermined라고 한다. 해가 존재하는 경우는 우변의 b벡터가 A의 column space에 존재할 때 해가 존재한다.

$$Ax=b \longrightarrow \begin{bmatrix} 1 & 1 & 2 \\ 3 & 4 & 1 \\ 3 & 7 & 1 \\ 4 & 2 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 11 \\ 2 \\ -7 \\ 21 \end{bmatrix} $$

여기서, 해를 구하기위해 rref 형태로 만들기 위해 A에 b를 붙여 증강행렬로 풀어보자.

$$ \begin{bmatrix} 1 & 1 & 2 & | & 11 \\ 3 & 4 & 1 & | & 2 \\ 3 & 7 & 1 & | & -7 \\ 4 & 2 & 3 & | & 21 \end{bmatrix} $$

$$ \begin{bmatrix} 1 & - & - & | & - \\ 0 & 1 & - & | & - \\ 0 & 0 & 1 & | & - \\ 0 & 0 & 0 & | & - \end{bmatrix} $$

대충 rref 형태로 만들면 row4가 영벡터가 되는데, b의 row4의 값이 0이 아닌 상수가 나올 수가 있다. 따라서, 해가 존재하지 않을 경우가 많다.

 

또한, 행렬 A의 미지수와 방정식의 수가 같은 경우(m=n), Full rank일 경우 유일한 해(Unique solution)을 갖으며, Determined라고 한다.

 

행렬 A의 미지수가 방정식 보다 많은 경우(m<n), 무수히 많은 해가 존재하며, Underdetermined라고 한다.

 

Overdetermined에 대해서만 잠깐공부하고 나머지는 Determinant를 공부할 때 자세히 살펴보자.

 

mxn (m>n)의 overdetermined 행렬 A가 있을 때, 다음 행렬에 대해 이해해보자.

$$ A^T A $$

$$ (n \times m ) ( m \times n ) \longrightarrow (n \times n) $$

직사각행렬을 transpose해서 앞에 곱해줬더니 정사각행렬이 되었다.

 

$$ (A^T A)^T = A^T A^{TT} = A^T A$$

이번에는 $A^T A$를 transpose를 했더니 자기자신이 되었다. 이는 $A^T A$가 대칭(symmetric)이기 때문이다. 따라서, 대칭행렬의 특성은 전치를 하면 자기 자신과 같아진다.

 

$$A^T A \quad (\rm if \ Full \ Rank) $$

만일, Full Rank라면 $A^T A$는 역행렬이 존재한다.

왜냐하면, 역행렬의 존재조건은 정방행렬이면서 Full Rank여야 하기 때문이다.

그리고 Full Rank라는 것은 행렬 A의 column이 모두 독립이라는 뜻이자, Rank=n일 때를 의미한다.

 

따라서, $A^T A$의 3가지 특성을 요약하면 다음과 같다.

 

  • 정사각 행렬
  • 대칭 행렬
  • 만일, Full Rank(column이 모두 독립)이면 역행렬이 존재한다.

이제 이것을 통해 overdetermined의 해를 구해보자. 이때, 식을 정확하게 만족시키는 해를 구할수는 없지만 근사한 해, 즉 식을 최대한 만족시키는 해(best solutin)을 구할 수 있다.

 

$$Ax =b \quad (m>n)$$

$$ A^T A \hat{x} = A^T b $$

여기서, x는 진짜 해를 의미하고 $\hat{x}$는 최적해(best solution)을 의미한다.

 

이제, $A^T A$가 Full Rank라고 가정하자. 그러면 역행렬이 존재한다.

(m>n 이여서 rank=n일 때가 Full Rank이다)

$$ (A^T A)^{-1} A^T A \hat{x} = (A^T A)^{-1} A^T b $$

$$ I \hat{x} = (A^T A)^{-1} A^T b $$

$$ \hat{x} = (A^T A)^{-1} A^T b $$

 

이런식으로 최적해를 구할 수 있다.

 

한번 예시로 풀어보자.

$$Ax=b \longrightarrow \begin{bmatrix} 1 & 1 & 2 \\ 3 & 4 & 1 \\ 3 & 7 & 1 \\ 4 & 2 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 11 \\ 2 \\ -7 \\ 21 \end{bmatrix} $$

위의 행렬 Ax=b는 overdetermined이면서, 행렬 A는 Full Rank라고 해보자.

$$A^T A \hat{x} =A^T b \longrightarrow \begin{bmatrix} 1 & 3 & 3 & 4 \\ 1 & 4 & 7 & 2 \\ 2 & 1 & 1 & 3 \end{bmatrix} \begin{bmatrix} 1 & 1 & 2 \\ 3 & 4 & 1 \\ 3 & 7 & 1 \\ 4 & 2 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 1 & 3 & 3 & 4 \\ 1 & 4 & 7 & 2 \\ 2 & 1 & 1 & 3 \end{bmatrix} \begin{bmatrix} 11 \\ 2 \\ -7 \\ 21 \end{bmatrix} $$

$$ A^T A \hat{x} = A^T b \longrightarrow \begin{bmatrix} 35 & 42 & 20 \\ 42 & 70 & 19 \\ 20 & 19 & 15 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 80 \\ 12 \\ 80 \end{bmatrix} $$

역행렬은 대충 구했다하고 쭉 연산해보자.

$$ (A^T A )^{-1} A^T A \hat{x} = (A^T A)^{-1} A^T b \longrightarrow $$

$$ \begin{bmatrix} 0.43 & -0.15 & -0.38 \\ -0.15 & 0.07 & 0.11 \\ -0.38 & 0.11 & 0.43 \end{bmatrix} \begin{bmatrix} 35 & 42 & 20 \\ 42 & 70 & 19 \\ 20 & 19 & 15 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} $$

$$ = \begin{bmatrix} 0.43 & -0.15 & -0.38 \\ -0.15 & 0.07 & 0.11 \\ -0.38 & 0.11 & 0.43 \end{bmatrix} \begin{bmatrix} 80 \\ 12 \\ 80 \end{bmatrix} $$

따라서, 다음과 같이 최적해를 구할 수 있다.

$$ \hat{x} = (A^T A )^{-1} A^T b \longrightarrow \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 2.51 \\ -2.85 \\ 5.6 \end{bmatrix} $$

한번, 최적해를 Ax=b에 대입해보자.

$$A \hat{x}=b \longrightarrow \begin{bmatrix} 1 & 1 & 2 \\ 3 & 4 & 1 \\ 3 & 7 & 1 \\ 4 & 2 & 3 \end{bmatrix} \begin{bmatrix} 2.51 \\ -2.85 \\ 5.6 \end{bmatrix} = \begin{bmatrix} 10.85 \\ 1.71 \\ -6.85 \\ 21.14 \end{bmatrix} $$

$$ b = \begin{bmatrix} 11 \\ 2 \\ -7 \\ 21 \end{bmatrix}$$

최적해$\hat{x}$와 실제값$x$이 근사한 것을 확인 할 수 있다.

 

위에서는 A가 Full Rank이기 때문에 최적해라도 구할 수 있었다. 만일, Full Rank가 아닌, A의 column이 dependent하다면 즉, Rank가 n보다 작을 경우엔 최적해조차 구할 수가 없다.

 

또는 b가 A의 column space에 존재하면 overdetermined라도 해가 존재한다.


2차원 벡터 투영(2D-Vector Projection)

벡터 투영이란 두 벡터가 있을 때 한 벡터를 다른 벡터에 그림자를 찾는것이라 보면된다.

예를들어 벡터 b를 벡터 a에 투영한다고 하면 위와같이 b의 끝에서 a에 수직으로 내리면 된다.

마치 그림자 처럼 말이다.

투영시키기 전 벡터 b와 투영한 벡터 p사이에 거리인 e는 오차(error)를 의미한다.

이때, 벡터 e는 벡터 a와 수직(perpendicular)이다.

그리고, p는 벡터 b를 벡터 a에 떨어트린거기 때문에 벡터 a상에 위치한 어떠한 크기를 가지는 벡터이다. 따라서, p는 벡터 a에 상수 x를 곱한 형태가 될 것이다.

수식으로 나타내면 다음과 같다.

$$ \boldsymbol{a}^T \cdot \boldsymbol{e} = \boldsymbol{a}^T \cdot (\boldsymbol{b-p}) =  \boldsymbol{a}^T \cdot ( \boldsymbol{b} - x \boldsymbol{a}) =0 $$

x를 구하기 위해 전개를 해보자.

$$ \boldsymbol{a}^T ( \boldsymbol{b} - x \boldsymbol{a} ) = 0 $$

$$ \boldsymbol{a}^T \boldsymbol{b} - x \boldsymbol{a}^T \boldsymbol{a} = 0 $$

$$ x \boldsymbol{a}^T \boldsymbol{a} = \boldsymbol{a}^T \boldsymbol{b} $$

$$ x = \frac{\boldsymbol{a}^T \boldsymbol{b}}{\boldsymbol{a}^T \boldsymbol{a}} $$

여기서 벡터로 나눌 수 있는 이유는 $\boldsymbol{a}^T \boldsymbol{a}$는 벡터 내적의 결과값으로 상수이기 때문이다.

$$ x = \frac{\boldsymbol{a}^T \boldsymbol{b}}{||\boldsymbol{a}||^2} $$

 

이번에는 벡터 p에 대해 정리해보자. 벡터 p의 크기는 벡터 b의 크기에 $\cos{\theta}$를 곱한형태이고,($\theta$는 벡터 a와 벡터 b의 사잇각) 방향은 $\boldsymbol{a}$와 같으므로 $\boldsymbol{a}$의 단위벡터인 $\boldsymbol{\hat{a}}$를 방향으로 사용하면된다.

따라서, 다음과 같이 쓸 수 있다.

$$ \boldsymbol{p} = ( || \boldsymbol{b} || \cos{\theta} ) \boldsymbol{\hat{a}} $$

괄호 안은 벡터 p의 크기를 나타내는 성분이고, 단위벡터 a는 벡터 p의 방향을 나타내는 성분이다.

여기서, 벡터 a와 벡터 b의 내적 공식을 다음과 같이 쓸 수 있다.

$$ \boldsymbol{a}^T \boldsymbol{b} = || \boldsymbol{a} || \ || \boldsymbol{b} || \cos{\theta}$$

따라서, $\cos{\theta}$는 다음과 같다.

$$  \because \ \ \cos{\theta} = \frac{\boldsymbol{a}^T \boldsymbol{b}}{ || \boldsymbol{a} || \ || \boldsymbol{b} ||}$$

이것을 다시 벡터 p 식에 대입하면

$$ \boldsymbol{p} = \left( || \boldsymbol{b} || \frac{\boldsymbol{a}^T \boldsymbol{b}}{ || \boldsymbol{a} || \ || \boldsymbol{b} ||} \right) \boldsymbol{\hat{a}} $$

여기서, 단위 벡터 a는 다음 식을 만족한다.

$$ \because \ \  \boldsymbol{\hat{a}} = \frac{\boldsymbol{a}}{|| \boldsymbol{a} ||} $$

따라서, 다시 대입해주면

$$ \boldsymbol{p} = \left( \frac{\boldsymbol{a}^T \boldsymbol{b}}{||\boldsymbol{a}||} \right) \frac{ \boldsymbol{a}}{|| \boldsymbol{a} || } $$

$$ \boldsymbol{p} = \left( \frac{\boldsymbol{a}^T \boldsymbol{b}}{||\boldsymbol{a}||^2} \right) \boldsymbol{a} $$

$$ \boldsymbol{p} = \left( \frac{\boldsymbol{a}^T \boldsymbol{b}}{\boldsymbol{a}^T \boldsymbol{a}} \right) \boldsymbol{a} $$ $$ \boldsymbol{p} = x \boldsymbol{a} $$

따라서, 이런식으로 식이 성립함을 증명하였다.

 

또는,

$$ | \vec{p} |=  | \vec{b} | \cos{\theta} $$

이고

$$ \vec{a} \cdot \vec{b} = | \vec{a} | | \vec{b} | \cos{\theta} $$

$$ | \vec{p} |=  | \vec{b} | \cos{\theta} = \frac{ \vec{a} \cdot \vec{b} }{|\vec{a}|}$$

$$ | \vec{p} |=  | \vec{b} | \cos{\theta} = \frac{ \vec{a} \cdot \vec{b} }{|\vec{a}|} = \left( \frac{\boldsymbol{a}^T \boldsymbol{b}}{\boldsymbol{a}^T \boldsymbol{a}} \right) = x$$


n차원 벡터의 투영행렬(Projection Matrix)

이제 위에서 벡터에 대해 정리한 식을 행렬에 대한식으로 정리해보자.

즉, 투영 행렬(Projection Matrix)로 표현해보자.

$$ \boldsymbol{p} = x \boldsymbol{a} $$

$$ \boldsymbol{p} = \left( \frac{\boldsymbol{a}^T \boldsymbol{b}}{\boldsymbol{a}^T \boldsymbol{a}} \right) \boldsymbol{a} $$

$$ \boldsymbol{p} = \left( \frac{\boldsymbol{a}^T \boldsymbol{a}}{\boldsymbol{a}^T \boldsymbol{a}} \right) \boldsymbol{b} $$

$$ \boldsymbol{p} = \left( \frac{\boldsymbol{a} \boldsymbol{a}^T}{\boldsymbol{a}^T \boldsymbol{a}} \right) \boldsymbol{b} $$

$$ \boldsymbol{p} =y \boldsymbol{b} $$

위 식을 봐보자. 만일, 벡터 a의 길이가 2배가 된다해보자. y에서 분자에도 a가 2개있고 각각 2배씩되고 분모에서도 a가 2개 있고 각각 2배씩 되서 식은 원래 그대로가 된다. 하지만, 벡터 b의 길이가 2배가 되면 벡터 p의 길이도 2배가 될 것이다.

따라서, 위 식에서 a는 p에 어떠한 영향을 미치지 못한다.

 

결국 벡터 b가 어떤 매개체에 의해서 벡터 a로 투영시키는 것이고, 위식에서 보이다시피 그 매개체가 바로 y이며 y가 바로 투영행렬(Projectio Matrix)이다. y가 투영행렬이고, 투영행렬은 P로 표시한다.

$$ \boldsymbol{p} = P \boldsymbol{a} $$

$$ \color{red} P = \frac{\boldsymbol{a} \boldsymbol{a}^T}{\boldsymbol{a}^T \boldsymbol{a}}$$

위 식에서 분자는 column vector x row vector이므로 행렬이 만들어지고, 분모는 row vector x column vector이므로 상수가 된다.

따라서, 행렬 P는 벡터 b에 곱해줌으로써 벡터 a로 투영시키는 투영행렬이 된다.

벡터 a와 벡터 b가 n차원이더라도 성립한다.


1차원 투영행렬의 특징

먼저 한가지 개념을 이해하고 가야하는데,

어떤 행렬 A에 벡터 x를 곱하는게 무슨 의미일까?

바로 A에 곱해진 벡터 x가 A의 column space에 안착(landing)하는 것이다.

$$ \underset{A}{\begin{bmatrix} 1 & 1 \\ 2 & 3 \end{bmatrix}} \underset{x}{\begin{bmatrix} 4 \\ 7 \end{bmatrix}} = 4 \underset{col1}{\begin{bmatrix} 1 \\ 2 \end{bmatrix}} + 7 \underset{col2}{\begin{bmatrix} 1 \\ 3 \end{bmatrix}} = \underset{b}{\begin{bmatrix} 11 \\ 29 \end{bmatrix}} $$

위 식에서 행렬 A에 벡터 x를 곱할 때 column vector에 x의 각 원소들을 곱하여 더하는 선형조합 연산을 하게되고, x의 원소들은 각 벡터에 곱해지는 상수가 된다. 따라서, x의 요소가 column space안으로 들어간다고 보면된다.

 

이제 투영행렬을 다시 생각해보자.

$$ P = \frac{\boldsymbol{a} \boldsymbol{a}^T}{\boldsymbol{a}^T \boldsymbol{a}}$$

먼저, 투영행렬은 column vector x row vector 형태의 행렬이기 때문에 반드시 Rank=1 행렬이 된다.

그리고 당연히 대칭행렬(Symmetric Matrix)이 될 것이다.

$$ P^T = P $$

또한 $\boldsymbol{a} \boldsymbol{a}^T$의 곱으로 만들어 졌기 때문에 벡터 a가 행렬 P의 column space의 기저(basis)가 된다.

따라서, 투영행렬 P의 column space는 벡터 a를 지나가는 직선(Line)이 된다.

 

그리고 만일, 투영행렬 P를 두번 곱하여 두번 투영하면 어떻게 될까?

변하지 않을 것이다. 왜냐하면 벡터 b를 벡터 a에 투영하여 벡터 p가 됬다고 해보자. 여기서 벡터 p를 벡터 a에 한번더 투영하면 자기자신 그대로가 될 것이다.

$$ P^2 = P $$

 

요약하면 다음과 같다.

 

투영행렬의 특징

  • Rank = 1
  • 대칭 행렬
  • 투영행렬의 column space의 기저는 벡터 a이며 column space는 벡터 a를 지나가는 직선
  • P의 제곱은 P와 같음

N차원 벡터 투영(N-Dimensional-Vector Projection)

이번에는 2차원 벡터 투영이 아닌 N차원 벡터 투영을 배워보자.

 

투영을 왜 배울까?

맨 위에서 Ax=b에서 overdetermined case에 대해 공부했었다.

이때, 정확한 해는 못구하더라도 최적해, 가장 근접한해를 구했었다. 바로 이때 필요한게 투영행렬이다.

 

Ax=b에서 Ax의 결과는 항상 A의 column space에 존재한다. 이때, b가 A의 column space에 존재하지 않는다면 정확한 해를 구할 수 없기 때문에 이를 해결하기 위해 벡터 b를 A의 column space상으로 투영하여 벡터 p에 관한 Ax=p로 해를 구했을 때 나오는 해가 최적해인 것이다. 왜냐하면, 벡터 p가 그나마 A의 column space 상에 있는 벡터중 벡터 b와 가장 유사한 벡터라는 것이다.

여기서 Ax=p에서 x는 진짜 해가 아니기 때문에 $\hat{\boldsymbol{x}}$로 표현해야 한다.

$$ A \hat{\boldsymbol{x}} = p $$

 

벡터 b를 벡터 p로 바꾸는 이유시스템 행렬인 A는 이미 정해진 시스템이기 때문에 바꿀 수 없다. x는 구해야하는 미지수이므로 바꿀 수 있는건 b 뿐이다. 그래서 투영행렬을 이용하여 벡터 b를 해를 구할 수 있는 A의 column space상으로 투영하여 가장 근접한 해를 구하는 것이다.

 

이때, 벡터 p가 벡터 b와의 관계는 다음과 같고 벡터 e는 오차라고 했었다. 그리고 e는 벡터 a와 수직하다 했었는데 이 벡터 a가 속해있는 평면이 A의 column space이므로 결국 벡터 e는 A의 column space와 수직하다.

$$ \boldsymbol{e} = \boldsymbol{b} - \boldsymbol{p} $$

 

$\boldsymbol{a_1}$과 $\boldsymbol{a_2}$는 A의 column space의 기저라 해보자.

그러면 행렬 A의 형태는 다음과 같을 것이다.

$$ A = \begin{bmatrix} & \\ \boldsymbol{a}_1 & \boldsymbol{a}_2 \\ & \end{bmatrix} $$

 

이제 overdetermined case를 풀어보자.

$$ \boldsymbol{e} = \boldsymbol{b} - \boldsymbol{p}  \ \ \bot \ \ A \ column \ space $$

$$ p = A \hat{x} $$

$$ \boldsymbol{e} = \boldsymbol{b} - A \hat{\boldsymbol{x}}  \ \ \bot \ \ A \ column \ space $$

그리고 $\boldsymbol{a_1}$과 $\boldsymbol{a_2}$는 A의 column space의 기저이자 속해있는 벡터이기 때문에 다음 식이 성립한다. 이때, 벡터 내적관계로 수직임을 보이기 위해 column vector를 row vector로 transpose했다.

$$ \boldsymbol{a}_1^T ( \boldsymbol{b} - A \hat{\boldsymbol{x}} ) = 0, \quad \boldsymbol{a}_2^T ( \boldsymbol{b} - A \hat{\boldsymbol{x}} ) = 0 $$

 

이것을 행렬 형태로 바꿔 보자.

$$ \begin{bmatrix} & \boldsymbol{a}_1^T & \\ & \boldsymbol{a}_2^T & \end{bmatrix} (\boldsymbol{b} - A \hat{\boldsymbol{x}} ) = \begin{bmatrix} 0 \\ 0 \end{bmatrix} $$

$$ A^T ( \boldsymbol{b} - A \hat{\boldsymbol{x}}) = 0 $$

$$ A^T A \hat{\boldsymbol{x}} = A^T \boldsymbol{b} $$

위 식은 맨위에서 Ax=b를 풀 때 나왔던 식이다.

$$ A^T \boldsymbol{e} = 0 $$

이 식을 다시 봐보자. Left Null Space의 형태와 비슷한 것을 알 수 있다. 따라서, 오차 벡터 e는 행렬 A의 Left Null space에 존재한다. 그리고 애초에 Left Null space는 Column Space와 직교하므로 오차 벡터 e도 Column space와 직교하는 것이다.

$$ \boldsymbol{e} \ \ \rm{in} \ N(A^T) \ \ \bot \ \ C(A) $$

 

다시, 이어서 풀면

$$ A^T A \hat{\boldsymbol{x}} = A^T \boldsymbol{b} $$

$$ \hat{\boldsymbol{x}} = ( A^T A)^{-1} A^T \boldsymbol{b} $$

이제 이것을 벡터 p 식에 대입해보자.

$$ \boldsymbol{p} = A \hat{\boldsymbol{x}} = A (A^T A)^{-1} A^T \boldsymbol{b}$$

$$ \boldsymbol{p} = (A (A^T A)^{-1} A^T ) \boldsymbol{b}$$

그리고 위 식을 잘보면 결국 벡터 p와 벡터 b의 관계를 나타내므로 그 사이에 있는 것은 매개체이자 투영행렬이 된다.

$$ \boldsymbol{p} = P \boldsymbol{b} $$

$$ P = A (A^T A)^{-1} A^T $$

맨처음에 구했던 투영행렬 P는 1차원일 때 구한 투영행렬이다. 위의 식의 투영행렬 P는 n차원에 대한 투영행렬 식이다.

 

그리고 여기서 한가지 의문이 들 수 있는데 투영행렬 식을 더 정리하면 단위행렬이 되는거 아닌가라는 의문이 생긴다.

$$ P = A A^{-1} (A^T)^{-1} A^T =  I $$

이는 특정 조건일 때만 만족하는데, 바로 행렬 A가 정방행렬이면서 역행렬이 존재할 때만 만족한다.

우리는 overdetermined case를 공부하고 있기 때문에 애초에 정방행렬이 아니라 직사각행렬이여서 위 식은 만족하지 않는다.

 

그렇다면, 행렬 A가 정방행렬이면서 역행렬이 존재하면 투영행렬은 단위행렬이되고 이는 무슨 뜻일까?

예를들어, 투영행렬 P가 nxn의 정방행렬이면서 역행렬이 존재하면, 이는 결국 n차원 공간에서 n차원 공간으로 투영한다는 것이다. 이는 투영했을 때 아무런 일도 생기지 않으며 의미가 없게되고 즉, 이것이 단위 행렬을 의미한다.


n차원 투영행렬의 특징

n차원도 1차원과 마찬가지로 대칭행렬인지 확인해보자.

$$ P^T = P $$

$$  \begin{align} P^T &= (A(A^TA)^{-1} A^T )^T \\ & = A^{TT} ((A^T A)^{-1})^T A^T \\ & =A^{TT} ((A^T A)^T)^{-1} A^T \\ &= A^{TT} (A^T A^{TT} )^{-1} A^T \\ &= A(A^T A)^{-1} A^T \end{align}$$

 

이번에는 P의 제곱도 확인해보자.

$$P^2 =P$$

$$ \begin{align} P^2 &= A(A^T A )^{-1} A^T A(A^T A )^{-1} A^T \\  & = A(A^T A)^{-1} (A^T A(A^TA)^{-1}) A^T\\ &= A(A^T A)^{-1} I A^T  \\ & = A(A^T A)^{-1} A^T  = P \end{align} $$ 


결론

우리는 Ax=b의 overdetermined를 해결하는 방법을 배웠고 이를 행렬 적으로 풀기위해 투영행렬을 배우고 투영행렬의 특성 등을 확인하였다. 마지막으로 이러한 투영행렬을 통해 최적해, 근사해를 구하는 방법을 배웠다.