이 단원 목차
어떤 방향의 정보가 중요한가
임베딩 행렬, 영상, 선형층은 모두 큰 배열일 수 있습니다. 방향 몇 개만 남길 때 무엇을 버리는지 정확히 알고 싶습니다. 특이값분해(SVD)는 입력 방향 선택, 방향별 늘어남, 출력 방향 배치로 선형변환을 나눕니다. 고유값분해와 달리 직사각형 행렬에도 적용됩니다.
이 단원의 목표는 대칭 행렬 문제에서 SVD를 유도하고, 근사 오차를 계산하며, 역변환이 잡음을 증폭하는 조건을 설명하는 것입니다. 실험은 모든 성분을 확인할 수 있는 실수 2×2 행렬이지만 정리는 2차원에 제한되지 않습니다.
기호와 차원
| 대상 | 의미와 차원 |
|---|---|
| 실수 선형변환 | |
| 출력의 직교 방향, 전체 SVD에서는 | |
| 입력의 직교 방향, | |
| 음이 아닌 특잇값의 직사각 대각 행렬 | |
| 큰 것부터 정렬한 특잇값 | |
| 정확한 산술에서 양의 특잇값 개수인 랭크 |
전체 분해는 입니다. 얇은 분해에서는 필요한 열만 남기지만 곱의 차원은 여전히 맞아야 합니다. 직교변환은 유클리드 길이를 보존하고 대각 성분이 길이를 바꿉니다. 특잇값이 반복되면 개별 방향은 유일하지 않습니다. 대응하는 두 방향의 부호를 함께 바꿔도 같은 행렬입니다.
입력과 출력 방향 유도하기
실수 벡터 에 대해 입니다. 따라서 는 대칭 양의 준정부호이고 직교 고유기저를 가집니다.
일 때 로 정의합니다. 서로 다른 양의 특이 방향끼리 내적하면 들의 직교성으로 돌아가므로 출력 방향도 직교합니다. 0인 방향은 필요한 직교기저로 보충합니다. 이 구성이 SVD와 특잇값의 비음수성을 설명합니다. 의 음의 고유값을 음의 특잇값으로 옮기면 안 됩니다.
를 만드는 것은 유도에 유용하지만 0이 아닌 조건수를 제곱합니다. 실제 수치 라이브러리는 더 안정적인 알고리즘을 씁니다. 이 작은 교육 구현을 범용 선형대수 라이브러리로 사용하지 마세요.
대각 행렬의 손계산
이면 입출력 방향을 좌표축으로 선택할 수 있고 특잇값은 3과 1입니다. 단위원은 반축 길이 3과 1의 타원이 됩니다. 그림의 두 좌표는 출력 공간이며 확률 등고선이 아닙니다.
첫 항만 남기면 입니다. 두 번째 입력 방향은 사라지고 타원이 선분으로 찌그러집니다. 원래 Frobenius 노름은 , 랭크 1 잔차의 노름은 1입니다. 제곱 노름의 90%를 남겼다고 해서 예측 품질도 90% 보존된다는 뜻은 아닙니다.
절단이 최적 근사인 이유
랭크가 최대 인 행렬 중 절단 SVD는 스펙트럼·Frobenius 오차를 최소화합니다.
스펙트럼 결과의 하한을 생각해봅시다. 랭크 인 변환은 앞의 개 오른쪽 특이벡터가 만드는 공간에서 어떤 0이 아닌 벡터를 0으로 보내야 합니다. 그 공간에서 는 적어도 만큼 늘립니다. 절단은 이 하한을 달성합니다. Frobenius 결과는 직교 특이 성분의 분해와 투영 논증으로 얻습니다. 대각 예제 하나의 검산만으로 전체 최소화 정리를 증명한 것은 아닙니다.
어떤 노름과 랭크 제약에서 최적인지 명시해야 합니다. 의미 보존이나 임의의 과제 손실에 대한 보편적 보장은 아닙니다.
조건수와 역변환
가역 정사각형 행렬에서 입니다. 약한 특잇값 1을 0.1로 바꾸면 조건수는 30입니다. 그 출력 방향의 잡음을 역변환할 때 0.1로 나누므로 증폭됩니다. 관측 잔차가 작아도 매개변수 오차가 클 수 있습니다.
두 번째 특잇값이 0이면 유한한 조건수를 표시하지 않습니다. 의사역행렬로 최소 노름 해를 선택할 수 있지만 관측하지 못한 성분을 복원할 수는 없습니다. 랭크 1 예제의 특잇값은 이며 랭크 1 근사 오차는 0입니다. 오차가 0이라는 사실과 역해의 유일성은 다른 문제입니다.
의사역행렬과 최소 노름 최소제곱
직사각형·특이 행렬에서도 SVD로 Moore–Penrose 의사역행렬을 정의할 수 있습니다. 양의 특잇값만 역수로 바꾸고 영인 성분은 0으로 둡니다.
x*=A⁺b는 모든 최소제곱 해 중 유클리드 노름이 가장 작습니다. U 기저에서 b를 분해하면 관측 가능한 성분은 비영 특잇값으로 나누어 맞출 수 있고, 열공간에 수직인 성분은 어떤 x로도 맞출 수 없어 잔차로 남습니다. 영공간 성분을 x에 더하면 출력과 잔차는 그대로지만 노름은 증가하므로 그 성분을 0으로 선택합니다.
예를 들어 A=diag(1,0), b=(2,3)이면 A⁺=diag(1,0), x*=(2,0), 잔차 b−Ax*=(0,3)입니다. (2,t)는 모두 같은 잔차를 주지만 최소 노름은 t=0입니다. 이 선택은 관측되지 않은 성분을 복원했다는 뜻이 아닙니다.
정확한 의사역행렬은 AA⁺A=A, A⁺AA⁺=A⁺와 AA⁺,A⁺A의 대칭성을 만족합니다. 부동소수점에서 작은 특잇값을 0으로 취급하는 수치적 의사역행렬은 임계값을 명시해야 합니다. 임계값 선택은 정확한 영공간 판정과 다른 문제이며, 불안정한 방향을 잘라내는 정규화 효과를 가질 수 있습니다.
실험을 읽고 재현하기
파랑은 원래 변환이 보낸 단위원, 주황은 랭크 1 근사입니다. 같은 출력 축을 사용하지만 행렬 설정에 따라 축 범위가 바뀝니다. 예제 사이의 타원 크기만 보고 오차를 비교하지 말고 수치 표를 보세요. 전체 SVD 재구성 오차와 절단 오차는 따로 계산합니다.
에서 특잇값이 여전히 3과 1인 이유를 설명하세요. 다음에는 두 열을 같게 하고 랭크와 재구성을 확인하세요. 마지막으로 비대칭 행렬을 골라 의 고유벡터를 양쪽 특이기저로 그대로 사용할 수 없는 이유를 살펴보세요.
AI 동작과 연구 검증
저랭크 층, 행렬 압축, 국소 Jacobian 분석에 연결됩니다. 중심화한 데이터의 분모 공분산 고유값은 특잇값의 제곱을 으로 나눈 값입니다. PCA와 연결하기 전에 중심화, 분모, 행렬 방향을 명시하세요.
연구 비교에서는 랭크를 바꾸며 실제 과제 오차, 저장량, 추론 비용을 측정합니다. 원본 모형과 비용을 맞춘 기준선을 비교하세요. Frobenius 노름에서 최적이라는 정리만으로 새 압축 방법의 미관측 데이터 성능을 입증할 수는 없습니다.
연습과 근거
- diag(4,2)의 랭크 1 스펙트럼·Frobenius 오차를 구하세요. 답: 둘 다 2입니다.
- 특잇값이 같을 때 개별 방향이 유일하지 않은 이유를 원으로 설명하세요.
- 의사역행렬을 고르기 전에 데이터가 결정하지 못하는 성분을 적으세요.
- 비대칭 행렬에서 전체 재구성과 랭크 1 잔차를 독립적으로 확인하세요.
배경은 MIT 18.06, Lecture 29: Singular value decomposition을 참고하세요. 위 수치는 이 교재의 직접 계산 예제입니다.
설명할 수 있나요?
실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.
선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.