투영 관점

다음에서, 우리는 평균 재구성 오차(average reconstruction error)를 직접적으로 최소화하는 알고리즘으로서 PCA를 유도할 것이다. 이러한 관점은 PCA를 최적의 선형 오토인코더(optimal linear auto-encoder)를 구현하는 것으로 해석할 수 있게 해준다. 우리는 2장과 3장의 내용을 크게 활용할 것이다.

$\quad$ 이전 절에서, 우리는 가능한 한 많은 정보를 보존하기 위해 사영된 공간에서의 분산을 최대화함으로써 PCA를 유도했다. 다음에서, 우리는 원본 데이터 $\boldsymbol{x}_n$ 과 이들의 재구성 $\tilde{\boldsymbol{x}}_n$ 사이의 차이 벡터(difference vectors)를 살펴보고, 이 거리를 최소화하여 $\boldsymbol{x}_n$ 과 $\tilde{\boldsymbol{x}}_n$ 이 가능한 한 가까워지도록 할 것이다. 그림 10.6은 이 설정을 보여준다.

figure 10.6.png
(그림 10.6) 투영 접근법의 예시: 사영된 데이터(주황색)와 원본 데이터(파란색) 사이의 차이 벡터 길이를 최소화하는 부분공간(선)을 찾는다.

10.3.1 Setting and Objective

설정 및 목적

$\mathbb{R}^D$ 의 (정렬된) 정규 직교 기저(ONB) $B = (\boldsymbol{b}_1, \dots, \boldsymbol{b}_D)$ 를 가정하자. 즉, $i = j$ 일 때만 $\boldsymbol{b}_i^\top \boldsymbol{b}_j = 1$ 이고, 그 외의 경우는 0이다.

$\quad$ 2.5절에 따라 $\mathbb{R}^D$ 의 기저 $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_D)$ 에 대해 임의의 $\boldsymbol{x} \in \mathbb{R}^D$ 는 $\mathbb{R}^D$ 기저 벡터들의 선형 결합으로 작성될 수 있다. 즉, 적절한 좌표 $\zeta_d \in \mathbb{R}$ 에 대해 다음이 성립한다.

$$ \boldsymbol{x} = \sum_{d=1}^D \zeta_d \boldsymbol{b}_d = \sum_{m=1}^M \zeta_m \boldsymbol{b}_m + \sum_{j=M+1}^D \zeta_j \boldsymbol{b}_j \quad (10.26) $$

(벡터 $\tilde{\boldsymbol{x}} \in U$ 는 $\mathbb{R}^3$ 공간 내의 평면 위에 있는 벡터일 수 있다. 평면의 차원은 2이지만, 이 벡터들은 여전히 $\mathbb{R}^3$ 의 표준 기저에 대해 3개의 좌표를 가진다.)

$\quad$ 우리의 관심사는 저차원 부분공간 $U \subseteq \mathbb{R}^D, \dim(U) = M$ 에 존재하는 벡터 $\tilde{\boldsymbol{x}} \in \mathbb{R}^D$ 를 찾아,

$$ \tilde{\boldsymbol{x}} = \sum_{m=1}^M z_m \boldsymbol{b}_m \in U \subseteq \mathbb{R}^D \quad (10.27) $$

이 $\boldsymbol{x}$ 와 최대한 유사해지도록 만드는 것이다. 이 시점에서는 $\tilde{\boldsymbol{x}}$ 의 좌표 $z_m$ 과 $\boldsymbol{x}$ 의 좌표 $\zeta_m$ 이 동일하지 않다고 가정해야 함에 유의하라.

$\to$ 목표는 $\boldsymbol{x}$ 와의 거리 오차를 최소화하는 위치 $z_m$ 을 찾는 것이다. 기하학적 직관으로는 부분공간 위에서 가장 가까운 점이 되려면 당연히 $\boldsymbol{x}$ 에서 수직으로 수선의 발을 내린 곳, 즉 원본의 투영 좌표인 $\zeta_m$ 의 위치에 $\tilde{\boldsymbol{x}}$ 가 되어야 한다는 것을 알지만, 이러한 직관이 없는 상황에서 오차를 최소화하는 최적의 $z_m$ 은 $\zeta_m$ 과 일치함을 유도하기 위해 $z_m$ 과 $\zeta_m$ 이 동일하지 않다고 가정한다.

$\quad$ 다음에서, 우리는 $\tilde{\boldsymbol{x}}$ 가 원본 데이터 포인트 $\boldsymbol{x}$ 와 가능한 한 유사해지도록, 즉 (유클리드) 거리 $\vert \boldsymbol{x} - \tilde{\boldsymbol{x}}\vert$ 를 최소화하는 최적의 좌표 $\boldsymbol{z}$ 와 기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 을 찾기 위해 바로 이러한 형태의 $\tilde{\boldsymbol{x}}$ 표현을 사용할 것이다. 그림 10.7은 이 설정을 묘사한다.

figure 10.7.png
(그림 10.7) 단순화된 사영 설정. (a) $\mathbb{R}^2$ 의 벡터 $\boldsymbol{x}$ (빨간색 십자)가 $\boldsymbol{b}$ 에 의해 생성되는 1차원 부분공간 $U \subseteq \mathbb{R}^2$ 로 사영되어야 한다. (b) $\boldsymbol{x}$ 와 50개의 서로 다른 후보 $\tilde{\boldsymbol{x}}_i$ 들 사이의 차이 벡터를 빨간색 선으로 보여준다.

$\quad$ 일반성을 잃지 않고, 데이터셋 $\mathcal{X} = {\boldsymbol{x}_1, \dots, \boldsymbol{x}_N}, \boldsymbol{x}_n \in \mathbb{R}^D$ 의 중심이 $\boldsymbol{0}$ 에 맞춰져 있다고 가정한다. 즉, $\mathbb{E}[\mathcal{X}] = \boldsymbol{0}$ 이다. 영점-평균 가정이 없더라도 정확히 동일한 해에 도달하지만, 표기법이 상당히 복잡해질 것이다.

$\quad$ 우리는 $\mathcal{X}$ 를 $\dim(U) = M$ 이고 정규 직교 기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 을 가지는 $\mathbb{R}^D$ 의 저차원 부분공간 $U$ 로 선형 사영하는 최적의 방법을 찾는 데 관심이 있다. 이 부분공간 $U$ 를 주 부분공간(principal subspace)이라 부를 것이다. 데이터 포인트의 사영은 다음과 같이 표기된다.

$$ \tilde{\boldsymbol{x}}_n := \sum_{m=1}^M z_{mn} \boldsymbol{b}_m = \boldsymbol{B} \boldsymbol{z}_n \in \mathbb{R}^D \quad (10.28) $$

여기서 $\boldsymbol{z}_n := [z_{1n}, \dots, z_{Mn}]^\top \in \mathbb{R}^M$ 은 기저 $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_M)$ 에 대한 $\tilde{\boldsymbol{x}}_n$ 의 좌표 벡터이다. 더 구체적으로, 우리는 $\tilde{\boldsymbol{x}}_n$ 이 $\boldsymbol{x}_n$ 과 최대한 유사해지기를 원한다.

$\quad$ 다음에서 우리가 사용하는 유사도 척도는 $\boldsymbol{x}$ 와 $\tilde{\boldsymbol{x}}$ 사이의 제곱 거리(유클리드 노름) $\Vert \boldsymbol{x} - \tilde{\boldsymbol{x}}\Vert ^2$ 이다. 따라서 우리의 목적 함수를 평균 제곱 유클리드 거리(재구성 오차(reconstruction error))를 최소화하는 것으로 정의한다 (Pearson, 1901).

$$ J_M := \frac{1}{N} \sum_{n=1}^N \Vert \boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n\Vert ^2 \quad (10.29) $$

여기서 데이터를 사영할 부분공간의 차원이 $M$ 임을 명시적으로 나타낸다. 이 최적의 선형 사영을 찾기 위해, 우리는 주 부분공간의 정규 직교 기저와 이 기저에 대한 사영의 좌표 $\boldsymbol{z}_n \in \mathbb{R}^M$ 을 찾아야 한다.

$\quad$ 좌표 $\boldsymbol{z}_n$ 과 주 부분공간의 정규 직교 기저(ONB)를 찾기 위해, 우리는 2단계 접근법(two-step approach)을 따른다. 첫째, 주어진 ONB $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_M)$ 에 대해 좌표 $\boldsymbol{z}_n$ 을 최적화한다. 둘째, 최적의 ONB를 찾는다.

10.3.2 Finding Optimal Coordinates

최적의 좌표 탐색

figure 10.7.png
먼저 $n = 1, \dots, N$ 에 대한 사영 $\tilde{\boldsymbol{x}}_n$ 의 최적 좌표 $z_{1n}, \dots, z_{Mn}$ 을 찾는 것으로 시작하자. 주 부분공간이 단일 벡터 $\boldsymbol{b}$ 에 의해 생성되는 그림 10.7(b)를 고려해 보자. 기하학적으로 말해서, 최적의 좌표 $z$ 를 찾는 것은 $\tilde{\boldsymbol{x}} - \boldsymbol{x}$ 사이의 거리를 최소화하는 $\boldsymbol{b}$ 에 대한 선형 사영 $\tilde{\boldsymbol{x}}$ 의 표현을 찾는 것에 해당한다. 그림 10.7(b)에서 이것이 직교 사영(orthogonal projection)이 될 것임이 명백하며, 다음에서 우리는 정확히 이를 보여줄 것이다.

$\quad$ $U \subseteq \mathbb{R}^D$ 의 정규 직교 기저(ONB) $(\boldsymbol{b}_1, \dots, \boldsymbol{b}M)$ 을 가정하자. 이 기저에 대한 최적의 좌표 $z_m$ 을 찾기 위해, 우리는 다음의 편도함수들이 필요하다.

$$ \frac{\partial J_M}{\partial z_{in}} = \frac{\partial J_M}{\partial \tilde{\boldsymbol{x}}_n} \frac{\partial \tilde{\boldsymbol{x}}_n}{\partial z_{in}}, \quad (10.30a) $$
$$ \frac{\partial J_M}{\partial \tilde{\boldsymbol{x}}_n} = -\frac{2}{N}(\boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n)^\top \in \mathbb{R}^{1 \times D}, \quad (10.30b) $$
$$ \frac{\partial \tilde{\boldsymbol{x}}_n}{\partial z_{in}} \stackrel{(10.28)}{=} \frac{\partial}{\partial z_{in}} \left( \sum_{m=1}^M z_{mn}\boldsymbol{b}_m \right) = \boldsymbol{b}_i \quad (10.30c) $$

여기서 $i = 1, \dots, M$ 이며, 이를 통해 다음을 얻는다.

$$ \frac{\partial J_M}{\partial z_{in}} \stackrel{(10.30b)}{(10.30c)}{=} -\frac{2}{N}(\boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n)^\top \boldsymbol{b}_i \stackrel{(10.28)}{=} -\frac{2}{N} \left( \boldsymbol{x}_n - \sum_{m=1}^M z_{mn}\boldsymbol{b}_m \right)^\top \boldsymbol{b}_i \quad (10.31a) $$
$$ \stackrel{\text{ONB}}{=} -\frac{2}{N}(\boldsymbol{x}_n^\top \boldsymbol{b}_i - z_{in}\boldsymbol{b}_i^\top \boldsymbol{b}_i) = -\frac{2}{N}(\boldsymbol{x}_n^\top \boldsymbol{b}_i - z_{in}). \quad (10.31b) $$

이는 $\boldsymbol{b}_i^\top \boldsymbol{b}_i = 1$ 이기 때문이다(식 ( $10.31a$ )에서 $m \neq i$ 일 때: $\boldsymbol{b}_m^\top \boldsymbol{b}_i = 0$ 이므로 나머지 항 제거). 이 편도함수를 $0$ 으로 설정하면 즉시 최적의 좌표를 얻는다.

$$ z_{in} = \boldsymbol{x}_n^\top \boldsymbol{b}_i = \boldsymbol{b}_i^\top \boldsymbol{x}_n \quad (10.32) $$

( $i = 1, \dots, M$ 이고 $n = 1, \dots, N$ ). 이는 사영 $\tilde{\boldsymbol{x}}_n$ 의 최적 좌표 $z_{in}$ 이 원본 데이터 포인트 $\boldsymbol{x}_n$ 을 $\boldsymbol{b}_i$ 에 의해 생성되는 1차원 부분공간으로 직교 사영(3.8절 참조)한 좌표임을 의미한다. 결과적으로:

  • $\boldsymbol{x}_n$ 의 최적 선형 사영 $\tilde{\boldsymbol{x}}_n$ 은 직교 사영이다.
  • 기저 $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_M)$ 에 대한 $\tilde{\boldsymbol{x}}_n$ 의 좌표는 $\boldsymbol{x}_n$ 을 주 부분공간으로 직교 사영한 좌표이다.
  • 직교 사영은 목적 함수 (10.29)가 주어졌을 때 최상의 선형 매핑이다.
  • $U^\perp = \text{span}[\boldsymbol{b}_{M+1}, \dots, \boldsymbol{b}_D]$ 가 $U = \text{span}[\boldsymbol{b}_1, \dots, \boldsymbol{b}_M]$ 의 직교 여공간(orthogonal complement, 3.6절 참조)이므로, $m = 1, \dots, M$ 에 대해 (10.26)의 $\boldsymbol{x}$ 의 좌표 $\zeta_m$ 과 (10.27)의 $\tilde{\boldsymbol{x}}$ 의 좌표 $z_m$ 은 반드시 동일해야 한다.
    (기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 에 대한 $\boldsymbol{x}_n$ 의 최적 사영의 좌표는 $\boldsymbol{x}_n$ 을 주 부분공간으로 직교 사영한 좌표이다.)
    Remark (정규 직교 기저 벡터를 사용한 직교 사영). 3.8절의 직교 사영을 잠시 복습해 보자. $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_D)$ 가 $\mathbb{R}^D$ 의 정규 직교 기저라면,
$$ \tilde{\boldsymbol{x}} = \boldsymbol{b}_j(\boldsymbol{b}_j^\top \boldsymbol{b}_j)^{-1}\boldsymbol{b}_j^\top \boldsymbol{x} = \boldsymbol{b}_j\boldsymbol{b}_j^\top \boldsymbol{x} \in \mathbb{R}^D \quad (10.33) $$

는 $\boldsymbol{x}$ 를 $j$ 번째 기저 벡터에 의해 생성되는 부분공간으로 직교 사영한 것이며, $z_j\boldsymbol{b}_j = \tilde{\boldsymbol{x}}$ 이므로 $z_j = \boldsymbol{b}_j^\top \boldsymbol{x}$ 는 해당 부분공간을 생성하는 기저 벡터 $\boldsymbol{b}_j$ 에 대한 이 사영의 좌표이다. 그림 10.8(b)가 이 설정을 묘사한다.
figure 10.8.png
(그림 10.8) $\mathbb{R}^2$ 의 벡터 $\boldsymbol{x}$ 를 1차원 부분공간으로 최적 사영 (그림 10.7에서 이어짐). (a) 일부 $\tilde{\boldsymbol{x}} \in U$ 에 대한 거리 $\Vert \boldsymbol{x} - \tilde{\boldsymbol{x}}\Vert$ . (b) 직교 사영과 최적 좌표.
( $\boldsymbol{b}_j^\top \boldsymbol{x}$ 는 $\boldsymbol{x}$ 를 $\boldsymbol{b}_j$ 에 의해 생성되는 부분공간으로 직교 사영한 좌표이다.)

$\quad$ 더 일반적으로, 우리가 $\mathbb{R}^D$ 의 $M$ 차원 부분공간으로 사영하고자 한다면, 정규 직교 기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 을 가진 $M$ 차원 부분공간으로의 $\boldsymbol{x}$ 의 직교 사영을 다음과 같이 얻는다.

$$ \tilde{\boldsymbol{x}} = \boldsymbol{B}\underbrace{(\boldsymbol{B}^\top \boldsymbol{B})^{-1}}_{=\boldsymbol{I}}\boldsymbol{B}^\top \boldsymbol{x} = \boldsymbol{B}\boldsymbol{B}^\top \boldsymbol{x}, \quad (10.34) $$

여기서 $\boldsymbol{B} := [\boldsymbol{b}_1, \dots, \boldsymbol{b}_M] \in \mathbb{R}^{D \times M}$ 으로 정의했다. 정렬된 기저 $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_M)$ 에 대한 이 사영의 좌표는 3.8절에서 논의한 바와 같이 $\boldsymbol{z} := \boldsymbol{B}^\top \boldsymbol{x}$ 이다.

$\quad$ 우리는 이 좌표들을 $(\boldsymbol{b}_1, \dots, \boldsymbol{b}_M)$ 에 의해 정의된 새로운 좌표계에서 사영된 벡터의 표현으로 생각할 수 있다. 비록 $\tilde{\boldsymbol{x}} \in \mathbb{R}^D$ 이지만, 이 벡터를 표현하는 데는 오직 $M$ 개의 좌표 $z_1, \dots, z_M$ 만 필요함에 유의하라. 기저 벡터 $(\boldsymbol{b}_{M+1}, \dots, \boldsymbol{b}_D)$ 에 대한 나머지 $D - M$ 개의 좌표는 항상 $0$ 이다.

$\quad$ 지금까지 우리는 주어진 정규 직교 기저(ONB)에 대해 주 부분공간으로의 직교 사영을 통해 $\tilde{\boldsymbol{x}}$ 의 최적 좌표를 찾을 수 있음을 보였다. 다음에서 우리는 무엇이 최적의 기저인지 결정할 것이다.

10.3.3 Finding the Basis of the Principal Subspace

주 부분공간의 기저 탐색

주 부분공간의 기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 을 결정하기 위해, 지금까지 얻은 결과를 사용하여 손실 함수 (10.29)를 재구성한다. 이는 기저 벡터를 찾는 것을 더 용이하게 한다. 손실 함수를 재구성하기 위해, 이전의 결과를 활용하여 다음을 얻는다.

$$ \tilde{\boldsymbol{x}}_n = \sum_{m=1}^M z_{mn}\boldsymbol{b}_m \stackrel{(10.32)}{=} \sum_{m=1}^M (\boldsymbol{x}_n^\top \boldsymbol{b}_m)\boldsymbol{b}_m. \quad (10.35) $$

이제 내적의 대칭성(symmetry of the dot product)을 활용하면, 다음이 산출된다.

$$ \tilde{\boldsymbol{x}}_n = \left( \sum_{m=1}^M \boldsymbol{b}_m\boldsymbol{b}_m^\top \right)\boldsymbol{x}_n. \quad (10.36) $$

내적의 대칭성: 두 벡터를 내적할 때 곱하는 순서를 바꾸어도 결과값은 동일하다.

기하학적으로 내적은 두 벡터의 크기와 그 사이각 $\theta$ 의 코사인 값을 곱한 것이다. ( $\Vert \boldsymbol{x}\Vert \Vert \boldsymbol{b}\Vert \cos\theta$ ) $\boldsymbol{x}$ 에서 $\boldsymbol{b}$ 를 바라보는 각도나, 반대로 $\boldsymbol{b}$ 에서 $\boldsymbol{x}$ 를 바라보는 각도나 그 크기( $\theta$ )는 동일하다.

식 (10.35)에서 (10.36)으로 유도되는 과정은 $(\boldsymbol{x}^\top \boldsymbol{b})\boldsymbol{b} \to \text(대칭성) \to (\boldsymbol{b}^\top \boldsymbol{x})\boldsymbol{b} \to \text(스칼라곱) \to \boldsymbol{b}(\boldsymbol{b}^\top \boldsymbol{x}) \to \text(행렬곱의 결합법칙) \to (\boldsymbol{b}\boldsymbol{b}^\top)\boldsymbol{x}$ .

원본 데이터 포인트 $\boldsymbol{x}_n$ 을 모든 기저 벡터의 선형 결합으로 전개할 수 있으므로, 다음이 성립한다.

$$ \boldsymbol{x}_n = \sum_{d=1}^D z_{dn}\boldsymbol{b}_d \stackrel{(10.32)}{=} \sum_{d=1}^D (\boldsymbol{x}_n^\top \boldsymbol{b}_d)\boldsymbol{b}_d = \left( \sum_{d=1}^D \boldsymbol{b}_d\boldsymbol{b}_d^\top \right)\boldsymbol{x}_n \quad (10.37a) $$
$$ = \left( \sum_{m=1}^M \boldsymbol{b}_m\boldsymbol{b}_m^\top \right)\boldsymbol{x}_n + \left( \sum_{j=M+1}^D \boldsymbol{b}_j\boldsymbol{b}_j^\top \right)\boldsymbol{x}_n, \quad (10.37b) $$

여기서 $D$ 개 항의 합을 $M$ 개에 대한 합과 $D-M$ 개에 대한 합으로 분할했다. 이 결과를 바탕으로 변위 벡터(displacement vector) $\boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n$ , 즉 원본 데이터 포인트와 그 사영 사이의 차이 벡터가 다음과 같음을 도출한다.

$$ \boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n = \left( \sum_{j=M+1}^D \boldsymbol{b}_j\boldsymbol{b}_j^\top \right)\boldsymbol{x}_n \quad (10.38a) $$
$$ = \sum_{j=M+1}^D (\boldsymbol{x}_n^\top \boldsymbol{b}_j)\boldsymbol{b}_j. \quad (10.38b) $$

이는 차이가 정확히 데이터 포인트를 주 부분공간의 직교 여공간(orthogonal complement)으로 사영한 것임을 의미한다. (10.38a)의 행렬 $\sum_{j=M+1}^D \boldsymbol{b}_j\boldsymbol{b}_j^\top$ 을 이 사영을 수행하는 투영 행렬로 식별한다. 따라서 그림 10.9에 묘사된 바와 같이 변위 벡터 $\boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n$ 은 주 부분공간에 직교하는 부분공간에 존재한다.
figure 10.9.png
(그림 10.9) 직교 사영 및 변위 벡터. 데이터 포인트 $\boldsymbol{x}_n$ (파란색)을 부분공간 $U_1$ 으로 사영할 때, $\tilde{\boldsymbol{x}}_n$ (주황색)을 얻는다. 변위 벡터 $\tilde{\boldsymbol{x}}_n - \boldsymbol{x}_n$ 은 완전히 $U_1$ 의 직교 여공간 $U_2$ 에 존재한다.

Remark (저랭크 근사, Low-Rank Approximation). (10.38a)에서 $\boldsymbol{x}$ 를 $\tilde{\boldsymbol{x}}$ 로 사영하는 투영 행렬이 다음과 같이 주어짐을 확인했다.

$$ \sum_{m=1}^M \boldsymbol{b}_m\boldsymbol{b}_m^\top = \boldsymbol{B}\boldsymbol{B}^\top. \quad (10.39) $$

행렬 $\boldsymbol{B}\boldsymbol{B}^\top$ 는 랭크-1(rank-one) 행렬 $\boldsymbol{b}_m\boldsymbol{b}_m^\top$ 들의 합으로 구성됨에 따라 대칭 행렬이며 랭크 $M$ 을 가짐을 알 수 있다. 따라서 평균 제곱 재구성 오차는 다음과 같이 기술된다.

$$ \frac{1}{N}\sum_{n=1}^N \Vert \boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n\Vert ^2 = \frac{1}{N}\sum_{n=1}^N \Vert \boldsymbol{x}_n - \boldsymbol{B}\boldsymbol{B}^\top\boldsymbol{x}_n\Vert ^2 \quad (10.40a) $$
$$ = \frac{1}{N}\sum_{n=1}^N \Vert (\boldsymbol{I} - \boldsymbol{B}\boldsymbol{B}^\top)\boldsymbol{x}_n\Vert ^2. \quad (10.40b) $$

원본 데이터 $\boldsymbol{x}_n$ 과 그 사영 $\tilde{\boldsymbol{x}}_n$ 사이의 차이를 최소화하는 정규 직교 기저 벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 을 찾는 것은, 단위 행렬 $\boldsymbol{I}$ 의 최적의 랭크- $M$ 근사 $\boldsymbol{B}\boldsymbol{B}^\top$ 를 찾는 것과 동치이다 (4.6절 참조).
(PCA는 단위 행렬의 최적 랭크- $M$ 근사를 찾는다.)

$\quad$ 이제 우리는 손실 함수 (10.29)를 재구성하기 위한 모든 도구를 갖추었다.

$$ J_M = \frac{1}{N} \sum_{n=1}^N \Vert \boldsymbol{x}_n - \tilde{\boldsymbol{x}}_n\Vert ^2 \stackrel{(10.38b)}{=} \frac{1}{N} \sum_{n=1}^N \left\Vert \sum_{j=M+1}^D (\boldsymbol{b}_j^\top \boldsymbol{x}_n)\boldsymbol{b}_j \right\Vert ^2 . \quad (10.41) $$

이제 제곱 노름을 명시적으로 계산하고 $\boldsymbol{b}_j$ 가 정규 직교 기저(ONB)를 형성한다는 사실을 활용하면 다음이 산출된다.

$$ J_M = \frac{1}{N} \sum_{n=1}^N \sum_{j=M+1}^D (\boldsymbol{b}_j^\top \boldsymbol{x}_n)^2 = \frac{1}{N} \sum_{n=1}^N \sum_{j=M+1}^D \boldsymbol{b}_j^\top \boldsymbol{x}_n \boldsymbol{b}_j^\top \boldsymbol{x}_n \quad (10.42a) $$
$$ = \frac{1}{N} \sum_{n=1}^N \sum_{j=M+1}^D \boldsymbol{b}_j^\top \boldsymbol{x}_n \boldsymbol{x}_n^\top \boldsymbol{b}_j , \quad (10.42b) $$

여기서 마지막 단계에서 내적의 대칭성을 활용하여 $\boldsymbol{b}_j^\top \boldsymbol{x}_n = \boldsymbol{x}_n^\top \boldsymbol{b}_j$ 로 작성했다. 이제 합의 순서를 바꾸어 다음을 얻는다.

$$ J_M = \sum_{j=M+1}^D \boldsymbol{b}_j^\top \underbrace{\left( \frac{1}{N} \sum_{n=1}^N \boldsymbol{x}_n \boldsymbol{x}_n^\top \right)}_{=: \boldsymbol{S}} \boldsymbol{b}_j = \sum_{j=M+1}^D \boldsymbol{b}_j^\top \boldsymbol{S} \boldsymbol{b}_j \quad (10.43a) $$
$$ = \sum_{j=M+1}^D \text{tr}(\boldsymbol{b}_j^\top \boldsymbol{S} \boldsymbol{b}_j) = \sum_{j=M+1}^D \text{tr}(\boldsymbol{S} \boldsymbol{b}_j \boldsymbol{b}_j^\top) = \text{tr}\Big( \big( \underbrace{\sum_{j=M+1}^D \boldsymbol{b}_j \boldsymbol{b}_j^\top}_{\text{투영 행렬}} \big) \boldsymbol{S} \Big), \quad (10.43b) $$

여기서 대각합 연산자(trace operator) $\text{tr}(\cdot)$ (식 4.18 참조)가 선형적이며 인자들의 순환 치환(cyclic permutation)에 대해 불변이라는 성질을 활용했다. 데이터셋의 중심이 원점에 맞춰져 있다고 가정했으므로( $\mathbb{E}[\mathcal{X}] = \boldsymbol{0}$ ), $\boldsymbol{S}$ 를 데이터 공분산 행렬(data covariance matrix)로 식별한다. (10.43b)의 투영 행렬은 랭크-1 행렬 $\boldsymbol{b}_j \boldsymbol{b}_j^\top$ 들의 합으로 구성되므로 그 자체의 랭크는 $D - M$ 이다.

$\quad$ 식 (10.43a)는 평균 제곱 재구성 오차를 주 부분공간의 직교 여공간으로 사영된 데이터의 공분산 행렬로 동등하게 공식화할 수 있음을 의미한다. 따라서 평균 제곱 재구성 오차를 최소화하는 것은 우리가 무시하는 부분공간, 즉 주 부분공간의 직교 여공간으로 사영될 때 데이터의 분산을 최소화하는 것과 동치이다. 이는 동등하게 우리가 주 부분공간에 보존하는 사영의 분산을 최대화하는 것이며, 투영 손실을 10.2절에서 논의한 PCA의 최대 분산 공식과 즉시 연결한다. 그러나 이는 또한 최대 분산 관점에서 얻었던 것과 동일한 해를 얻게 될 것임을 의미한다. 따라서 10.2절에 제시된 것과 동일한 유도 과정은 생략하고, 투영 관점에 비추어 앞서 도출한 결과를 요약한다.

$\quad$ $M$ 차원 주 부분공간으로 사영할 때의 평균 제곱 재구성 오차는 다음과 같다.

$$ J_M = \sum_{j=M+1}^D \lambda_j , \quad (10.44) $$

여기서 $\lambda_j$ 는 데이터 공분산 행렬의 고윳값이다. 따라서 (10.44)를 최소화하려면 가장 작은 $D - M$ 개의 고윳값을 선택해야 하며, 이는 곧 그에 대응하는 고유벡터들이 주 부분공간의 직교 여공간의 기저임을 의미한다. 결과적으로, 이는 주 부분공간의 기저가 데이터 공분산 행렬의 가장 큰 $M$ 개의 고윳값과 연관된 고유벡터 $\boldsymbol{b}_1, \dots, \boldsymbol{b}_M$ 으로 구성됨을 의미한다.

(평균 제곱 재구성 오차를 최소화하는 것은 데이터 공분산 행렬의 주 부분공간의 직교 여공간으로의 사영을 최소화하는 것과 동치이다.)
(평균 제곱 재구성 오차를 최소화하는 것은 사영된 데이터의 분산을 최대화하는 것과 동치이다.)

예제 10.3 (MNIST 숫자 임베딩)

figure 10.10.png

(그림 10.10. PCA를 사용하여 2차원 주 부분공간에 임베딩된 MNIST 숫자 0(파란색)과 1(주황색). 주 부분공간에 있는 숫자 “0”과 “1”의 임베딩 4개가 해당하는 원본 숫자 이미지와 함께 빨간색으로 강조 표시되어 있다.)

그림 10.10은 첫 두 개의 주성분(principal components)에 의해 생성된 벡터 부분공간에 임베딩된 MNIST 숫자 “0”과 “1”의 훈련 데이터를 시각화한다. “0”(파란색 점)과 “1”(주황색 점) 사이의 비교적 뚜렷한 분리(separation)를 관찰할 수 있으며, 각 개별 군집(cluster) 내의 변동성(variation)을 확인할 수 있다. 주 부분공간에 투영된 숫자 “0”과 “1”의 임베딩 4개가 해당하는 원본 숫자 이미지와 함께 빨간색으로 강조 표시되어 있다. 이 그림은 “0” 집합 내의 변동성이 “1” 집합 내의 변동성보다 유의미하게 크다는 것을 보여준다.