압축
작은 특잇값 성분을 지우면 저장량과 세부 정보가 함께 줄어요.
사진 한 장은 밝기 값을 직사각형으로 늘어놓은 행렬이에요. 특잇값 분해는 이 행렬을 중요한 랭크 1 성분부터 차례로 나눠요. 몇 개를 남겨야 화질과 저장량이 균형을 이룰까요? 잡음이 있을 때도 함께 비교해 보세요.
아래 이미지는 외부 사진이 아닌 24×24 합성 데이터이며, 각 픽셀의 밝기를 0부터 1 사이의 수로 기록하면 행렬 $A\in\mathbb{R}^{24\times24}$를 얻어요. 행 번호 $i$는 세로 위치, 열 번호 $j$는 가로 위치를 나타내요.
컬러 이미지는 보통 빨강·초록·파랑 밝기를 담은 행렬 세 개로 이루어지며, 채널마다 같은 계산을 하거나, 세 채널을 하나의 3차원 배열인 텐서로 다룰 수 있어요. 여기서는 구조를 쉽게 보려고 그레이스케일 한 채널만 사용할게요.
열벡터 $u$와 행벡터 $v^T$가 모두 영벡터가 아니면 외적 $uv^T$의 랭크는 1이며, 모든 행이 같은 가로 무늬 $v^\mathsf T$의 배수라는 뜻이에요. $u$는 세로 위치마다 무늬가 얼마나 강한지, $v$는 가로 무늬가 어떤 모양인지 정해요.
한 행의 식을 직접 적어 판단해 보세요.
$uv^T$의 $i$번째 행은 $u_i v^T$이며, 행마다 계수 $u_i$만 달라지고 가로 모양 $v^T$는 그대로예요. 그래서 랭크 1 행렬은 두 벡터만으로 저장할 수 있어요.
특잇값 분해는 모든 실수 행렬에서 구할 수 있어요. $U$와 $V$의 열은 각각 정규직교 벡터이며, 특잇값은 $\sigma_1\ge\sigma_2\ge\cdots\ge0$의 순서로 놓아요.
큰 특잇값의 성분부터 더하면 행렬에서 힘이 큰 구조부터 복원돼요.
절단 SVD $A_k=\sum_{r=1}^{k}\sigma_r u_rv_r^T$는 모든 랭크 $k$ 이하 행렬 가운데 원소별 차이의 제곱합으로 재는 프로베니우스 오차 $\lVert A-B\rVert_F$가 가장 작아져요. 그 최소 오차는 $\sqrt{\sigma_{k+1}^2+\cdots+\sigma_{24}^2}$예요. 이를 에카르트–영 정리라고 해요. 다만 수치 오차가 가장 작다고 해서 사람 눈에도 언제나 가장 자연스러운 것은 아니에요.
랭크 $k$ 근사는 $U_k$, 특잇값 $k$개, $V_k$만 저장해요. $24\times24$ 원본의 576개 수 대신 $k(24+24+1)=49k$개의 수. 실제 파일에는 자료형·양자화·메타데이터도 들어가요. 아래 수치는 구조를 비교하려고 저장할 숫자의 개수만 센 값이에요.
작은 특잇값 성분을 지우면 저장량과 세부 정보가 함께 줄어요.
약한 성분을 덜어 내요. 중요한 신호가 몇 개의 랭크 1 성분에 모여 있다고 가정해요.
주성분분석(PCA)처럼 큰 변화가 나타나는 축만 남겨 자료 속 구조를 찾아요.
잡음 포함 모드에서 $k$를 1부터 24까지 움직이십시오. 다음 세 기준이 서로 다른 $k$를 고를 수 있는 이유를 한 문장씩 정리하십시오.
$A^\mathsf TA$와 $AA^\mathsf T$의 정규직교 고유벡터를 각각 $V$와 $U$의 열로 놓아요. 특잇값은 해당 고윳값의 0 이상인 제곱근이에요.
정렬된 좌표나 픽셀을 벡터로 바꾸고 평균과 큰 변화가 나타나는 축을 계산해요.
큰 행렬 전체가 아니라 중요한 저랭크 성분만 학습하거나 갱신하는 방법으로 이어져요.
$A^\mathsf TA$는 대칭인 양의 준정부호 행렬이므로 정규직교 고유기저 $v_r$와 음이 아닌 고윳값 $\lambda_r$을 얻어요. $\sigma_r>0$인 성분에서는 $\sigma_r=\sqrt{\lambda_r}$, $u_r=Av_r/\sigma_r$로 두어 $Av_r=\sigma_r u_r$를 얻고, 영 특잇값에 해당하는 열은 정규직교 벡터로 보충해 $A=U\Sigma V^\mathsf T$를 완성해요.