모던지 / 수학 / 선형대수 5강. 특이값 분해와 저차원 근사

선형대수 5강. 특이값 분해와 저차원 근사

넷플릭스가 여러분의 취향을 아는 방식은, 거대한 표를 몇 개의 축으로 눌러 담는 것입니다.

풀고 시작

문제 1. 고유값 분해와 달리 특이값 분해가 갖는 결정적 장점은 무엇일까요?
고유값 분해는 정사각행렬에만 정의됩니다. 그런데 현실의 데이터는 사용자 1만 명 곱하기 영화 5천 편처럼 직사각형이죠. 특이값 분해는 이 제약을 없애 어떤 모양에도 적용됩니다. 계산량은 오히려 더 무겁습니다.

정사각형이 아니면 어쩌죠

앞 강에서 고유값과 고유벡터를 봤습니다. 행렬을 곱해도 방향이 바뀌지 않는 특별한 벡터가 있고, 그 벡터가 얼마나 늘어나는지가 고유값이었죠. 아름다운 도구입니다. 그런데 치명적인 제약이 하나 있습니다. 정사각행렬에만 정의됩니다.

현실의 데이터는 정사각형인 경우가 거의 없습니다. 사용자 1만 명이 영화 5천 편에 매긴 평점은 10000 × 5000 행렬이고, 문서 3만 건에 나타난 단어 5만 개는 30000 × 50000 행렬입니다. 고유값 분해는 여기서 아예 시작조차 못 합니다.

특이값 분해(SVD, singular value decomposition) 가 이 벽을 넘습니다. 어떤 행렬 A든 세 조각으로 쪼갤 수 있다는 정리입니다.

A = U Σ Vᵀ

가운데 Σ는 대각선에만 값이 있는 행렬이고, 그 값들을 특이값이라 부릅니다. 특이값은 언제나 0 이상이고 큰 것부터 차례로 놓입니다. 양옆의 U와 V는 서로 직교하는 축들의 모음입니다.

기하학적으로 읽으면 이렇습니다. 어떤 선형변환이든 회전, 축별 늘이기, 다시 회전의 세 단계로 분해된다. 아무리 복잡해 보이는 변환도 결국 돌리고 늘이고 다시 돌리는 것의 합성이라는 뜻이죠.

큰 것부터 몇 개만 남기면

특이값이 큰 것부터 정렬된다는 사실이 SVD를 실용의 도구로 만듭니다.

특이값이 100, 80, 60, 3, 2, 1, 0.5, ... 이렇게 나왔다고 해 봅시다. 앞의 셋이 나머지를 압도하죠. 이때 작은 것들을 0으로 만들어 버리고 앞의 셋만 남기면 원본과 거의 같으면서 훨씬 작은 행렬이 나옵니다. 이것을 저차원 근사(low-rank approximation) 라 합니다.

여기에 대단히 강한 정리가 붙습니다. 에카르트-영 정리입니다. 계수를 k로 제한한 모든 근사 가운데 SVD로 상위 k개만 남긴 것이 오차가 가장 작습니다. 더 잘하려야 할 수가 없다는 뜻이죠. 압축에서 이런 최적성 보장은 흔치 않습니다.

이미지를 예로 들면 감이 옵니다. 512 × 512 흑백 사진은 값 262,144개입니다. 상위 특이값 50개만 남기면 값 51,300개 정도로 줄어드는데, 눈으로 보면 원본과 구별하기 어렵습니다. 정보의 8할을 버렸는데도 그렇습니다. 사진에 담긴 구조가 몇 개의 강한 축에 몰려 있기 때문입니다.

주성분분석이 실은 SVD입니다

데이터 분석에서 가장 널리 쓰이는 차원축소 기법이 주성분분석(PCA) 입니다. 변수가 100개인 데이터를 2~3개 축으로 눌러 그림을 그리는 그 기법이죠.

PCA의 정체가 SVD입니다. 데이터에서 평균을 뺀 뒤 SVD를 걸면, V의 열들이 곧 주성분이고 특이값의 제곱이 각 주성분이 설명하는 분산입니다. "제1주성분이 전체 분산의 62%를 설명한다"는 문장은 첫 특이값의 제곱이 전체의 62%라는 말입니다.

그래서 PCA를 쓰면서 SVD를 모르면 왜 되는지를 모른 채 쓰게 됩니다. 주성분의 개수를 몇 개로 할지, 스케일링을 먼저 해야 하는지 같은 판단이 전부 특이값의 분포에서 나오기 때문입니다.

추천 시스템도 같은 원리입니다. 사용자와 영화의 평점 행렬을 저차원으로 근사하면, 그 축들이 "액션 취향", "잔잔한 드라마 취향" 같은 드러나지 않은 요인으로 해석됩니다. 아무도 그런 축을 정해 주지 않았는데 데이터가 스스로 드러낸 것이죠. 문서와 단어 행렬에 같은 짓을 하면 잠재의미분석(LSA) 이 되어 뜻이 비슷한 단어가 가까이 모입니다. 오늘날의 단어 임베딩이 딛고 선 자리가 여기입니다.

인출 문제

문제 1. 특이값 분해 A = U Σ Vᵀ 에서 Σ에 대한 설명으로 옳은 것은 무엇일까요?
특이값은 정의상 0 이상이고 관례적으로 내림차순으로 놓입니다. 이 정렬 덕분에 앞에서 몇 개만 끊어 저차원 근사를 만들 수 있습니다. 음수가 되는 것은 고유값이지 특이값이 아닙니다.
문제 2. 에카르트-영 정리가 말하는 내용으로 옳은 것은 무엇일까요?
상위 k개를 남기는 방식이 그 계수에서 도달 가능한 최적 근사임을 보장하는 정리입니다. 압축 기법에 이런 최적성 증명이 붙는 경우는 드물고, SVD가 널리 쓰이는 이유이기도 합니다.
문제 3. 주성분분석과 특이값 분해의 관계로 옳은 것은 무엇일까요?
PCA는 SVD를 데이터 행렬에 적용한 것과 같습니다. "제1주성분이 분산의 몇 퍼센트를 설명한다"는 표현은 첫 특이값의 제곱이 전체 제곱합에서 차지하는 비율을 말합니다.
문제 4. 특이값 분해가 고유값 분해로 다룰 수 없는 데이터를 처리할 수 있는 이유는 무엇일까요?
사용자 곱하기 영화, 문서 곱하기 단어처럼 현실 데이터는 대개 직사각형입니다. 고유값 분해는 정사각행렬에만 정의되므로 여기서 쓸 수 없고, 그 제약을 없앤 것이 특이값 분해입니다.

생각해볼 질문 (정답 없음)

  • 저차원 근사가 버리는 것은 잡음일까요, 아니면 소수 집단의 진짜 신호일까요. 추천 시스템이 취향이 독특한 사람에게 잘 맞지 않는 이유를 여기서 생각해 보세요.

이전: 선형대수 4강 · 다음: 선형대수 6강

모던지 · 궁금하면 모던지 GitHub · 2026-09-10