2차원 벡터 투영
투영 (projection)은 하나의 벡터를 다른 벡터로 옮겨 표현하는 것을 뜻합니다.
햇빛에 의해 땅에 비춰진 그림자라고 생각하면 쉽습니다.
벡터 a는 1차원 공간인 line입니다.
벡터 b를 a에 투영시켰을 때 그 점이 벡터 a에 위치하는 지점을 찾아야합니다.
중요한 점은 벡터 b의 끝과 가장 가까운 곳을 찾아야 합니다.
그 점은 벡터 b의 끝에서 벡터 a에 수직으로 선을 그렸을 때 만나는 곳입니다.
이곳이 바로 그림 1에서 $\mathbf{p}$입니다.
$\mathbf{e}$는 벡터 b와 p의 차이를 나타냅니다.
즉, 투영시키기 전과 후가 거리로 얼마나 차이나는지 나타냅니다.
$\mathbf{e}$는 벡터 a와 직교합니다.
중요한 것은 벡터 b, e, p가 직각 삼각형을 이룹니다.
이를 활용할 방법을 생각하겠습니다.
벡터 a와 벡터 e는 직교합니다.
즉, $\mathbf{a}^{T}(\mathbf{b} - x\mathbf{a}) = 0$입니다.
벡터 a와 e의 내적은 수직이기 때문에 0입니다.
식을 풀어보면
$\mathbf{a}^{T}(\mathbf{b} - x\mathbf{a}) = 0 $
-> $\mathbf{a}^{T}\mathbf{b} - x\mathbf{a}^{T}\mathbf{a} = 0 $
-> $x\mathbf{a}^{T}\mathbf{a} = \mathbf{a}^{T}\mathbf{b} $
-> $x = \frac{\mathbf{a}^{T}\mathbf{b}}{\mathbf{a}^{T}\mathbf{a}} $
$\mathbf{a}^{T}\mathbf{b}$와 $\mathbf{a}^{T}\mathbf{a}$은 내적이며 상수입니다.
투영 행렬
위의 식을 투영 행렬로 표현하겠씁니다.
$\mathbf{p} = \mathbf{a}x$, $x = \frac{\mathbf{a}^{T}\mathbf{b}}{\mathbf{a}^{T}\mathbf{a}}$
$\mathbf{p} = \mathbf{a}\frac{\mathbf{a}^{T}\mathbf{b}}{\mathbf{a}^{T}\mathbf{a}}$
$\mathbf{p} = P\mathbf{b}$
$P = \frac{\mathbf{a}\mathbf{a}^{T}}{\mathbf{a}^{T}\mathbf{a}}$
여기서 대분자 P가 투영 행렬입니다.
분수식 앞의 벡터 a를 분자로 놓고, 벡터 b를 따로 떼어서 생각했습니다.
column vector와 row vector 순으로 곱하면 행렬이 되는 것을 기억합니다.
row vecotr와 column vector순으로 곱하면 상수입니다.
따라서 P는 행렬이 되고 벡터 b를 벡터 a에 투영시키는 투영 행렬입니다.
투영 행렬의 특징
Column space를 다시 상기합니다.
임의의 행렬 A의 column vector들의 선형 결합으로 만들 수 있는 공간을 column space라고 했습니다.
행렬 A에 벡터 x를 곱하면 어떤 의미일지 생각해봅니다.
벡터 x의 원소들은 column vector 선형 결합 연산에 사용되고 column vecotor의 선형 결합으로 표현되기 때문에 column space 안으로 들어갑니다.
투영 행렬 P의 column space는 벡터 a를 지나는 line입니다.
이 투영 행렬의 rank는 1입니다.
column vector와 row vector 순으로 곱하면 반드시 rank 1 행렬이 만들어지기 떄문입니다.
$\mathbf{a}\mathbf{a}^{T}$로 만들어졌기 때문에 rank는 1이고 벡터 a가 행렬 P의 column space의 기저가 됩니다.
투영 행렬 P는 똑같은 벡터 a의 column vector와 row vecotr순으로 곱하여 만들어졌기 때문에 대칭행렬입니다,
$P = P^{T}$
정리하면
투영 행렬의 rank는 1이며, 대칭 행렬이고, $P^{2} = P$입니다.
Why Projection?
$A\mathbf{x} = \mathbf{b}$가 해를 갖지 않을 때
$A\hat{\mathbf{x}} = \mathbf{p}$라는 가장 근접한 해를 구하기 위해서입니다.
$A$는 정해진 시스템이라 바꿀 수 없고, 벡터 x는 앞으로 구할 해이니 벡터 b를 바꿔야합니다.
A의 column space에서 가장 근접한 벡터로 바꾸는데 이것이 바로 투영한 벡터 p입니다.
proj of b onto column space
평면은 행렬 A의 column space입니다.
기저는 $a_{1}$과 $a_{2}$이며, 평면 위에 존재합니다.
$A = \begin{bmatrix}
| & | \\
\mathbf{a_1} & \mathbf{a_2} & \\
| & |
\end{bmatrix} $
벡터 b는 column space 평면 위에 존재하지 않습니다.
따라서 해가 존재하지 않습니다.
벡터 b와 가장 근접한 벡터로 최대한 만족시키는 해를 찾아야합니다.
이 벡터가 바로 벡터 p이며 벡터 p는 $a_{1}$과 $a_{2}$의 선형 결합으로 나타날 수 있습니다.
$\mathbf{p} = A\hat{\mathbf{x}}$, Find $\hat{mathbf{x}$
Key :
$\mathbf{b} - A\hat{\mathbf{x}}$는 평면과 수직입니다.
$\mathbf{a_{1}}^{T}(\mathbf{b} - A\hat{\mathbf{x}}) = 0 $
$\mathbf{a_{2}}^{T}(\mathbf{b} - A\hat{\mathbf{x}}) = 0$
$\begin{bmatrix}
\mathbf{a_{1}}^{T}\\ \mathbf{a_{2}}^{T}
\end{bmatrix}(\mathbf{b} - A\hat{\mathbf{x}}) = \begin{bmatrix}
0\\0
\end{bmatrix} $
$A^{T}(\mathbf{b} - A\hat{\mathbf{x}}) = 0$
$A^{T}A\hat{\mathbf{x}} = A^{T}\mathbf{b}$
Left null space의 형태입니다.
오차 벡터 $\mathbf{e} = \mathbf{b} - A\hat{\mathbf{x}}$는 행렬 A에 대한 left null space에 존재합니다.
Left null space는 column space와 직교하므로
$\mathbf{e}$ in $N(A^{T})$
$\mathbf{e}$ $\perp $ $C(A)$
다시 돌아와서 해를 구하면
$\hat{\mathbf{x}} =(A^{T}A)^{-1}A^{T}\mathbf{b} $
$\mathbf{p} = A\hat{\mathbf{x}} = A(A^{T}A)^{-1}A^{T}\mathbf{b} $
$P = A(A^{T}A)^{-1}A^{T} $
$\mathbf{p} = P\mathbf{b} $
P 행렬을 구하는 식을 보고 전개해봅니다.
$P = A(A^{T}A)^{-1}A^{T} $
$P = AA^{-1}(A^{T})^{-1}A^{T} = I $
단위 행렬이 되었습니다.
이 전개식을 할 수 있는 조건은 행렬 A가 정방행렬이고 역행렬이 존재할 때 입니다.
처음의 가정이었던 A가 직사각 행렬일 경우엔 성립하지 않습니다.
만약 P가 정방행렬이며 역행렬이 존재한다면, 투영시켜도 아무 일도 일어나지 않습니다.
투영은 뒤에 최소자승법과 연결되므로 굉장히 중요한 개념입니다.
'선형대수(Gilbert Strang)' 카테고리의 다른 글
Lecture 14: Orthogonal vectors and subspaces (0) | 2019.12.11 |
---|---|
Lecture 12: Graphs, networks, incidence matrices (0) | 2019.12.04 |
Lecture 11: Matrix spaces; rank 1; small world graphs (0) | 2019.12.02 |
Lecture 10: The four fundamental subspaces (0) | 2019.11.29 |
Lecture 9: Independence, basis, and dimension (0) | 2019.11.28 |
댓글