연결 탐구 5 · 스펙트럼과 이미지

사진을 몇 개의 방향으로 압축할 수 있을까요?

사진 한 장은 밝기 값을 직사각형으로 늘어놓은 행렬이에요. 특잇값 분해는 이 행렬을 중요한 랭크 1 성분부터 차례로 나눠요. 몇 개를 남겨야 화질과 저장량이 균형을 이룰까요? 잡음이 있을 때도 함께 비교해 보세요.

1픽셀을 모으면 행렬

아래 이미지는 외부 사진이 아닌 24×24 합성 데이터이며, 각 픽셀의 밝기를 0부터 1 사이의 수로 기록하면 행렬 $A\in\mathbb{R}^{24\times24}$를 얻어요. 행 번호 $i$는 세로 위치, 열 번호 $j$는 가로 위치를 나타내요.

8 10 $A_{8,10}=0.000$
합성 원본24×24 · 576개 밝기
그레이스케일 합성 이미지를 나타낸 행렬 격자
픽셀 $\longleftrightarrow$ 행렬 원소

$A_{ij}$의 값이 클수록 픽셀이 밝아요. 사진을 편집한다는 것은 이 수의 배열을 바꾸는 일이에요.

한 행은 가로 한 줄의 밝기 벡터이고, 한 열은 세로 한 줄의 밝기 벡터예요. 이미지 속 반복되는 모양은 행과 열 사이의 선형 관계로 드러나요.

컬러 사진을 나타내는 방법

컬러 이미지는 보통 빨강·초록·파랑 밝기를 담은 행렬 세 개로 이루어지며, 채널마다 같은 계산을 하거나, 세 채널을 하나의 3차원 배열인 텐서로 다룰 수 있어요. 여기서는 구조를 쉽게 보려고 그레이스케일 한 채널만 사용할게요.

2랭크 1 성분 하나의 의미

열벡터 $u$와 행벡터 $v^T$가 모두 영벡터가 아니면 외적 $uv^T$의 랭크는 1이며, 모든 행이 같은 가로 무늬 $v^\mathsf T$의 배수라는 뜻이에요. $u$는 세로 위치마다 무늬가 얼마나 강한지, $v$는 가로 무늬가 어떤 모양인지 정해요.

1 $\sigma_1=0.000$ 에너지 0.0%
첫 번째 랭크-1 성분부호는 색으로 구분
선택한 랭크 1 성분의 열 지도
두 방향의 무늬$u_r$ · $v_r$
왼쪽·오른쪽 특이벡터의 성분 그래프

$C_1=\sigma_1u_1v_1^T$. 세로 무늬와 가로 무늬를 결합해요.

확인 질문 · 랭크-1 이미지에서 영벡터가 아닌 두 행은 어떤 관계인가요?
모든 행의 모양이 같은 까닭

$uv^T$의 $i$번째 행은 $u_i v^T$이며, 행마다 계수 $u_i$만 달라지고 가로 모양 $v^T$는 그대로예요. 그래서 랭크 1 행렬은 두 벡터만으로 저장할 수 있어요.

3SVD와 최적의 저랭크 근사

특잇값 분해는 모든 실수 행렬에서 구할 수 있어요. $U$와 $V$의 열은 각각 정규직교 벡터이며, 특잇값은 $\sigma_1\ge\sigma_2\ge\cdots\ge0$의 순서로 놓아요.

$A=U\Sigma V^T=\displaystyle\sum_{r=1}^{24}\sigma_r u_rv_r^T$

큰 특잇값의 성분부터 더하면 행렬에서 힘이 큰 구조부터 복원돼요.

입력 데이터
4
입력 · 구조만$A$
특잇값 분해에 넣은 원본 이미지
랭크-4 근사$A_k$
선택한 랭크로 만든 근사 이미지
남은 잔차$A-A_k$
원본과 근사의 차이를 나타낸 잔차 그림
보존된 에너지(제곱합)0.0%
입력에 대한 RMSE0.0000
깨끗한 구조에 대한 RMSE0.0000
수치상 랭크0
특잇값의 크기를 비교하는 막대그래프

앞의 $k$개가 최선인 까닭

절단 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}$예요. 이를 에카르트–영 정리라고 해요. 다만 수치 오차가 가장 작다고 해서 사람 눈에도 언제나 가장 자연스러운 것은 아니에요.

4랭크 선택에 따른 압축과 잡음 제거

랭크 $k$ 근사는 $U_k$, 특잇값 $k$개, $V_k$만 저장해요. $24\times24$ 원본의 576개 수 대신 $k(24+24+1)=49k$개의 수. 실제 파일에는 자료형·양자화·메타데이터도 들어가요. 아래 수치는 구조를 비교하려고 저장할 숫자의 개수만 센 값이에요.

랭크에 따른 두 종류의 재구성 오차 그래프
현재 근사 저장할 수 원본 대비 입력 오차 구조 오차
$A_4$ 196 34.0% 0.0000 0.0000

잡음이 있는 입력에서는 $k$를 늘릴수록 입력과의 차이는 계속 줄어요. 그러나 어느 순간부터는 구조뿐 아니라 잡음까지 되살려서, 깨끗한 기준 이미지와의 차이가 다시 커질 수 있어요.

압축

작은 특잇값 성분을 지우면 저장량과 세부 정보가 함께 줄어요.

잡음 제거

약한 성분을 덜어 내요. 중요한 신호가 몇 개의 랭크 1 성분에 모여 있다고 가정해요.

데이터 분석

주성분분석(PCA)처럼 큰 변화가 나타나는 축만 남겨 자료 속 구조를 찾아요.

탐구 · ‘중요한 정보’의 기준

잡음 포함 모드에서 $k$를 1부터 24까지 움직이십시오. 다음 세 기준이 서로 다른 $k$를 고를 수 있는 이유를 한 문장씩 정리하십시오.

수치 오차 최소
입력 행렬과의 차이를 가장 작게 만드는 선택이에요. 이 기준에서는 잡음도 입력의 일부로 보존해요.
저장량 제한
주어진 용량 안에서 가능한 가장 큰 $k$를 골라요. 압축률을 먼저 정하는 기준이에요.
의미 있는 구조 보존
잡음과 세부 구조를 구별해야 해요. 무엇을 남길지는 자료의 맥락과 분석 목적에 따라 달라져요.

5연결 지도

대칭행렬의 스펙트럼

$A^\mathsf TA$와 $AA^\mathsf T$의 정규직교 고유벡터를 각각 $V$와 $U$의 열로 놓아요. 특잇값은 해당 고윳값의 0 이상인 제곱근이에요.

저랭크와 AI

큰 행렬 전체가 아니라 중요한 저랭크 성분만 학습하거나 갱신하는 방법으로 이어져요.

SVD를 고윳값 문제로 계산하는 까닭

$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$를 완성해요.