고유값 분해는 강력하지만 조건이 까다롭습니다. 정사각 행렬이어야 하고, 대각화가 가능해야 하고, 고유벡터가 서로 수직이려면 대칭이어야 합니다. 그런데 공학의 행렬 대부분은 정사각조차 아닙니다. 사진은 1080×1920, 측정 자료는 관측 수천 개 × 변수 몇십 개, 추천 시스템은 사용자 수백만 × 상품 수십만입니다. 특이값 분해(Singular Value Decomposition, SVD)는 이 모든 행렬에 예외 없이 존재합니다. 어떤 행렬이든 회전 → 축 방향으로 늘이기 → 회전으로 나뉘고, 늘이는 배율(특이값)의 크기 순서가 그 행렬에서 무엇이 중요하고 무엇이 잡음인지를 알려 줍니다. 이 장은 그 그림에서 출발해 이미지 압축, 유사역행렬, 조건수, 흐린 신호 복원까지 갑니다.
2×2 행렬이 단위원을 타원으로 보내는 모습을 VT(회전) → Σ(늘이기) → U(회전)의 세 단계로 분해해 읽는다.
ATA의 고유값·고유벡터에서 특이값과 오른쪽 특이벡터를, Avi=σiui에서 왼쪽 특이벡터를 손으로 구한다.
SVD가 네 부분공간 모두의 정규직교 기저를 한꺼번에 준다는 것을 설명하고, 축소형과 완전형 SVD를 구별한다.
스펙트럼 노름·프로베니우스 노름을 특이값으로 쓰고, 유사역행렬 A+로 최소제곱 해 가운데 길이가 가장 짧은 해를 구한다.
조건수 κ=σ1/σn이 오차를 얼마나 증폭하는지 실험하고, 절단 SVD로 잡음 증폭을 막는 정칙화를 해 본다.
이 수식이 없었다면"당신이 좋아할 만한 영화"
스트리밍 서비스에는 사용자 수백만 명과 작품 수만 편이 있고, 한 사람이 평점을 남긴 작품은 그중 극히 일부입니다. 비어 있는 칸이 대부분인 거대한 사용자 × 작품 표에서, 아직 보지 않은 작품의 평점을 어떻게 짐작할까요? 사용자마다, 작품마다 규칙을 따로 만들 수는 없습니다.
관찰은 이것입니다. 사람의 취향은 생각보다 몇 가지 축으로 요약됩니다. "액션을 얼마나 좋아하나", "잔잔한 드라마를 얼마나 좋아하나" 같은 몇 개의 숨은 요인이 평점의 대부분을 설명한다면, 평점 표는 낮은 계수의 행렬에 가깝습니다. SVD는 행렬을 중요도 순서의 랭크 1 조각으로 나누어 그 숨은 축을 찾아 줍니다. 2006–2009년 넷플릭스가 상금 100만 달러를 걸고 연 추천 정확도 대회(Netflix Prize)에서 상위 팀들이 공통으로 쓴 핵심 도구가 바로 이런 저랭크 행렬 분해였습니다.
빈칸투성이 평점 표→규칙을 일일이? 불가능→저랭크 근사(SVD)→숨은 취향 축 몇 개
회전 → 늘이기 → 회전
대칭이 아닌 행렬은 어느 축을 따라 늘이나
13장에서 대칭 행렬 S=QΛQT는 서로 수직인 축(고유벡터)을 따라 늘이기만 한다는 것을 보았습니다. 그런데 전단 [1011]처럼 대칭이 아닌 행렬은 고유벡터가 하나뿐이거나 서로 비스듬합니다. 그래도 이 행렬이 단위원을 보내는 모양은 분명히 타원입니다. 타원에는 언제나 서로 수직인 두 축(장축과 단축)이 있습니다. 그 축은 어디서 왔을까요?
답은 입력 쪽과 출력 쪽에 서로 다른 수직 축을 허락하는 것입니다. 입력 공간에서 서로 수직인 단위 벡터 v1,v2를 잘 고르면, 그 상 Av1,Av2도 서로 수직이 되고 각각 타원의 장축·단축이 됩니다. 그 길이를 σ1≥σ2≥0, 방향을 단위 벡터 u1,u2라 쓰면
Av1=σ1u1,Av2=σ2u2⟺AV=UΣ⟺A=UΣVT
V=[v1v2], U=[u1u2]는 직교 행렬, Σ=diag(σ1,σ2). V가 직교라서 V−1=VT이고, 그래서 양변 오른쪽에 VT를 곱하면 분해가 나온다.
오른쪽에서 왼쪽으로 읽으면 그림이 됩니다. VT가 입력을 돌려 v1,v2를 좌표축에 맞추고, Σ가 축 방향으로 σ1배, σ2배 늘이고, U가 그 결과를 u1,u2 방향으로 돌려놓습니다.
그림 14-1. 예제 14.1의 행렬(1/3배)을 네 단계로 본 그림. 입력 쪽 수직 축 v₁, v₂(①)를 먼저 좌표축에 맞추고(②), 축 방향으로 σ₁, σ₂배 늘인 뒤(③), 출력 쪽 수직 축 u₁, u₂로 돌린다(④). ④의 타원은 A가 단위원을 보낸 모양 그대로이며, 그 장축·단축이 σ₁u₁, σ₂u₂다.
정리 14.1 (특이값 분해) 모든 실수 m×n 행렬 A는
A=UΣVT
로 쓸 수 있다. U(m×m)와 V(n×n)는 직교 행렬이고, Σ(m×n)는 대각선에 σ1≥σ2≥⋯≥σr>0과 나머지 0을 가진 "대각" 행렬이다. r은 A의 계수다. σi를 특이값(singular value), U의 열 ui를 왼쪽 특이벡터, V의 열 vi를 오른쪽 특이벡터라 한다. 특이값은 A가 정하면 유일하다.
SIMULATOR
단위원을 세 단계로 타원으로
① 입력
행렬 A
σ₁, σ₂—
v₁ 방향 / u₁ 방향—
|det A| = σ₁σ₂—
U는—
해볼 것: ① '전단'을 고르고 t를 천천히 밀어 보세요. 고유벡터는 x축 하나뿐이지만, 특이벡터는 입력과 출력 쪽에 수직인 쌍이 하나씩 있습니다. ② '대칭'에서는 v와 u가 같은 방향입니다(대칭 양의 정부호면 SVD = 고유분해). ③ '반사가 섞인' 행렬은 det < 0이라 마지막 단계에서 원이 뒤집힙니다. ④ '계수 1'에서는 σ₂ = 0, 타원이 선분으로 납작해집니다. 모델: V는 항상 회전으로 고르고, det A < 0이면 U가 반사를 맡도록 했습니다. 단계 0→1은 Vᵀ, 1→2는 Σ, 2→3은 U를 서서히 적용합니다.
특이값은 어디서 오나: ATA
장축 방향을 어떻게 찾나
타원의 장축은 단위원 위의 x 가운데 ∥Ax∥를 가장 크게 만드는 방향입니다. 모든 방향을 하나씩 시험하지 않고 이 방향을 계산으로 얻을 수 있을까요?
길이 대신 길이의 제곱을 보면 길이 열립니다. ∥Ax∥2=(Ax)T(Ax)=xT(ATA)x. 그런데 ATA는 언제나 대칭이고 양의 준정부호입니다. 13장의 레일리 몫에 따르면 ∥x∥=1에서 이 이차 형식의 최댓값은 ATA의 가장 큰 고유값이고, 그때의 x가 그 고유벡터입니다. 그러니
ATAvi=σi2vi,σi=λi(ATA),ui=σiAvi(σi>0)
오른쪽 특이벡터 = ATA의 고유벡터, 특이값² = 그 고유값. 같은 논리로 AATui=σi2ui이므로 왼쪽 특이벡터 = AAT의 고유벡터다.
정리 14.2의 증명 (존재)ATA는 대칭이므로 스펙트럼 정리(13장)에 의해 정규직교 고유벡터 v1,…,vn과 고유값 λ1≥⋯≥λn을 가진다. λi=viTATAvi=∥Avi∥2≥0이므로 σi=λi로 둘 수 있다. σi>0인 i≤r에 대해 ui=Avi/σi로 두면 uiTuj=viTATAvj/(σiσj)=λjviTvj/(σiσj)=δij. 즉 ui도 저절로 정규직교다. 모자란 u는 그람–슈미트로 채워 Rm의 정규직교 기저를 완성하면 AV=UΣ가 된다. ∎
u1=Av1/σ1=21(3,9)/(35)=101(1,3), u2=Av2/σ2=21(−3,1)/5=101(−3,1). 두 벡터의 내적은 −3+3=0, 정말 수직이다.
검산: σ1σ2=35⋅5=15=∣detA∣. 넓이 배율은 두 늘이기 배율의 곱이다.
SIMULATOR
방향마다 얼마나 늘어나나: ‖Ax‖의 최대와 최소
x를 단위원 위에서 끌어 보세요
‖Ax‖ — 입력 각도 θ
θ—
‖Ax‖—
σ₁ (최대)—
σ₂ (최소)—
해볼 것: ① x를 돌려 ‖Ax‖가 가장 커지는 각도를 찾으세요. 오른쪽 그래프의 봉우리가 σ₁이고 그 θ가 v₁의 방향입니다. ② 봉우리와 골짜기는 정확히 90° 떨어져 있습니다. v₁ ⟂ v₂. ③ '거의 특이'에서는 골짜기가 0에 가깝습니다. 그 방향의 입력은 거의 지워집니다. 모델: 그래프는 θ ∈ [0°, 180°)에서 ‖A(cos θ, sin θ)‖를 그린 것입니다(θ + 180°는 같은 값).
네 부분공간의 정규직교 기저를 한 번에
6장에서 그린 "큰 그림"을 떠올려 봅시다. 입력 공간 Rn은 행공간 C(AT)(차원 r)과 영공간 N(A)(차원 n−r)로 수직으로 나뉘고, 출력 공간 Rm은 열공간 C(A)(차원 r)와 왼쪽 영공간 N(AT)(차원 m−r)로 나뉩니다. SVD는 이 네 공간 모두에 정규직교 기저를, 그것도 서로 짝이 맞는 기저를 줍니다.
그림 14-2. SVD가 그리는 큰 그림. 행공간의 vᵢ는 열공간의 uᵢ와 일대일로 짝지어져 σᵢ배가 되고, 영공간의 v는 0으로 간다. 거꾸로 Aᵀ는 uᵢ를 σᵢvᵢ로 돌려보낸다. 계수 r = 0이 아닌 특이값의 개수.
이 짝짓기가 SVD의 진짜 의미입니다. A는 행공간의 정규직교 기저를 열공간의 정규직교 기저로, 축마다 σ배씩 보내는 사상이고, 영공간은 버립니다. 행공간과 열공간 사이에서만 보면 A는 언제나 가역입니다(r×r 대각 σi>0). 이 관찰이 6절의 유사역행렬로 이어집니다.
정의 14.3 (완전형과 축소형) 정리 14.1의 U(m×m), Σ(m×n), V(n×n)를 완전형 SVD라 한다. 0인 특이값에 해당하는 열을 버리면 A=UrΣrVrT(Ur: m×r, Σr: r×r, Vr: n×r)가 되는데 이를 축소형 SVD(reduced/thin SVD)라 한다. 계산과 저장에는 축소형을, 네 부분공간을 모두 말할 때는 완전형을 쓴다.
대칭 행렬과의 관계A가 대칭 양의 준정부호면 SVD와 스펙트럼 분해는 같습니다(U=V=Q, Σ=Λ). 대칭이지만 음의 고유값이 있으면 σi=∣λi∣이고, 부호는 ui=−vi로 넘어갑니다. 일반 정사각 행렬에서는 특이값과 고유값이 다릅니다. 전단 [1011]의 고유값은 1, 1이지만 특이값은 21+5≈1.618과 25−1≈0.618입니다.
랭크 1 조각의 합
A=UΣVT를 2장의 "외적의 합" 곱셈으로 풀어 쓰면 SVD의 또 다른 얼굴이 나옵니다.
A=σ1u1v1T+σ2u2v2T+⋯+σrurvrT
각 항 uiviT는 계수 1인 m×n 행렬이고 프로베니우스 노름이 1이다. 조각들은 서로 직교한다(대각합 내적 tr((uiviT)TujvjT)=0, i=j). 그래서 σᵢ가 곧 i번째 조각의 "무게"다.
이미지로 생각하면 쉽습니다. uvT는 세로 무늬 u와 가로 무늬 v를 곱한 체크무늬 한 장입니다. SVD는 행렬을 무게 순서로 정렬된 체크무늬 레이어의 합으로 분해하고, 앞쪽 레이어 몇 장이 전체 모양의 대부분을 이룹니다. 6장의 랭크 1 행렬이 여기서 부품이 됩니다.
SIMULATOR
체크무늬 레이어를 한 장씩 쌓기
σ₁ … σ₁₀—
‖A − A_k‖_F / ‖A‖_F—
‖A − A_k‖₂ = σ_{k+1}—
해볼 것: ① '격자무늬'에서 k = 3이면 오차가 잡음 수준으로 뚝 떨어집니다. 특이값 목록에서도 σ₃과 σ₄ 사이에 큰 틈이 보입니다. ② 잡음을 키우면 σ₄ 이후가 커지고 틈이 흐려집니다. 계수를 "숫자로" 판정하기 어려워지는 순간입니다(16장). ③ '삼각형'(위삼각이 모두 1)은 계수 10이지만 특이값이 빠르게 줄어 k = 3만으로도 모양이 보입니다. 모델: 10×10 행렬, 패널은 왼쪽부터 A, k번째 레이어 σ_k u_k v_kᵀ, 합 A_k, 나머지 A − A_k(파랑 음수, 빨강 양수).
최선의 저랭크 근사: 에커트–영 정리
숫자를 4분의 1만 남긴다면 무엇을 남길까
64×64 흑백 사진 한 장은 숫자 4,096개입니다. 저장 공간이 4분의 1밖에 없다면, 어떤 숫자 1,000여 개를 남겨야 원래 사진과 가장 비슷할까요? 픽셀을 4개 중 하나씩만 남기면 해상도가 반으로 떨어집니다. 더 영리한 방법이 있을까요?
앞쪽 k개 레이어만 남긴 Ak=∑i≤kσiuiviT는 숫자 k(m+n+1)개로 저장됩니다(ui m개, vi n개, σi 1개). 64×64에서 k = 8이면 8×129=1032개, 원본의 약 25%입니다. 놀라운 것은 이것이 단지 좋은 방법이 아니라 최선이라는 사실입니다.
정리 14.4 (에커트–영–미르스키) 계수가 k 이하인 모든 m×n 행렬 B 가운데
∥A−Ak∥2=σk+1≤∥A−B∥2,∥A−Ak∥F=σk+12+⋯+σr2≤∥A−B∥F
이다. 즉 특이값이 큰 k개 조각을 남긴 것이 스펙트럼 노름으로도, 프로베니우스 노름으로도 가장 가까운 랭크 k 행렬이다. 증명 아이디어(스펙트럼 노름). 계수 k인 B의 영공간은 n − k차원이고 v1,…,vk+1이 생성하는 k+1차원 공간과 0이 아닌 단위 벡터 w를 공유한다(차원의 합이 n을 넘으므로). 그러면 ∥(A−B)w∥=∥Aw∥≥σk+1이다. ∎
이 정리는 1936년 에커트(Carl Eckart)와 영(Gale Young)이 심리측정학의 요인 분석 문제를 풀며 발표했습니다. 오늘날 PCA(15장), 이미지·영상 압축의 이론적 기준, 추천 시스템, 대형 언어 모델의 가중치 행렬을 저랭크로 줄이는 기법까지 모두 이 정리 위에 있습니다.
SIMULATOR
SVD로 사진 압축하기
저장할 숫자—
상대 오차 ‖A − A_k‖_F / ‖A‖_F—
남긴 에너지 Σσ²—
해볼 것: ① '풍경'에서 k를 1부터 올려 보세요. k = 1은 줄무늬 한 장, k = 8쯤이면 집과 해가 알아볼 만하고 저장량은 25%입니다. ② '막대'는 k = 2에서 완벽히 복원됩니다. 행이 두 종류뿐인 계수 2 행렬이기 때문입니다. ③ '동심원'은 가로세로로 분리되지 않는 무늬라 특이값이 천천히 줄고 압축이 잘 안 됩니다. 모델: 64×64 흑백(0~1), 특이값 그래프는 로그 눈금, 세로선이 k. 실제 JPEG는 SVD가 아니라 고정된 기저(이산 코사인 변환)를 쓰는데, 영상마다 기저를 저장할 필요가 없어서입니다.
행렬의 크기는 특이값이 정한다
벡터에는 길이가 있습니다(1장). 행렬의 "크기"는 무엇일까요? 가장 자연스러운 답은 "가장 많이 늘이는 배율"이고, 그것이 정확히 σ1입니다.
노름
정의
특이값으로
쓰임
스펙트럼(2-)노름
∥A∥2=max∥x∥=1∥Ax∥
σ1
최악의 증폭, 안정성, 오차 한계
프로베니우스 노름
∥A∥F=∑i,jaij2
σ12+⋯+σr2
전체 에너지, 근사 오차, 최소제곱 맞춤
핵 노름
∥A∥∗
σ1+⋯+σr
계수 최소화의 볼록 대용(행렬 완성)
정리 14.5 (직교 불변성) 직교 행렬 Q1,Q2에 대해 ∥Q1AQ2∥2=∥A∥2, ∥Q1AQ2∥F=∥A∥F이다. 직교 변환은 길이를 바꾸지 않기 때문이다. 그래서 ∥A∥=∥UΣVT∥=∥Σ∥이고, 대각 행렬의 노름은 대각 원소로 바로 계산된다. 위 표의 세 번째 열은 이렇게 나온다. 또 ∥A∥F2=tr(ATA)=∑λi(ATA)=∑σi2로도 확인된다.
예제 14.2A=[3405]의 프로베니우스 노름은 9+0+16+25=50이고, 특이값으로는 45+5=50. 같다. 스펙트럼 노름은 σ1=35≈6.71로, 가장 큰 성분 5나 열의 길이 5, 41≈6.40보다 크다. 행렬은 열 하나보다 비스듬한 방향을 더 많이 늘일 수 있다.
유사역행렬: 역행렬이 없을 때의 "최선의 되돌리기"
해가 없거나 너무 많을 때
미지수가 식보다 많으면 Ax=b의 해는 무수히 많고(5장), 식이 미지수보다 많으면 보통 해가 없어 최소제곱을 씁니다(8장). 그런데 A의 열이 종속이면 최소제곱 해마저 무수히 많아 ATA가 가역이 아닙니다. 이 모든 경우에 "단 하나의 답"을 정하는 규칙이 있을까요?
3절의 그림에서 답이 보입니다. A는 행공간을 열공간으로 σi배씩 보내고 영공간은 버립니다. 그렇다면 되돌리는 쪽은 열공간의 ui를 행공간의 vi로 1/σi배씩 돌려보내고, 왼쪽 영공간은 버리면 됩니다.
A+=VΣ+UT=i=1∑rσi1viuiT,x+=A+b
Σ+는 Σ를 전치하고 0이 아닌 σi를 1/σi로 바꾼 n×m 행렬. 0인 특이값은 0으로 둔다(나누지 않는다). A가 가역이면 A+=A−1.
정리 14.6 (최소 노름 최소제곱 해)x+=A+b는 ∥Ax−b∥를 최소로 하는 모든 x 가운데 길이가 가장 짧은 유일한 해다. 증명.x=Vy, c=UTb로 좌표를 바꾸면 직교 불변성에 의해 ∥Ax−b∥2=∥Σy−c∥2=∑i≤r(σiyi−ci)2+∑i>rci2. 최소가 되려면 yi=ci/σi (i≤r)이고 yr+1,…는 자유다. ∥x∥=∥y∥를 최소로 하려면 자유인 성분을 0으로 두면 된다. 그것이 y=Σ+c, 즉 x=A+b. ∎
예제 14.3 식 하나 x1+2x2=5, 즉 A=[12]. 해는 직선 전체입니다. A의 SVD는 σ1=5, v1=(1,2)/5, u1=1이므로 A+=v1⋅51⋅1=51(1,2)T, x+=(1,2). 확인: 1+4=5이고, (1,2)는 행 (1,2)와 평행하므로 원점에서 해 직선에 내린 수선의 발입니다. 다른 해 (5,0)의 길이 5보다 ∥x+∥=5가 짧습니다.
SIMULATOR
해 직선 위에서 가장 짧은 해
초록 점을 해 직선 위에서 끌어 보세요
문제
x⁺ = A⁺b—
‖x⁺‖ / ‖끈 점‖—
잔차 ‖Ax − b‖—
—
해볼 것: ① 초록 점을 해 직선 위에서 끌어 보세요. 잔차는 그대로인데 길이는 보라 점 x⁺에서 가장 짧습니다. ② 보라 점은 언제나 행공간(점선, 방향 a) 위에 있고, 해 직선은 영공간 방향(회색)과 평행합니다. ③ '계수 1인 2×2'에서 A = [a₁ a₂; 2a₁ 2a₂]의 출력은 늘 (t, 2t) 꼴이라 b가 그 위에 없으면 해가 없습니다. 이때도 최소제곱 해들은 직선을 이루고, x⁺는 그중 가장 짧은 것입니다. 모델: 입력 공간 ℝ²만 그렸습니다.
조건수: 오차가 몇 배로 커지나
측정값 0.01%의 오차가 답을 얼마나 흔드나
계측 장비로 b를 재서 Ax=b를 풀어 x를 얻습니다. b에 아주 작은 오차 δb가 섞이면 답은 얼마나 틀릴까요? 같은 0.01% 오차라도 어떤 행렬에서는 답이 0.01% 틀리고, 어떤 행렬에서는 100% 틀립니다.
A−1=VΣ−1UT는 ui 방향 성분을 1/σi배 합니다. 최악의 경우는 b가 크게 늘어나는 u1 방향(답이 작게 나옴)이고 오차 δb가 가장 적게 늘어나는 un 방향(답의 오차가 크게 나옴)일 때입니다.
∥x∥∥δx∥≤κ(A)∥b∥∥δb∥,κ(A)=∥A∥2∥A−1∥2=σnσ1
등호는 위에서 말한 최악의 방향 조합에서 성립한다. κ = 1은 직교 행렬(최상), κ = ∞는 특이 행렬. 부동소수점에서는 대략 log10κ자리의 유효숫자를 잃는다(16장).
행렬식은 조건수가 아니다detA가 작다고 나쁜 행렬이 아닙니다. 0.01I(100×100)의 행렬식은 10−200이지만 κ = 1인 완벽한 행렬입니다. 거꾸로 [101041]의 행렬식은 1이지만 κ ≈ 10⁸입니다. "거의 특이한가"를 묻는 올바른 질문은 "가장 작은 특이값이 가장 큰 것에 비해 얼마나 작은가"입니다.
SIMULATOR
측정 오차의 원이 해의 타원이 된다
측정 b와 오차 원 ‖δb‖ ≤ ε
해 x = A⁻¹b와 오차 타원
σ₁, σ₂—
상대 오차 증폭(최악)—
이론 상한 κ—
해볼 것: ① κ를 1(10⁰)에서 100(10²)으로 올리면 오른쪽 오차 타원이 한 방향(v₂)으로 길게 늘어납니다. ② b가 u₁ 방향(각 0°)일 때 증폭이 κ에 딱 닿습니다. b를 u₂ 쪽(90°)으로 돌리면 해 자체도 커져 상대 증폭은 1로 줄어듭니다. 조건수는 "최악의 경우"의 보증입니다. 모델: A = R(30°)·diag(1, 1/κ)·R(−20°), ‖b‖ = 1. 오차 원 위 120점을 A⁻¹로 보낸 뒤 최대 상대 증폭을 셉니다.
절단 SVD: 흐린 신호를 되살리기
흐려진 측정을 되돌리면 왜 잡음만 남나
망원경 사진, 초음파 신호, 센서 응답처럼 측정 장치는 신호를 조금씩 흐리게 합니다. 흐림이 선형이면 b=Ax+잡음이고, 흐림 행렬 A를 알면 x=A−1b로 되돌리면 될 것 같습니다. 그런데 실제로 해 보면 원래 신호 대신 거대한 지그재그가 나옵니다. 무엇이 잘못됐을까요?
흐림 행렬은 매끈한 무늬(작은 i의 vi)는 거의 그대로 통과시키고 빠르게 출렁이는 무늬(큰 i)는 거의 지웁니다. 그래서 특이값이 지수적으로 작아지고 κ가 천문학적으로 커집니다. 역행렬 해를 SVD로 쓰면 원인이 보입니다.
A−1b=i=1∑nσiuiTbvi=x+i=1∑nσiuiTεvi
잡음 ε은 모든 ui 방향에 고르게 섞여 있다. σi가 작은 항에서 잡음이 1/σi배로 폭발한다.
해법은 단순합니다. 잡음에 묻힌 작은 특이값의 항을 버리는 것입니다. 앞쪽 k개만 남긴 xk=∑i≤k(uiTb/σi)vi=Ak+b를 절단 SVD(truncated SVD) 해라 합니다. k가 작으면 신호의 세부를 잃고(편향), k가 크면 잡음이 폭발합니다(분산). 그 사이의 좋은 k를 고르는 것이 정칙화(regularization)의 핵심이고, 머신러닝의 릿지 회귀(티호노프 정칙화)는 항을 자르는 대신 σi2/(σi2+λ)로 부드럽게 줄이는 같은 아이디어입니다.
SIMULATOR
몇 개의 특이값까지 믿을 것인가
신호: 참값 · 측정 b · 복원 x_k
σᵢ와 |uᵢᵀb| (로그 눈금)
복원 오차 ‖x_k − x‖/‖x‖—
가장 좋은 k—
κ(A) = σ₁/σ₄₈—
해볼 것: ① k를 48까지 올려 보세요(그냥 A⁻¹b). 복원이 지그재그로 폭발합니다. ② 오른쪽 그래프에서 |uᵢᵀb|(주황)가 잡음 바닥에 닿아 평평해지는 지점이 σᵢ(보라)가 그 바닥 아래로 내려가는 지점입니다. 그 근처 k가 가장 좋습니다(피카르 조건). ③ 잡음을 0으로 하면 큰 k도 괜찮아집니다. 부동소수점 반올림이라는 작은 잡음이 남아 있을 뿐입니다. 모델: 신호 48점, 가우스 흐림(행 합 1로 정규화), 잡음은 시드 고정 정규 난수입니다.
이 도구가 쓰이는 곳
"중요한 순서로 나누고, 덜 중요한 것을 버린다"는 SVD의 문장은 데이터, 신호, 제어, 계산 곳곳에 다른 이름으로 나타납니다.