■ 투영행렬(projection matrix)을 알기 위해선 먼저 해가 존재하지 않는 선형연립방정식의 해를 구하는 방법을 알아야 한다. 정확히는 애초에 해가 없으므로 정확한 해를 구한다기 보다는 가장 근사한 해를 구하는 방법이다.
- 이렇게 정확한 해가 없는 상태에서 가장 근사한 해를 구하는 것은 최소자승법(least square method), 투영행렬과 관련이 있다.
1. Solving Ax=b when there is no solutin
■ Ax=b에서 행렬 A의 열공간에 우변 b가 존재하면 가해 조건을 만족하므로 해를 구할 수 있다.
■ 반면, Ax=b에서 행렬 A의 열공간에 우변 b가 존재하지 않는다면 가해 조건을 만족하지 않으므로 해가 존재하지 않는 경우로 분류된다.
■ m×n 행렬 A에서 Ax=b는 미지수의 개수 n보다 방정식의 개수 m이 더 많은 경우 (m>n), 행렬 A의 rank는 m보다 작고 최소 n이 된다. 이런 경우 열벡터의 차원이 rank보다 작기 때문에 Ax=b를 만족하는 해 mathbfx가 존재하지 않을 수 있다.
■ 이렇게 미지수보다 방정식의 수가 많은 경우 (m>n)를 'overdetermined', 미지수와 방정식의 수가 같은 경우 (m=n)를 'determined', 방정식이 미지수보다 적은 경우 (m<n)를 'underdetermined'라고 부른다.
■ 예를 들어
- overdetermined인 경우는 다음과 같으며, 대부분의 경우 해가 존재하지 않는다.
Ax=b→[235162487513][x1x2x3]=[10−3157](m=4>n=3)
- determined인 경우는 다음과 같으며, '정확한 해'가 존재한다.
Ax=b→[324571628][x1x2x3]=[9−512](m=3=n=3)
- underdetermined인 경우는 다음과 같으며 무수히 많은 해를 갖는다. 그리고 A가 full rank라면 '유일해'를 갖는다.
Ax=b→[413256][x1x2x3]=[8−2](m=2<n=3)
■ overdetermined인 경우 m>n, 해가 존재하지 않는 이유는 방정식의 개수가 미지수보다 많기 때문이다. 즉, A가 m×n이기 때문이다.
■ 그러므로 가장 간단한 해결책은 m×n을 n×n으로 바꾸는 것이며, n×n으로 만드는 간단한 방법은 AT를 A에 곱하는 것이다.
- AT는 n×m, A는 m×n이므로 ATA는 n×n
■ ATA는 n×n이므로 정방행렬(또는 정사각행렬)이며 대칭행렬(symmetric matrix)이다.
- ATA)T=ATATT=ATA가 성립하므로 ATA는 대칭행렬이다.
- 대칭행렬은 A=AT를 만족하는 행렬이다. ATA 자체를 하나의 A로 본다면 A=AT임을 알 수 있다.
■ 만약, ATA가 full rank를 갖는다면 ATA는 역행렬이 존재한다. 즉, 가역행렬이다.
- ATA가 full rank를 가지려면, 원래 행렬 A의 모든 열들의 관계가 독립이면 된다.
■ 정리하면, ATA는 정방행렬이자 대칭행렬이며, A의 모든 열들이 독립이면 ATA는 역행렬이 존재한다.
■ Ax=b,(m>n)은 A가 정방행렬이 아니므로 역행렬을 구할 수 없다. 즉, x=A−1b로 해를 구할 수 없다.
■ 이 상황에서 근사해를 구하는 방법은 다음과 같이 AT를 양변에 곱해주는 것이다.
ATAˆx=ATb
- 양변에 같은 행렬을 곱했으므로 식은 성립한다.
■ ATAˆx=ATb면, 이제 해는 근사해인 ˆx이며, ˆx가 의미하는 것은 최적해(optimal solution)이다. ˆx는 식을 만족시키는 해는 아니지만, A에 존재하는 모든 방정식을 최대한 만족시키는 해(solution)이다.
■ ATA가 full rank라면, 역행렬이 존재하므로 다음과 같이 ATA의 역행렬을 양변에 곱해주면 최종적인 해( 해가 존재하지 않는 Ax=b에 대한 최적해)를 구할 수 있다.
ATAˆx=ATb
(ATA)−1ATAˆx=(ATA)−1ATb
ˆx=(ATA)−1ATb
■ 이것이 왜 최소자승법과 관련이 있냐면, 예를 들어 다음과 같은 데이터가 있을 때, 데이터 포인트들과 가장 근사한 직선 y=ax+b의 a,b를 찾는다면

- 최소제곱은 '가장 가깝거나', '오차가 가장 적은 것'을 의미한다.
- 그러므로 최소제곱직선은 가장 가까운(근사한) 직선, 오차가 가정 적은 직선이라고 할 수 있다.
- 이 예시에서 최소제곱직선 y=ax+b를 결정하기 위해 a,b를 찾는데, 이 a와 b를 '최소제곱해'라고 한다.
■ 주어진 정보 (1,1),(2,3),(3,4),(4,3)을 이용해 a,b를 찾아야 한다. y=ax+b에 (1,1),(2,3),(3,4),(4,3)을 대입하면 다음과 같은 선형연립방정식이 생긴다.

이를 행렬로 표현하면 다음과 같이 Ax=b의 형태가 되며, A의 크기는 m>n이 된다.

문제를 풀기 위해 양변에 AT를 곱하면 다음과 같다.

정방행렬 ATA의 행렬식 det(ATA)≠0이므로 ATA는 가역행렬이다. 그러므로 최적해는 다음과 같다.

■ 단, 이 예시에서 최적해를 구할 수 있었던 이유는 행렬 A의 모든 열이 독립이므로 ATA의 역행렬이 존재할 수 있었다.
■ 즉, 행렬 A의 열들이 종속 관계를 갖는다면 최적해를 구할 수 없다.
■ 그러므로 overdetermined에서 최적해를 구할 수 있으려면 ATA가 가역행렬이어야 하며, 이는 행렬 A의 모든 열이 독립. 즉, 행렬 A의 계수(rank)가 n과 같아야 한다. (= full rank여야 한다.)
■ 또한, A의 rank가 n이라면, ATA의 rank도 n인 것을 알 수 있다. rankA=rankATA=n 그러므로 ATA의 영공간은 A의 영공간과 같다.
■ 정리하면, m>n인 A에 대해서 Ax=b의 해를 구하지 못할 때, 최적해를 구하기 위해 ATAˆx=ATb를 풀어야 하는데, 이를 풀기 위해서는
- ATA가 반드시 가역행렬이어야 하며, 이는 ATA가 full rank여야 함을 의미한다.
- ATA가 full rank가 되려면, 원래 행렬 A의 열들이 선형 독립이어야 한다. 즉, A의 rank가 n이어야 한다.
- 즉, rank(ATA)=rank(A)가 되며, 퇴화차수 정리에 의해 두 행렬의 영공간이 같음을 알 수 있다. N(ATA)=N(A)
- 이 예시에서는 rank는 2이고 전체 공간은 2차원이므로 퇴화차수 정리에 의해 영공간은 0차원이다. 즉, 이 예시에서 ATA와 A의 영공간에는 영벡터만 존재함을 의미한다. N(ATA)=N(A)={0}
2. 2D Vector Projection(2차원 벡터 투영)
■ 벡터 투영은 하나의 벡터를 다른 벡터에 투영(=사영)(projection)시키는 것을 의미한다.
■ 벡터를 투영하는 이유는 다양하며, 그 중 하나로 '벡터를 다른 벡터(또는 직선, 평면 등)에 대해 평행 성분과 수직 성분으로 분해하기 위하여 사용하는 경우가 있다.
■ 예를 들어 다음과 같이 평행하지 않은 두 벡터가 존재한다고 했을 때

■ 벡터 a에서 벡터 b의 종점과 가장 가까운 지점을 찾는다. 그 지점은 다음과 같이 바로 벡터 a와 벡터 b의 종점이 수직인 지점이다.

■ 벡터 a와 벡터 b의 종점이 수직인 지점이 시점이고 b의 종점이 종점인 벡터를 c라고 했을 때, b를 서로 직교하는 벡터 a와 c의 벡터 합으로 분해할 수 있다. b=a+c
■ 이때, b를 a 위로의 사영을 시킨 벡터를 정사영 벡터라고 하며, 이 정사영 벡터가 a 방향으로 '평행'한 성분이다. 그리고 a에 수직인 성분은 b에서 평행 성분인 정사영 벡터를 뺀 나머지로, 벡터 c가 이에 해당된다.
■ 다시 돌아와서, 다음과 같이 a 위에서 b에 가장 가까운 점을 p라고 할 때, 원점에서 p까지의 벡터를 p라고 하자. 벡터 p는 벡터 b를 벡터 a에 투영(사영)시킨 벡터이다.

■ 그리고 벡터 a에 수직인 성분 벡터를 e라고 하자. 이 e는 벡터 b와 투영시켰을 때의 벡터 p 사이의 오차(error)를 의미한다.
- 여기서의 오차는 투영 전과 투영 후, 거리상으로 얼마나 차이나는지
■ 벡터 e는 투영 대상인 벡터 a와 직교(orthogonal)하며, e=b−p로 나타낼 수 있다. 이 식을 이항하여 p에 대한 식으로 나타내면 p=b−e가 된다. 즉, 벡터 b에서 오차 e만큼 뺀 것은 투영(사영) 벡터 p가 되는 것이다.
■ 위의 그림에서 벡터 p는 벡터 a와 평행 관계임을 알 수 있다. 즉, 벡터 a의 스칼라배가 벡터 p이고 벡터 p의 스칼라배가 벡터 a이다. 스케일 상수를 x라고 한다면 벡터 p=x⋅a로 나타낼 수 있다.
■ 여기서 스케일 상수 x를 찾는 방법은, 벡터 a와 e가 수직 관계임을 이용하면 된다. 즉, 벡터 a와 e의 내적 결과가 0이라는 점과 벡터 e는 e=b−p로 나타낼 수 있음을 이용하면 된다. 그러면 다음 식이 성립한다.
aT(b−p)=aT(b−xa)=0
- 여기서 a를 전치한 aT는 행벡터, e=b−xa는 열벡터
■ aT(b−p)=aT(b−xa)=0를 전개해서, 스케일 상수 x에 대한 식으로 정리하면 다음과 같다.
aT(b−xa)=0
aTb−xaTa=0
xaTa=aTb
x=aTbaTa,p=ax=aTbaTaa
- 여기서 aTbaTa는 내적이므로 결과 값은 상수이다.
- 그러므로 x는 벡터 a에 곱해지는 스칼라가 된다.
cf) 참고로 투영 벡터에 대한 식에는 코사인이 내장되어 있다. aTb=‖a‖‖b‖cos(θ)
2.1 projection matrix
■ p=aaTbaTa에서 벡터 b의 길이가 2배가 된다면, 벡터 p의 길이도 2배가 될 것이다.
■ 만약, 벡터 a의 길이가 2배가 된다면, 투영 벡터의 식의 a를 2a라고 생각하면, 분자와 분모의 2는 모두 소거되어 원래의 식과 같아진다. 즉, 벡터 a는 아무리 늘리거나 줄여도 투영 벡터 p에는 영향을 미치지 않는다.
■ p=aaTbaTa에서 P=aaTaTa라고 한다면, 투영 벡터 p=Pb로 나타낼 수 있으며, P는 분모가 벡터의 내적이므로 상수, 분자는 열벡터 × 행벡터 순으로 곱해져 있으므로 행렬로 볼 수 있다. 이런 P를 투영행려(projection matrix)라고 부른다.
■ 그러므로 벡터 b는 투영행렬에 의해 벡터 a로 투영되며, 투영행렬이 바로 벡터 b를 벡터 a로 투영시키는 매개체라고 할 수 있다.
2.1.1 projection matrix == symmetric matrix
■ 어떤 행렬 A가 있을 때, A의 열벡터들의 선형 결합으로 만든 공간을 행렬 A의 열공간 C(A)라고 한다.
■ 행렬 A에 임의의 벡터 x를 곱한 결과도 행렬 A의 열공간에 존재하는데, 이는 다음과 같이 행렬과 임의의 벡터를 곱하는 Ax도 열벡터들의 선형 결합이기 때문이다.

■ p=Pb도 마찬가지로 행렬 P에 벡터 b가 곱해진 형태이다. 즉, Pb도 P의 열공간에 존재한다.
■ 그리고 투영행렬 P의 열공간은 벡터 a를 지나가는 직선이 된다. 그 이유는 투영행렬 P는 aaT로. 즉, 열벡터 × 행벡터의 순서로 곱해졌기 때문에 rank = 1인 행렬이다.
■ 열공간의 차원은 1이며, aaT이므로 그 위에 벡터 a가 있는 것으로 볼 수 있다. 즉, 벡터 a는 투영행렬 P의 열공간의 기저라고 할 수 있다.
■ 그리고 투영행렬 P는 벡터 a의 열벡터 × 행벡터 순으로 곱하여 만들어진 행렬이므로 대칭행렬이다. PT=P
■ 만약, 투영을 두 번하면 어떻게 될까(= p=P2b인 상황) 결과는 동일하다.(투영 벡터 p는 변하지 않는다.)
- 다음과 같은 그림으로 이해하면 될 것 같다.
- b를 a 위로의 사영시키면 벡터 p가 만들어질 것이다.
- 여기서 투영을 추가로 한다고 해도 투영 벡터 p가 변하지 않는다. 추가로 투영해도 결국, 투영 벡터 p를 변화시킬 수 있는 b가 바뀌지 않았으니 달라지는 것은 없다.
- 즉, 두 번 투영해도 첫 번째 투영에서 얻은 것과 같은 투영 벡터를 얻는다.

■ 이를 통해 할 수 있는 것은 P2=P이다.
■ 정리하면, 투영행렬 P는 대칭행렬(PT=P)이며 rank = 1인 행렬이다. 그리고 P의 제곱은 P와 같으며 P의 영공간은 벡터 a를 지나가는 직선이다.
3. N - Dimensional Vector Projection(N차원 벡터 투영)
■ 투영을 하는 이유는 해가 없는 Ax=b를 다루기 위해서이다.
■ Ax는 A의 열벡터들의 선형 결합으로 볼 수 있으므로 Ax는 항상 A의 열공간에 있을 것이다.
■ 그렇다면, Ax=b가 성립하기 위해서는 b도 A의 열공간에 존재해야 한다.
■ 해가 없는 경우는 우변 b는 A의 열공간에 존재하지 않기 때문에 발생한다. 그래서 투영을 통해 b를 행렬 A의 열공간에서 가장 가까운(=근사한) 벡터로 바꾸는 것이다.
■ 가장 가까운 벡터를 p라고 했을 때, 해가 없는 경우 Aˆx=p를 풀면 된다.
- p는 b를 A의 열공간으로 투영한 벡터이다.
- ˆx는 x가 아닌, 가능한 최선의 x이다.
■ 예를 들어 3차원 공간에 평면이 있고, 평면에 없는 벡터 b가 있다고 했을 때, b를 평면에 투영하자.
■ 투영하는 방법은 2D vector projection과 동일하게 벡터 b와 가장 가까운 점을 평면에서 찾으면 된다. 즉, 수직이 되는 지점을 찾으면 된다.

■ 여기서 점 p는 평면 위의 점이므로 평면이 무엇인지 알아야 한다.
■ 그리고 2차원 평면을 알기 위해서는 2차원 평면을 생성하는 두 기저를 확인하면 된다.
■ 만약 2차원 평면을 생성하는 기저를 a1,a2라고 하면, 기저는 서로 독립이므로 다음과 같이 다른 방향을 바라볼 것이다.

■ 이 평면은 행렬 A의 열공간이라고 했을 때, 기저가 a1,a2이므로 행렬 A를 A=[||a1a2||]로 나타낼 수 있다.
■ 벡터 b는 Ax=b의 우변 b이다. 벡터 b는 평면 위에 존재하지 않는 벡터로 가정했기 때문에 b는 A의 열공간인 평면 위에 존재하지 않는다.
■ 즉, Ax=b를 만족하는 x가 존재하지 않는 상황이다. 그래서 최대한 만족시키는 해를 찾기 위해 위의 그림과 같이 A의 열공간에 투영하여 A의 열공간인 2차원 평면 위에 있는 벡터들 중에 b와 가장 근접한 벡터를 찾는 것이다.
■ 벡터 b와 오차가 가장 적은. 즉, b와 가장 근접한 벡터는 위의 그림과 같이 오차 벡터(실선)와 수직 관계를 갖는 벡터 p이다.
■ 벡터 p와 가장 근사한 p는 평면에 포함된 벡터이므로, p는 A의 열벡터들의 선형 결합으로 만들 수 있는 벡터인데, 선형 결합의 형태가 Aˆx이므로 p=Aˆx으로 나타낼 수 있다.
- 이 예시에서 벡터 p는 다음과 같은 선형 결합으로 나타낼 수 있다. p=ˆxa1+ˆxa2
■ p=Aˆx에서 찾고자 하는 것은 ˆx이며, ˆx는 오차를 의미하는 벡터 e를 이용해서 구할 수 있다.
■ 벡터 e는 평면과 수직이므로 벡터 e와 평면 위의 모든 벡터의 내적은 0이 된다. 이때, e=b−p이며 p=Aˆx이므로 b−Aˆx와 평면 위의 모든 벡터의 내적은 0이라고 할 수 있다.
■ 이 예시에서 평면 위의 벡터는 2차원 평면을 만드는 기저 a1,a2이므로, 다음과 같은 식이 성립한다.
aT1(b−Aˆx)=0,aT2(b−Aˆx)=0
■ 내적은 행렬 안에서 발생하는 연산이다. 그러므로 위의 두 내적을 행렬의 형태로 다음과 같이 나타낼 수 있다.
(aT1aT2)(b−Aˆx)=(00)
AT(b−Aˆx)=0
ATAˆx=ATb
■ 여기서 (aT1aT2)(b−Aˆx)=(00)
AT(b−Aˆx)=0의 형태를 보면 left nullspace의 형태인 것을 볼 수 있다. 즉, 오차 벡터 e=b−Aˆx는 left nullspace에 존재한다.
■ left nullspace는 행렬 A의 열공간과 직교한다. 위의 그림에서 행렬 A의 열공간이 평면, 실선이 벡터 e이다.
3.1 solution of ˆx and projection matrix
■ AT(b−Aˆx)=0으로 다음과 같이 근사해를 구할 수 있다.
ˆx=(ATA)−1ATb
■ 이대 ˆx의 왼쪽에 행렬 A를 곱하면 Aˆx=p가 된다. 위의 식에서 양변에 행렬 A를 왼쪽에 곱하면, 다음 식이 성립한다.
p=Aˆx=A(ATA)−1ATb
■ 즉, 원래 벡터 b를 A의 열공간으로 투영한 벡터 p는 p=(ATA)−1ATb이다.
■ 여기서 p=Pb이므로 투영 행렬 P에 대한 식은 P=A(ATA)−1AT가 된다.
■ 이 투영 행렬 P=A(ATA)−1AT가 어떠한 벡터도 행렬 A의 영공간으로 투영시킬 수 있는 투영 행렬이 된다.
- P=A(ATA)−1AT는 n차원에서 투영 행렬을 구하는 방법이다.
- 그리고 n차원에서도 PT=P, P2=P가 성립한다.
- PT=(A(ATA)−1AT)T=ATT(ATATT)−1AT=A(ATA)−1AT=P
-- \( (A^T)^{-1} = (A^{-1})^T \)
- P2=A(ATA)−1ATA(ATA)−1AT=A(ATA)−1AT=P
■ 만약, 행렬 A가 정방행렬이고 역행렬이 존재한다면, P=A(ATA)−1AT는 P=AA−1(AT)−1AT=I로 단위행렬이 된다.
- 투영 행렬이 단위 행렬이 되므로 투영을 시켰을 때, 어떠한 변화도 발생하지 않게 된다.
'선형대수' 카테고리의 다른 글
Orthogonal matrices and Gram-Schmidt (0) | 2025.02.10 |
---|---|
Projection matrices and least squares (0) | 2025.02.10 |
Orthogonal vectors and subspaces (0) | 2025.02.10 |
Matrix spaces; rank 1 (0) | 2025.02.04 |
The four fundamental subspaces (0) | 2025.02.04 |