
Section 7.4 이미지 압축과 주성분분석
Subsection 7.4.1 이미지 압축
이 웹문서를 전자기기를 사용해 읽고 있는가? 당신이 바라보고 있는 직사각형 모양의 화면이 바로 이미지다. 또는, 화면 속 직사각형 모양 요소를 이미지라 할 수 있다.
보기 7.4.2. 소
예시 7.4.1. 이미지의 예.

이미지는 픽셀을 직사각형 모양으로 배열한 것이다. 픽셀이란 무엇인가? 흑백이미지라면 픽셀은 수로 표현할 수 있다.
보기 7.4.3. 흑백이미지 픽셀의 색과 수의 대응 흑백을 16단계로 나누어 0-15의 정수로 표현한다면 행렬

\begin{equation}
\begin{bmatrix}
0 \amp 7 \amp 15
\\
0 \amp 3 \amp 7
\\
3 \amp 3 \amp 10
\end{bmatrix}\tag{7.4.1}
\end{equation}
삼원색 기반 현대적 디스플레이에 적합한 형식은 RGB또는 RGBA로 복수의 독립적인 채널로 구성된다. 채널이 여러개로 늘어나도 각 채널은 정해진 개수의 단계로 나누어 수로 표현되므로 결국 행렬로 표현된다는 사실은 변함없다. 채널이 여러개일 수 있다는 사실을 무시하면, 이미지는 곧 행렬이다.
이미지 압축 문제는 행렬 압축 문제로 환원할 수 있다. 픽셀 수가 \(960 \times 1280\)인 그림을 생각해보자. 약 120만개의 픽셀을 요약하는 방법에는 무엇이 있을까? 특잇값분해를 이용해보자. 그림을 나타내는 행렬
\begin{equation*}
A_{\rm 그림} = \text{$960 \times 1280$ 행렬}
\end{equation*}
의 특잇값분해
\begin{equation*}
A_{\rm 그림} = \sigma_1 \boldsymbol u_1 \boldsymbol v_1^{\operatorname T} + \cdots + \sigma_r \boldsymbol u_r \boldsymbol v_r^{\operatorname T}
\end{equation*}
를 생각하자. 특잇값분해의 처음 \(k\)항을 택한 행렬
\begin{equation*}
A_k= \sigma_1 \boldsymbol u_1 \boldsymbol v_1^{\operatorname T} + \cdots + \sigma_k \boldsymbol u_k \boldsymbol v_k^{\operatorname T}
\end{equation*}
을 저장하기 위해서는
\begin{gather*}
\sigma_1,\cdots,\sigma_k \\
\boldsymbol u_1,\cdots,\boldsymbol u_k \\
\boldsymbol v_1,\cdots,\boldsymbol v_k
\end{gather*}
이면 충분하다. \(\sigma_i\)는 스칼라이고, 벡터 \(\boldsymbol u_i\)와 \(\boldsymbol v_i\)는 각각 960개와 1280개의 성분으로 이루어져 있으므로,
\begin{equation*}
k \times (1+960+1280) \approx 2k \times 10^3
\end{equation*}
의 수가 필요하다. 원래 행렬 \(A_{\rm 그림}\)에 약 \(960 \times 1280\)개의 픽셀이 있었으므로 압축비율은
\begin{equation*}
\frac{(1+960+1280)k }{960 \times 1280} \approx \frac{k}{550}
\end{equation*}
으로 어림할 수 있다.
다음 예시를 통해 압축 결과를 살펴보자.
예시 7.4.5. 격자 압축.
예시 7.4.7. 소 압축.
예시 7.4.9. 나무 압축.

예시 7.4.12. 전시된 회화 압축.

Subsection 7.4.2 주성분분석
자료 해석 방법인 주성분분석은 특잇값분해에 기반한다. 여기서는 간단한 자료에 대한 주성분분석을 적용해본다.
곡물, 콩류, 견과류 각 3종의 성분에 관한 자료 표 7.4.15를 생각해보자. 표 7.4.15. 식품성분(출처:국가표준식품성분표, 농촌진흥청)
수분, 단백질, 지방, 회분, 탄수화물, 당류 여섯 성분을 축에 대응시키면 각 식품은 \(\mathbf R^6\)의 벡터이다. 각 행은 아홉 종류의 식품에 해당되므로 아홉 벡터
| 수분 | 단백질 | 지방 | 회분 | 탄수화물 | 당류 | |
| 메밀 | 13.1 | 13.64 | 3.38 | 2.04 | 67.84 | 0.30 |
| 멥쌀 | 13.0 | 6.81 | 1.05 | 0.40 | 78.74 | 0.50 |
| 보리 | 11.8 | 8.75 | 1.67 | 0.90 | 76.89 | 0.92 |
| 강낭콩 | 56.1 | 8.80 | 0.86 | 1.86 | 32.38 | 0 |
| 동부 | 58.5 | 9.51 | 1.02 | 1.63 | 29.34 | 0.21 |
| 완두 | 71.0 | 7.92 | 0.44 | 1.13 | 19.51 | 0 |
| 밤 | 61.5 | 3.28 | 0.50 | 1.33 | 33.39 | 4.95 |
| 은행 | 49.6 | 4.69 | 1.53 | 1.40 | 42.78 | 2.95 |
| 잣 | 3.3 | 15.96 | 59.28 | 2.11 | 19.38 | 1.33 |
\begin{equation*}
\boldsymbol x_1,\cdots,\boldsymbol x_9 \in \mathbf R^6
\end{equation*}
를 얻는다. 아홉 벡터 중 어떤 것이 비슷한 성분을 가지고 있는지 알아보자. 행렬
\begin{equation*}
A = \begin{bmatrix}\boldsymbol x_1 \\ \vdots \\ \boldsymbol x_9\end{bmatrix}
\end{equation*}
의 특잇값분해
\begin{equation*}
A= \sigma_1 \boldsymbol u_1 \boldsymbol v_1^{\operatorname T} + \sigma_2 \boldsymbol u_2 \boldsymbol v_2^{\operatorname T} + \cdots + \sigma_6 \boldsymbol u_6 \boldsymbol v_6^{\operatorname T}
\end{equation*}
에서 \(\boldsymbol v_1,\cdots\boldsymbol v_6\)은 우특이벡터이고, \(\mathbf R^6\)의 정규직교기저임을 상기하자. 각 \(\boldsymbol v_i\)를 주축이라 하며, \(\boldsymbol v_1\)을 제1주축, \(\boldsymbol v_2\)제2주축 등으로 부른다. 각 주축 방향의 크기를 주성분이라 하며 \(\boldsymbol x \in \mathbf R^6\)를 선형결합
\begin{equation*}
\boldsymbol x = (\boldsymbol x \bullet \boldsymbol v_1) \boldsymbol v_1 + \cdots +( \boldsymbol x \bullet \boldsymbol v_6) \boldsymbol v_6
\end{equation*}
으로 나타내면 그 계수들이 \(\boldsymbol x\)의 해당 주축 성분이 된다. 부분공간
\begin{equation*}
S_k := \span \left(\boldsymbol v_1, \cdots, \boldsymbol v_k\right)
\end{equation*}
으로 자료 \(\boldsymbol x_1,\cdots,\boldsymbol x_9\)를 정사영해보고, \(k=1,2,3\)에서 각 식품의 특징이 어떻게 드러나는지 예시 7.4.16에서 관찰하였다.
예시 7.4.16. 식품 9종 주성분분석.








