Lecture 15. 부분공간으로의 투영
Projections onto Subspaces — 서술
L6에서 열공간을 정의하면서 이런 상자를 하나 남겨 두었다.
b 가 열공간 밖에 있으면 해가 없다. 그런데 해가 없다면, 열공간 안에서 b 에
가장 가까운 점을 대신 쓰면 어떨까. 이 질문에 답하려면 아직 준비할 것이 남아 있어
뒤에서 다시 다룬다.
아홉 강의가 지났고 준비가 끝났다. 이번 강의에서 그 질문에 답한다.
그리고 L14의 마지막에 남긴 질문 — 벡터를 두 조각으로 갈라야 하는데 그 조각을 실제로
어떻게 구하는가 — 에도 같은 답이 나온다. 두 질문의 답이 하나인 것이 이번 강의의 골자이다.
답의 조건은 놀랄 만큼 단순하다. 오차가 수직이면 된다.
1. 직선 위로의 투영¶
가장 단순한 경우부터 시작한다. a 방향의 직선 위로 b 를 떨어뜨리자.
직선 위의 점은 전부 a 의 배수이므로, 찾는 점은 어떤 수 x^ 에 대해
p=x^a 꼴이다. 그리고 남는 것을 오차라 부른다.
p=x^a,e=b−p=b−x^a 조건은 하나뿐이다. 오차가 직선과 직교할 것.
aTe=0⟺aT(b−x^a)=0 x^ 는 수이므로 밖으로 빼낼 수 있다. 풀면 다음을 얻는다.
aTb−x^aTa=0⟹x^=aTaaTb 분모 aTa 는 수이므로 나눌 수 있다. a=0 이면 0이 아니다
(L14의 (4)). 투영된 점은 다음과 같다.
p=aaTaaTb 
Figure 1:a=(1,2), b=(4,3) 이면 x^=10/5=2 이고 p=(2,4),
e=(2,−1) 이다. 오른쪽은 2절의 이야기이다.
투영행렬이 보인다¶
(4)에서 aTb 는 수이므로 a 앞으로도 뒤로도 옮길 수
있다. 곱하는 순서를 바꿔 묶어 보자.
p=a(aTb)aTa1=aTa(aaT)b b 를 넣으면 투영된 점이 나오는 행렬이 생겼다. 이것을 투영행렬이라 하고 P 로 쓴다.
P=aTaaaT 분자는 L3에서 본 바깥곱이고, 바깥곱은 랭크 1이었다((6)). 수로 나누어도 랭크는
그대로이므로 P 는 랭크 1이다. 직선 하나로 떨어뜨리는 행렬이니 당연한 결과이다.
2. 왜 하필 수직인가¶
1절에서 "오차가 수직일 것"을 조건으로 놓았다. 그런데 우리가 원한 것은 가장 가까운 점이었다.
이 둘이 같은 말인지 확인해야 한다.
직선 위의 아무 점 q 를 잡자. 거리의 제곱을 두 조각으로 나눠 쓴다.
∥b−q∥2=∥(b−p)+(p−q)∥2=∥e+(p−q)∥2 여기서 e 는 a 와 직교하고, p 와 q 는 둘 다 직선 위의 점이라
p−q 도 a 의 배수이다. 그러므로 두 벡터가 서로 직교하고, L14의
(6)에서 가운데 항이 사라진다.
∥b−q∥2=∥e∥2+∥p−q∥2≥∥e∥2 오른쪽 항은 제곱이라 0 이상이고, 0이 되는 것은 q=p 일 때뿐이다.
Figure 1의 오른쪽이 이 계산이다. q=a 로 잡으면
∥b−p∥2+∥p−q∥2=5+5=10=∥b−q∥2 이다.
3. 부분공간으로의 투영 — 정규방정식¶
이제 직선이 아니라 열공간 전체로 떨어뜨린다. A 가 m×n 이고 b∈Rm 일 때
C(A) 안에서 b 에 가장 가까운 점을 찾자.
C(A) 의 점은 전부 A 의 열의 결합이므로 찾는 점은 p=Ax^ 꼴이다.
1절과 달라진 것은 계수가 수 하나에서 벡터 x^∈Rn 으로 바뀐 것뿐이다.
p=Ax^,e=b−Ax^ 조건도 그대로이다. 오차가 열공간 전체와 직교할 것. 그런데 L14에서 열공간과 직교하는
벡터를 전부 모은 것이 좌영공간이라고 했다((14)). 그러므로 조건은
e⊥C(A)⟺e∈N(AT)⟺ATe=0 이다. 여기에 (9)의 e 를 넣고 전개하면 끝난다.
AT(b−Ax^)=0⟹ATAx^=ATb 이것을 정규방정식(normal equation)이라 한다.
A 의 열이 독립이면 ATA 가 가역이므로(L14의 Theorem 5)
x^ 가 하나로 정해진다.
x^=(ATA)−1ATb 예로 확인¶
A=⎣⎡101011⎦⎤,b=⎣⎡322⎦⎤ 두 열이 독립이므로 정규방정식을 세울 수 있다.
ATA=[2112],ATb=[54] [2112]x^=[54]⟹x^=[21] p=Ax^=⎣⎡213⎦⎤,e=b−p=⎣⎡11−1⎦⎤ 정말 수직인지 열마다 확인하면 된다. 1열 (1,0,1) 과의 내적은 1+0−1=0,
2열 (0,1,1) 과의 내적은 0+1−1=0 이다.

Figure 2:b 는 평면 밖에 있고 p 는 평면 위에 있으며, 오차는 평면에서 곧게 솟아 있다.
이것도 가장 가까운 점인가¶
2절의 논증이 그대로 옮겨 온다. C(A) 안의 아무 점 Ay 에 대해
∥b−Ay∥2=∥e+(p−Ay)∥2=∥e∥2+∥p−Ay∥2 이다. p−Ay 는 열공간 안에 있고 e 는 열공간과 직교하므로 가운데 항이
사라지기 때문이다. 따라서 p 가 유일한 최소점이다.
4. 투영행렬¶
(12)의 식을 p=Ax^ 에 넣으면 b 에서 p 로 가는 행렬이 나온다.
p=A(ATA)−1ATb⟹P=A(ATA)−1AT n=1 이면 A 가 열 하나짜리 a 이고 ATA 가 수 aTa 이므로
(6)의 꼴로 되돌아간다.
성질 1 — 대칭이다¶
PT=(A(ATA)−1AT)T=A((ATA)−1)TAT L5의 전치 규칙을 두 번 쓰면 바깥의 A 와 AT 가 제자리로 돌아온다.
가운데는 L5의 (12)에 의해 전치와 역행렬의 순서를 바꿀 수 있다.
((ATA)−1)T=((ATA)T)−1=(ATA)−1 마지막 등호는 ATA 가 대칭이라 전치해도 그대로이기 때문이다. 따라서
PT=P 이다. L5에서 RTR 이 언제나 대칭이라고 해 둔 것이 여기서 다시 쓰였다.
성질 2 — 두 번 해도 그대로이다¶
P2=A(ATA)−1=IATA(ATA)−1AT=A(ATA)−1AT=P 가운데가 통째로 I 가 되어 사라진다.
성질 3 — 가역이 아니다¶
P 는 정보를 버리는 행렬이다. b 의 열공간 성분만 남기고 나머지를 지우므로,
서로 다른 b 두 개가 같은 p 로 갈 수 있다. 실제로 C(P)=C(A) 이므로
rankP=r 이고, r<m 이면 특이하다.
5. 두 극단, 그리고 I−P¶
P 를 이해하는 가장 빠른 길은 양쪽 끝을 확인하는 것이다.
b 가 이미 열공간 안에 있으면 b=Ay 인 y 가 있으므로
Pb=A(ATA)−1ATAy=Ay=b 이고 e=0 이다. 이때 Ax=b 에 진짜 해가 있고, x^ 가 바로 그 해이다.
b 가 좌영공간에 있으면 ATb=0 이므로
Pb=A(ATA)−1ATb=0 이고 e=b 이다. 열공간과 완전히 수직이라 그림자가 아예 지지 않는다.

Figure 3:양쪽 끝과, 두 번 투영해도 달라지지 않는다는 사실.
I−P 도 투영행렬이다¶
e=b−p=(I−P)b 이다. 이 행렬도 대칭이고 멱등이다.
(I−P)T=I−PT=I−P (I−P)2=I−2P+P2=I−2P+P=I−P P 가 C(A) 로 투영하듯 I−P 는 N(AT) 로 투영한다.
AT(I−P)b=ATe=0 이므로 결과가 언제나 좌영공간에
들어가기 때문이다.
L14의 숙제를 여기서 끝낸다¶
정리하면 아무 b∈Rm 이나 다음과 같이 갈린다.
b=∈C(A)Pb+∈N(AT)(I−P)b L14의 Theorem 3에서 이런 분해가 존재하고 유일하다는 것은 이미 증명했다.
그때 남긴 물음이 "그러면 그 조각을 어떻게 구하는가"였고, 답이 P 이다.
존재를 증명하는 일과 구하는 방법을 아는 일은 다르고, 이제 둘 다 갖췄다.
마치며...¶
이번 강의에서 다룬 것을 정리하면 다음과 같다.
| 대상 | 내용 |
|---|
| 투영의 조건 | 오차가 수직일 것. 그것이 곧 가장 가깝다는 뜻이다 |
| 직선 위로 | x^=aTaaTb, P=aTaaaT (랭크 1) |
| 정규방정식 | ATAx^=ATb — "수직이다"를 번역한 것 |
| 투영행렬 | P=A(ATA)−1AT. 약분하면 안 된다 |
| P 의 성질 | PT=P, P2=P, rankP=r |
| 두 극단 | 열공간 안이면 p=b, 좌영공간이면 p=0 |
| I−P | 좌영공간으로의 투영. b=Pb+(I−P)b |
아홉 강의 전에 던져 둔 질문에 답했다. b 가 열공간 밖에 있으면 열공간 위에서 가장
가까운 점을 대신 쓰고, 그 점을 찾는 조건은 오차가 수직일 것 하나뿐이었다.
그런데 아직 부족한 것이 있다. 우리는 "가장 가까운 점"을 구하는 방법을 얻었지만
그것이 무슨 쓸모가 있는지는 아직 보지 못했다. 벡터 하나를 평면에 떨어뜨린 것이 전부였다.
다음 강의에서 이 도구가 통계학 전체를 떠받치고 있다는 것을 보게 된다. 표에 찍힌 점들에
직선을 맞출 때마다, 사실은 방금 배운 투영을 하고 있었던 것이다.
이번 강의의 내용을 파이썬으로 확인해 보려면 L15 실습 노트북으로 넘어가면 된다.
P 를 직접 만들어 P2=P 와 PT=P 를 확인하고, b 를 여러 개 넣어
오차가 언제나 수직인지 보며, 회전시킬 수 있는 3차원 그림으로 직각을 여러 각도에서 볼 수 있다.