7.2.1. Left and Right Inverses and the Pseudoinverse

선형대수학 글 목록

연결 강의: MIT 18.06 Linear Algebra - Lecture 33: Left and Right Inverses; Pseudoinverse

1. 이번 강의의 위치

이번 강의는 left inverse, right inverse, pseudoinverse를 다룬다.

표면적으로는 inverse 이야기이지만, 실제로는 선형대수의 핵심 그림인 네 기본 부분공간을 다시 보는 강의이다.

행렬 AAm×nm \times n이고 rank가 rr라고 하자. 그러면 네 기본 부분공간은 다음과 같다.

  • row space: C(AT)C(A^T), dimension rr
  • null space: N(A)N(A), dimension nrn-r
  • column space: C(A)C(A), dimension rr
  • left null space: N(AT)N(A^T), dimension mrm-r

이 네 공간은 다음처럼 짝을 이룬다.

Rn=C(AT)N(A)\mathbb{R}^n =C(A^T)\oplus N(A) Rm=C(A)N(AT)\mathbb{R}^m =C(A)\oplus N(A^T)

여기서 \oplus는 두 부분공간의 direct sum을 뜻한다. 즉 Rn\mathbb{R}^n의 모든 벡터는 row space 성분과 null space 성분으로 나뉘고, Rm\mathbb{R}^m의 모든 벡터는 column space 성분과 left null space 성분으로 나뉜다.

inverse가 어려워지는 이유는 null space 때문이다. 어떤 벡터가 AA에 의해 00으로 가면, inverse가 그 정보를 다시 살려낼 방법이 없다.


2. 완전한 Inverse: Square Full Rank

가장 좋은 경우는 AA가 square matrix이고 full rank인 경우이다.

r=m=nr=m=n

인 경우이다.

이때 AA는 양쪽 inverse를 가진다.

A1A=IA^{-1}A=I AA1=IAA^{-1}=I

이 경우는 우리가 보통 말하는 invertible matrix이다. row space와 column space가 각각 전체 공간이고, null space와 left null space는 모두 zero vector만 가진다.

N(A)={0},N(AT)={0}N(A)=\{0\}, \qquad N(A^T)=\{0\}

따라서 AA는 정보를 잃지 않는다. xxAxAx로 보냈다가 다시 A1A^{-1}로 되돌릴 수 있다.


3. Full Column Rank와 Left Inverse

이제 AA가 rectangular matrix라고 하자.

먼저 full column rank인 경우를 보자.

r=nr=n

이는 AAnn개 column이 independent라는 뜻이다. 보통 이 경우에는 row 수가 column 수보다 많다.

mnm \ge n

예를 들어 11×511 \times 5 matrix가 rank 55라면 full column rank이다.

이때 null space는 zero vector만 가진다.

N(A)={0}N(A)=\{0\}

왜냐하면 Ax=0Ax=0은 column들의 linear combination이 00이 되는 식인데, column들이 independent이면 모든 coefficient가 00이어야 하기 때문이다.

이 경우 Ax=bAx=b는 항상 풀리지는 않는다. bb가 column space 안에 있어야 해가 있다. 하지만 해가 있다면 그 해는 유일하다. null space에 더할 nonzero vector가 없기 때문이다.

정리하면 full column rank에서는 다음이 성립한다.

  • columns are independent
  • N(A)={0}N(A)=\{0\}
  • Ax=bAx=b는 해가 없거나 하나이다
  • ATAA^T A가 invertible이다

4. 왜 ATAA^T A가 중요해지는가

full column rank일 때 중요한 행렬은 ATAA^T A이다.

AAm×nm \times n이면 ATAA^T An×nn \times n square matrix이다.

ATAA^T A

그리고 ATAA^T A는 symmetric matrix이다.

(ATA)T=ATA(A^T A)^T=A^T A

또한 AA가 full column rank이면 ATAA^T A는 invertible이다.

이 사실은 least squares에서 핵심이었다. least squares의 normal equation은 다음과 같았다.

ATAx^=ATbA^T A\hat{x}=A^T b

ATAA^T A가 invertible이면 최소제곱해는 다음처럼 주어진다.

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

여기서 등장하는

(ATA)1AT(A^T A)^{-1}A^T

가 바로 full column rank matrix의 left inverse이다.


5. Left Inverse

full column rank인 m×nm \times n matrix AA에 대해 left inverse를 다음처럼 정의할 수 있다.

Aleft1=(ATA)1ATA_{\text{left}}^{-1} =(A^T A)^{-1}A^T

이 행렬의 크기는 n×mn \times m이다.

이제 AA의 왼쪽에 곱하면 identity가 나온다.

Aleft1A=(ATA)1ATA=InA_{\text{left}}^{-1}A =(A^T A)^{-1}A^T A =I_n

그래서 이름이 left inverse이다. inverse 역할을 하려면 AA의 왼쪽에 있어야 한다.

하지만 반대 순서로 곱하면 identity가 나오지 않는다.

AAleft1=A(ATA)1ATAA_{\text{left}}^{-1} =A(A^T A)^{-1}A^T

이 행렬은 우리가 projection에서 본 행렬이다.

P=A(ATA)1ATP=A(A^T A)^{-1}A^T

AAleft1=PAA_{\text{left}}^{-1}=P

이고, 이 PP는 column space C(A)C(A)로의 projection matrix이다.

full column rank에서 Aleft1A=InA_{\text{left}}^{-1}A=I_n이지만, AAleft1AA_{\text{left}}^{-1}ImI_m이 아니라 column space로의 projection이다.

직관적으로 말하면, AARn\mathbb{R}^n에서 C(A)C(A)로는 정보를 잃지 않고 보내지만, Rm\mathbb{R}^m 전체를 다 덮지는 못한다. 그래서 반대 방향에서는 column space 밖의 성분이 projection으로 사라진다.


6. Full Row Rank와 Right Inverse

이번에는 반대 경우를 보자.

AA가 full row rank이면

r=mr=m

이다. 즉 mm개의 row가 independent이다. 보통 이 경우에는 column 수가 row 수보다 많다.

nmn \ge m

이때 left null space는 zero vector만 가진다.

N(AT)={0}N(A^T)=\{0\}

row들이 independent이므로 elimination 과정에서 zero row가 생기지 않는다. 따라서 Ax=bAx=b는 모든 bRmb \in \mathbb{R}^m에 대해 적어도 하나의 해를 가진다.

하지만 column이 더 많기 때문에 자유변수가 생긴다. null space의 dimension은 다음과 같다.

dimN(A)=nr=nm\dim N(A)=n-r=n-m

따라서 Ax=bAx=b는 항상 풀리지만, 보통 해가 무한히 많다.

정리하면 full row rank에서는 다음이 성립한다.

  • rows are independent
  • N(AT)={0}N(A^T)=\{0\}
  • Ax=bAx=b는 항상 해를 가진다
  • 자유변수는 nmn-m개이다
  • AATAA^T가 invertible이다

7. Right Inverse

full row rank인 m×nm \times n matrix AA에 대해 right inverse는 다음처럼 쓸 수 있다.

Aright1=AT(AAT)1A_{\text{right}}^{-1} =A^T(AA^T)^{-1}

이 행렬의 크기는 n×mn \times m이다.

이번에는 AA의 오른쪽에 곱하면 identity가 나온다.

AAright1=AAT(AAT)1=ImAA_{\text{right}}^{-1} =AA^T(AA^T)^{-1} =I_m

그래서 right inverse이다.

하지만 반대 순서로 곱하면 identity가 나오지 않는다.

Aright1A=AT(AAT)1AA_{\text{right}}^{-1}A =A^T(AA^T)^{-1}A

이 행렬은 row space C(AT)C(A^T)로의 projection이다.

full row rank에서 AAright1=ImAA_{\text{right}}^{-1}=I_m이지만, Aright1AA_{\text{right}}^{-1}AInI_n이 아니라 row space로의 projection이다.


8. 세 가지 경우를 비교하기

지금까지 본 inverse의 종류를 정리하면 다음과 같다.

경우rank 조건사라지는 null spaceinverse
square full rankr=m=nr=m=nN(A)={0}N(A)=\{0\}, N(AT)={0}N(A^T)=\{0\}two-sided inverse
full column rankr=nr=nN(A)={0}N(A)=\{0\}left inverse
full row rankr=mr=mN(AT)={0}N(A^T)=\{0\}right inverse

문제는 가장 일반적인 경우이다.

r<n,r<mr<n, \qquad r<m

이때는 N(A)N(A)도 있고, N(AT)N(A^T)도 있다. 따라서 left inverse도 right inverse도 완전한 의미로는 존재하지 않는다.

하지만 그래도 가장 좋은 inverse 비슷한 것을 만들 수 있다. 그것이 pseudoinverse이다.


9. 일반적인 경우: Pseudoinverse의 아이디어

일반적인 rank rr matrix에서는 null space들이 inverse를 방해한다.

만약 어떤 nonzero vector zzN(A)N(A)에 있다면

Az=0Az=0

이다. AAzz00으로 보내버렸기 때문에, inverse가 00만 보고 원래 zz를 복원할 수 없다.

하지만 중요한 사실이 하나 있다.

AA를 row space에서 column space로 제한해서 보면, AA는 완벽하게 invertible하게 행동한다.

A:C(AT)C(A)A:C(A^T)\rightarrow C(A)

는 one-to-one이고 onto이다.

row space와 column space는 둘 다 dimension이 rr이다. 그리고 row space 안의 서로 다른 벡터는 AA에 의해 column space 안의 서로 다른 벡터로 간다.

이 대응을 거꾸로 돌리는 것이 pseudoinverse의 핵심이다.

A+:C(A)C(AT)A^+:C(A)\rightarrow C(A^T)

여기서 A+A^+가 pseudoinverse이다.


10. 왜 Row Space에서는 One-to-One인가

강의에서 강조한 핵심 증명을 정리하자.

xxyy가 row space 안의 서로 다른 벡터라고 하자.

x,yC(AT),xyx,y \in C(A^T), \qquad x\ne y

우리는 AxAxAyAy도 서로 다르다는 것을 보이고 싶다.

반대로 Ax=AyAx=Ay라고 가정하자. 그러면

A(xy)=0A(x-y)=0

이다. 따라서 xyx-y는 null space에 있다.

xyN(A)x-y \in N(A)

그런데 xxyy가 row space에 있으므로, 그 차이 xyx-y도 row space에 있다.

xyC(AT)x-y \in C(A^T)

따라서 xyx-y는 row space와 null space의 교집합에 있다.

하지만 row space와 null space는 orthogonal complement이다. 둘의 교집합은 zero vector뿐이다.

C(AT)N(A)={0}C(A^T)\cap N(A)=\{0\}

그러므로

xy=0x-y=0

이고, 결국 x=yx=y이다.

즉 row space 안에서는 서로 다른 벡터가 AA에 의해 서로 다른 벡터로 간다. 이 말은 AA가 row space에서 column space로 가는 perfect mapping이라는 뜻이다.


11. Pseudoinverse가 하는 일

pseudoinverse A+A^+는 진짜 inverse가 할 수 없는 일을 최대한 잘 흉내 낸다.

AA는 row space에서 column space로 간다.

xC(AT)AxC(A)x \in C(A^T) \quad \longmapsto \quad Ax \in C(A)

A+A^+는 이 방향을 되돌린다.

AxC(A)A+(Ax)=xAx \in C(A) \quad \longmapsto \quad A^+(Ax)=x

반면 null space와 left null space의 성분은 되살릴 수 없다. 그래서 pseudoinverse는 그 성분들을 없애고, row space와 column space 사이의 invertible한 부분만 뒤집는다.

이 관점에서 보면 A+A^+는 “진짜 inverse가 없는 행렬에 대해, 가능한 부분만 정확히 뒤집는 행렬”이다.


12. SVD로 Pseudoinverse 구하기

pseudoinverse를 가장 깔끔하게 구하는 방법은 SVD를 사용하는 것이다.

AA의 SVD를 다음처럼 쓰자.

A=UΣVTA=U\Sigma V^T

여기서 UUVV는 orthogonal matrix이고, Σ\Sigma는 diagonal 형태의 m×nm \times n matrix이다.

rank가 rr이면 Σ\Sigma에는 rr개의 nonzero singular value가 있다.

Σ=[σ1σ2σr0]\Sigma= \begin{bmatrix} \sigma_1 & & & \\ & \sigma_2 & & \\ & & \ddots & \\ & & & \sigma_r \\ & & & & 0 \\ & & & & & \ddots \end{bmatrix}

여기서

σ1,,σr>0\sigma_1,\dots,\sigma_r>0

이다.

문제의 핵심은 Σ\Sigma의 pseudoinverse를 만드는 것이다. nonzero singular value는 뒤집고, zero는 그대로 둔다.

Σ+=[1/σ11/σ21/σr0]\Sigma^+= \begin{bmatrix} 1/\sigma_1 & & & \\ & 1/\sigma_2 & & \\ & & \ddots & \\ & & & 1/\sigma_r \\ & & & & 0 \\ & & & & & \ddots \end{bmatrix}

주의할 점은 Σ\Sigmam×nm \times n이면 Σ+\Sigma^+n×mn \times m이라는 것이다. 모양이 transpose처럼 바뀐다.

그러면 AA의 pseudoinverse는 다음이다.

A+=VΣ+UTA^+=V\Sigma^+U^T

이 식이 SVD가 pseudoinverse를 가장 자연스럽게 만들어 주는 이유이다. UUVV는 orthogonal matrix라서 inverse가 transpose이고, 어려운 부분은 Σ\Sigma의 diagonal entry를 뒤집는 일뿐이다.


13. ΣΣ+\Sigma\Sigma^+Σ+Σ\Sigma^+\Sigma

Σ\Sigma는 일반적으로 rectangular이고 rank가 부족하므로 완전한 inverse를 가질 수 없다.

하지만 ΣΣ+\Sigma\Sigma^+Σ+Σ\Sigma^+\Sigma는 중요한 projection matrix가 된다.

먼저

ΣΣ+\Sigma\Sigma^+

m×mm \times m matrix이고, 앞쪽 rr개의 diagonal entry가 11, 나머지가 00인 matrix가 된다.

ΣΣ+=[Ir000]\Sigma\Sigma^+ = \begin{bmatrix} I_r & 0\\ 0 & 0 \end{bmatrix}

이는 column space 쪽으로의 projection에 해당한다.

반대로

Σ+Σ\Sigma^+\Sigma

n×nn \times n matrix이고, 역시 앞쪽 rr개의 diagonal entry만 11인 projection matrix이다.

Σ+Σ=[Ir000]\Sigma^+\Sigma = \begin{bmatrix} I_r & 0\\ 0 & 0 \end{bmatrix}

크기는 다르다. 첫 번째는 Rm\mathbb{R}^m 안의 projection이고, 두 번째는 Rn\mathbb{R}^n 안의 projection이다.

AA로 돌아오면 다음과 같은 의미가 된다.

AA+AA^+

는 column space C(A)C(A)로의 projection이다.

A+AA^+A

는 row space C(AT)C(A^T)로의 projection이다.

완전한 identity는 아니지만, 행렬이 실제로 정보를 가지고 있는 좋은 부분공간에서는 identity처럼 작동한다.


14. Left/Right Inverse와 Pseudoinverse의 연결

pseudoinverse는 일반적인 rank-deficient matrix를 위한 개념이지만, 앞에서 본 left inverse와 right inverse도 포함한다.

full column rank이면 ATAA^T A가 invertible이고, pseudoinverse는 left inverse와 같다.

A+=(ATA)1ATA^+=(A^T A)^{-1}A^T

full row rank이면 AATAA^T가 invertible이고, pseudoinverse는 right inverse와 같다.

A+=AT(AAT)1A^+=A^T(AA^T)^{-1}

square full rank이면 pseudoinverse는 ordinary inverse와 같다.

A+=A1A^+=A^{-1}

따라서 pseudoinverse는 inverse 개념을 가장 일반적인 matrix까지 확장한 것이다.


15. Least Squares와 Pseudoinverse

least squares에서는 full column rank일 때 다음 공식을 썼다.

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

하지만 column들이 dependent이면 ATAA^T A가 singular가 된다. 이때는 위 공식을 그대로 쓸 수 없다.

통계학이나 데이터 분석에서는 이런 상황이 자주 생긴다. 관측값이 반복되거나, feature들이 서로 dependent하면 column rank가 부족해질 수 있다.

이때 pseudoinverse를 사용하면 다음처럼 쓸 수 있다.

x^=A+b\hat{x}=A^+b

이 해는 가능한 해들 중에서 가장 자연스러운 least squares 해를 준다. 특히 해가 여러 개 있을 때는 row space 안의 최소 길이 해를 선택한다.

그래서 pseudoinverse는 통계학의 linear regression, 데이터 분석, numerical linear algebra에서 매우 중요하다.


16. 정리

이번 강의의 핵심은 inverse를 네 기본 부분공간 관점에서 다시 보는 것이다.

square full rank matrix에서는 ordinary inverse가 있다.

A1A=AA1=IA^{-1}A=AA^{-1}=I

full column rank matrix에서는 left inverse가 있다.

(ATA)1ATA=In(A^T A)^{-1}A^T A=I_n

full row rank matrix에서는 right inverse가 있다.

AAT(AAT)1=ImAA^T(AA^T)^{-1}=I_m

일반적인 rank rr matrix에서는 완전한 inverse는 없지만, row space와 column space 사이의 invertible한 부분을 뒤집는 pseudoinverse가 있다.

A+=VΣ+UTA^+=V\Sigma^+U^T

그리고 이때 곱셈 결과는 identity가 아니라 projection이다.

AA+=PC(A)AA^+=P_{C(A)} A+A=PC(AT)A^+A=P_{C(A^T)}

즉 pseudoinverse는 null space 때문에 잃어버린 정보는 복원하지 못하지만, 행렬이 실제로 정보를 보존하는 row space와 column space 사이에서는 가장 좋은 inverse로 작동한다.