Linearism › 선형대수 › LA.18

18장. 특잇값 분해 (SVD)

선형대수 · 2부. 계산 선형대수

심화 · 약 30분 · 연습문제 10 · 그림 2

요약

원을 타원으로 보내는 그림, SVD의 구성 A = UΣVᵀ, SVD와 4대 부분공간, 랭크 1 조각들의 합과 가장 좋은 근사, 특잇값의 의미와 조건수, 유사역행렬

모든 행렬은 '회전 → 축 방향 늘이기 → 회전'의 세 단계로 쪼갤 수 있습니다. 이것이 특잇값 분해(SVD)이고, 선형대수에서 가장 쓸모 있는 정리 가운데 하나입니다. 이 장에서는 SVD를 대칭행렬의 고윳값으로 구하고, 이미지 압축, 유사역행렬, 데이터의 주성분 분석(PCA)에 적용합니다.

18.1 모든 행렬을 위한 대각화

질문. 대칭행렬은 QΛQTQ\Lambda Q^T로 아름답게 분해되었습니다. 하지만 대부분의 행렬은 대칭이 아니고, 직사각형이기도 합니다. m×nm \times n 행렬 AA에 대해서도 “서로 수직인 축들을 서로 수직인 축들로 보내는” 좌표계를 찾을 수 있을까요?

대각화 A=XΛX−1A = X\Lambda X^{-1}에는 세 가지 한계가 있었습니다. 정사각행렬이어야 하고, 고유벡터가 충분해야 하고, 고유벡터가 보통 수직이 아닙니다. 특잇값 분해(SVD)는 세 한계를 한꺼번에 넘습니다. 대가는 입력 공간과 출력 공간에 서로 다른 기저를 쓰는 것입니다. 그 대가를 치르면 모든 행렬이 대각행렬이 됩니다.

Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_i: 정규직교인 입력 기저 vi\mathbf{v}_i가, 정규직교인 출력 기저 ui\mathbf{u}_i의 σi\sigma_i배로 갑니다.

18.2 원을 타원으로

왼쪽 입력 공간의 단위원 위에 수직인 v₁, v₂가 있고, 화살표 A를 지나 오른쪽 출력 공간에서는 단위원이 기울어진 타원이 되었습니다. v₁, v₂는 타원의 긴 축과 짧은 축 방향의 σ₁u₁, σ₂u₂로 갔습니다.

그림 18.1. A=[3045]A = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix}. 단위원은 타원이 됩니다. 수직인 v1,v2\mathbf{v}_1, \mathbf{v}_2는 타원의 두 축 방향 u1,u2\mathbf{u}_1, \mathbf{u}_2로 가고, 반축의 길이가 특잇값 σ1=35\sigma_1 = 3\sqrt5, σ2=5\sigma_2 = \sqrt5입니다.

어떤 행렬이든 단위원(구)을 타원(타원체)으로 보냅니다. 타원에는 서로 수직인 축이 있습니다. 원 위에서 그 축의 끝으로 가는 점들이 v1,v2\mathbf{v}_1, \mathbf{v}_2입니다. 그런데 이 점들도 원 위에서 서로 수직입니다. 이것이 SVD의 그림입니다.

A=[3045]A = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix}를 예로 듭시다. 대칭이 아니고, 고유벡터 (0,1)(0, 1)과 (1,−2)(1, -2)는 수직이 아닙니다. 그래도 수직인 v1=12(1,1)\mathbf{v}_1 = \frac{1}{\sqrt2}(1, 1), v2=12(−1,1)\mathbf{v}_2 = \frac{1}{\sqrt2}(-1, 1)을 넣으면

Av1=12[39],Av2=12[−31].A\mathbf{v}_1 = \frac{1}{\sqrt2}\begin{bmatrix} 3 \\ 9 \end{bmatrix}, \qquad A\mathbf{v}_2 = \frac{1}{\sqrt2}\begin{bmatrix} -3 \\ 1 \end{bmatrix}.

두 출력의 내적은 12(−9+9)=0\frac12(-9 + 9) = 0으로 수직입니다. 길이는 σ1=45=35\sigma_1 = \sqrt{45} = 3\sqrt5, σ2=5\sigma_2 = \sqrt5입니다. 정규화하면 u1=110(1,3)\mathbf{u}_1 = \frac{1}{\sqrt{10}}(1, 3), u2=110(−3,1)\mathbf{u}_2 = \frac{1}{\sqrt{10}}(-3, 1).

이 vi\mathbf{v}_i는 어떻게 찾았을까요? 다음 절의 답: ATAA^TA의 고유벡터입니다.

v₁의 각도를 돌리면 수직인 v₁, v₂와 그 출력 Av₁, Av₂가 함께 돕니다. 두 출력이 수직이 되는 각을 찾습니다

이 위젯은 JavaScript가 필요합니다

18.3 SVD의 구성

정리 18.1 (특잇값 분해). 랭크가 rr인 m×nm \times n 실수 행렬 AA는

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

로 쓸 수 있습니다. UU는 m×mm \times m 직교행렬, VV는 n×nn \times n 직교행렬, Σ\Sigma는 m×nm \times n 행렬로 대각에 σ1≥σ2≥⋯≥σr>0\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r > 0이 있고 나머지는 0입니다. σi\sigma_i를 AA의 특잇값(singular values), UU와 VV의 열을 왼쪽·오른쪽 특이벡터(singular vectors)라 합니다.

증명. 1단계. ATAA^TA는 n×nn \times n 대칭이고 양반정치입니다(문제 17.9). 스펙트럴 정리에 의해 정규직교 고유벡터 v1,…,vn\mathbf{v}_1, \ldots, \mathbf{v}_n과 고윳값 λ1≥⋯≥λn≥0\lambda_1 \ge \cdots \ge \lambda_n \ge 0이 있습니다. N(ATA)=N(A)N(A^TA) = N(A) (정리 13.9의 증명)이고 차원이 n−rn - r이므로, 양수인 고윳값은 정확히 rr개입니다. σi=λi\sigma_i = \sqrt{\lambda_i}로 둡니다.

2단계. i≤ri \le r에 대해 ui=Avi/σi\mathbf{u}_i = A\mathbf{v}_i/\sigma_i로 정의합니다. 이들은 정규직교입니다.

uiTuj=viTATAvjσiσj=λjviTvjσiσj={1(i=j)0(i≠j).\mathbf{u}_i^T\mathbf{u}_j = \frac{\mathbf{v}_i^TA^TA\mathbf{v}_j}{\sigma_i\sigma_j} = \frac{\lambda_j\mathbf{v}_i^T\mathbf{v}_j}{\sigma_i\sigma_j} = \begin{cases} 1 & (i = j) \\ 0 & (i \ne j). \end{cases}

3단계. u1,…,ur\mathbf{u}_1, \ldots, \mathbf{u}_r을 Rm\mathbb{R}^m의 정규직교 기저 u1,…,um\mathbf{u}_1, \ldots, \mathbf{u}_m으로 확장합니다. i>ri > r이면 Avi=0A\mathbf{v}_i = \mathbf{0}입니다(∥Avi∥2=λi=0\lVert A\mathbf{v}_i \rVert^2 = \lambda_i = 0). 따라서 모든 ii에 대해 Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_i (i>ri > r이면 σi=0\sigma_i = 0)이고, 행렬로 AV=UΣAV = U\Sigma. VV가 직교이므로 A=UΣVTA = U\Sigma V^T. ■

예제 18.2. A=[3045]A = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix}: ATA=[25202025]A^TA = \begin{bmatrix} 25 & 20 \\ 20 & 25 \end{bmatrix}, 고윳값 45, 5, 고유벡터 12(1,1)\frac{1}{\sqrt2}(1, 1), 12(−1,1)\frac{1}{\sqrt2}(-1, 1). 앞 절의 계산과 함께

[3045]=110[1−331][35005]12[11−11].\begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix} = \frac{1}{\sqrt{10}}\begin{bmatrix} 1 & -3 \\ 3 & 1 \end{bmatrix}\begin{bmatrix} 3\sqrt5 & 0 \\ 0 & \sqrt5 \end{bmatrix}\frac{1}{\sqrt2}\begin{bmatrix} 1 & 1 \\ -1 & 1 \end{bmatrix}.

검산: σ1σ2=15=∣det⁡A∣\sigma_1\sigma_2 = 15 = \lvert \det A \rvert.

직관. A=UΣVTA = U\Sigma V^T를 오른쪽부터 읽으면 세 단계의 변환입니다.

  1. VTV^T: 입력을 회전(또는 반사)해서 vi\mathbf{v}_i들을 좌표축에 맞춥니다.
  2. Σ\Sigma: 각 축 방향으로 σi\sigma_i배 늘입니다(차원이 다르면 축을 추가하거나 버립니다).
  3. UU: 출력을 회전해서 좌표축을 ui\mathbf{u}_i들에 맞춥니다.

모든 선형변환은 “회전 → 늘이기 → 회전”입니다.

AAT=UΣΣTUTAA^T = U\Sigma\Sigma^TU^T이므로 ui\mathbf{u}_i는 AATAA^T의 고유벡터이고 고윳값은 같은 σi2\sigma_i^2입니다. 계산할 때는 vi\mathbf{v}_i를 먼저 구하고 ui=Avi/σi\mathbf{u}_i = A\mathbf{v}_i/\sigma_i로 구하는 것이 부호를 맞추기 쉽습니다. ui\mathbf{u}_i를 따로 AATAA^T에서 구하면 ±\pm부호가 어긋날 수 있습니다.

▶ 문제 18.1–18.4

18.4 SVD와 4대 부분공간

SVD는 4대 부분공간의 정규직교 기저를 한꺼번에 줍니다.

부분공간 기저 차원
행공간 C(AT)C(A^T) v1,…,vr\mathbf{v}_1, \ldots, \mathbf{v}_r rr
영공간 N(A)N(A) vr+1,…,vn\mathbf{v}_{r+1}, \ldots, \mathbf{v}_n n−rn - r
열공간 C(A)C(A) u1,…,ur\mathbf{u}_1, \ldots, \mathbf{u}_r rr
왼쪽 영공간 N(AT)N(A^T) ur+1,…,um\mathbf{u}_{r+1}, \ldots, \mathbf{u}_m m−rm - r

vi\mathbf{v}_i (i≤ri \le r)는 ui\mathbf{u}_i의 σi\sigma_i배로 갑니다. 12장의 그림 12.2에서 “행공간이 열공간으로 갑니다”를 정확히 그린 것입니다. SVD는 행공간과 열공간에 기저를 짝지어 깔아서, 그 사이의 변환을 대각으로 만듭니다.

▶ 문제 18.5

18.5 랭크 1 조각들의 합과 근사

A=UΣVTA = U\Sigma V^T를 열×행의 합으로 쓰면

A=σ1u1v1T+σ2u2v2T+⋯+σrurvrT.A = \sigma_1\mathbf{u}_1\mathbf{v}_1^T + \sigma_2\mathbf{u}_2\mathbf{v}_2^T + \cdots + \sigma_r\mathbf{u}_r\mathbf{v}_r^T.

각 조각은 랭크 1이고, 크기 순서로 정렬되어 있습니다. 첫 kk개만 남긴

Ak=σ1u1v1T+⋯+σkukvkTA_k = \sigma_1\mathbf{u}_1\mathbf{v}_1^T + \cdots + \sigma_k\mathbf{u}_k\mathbf{v}_k^T

는 랭크 kk입니다.

정리 18.3 (에카르트–영). 랭크가 kk 이하인 모든 행렬 BB 중에서, AA와의 거리 ∥A−B∥\lVert A - B \rVert가 가장 작은 것은 AkA_k입니다. 이때 오차는 σk+1\sigma_{k+1}입니다.

(행렬의 거리 ∥A−B∥\lVert A - B \rVert는 “∥(A−B)x∥\lVert (A - B)\mathbf{x} \rVert의 최댓값, 단 ∥x∥=1\lVert \mathbf{x} \rVert = 1”로 정의하며 30장에서 자세히 다룹니다. 증명도 그때 합니다.)

예제 18.4 (이미지 압축). 흑백 사진은 각 픽셀의 밝기를 성분으로 하는 큰 행렬입니다. 1000×10001000 \times 1000 사진을 저장하려면 수 100만 개가 필요합니다. 그런데 실제 사진은 특잇값이 빠르게 작아지는 경우가 많아서, 처음 50개 조각만 남긴 A50A_{50}도 원본과 거의 구별되지 않습니다. A50A_{50}을 저장하는 데는 ui,vi,σi\mathbf{u}_i, \mathbf{v}_i, \sigma_i 50세트, 약 50×2001≈1050 \times 2001 \approx 10만 개면 됩니다. 10분의 1입니다.

같은 아이디어가 자료 분석의 주성분 분석(PCA, 31장)입니다. 자료 행렬의 첫 몇 개 특이벡터가 자료가 가장 많이 퍼져 있는 방향들입니다.

▶ 문제 18.6–18.7

18.6 특잇값의 의미

  • σ1=max⁡∥x∥=1∥Ax∥\sigma_1 = \max_{\lVert \mathbf{x} \rVert = 1}\lVert A\mathbf{x} \rVert: AA가 벡터를 가장 크게 늘이는 배율(문제 18.8).
  • 정사각 가역 AA에서 σn=min⁡∥x∥=1∥Ax∥\sigma_n = \min_{\lVert \mathbf{x} \rVert = 1}\lVert A\mathbf{x} \rVert: 가장 작게 줄이는 배율.
  • ∣det⁡A∣=σ1σ2⋯σn\lvert \det A \rvert = \sigma_1\sigma_2 \cdots \sigma_n (정사각): 직교행렬은 부피를 바꾸지 않으므로.
  • σ1/σn\sigma_1/\sigma_n을 조건수(condition number)라 합니다. 이 값이 크면 Ax=bA\mathbf{x} = \mathbf{b}의 해가 b\mathbf{b}의 작은 오차에 민감합니다(30장).

고윳값과 특잇값은 다릅니다. A=[3045]A = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix}의 고윳값은 3, 5이고 특잇값은 35≈6.73\sqrt5 \approx 6.7, 5≈2.2\sqrt5 \approx 2.2입니다. 대칭 양반정치 행렬에서만 둘이 같습니다(문제 18.3).

18.7 유사역행렬

AA가 가역이 아니어도 SVD로 “거의 역행렬”을 만들 수 있습니다.

정의 18.5 (유사역행렬). A=UΣVTA = U\Sigma V^T에 대해 A+=VΣ+UTA^+ = V\Sigma^+U^T를 AA의 유사역행렬(pseudoinverse)이라 합니다. Σ+\Sigma^+는 Σ\Sigma를 전치하고 0이 아닌 σi\sigma_i를 1/σi1/\sigma_i로 바꾼 n×mn \times m 행렬입니다.

A+A^+는 ui\mathbf{u}_i를 vi/σi\mathbf{v}_i/\sigma_i로 보내고 (i≤ri \le r), ui\mathbf{u}_i (i>ri > r)는 0\mathbf{0}으로 보냅니다. 즉 열공간에서 행공간으로 되돌리고, 왼쪽 영공간은 버립니다. AA가 가역이면 A+=A−1A^+ = A^{-1}입니다.

Ax=bA\mathbf{x} = \mathbf{b}에 대해 x+=A+b\mathbf{x}^+ = A^+\mathbf{b}는

  • b\mathbf{b}가 열공간에 있든 없든 언제나 정의되고,
  • 최소제곱 해 중 하나이며 (오차 ∥Ax−b∥\lVert A\mathbf{x} - \mathbf{b} \rVert를 최소로),
  • 그런 해가 여럿이면 그중 길이가 가장 짧은 것입니다(영공간 성분이 0이므로).

열이 독립이면 A+=(ATA)−1ATA^+ = (A^TA)^{-1}A^T로 13장의 최소제곱 공식과 같습니다(문제 18.10).

▶ 문제 18.8–18.10

쓰이는 곳. 주성분 분석(PCA), 이미지·데이터 압축, 잠재 의미 분석, 추천 시스템, 최소제곱의 유사역행렬이 모두 SVD입니다. 논문에서 A=UΣVTA = U\Sigma V^T를 보면 '회전–늘이기–회전'으로 읽습니다.

이 장의 요약

  • 모든 m×nm \times n 행렬은 A=UΣVTA = U\Sigma V^T. UU, VV는 직교, Σ\Sigma는 대각에 σ1≥⋯≥σr>0\sigma_1 \ge \cdots \ge \sigma_r > 0.
  • vi\mathbf{v}_i: ATAA^TA의 고유벡터, σi=λi(ATA)\sigma_i = \sqrt{\lambda_i(A^TA)}, ui=Avi/σi\mathbf{u}_i = A\mathbf{v}_i/\sigma_i.
  • 그림: 회전 → 늘이기 → 회전. 단위구는 반축 σi\sigma_i인 타원체가 됩니다.
  • v\mathbf{v}들과 u\mathbf{u}들이 4대 부분공간의 정규직교 기저를 줍니다.
  • A=∑σiuiviTA = \sum\sigma_i\mathbf{u}_i\mathbf{v}_i^T. 앞의 kk개가 가장 좋은 랭크 kk 근사입니다.
  • 유사역행렬 A+=VΣ+UTA^+ = V\Sigma^+U^T는 최소제곱 해 중 가장 짧은 것을 줍니다.

문제

18.1 [계산] · 확인 문제

A=[2211]A = \begin{bmatrix} 2 & 2 \\ 1 & 1 \end{bmatrix}의 SVD를 구합니다. (ATAA^TA의 고유벡터부터 시작합니다.) 표에는 특잇값을 소수 셋째 자리까지 적습니다.

σ1\sigma_1 σ2\sigma_2
[?] [?]
정답
3.162
0
풀이

ATA=[5555]A^TA = \begin{bmatrix} 5 & 5 \\ 5 & 5 \end{bmatrix}, 고윳값 10, 0. v1=12(1,1)\mathbf{v}_1 = \frac{1}{\sqrt2}(1, 1), v2=12(1,−1)\mathbf{v}_2 = \frac{1}{\sqrt2}(1, -1). σ1=10\sigma_1 = \sqrt{10}. u1=Av1/σ1=120(4,2)=15(2,1)\mathbf{u}_1 = A\mathbf{v}_1/\sigma_1 = \frac{1}{\sqrt{20}}(4, 2) = \frac{1}{\sqrt5}(2, 1). u2=15(−1,2)\mathbf{u}_2 = \frac{1}{\sqrt5}(-1, 2) (수직인 단위벡터로 확장).

A=15[2−112][10000]12[111−1].A = \frac{1}{\sqrt5}\begin{bmatrix} 2 & -1 \\ 1 & 2 \end{bmatrix}\begin{bmatrix} \sqrt{10} & 0 \\ 0 & 0 \end{bmatrix}\frac{1}{\sqrt2}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}.

18.2 [계산] · 확인 문제

A=[−3002]A = \begin{bmatrix} -3 & 0 \\ 0 & 2 \end{bmatrix}의 SVD를 구합니다. 특잇값은 고윳값과 어떻게 다를까요?

σ1\sigma_1 σ2\sigma_2
[?] [?]
정답
3
2
풀이

σ1=3\sigma_1 = 3: v1=e1\mathbf{v}_1 = \mathbf{e}_1, u1=Ae1/3=−e1\mathbf{u}_1 = A\mathbf{e}_1/3 = -\mathbf{e}_1. σ2=2\sigma_2 = 2: v2=e2\mathbf{v}_2 = \mathbf{e}_2, u2=e2\mathbf{u}_2 = \mathbf{e}_2. A=[−1001][3002]IA = \begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix}\begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix}I. 고윳값은 −3,2-3, 2, 특잇값은 3, 2. 음의 부호는 UU로 넘어갔습니다.

18.3 [증명]

(a) 대칭 양반정치 행렬 S=QΛQTS = Q\Lambda Q^T의 SVD는 스펙트럴 분해와 같음을 보입니다. (b) 대칭행렬의 특잇값은 고윳값의 절댓값임을 보입니다.

풀이

(a) S=QΛQTS = Q\Lambda Q^T에서 λi≥0\lambda_i \ge 0이므로 U=V=QU = V = Q, Σ=Λ\Sigma = \Lambda로 SVD의 조건을 모두 만족합니다.

(b) S=QΛQTS = Q\Lambda Q^T에서 음수 λi\lambda_i의 qi\mathbf{q}_i에 대해 ui=−qi\mathbf{u}_i = -\mathbf{q}_i로 두면 S=U∣Λ∣QTS = U\lvert \Lambda \rvert Q^T.

18.4 [계산] · 확인 문제

1×31 \times 3 행렬 A=[122]A = \begin{bmatrix} 1 & 2 & 2 \end{bmatrix}의 SVD를 구합니다. UU, Σ\Sigma, VV의 크기는? 표에는 크기를 1x3처럼 적습니다.

σ1\sigma_1 UU의 크기 Σ\Sigma의 크기 VV의 크기
[?] [?] [?] [?]
정답
3
1x1
1x3
3x3
풀이

ATA=aaTA^TA = \mathbf{a}\mathbf{a}^T (a=(1,2,2)\mathbf{a} = (1, 2, 2)), 고윳값 9, 0, 0. σ1=3\sigma_1 = 3, v1=13(1,2,2)\mathbf{v}_1 = \frac13(1, 2, 2), u1=Av1/3=1\mathbf{u}_1 = A\mathbf{v}_1/3 = 1. v2,v3\mathbf{v}_2, \mathbf{v}_3는 (1,2,2)(1, 2, 2)에 수직인 평면의 정규직교 기저, 예: 13(2,1,−2)\frac13(2, 1, -2), 13(2,−2,1)\frac13(2, -2, 1). U=[1]U = [1] (1×11 \times 1), Σ=[300]\Sigma = \begin{bmatrix} 3 & 0 & 0 \end{bmatrix} (1×31 \times 3), VV는 3×33 \times 3.

18.5 [계산]

문제 18.1의 SVD로 A=[2211]A = \begin{bmatrix} 2 & 2 \\ 1 & 1 \end{bmatrix}의 4대 부분공간의 정규직교 기저를 씁니다.

풀이

행공간: 12(1,1)\frac{1}{\sqrt2}(1, 1). 영공간: 12(1,−1)\frac{1}{\sqrt2}(1, -1). 열공간: 15(2,1)\frac{1}{\sqrt5}(2, 1). 왼쪽 영공간: 15(−1,2)\frac{1}{\sqrt5}(-1, 2).

18.6 [계산] · 확인 문제

A=[3045]A = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix}의 가장 좋은 랭크 1 근사 A1=σ1u1v1TA_1 = \sigma_1\mathbf{u}_1\mathbf{v}_1^T를 구합니다. A−A1A - A_1이 σ2u2v2T\sigma_2\mathbf{u}_2\mathbf{v}_2^T와 같음을 확인합니다.

1열 2열
A1A_1의 1행 [?] [?]
A1A_1의 2행 [?] [?]
정답
3/2
3/2
9/2
9/2
풀이
A1=35⋅110[13]⋅12[11]=32[1133],A−A1=[32−32−1212],A_1 = 3\sqrt5 \cdot \frac{1}{\sqrt{10}}\begin{bmatrix} 1 \\ 3 \end{bmatrix} \cdot \frac{1}{\sqrt2}\begin{bmatrix} 1 & 1 \end{bmatrix} = \frac32\begin{bmatrix} 1 & 1 \\ 3 & 3 \end{bmatrix}, \qquad A - A_1 = \begin{bmatrix} \frac32 & -\frac32 \\ -\frac12 & \frac12 \end{bmatrix},σ2u2v2T=5⋅110[−31]⋅12[−11]=12[3−3−11].\sigma_2\mathbf{u}_2\mathbf{v}_2^T = \sqrt5 \cdot \frac{1}{\sqrt{10}}\begin{bmatrix} -3 \\ 1 \end{bmatrix} \cdot \frac{1}{\sqrt2}\begin{bmatrix} -1 & 1 \end{bmatrix} = \frac12\begin{bmatrix} 3 & -3 \\ -1 & 1 \end{bmatrix}.

같습니다.

18.7 [증명]

AA의 성분의 제곱합은 특잇값의 제곱합과 같음을 보입니다. 즉 ∑i,jaij2=σ12+⋯+σr2\sum_{i,j} a_{ij}^2 = \sigma_1^2 + \cdots + \sigma_r^2. (힌트: 좌변은 tr⁡(ATA)\operatorname{tr}(A^TA)입니다.)

풀이

(ATA)jj=∑iaij2(A^TA)_{jj} = \sum_i a_{ij}^2이므로 tr⁡(ATA)=∑i,jaij2\operatorname{tr}(A^TA) = \sum_{i,j} a_{ij}^2. 한편 대각합은 고윳값의 합(정리 16.2)이고 ATAA^TA의 고윳값은 σi2\sigma_i^2 (그리고 0).

18.8 [증명]

∥x∥=1\lVert \mathbf{x} \rVert = 1일 때 ∥Ax∥\lVert A\mathbf{x} \rVert의 최댓값은 σ1\sigma_1임을 보입니다. (문제 17.11을 ATAA^TA에 적용합니다.)

풀이

∥Ax∥2=xT(ATA)x≤λmax⁡(ATA)∥x∥2=σ12\lVert A\mathbf{x} \rVert^2 = \mathbf{x}^T(A^TA)\mathbf{x} \le \lambda_{\max}(A^TA)\lVert \mathbf{x} \rVert^2 = \sigma_1^2. 등호는 x=v1\mathbf{x} = \mathbf{v}_1.

18.9 [계산] · 확인 문제

A=[2211]A = \begin{bmatrix} 2 & 2 \\ 1 & 1 \end{bmatrix}의 유사역행렬을 구합니다. x+=A+(1,0)\mathbf{x}^+ = A^+(1, 0)을 구하고, 이것이 최소제곱 해 중 가장 짧은 것임을 직접 확인합니다.

x1+x^+_1 x2+x^+_2
[?] [?]
정답
0.2
0.2
풀이

A+=1σ1v1u1T=110⋅12[11]⋅15[21]=110[2121]A^+ = \frac{1}{\sigma_1}\mathbf{v}_1\mathbf{u}_1^T = \frac{1}{\sqrt{10}} \cdot \frac{1}{\sqrt2}\begin{bmatrix} 1 \\ 1 \end{bmatrix} \cdot \frac{1}{\sqrt5}\begin{bmatrix} 2 & 1 \end{bmatrix} = \frac{1}{10}\begin{bmatrix} 2 & 1 \\ 2 & 1 \end{bmatrix}. x+=(0.2,0.2)\mathbf{x}^+ = (0.2, 0.2). 확인: Ax=s(2,1)A\mathbf{x} = s(2, 1) (s=x1+x2s = x_1 + x_2). (2s−1)2+s2(2s - 1)^2 + s^2을 최소로 하는 ss는 s=25s = \frac25. x1+x2=0.4x_1 + x_2 = 0.4인 해 중 가장 짧은 것은 (0.2,0.2)(0.2, 0.2).

18.10 [증명]

AA의 열이 독립이면 A+=(ATA)−1ATA^+ = (A^TA)^{-1}A^T임을 SVD로 보입니다.

풀이

열이 독립이면 r=nr = n이고 ATA=VΣTΣVTA^TA = V\Sigma^T\Sigma V^T, ΣTΣ=diag⁡(σi2)\Sigma^T\Sigma = \operatorname{diag}(\sigma_i^2)는 가역.

(ATA)−1AT=V(ΣTΣ)−1VTVΣTUT=V(ΣTΣ)−1ΣTUT.(A^TA)^{-1}A^T = V(\Sigma^T\Sigma)^{-1}V^TV\Sigma^TU^T = V(\Sigma^T\Sigma)^{-1}\Sigma^TU^T.

(ΣTΣ)−1ΣT(\Sigma^T\Sigma)^{-1}\Sigma^T는 대각에 σi/σi2=1/σi\sigma_i/\sigma_i^2 = 1/\sigma_i를 가진 n×mn \times m 행렬, 즉 Σ+\Sigma^+.