📝 상세 정리
- 데이터를 압축하는 방법을 알아보자
- 정확히는 원본의 고차원 데이터를 낮은 차원의 feature space로 projection하자는 것이다.
- 이를 차원 축소라고 한다.
- 그리고 이 때 압축 손실을 최소화 하기 위해 가장 정보를 많이 담고있는 차원을 찾는 것이 이상적이다.
- 정확히는 원본의 고차원 데이터를 낮은 차원의 feature space로 projection하자는 것이다.
- Vector Space $V$, V의 subspace $U \subseteq V$가 있을 때, linear mapping $\pi$가 $\pi^2 = \pi \circ \pi = \pi$ 를 만족한다면 $\pi$를 projection이라 부른다.
- 이를 직관적으로 이해하자면, $\pi : V -> U \subseteq V$ 의 linear mapping이 있다고 하자.
- 이때 $\pi^2 = \pi$ 를 만족하기 위해서는 $U$ 안의 원소들은 사영 이후에도 $U$ 안에 있어야 한다.
- $u$가 어떤 벡터 $x$의 사영 결과라고 하면 아래와 같은 식을 만족하게 된다.
- $\pi(u) = \pi(\pi(x)) = \pi(x) = u$
- $u$가 어떤 벡터 $x$의 사영 결과라고 하면 아래와 같은 식을 만족하게 된다.
- 위와 같은 직관으로 이해하면 된다!
- Linear Mapping $\pi$는 transformation matrix로 표현 가능하기에 $P_{\pi}$ 로 표현해도 되겠다.
3.8.1 Projection onto One-Dimensional Subspaces (Lines)
- 한번 직접 1차원 공간 (직선) 으로 사영시켜보자.
- 원본 데이터로부터 Basis vector $b \in R^N$ 인 1차원 벡터가 주어졌다고 해보자.
- 이 벡터는 $b$에 의해 span되는 1차원 subspace $U \subseteq R^N$ 을 만든다.
- $x$를 $U$로 projection할 때, 우리는 $x$에 가장 가까운 벡터 $\pi_{U}(x) \in U$ 를 찾아야한다.
- 이때 사영된 결과 $\pi_U(x)$ 는 $x$와 가장 가깝다.
- 이는 distance가 최소라는 의미이고, $\pi_U(x) - x$가 $U$에 직교한다는 의미이다.
- 이에 따라 물론 $b$와도 직교한다.
- 따라서 $\langle \pi_U(x) - x, b \rangle = 0$ 을 만족해야 한다.
- 이는 distance가 최소라는 의미이고, $\pi_U(x) - x$가 $U$에 직교한다는 의미이다.
- $\pi_U(x)$는 $U$의 원소여야한다. 따라서 $b$로 표현할 수 있으며, $\lambda \in R$에 대해 $\pi_U(x) = \lambda b$ 이다.
- 이때 사영된 결과 $\pi_U(x)$ 는 $x$와 가장 가깝다.
- 이후 전개 과정은 다음과 같다. $$ \begin{aligned} \langle \pi_U(x) - x, b \rangle &= \langle x - \pi_U(x) , b \rangle \ &= \langle x - \lambda b , b \rangle \ &= \langle x, b \rangle - \lambda \langle b , b \rangle \[1em]
\lambda &= \frac{\langle x, b\rangle}{\langle b, b\rangle} \ &= \frac{\langle x, b\rangle}{||b||^2} \ &= \frac{b^Tx}{||b||^2} \end{aligned} $$
위 식에서 마지막 등호는 내적으로 dot product를 골랐을 때 성립한다.
$$ \begin{aligned} \pi_U(x) &= \lambda b \\ &= b \lambda \\ &= b\frac{\langle x, b\rangle}{||b||^2} \\ &= \frac{bb^T}{||b||^2}x \\[1em] P_{\pi} &= \frac{bb^T}{||b||^2} \end{aligned} $$위와 같이 Projection Matric을 구할 수 있다.
3.8.2 Projection onto General Subspaces
- 위의 유도 과정을 1차원이 아닌 $m$차원 subspace에서 시도해보자.
- $U$의 basis를 $\langle b_1, b_2, ... b_m \rangle$ 이라고 해보자.
- $\pi_U(x)$는 $U$ 위의 원소여야하므로
- $\pi_U(x) = \sum_{i = 1}^{m} \lambda_{i} b_i = B\lambda$
- 또한 $\pi_U(x) - x$는 모든 basis와 직교해야하므로
- $1 \leq i \leq m$ 에 대해 $\langle \pi_U(x) - x, b_i \rangle = 0$
- $\pi_U(x)$는 $U$ 위의 원소여야하므로
- 아까와 비슷한 식인데, 다차원이 되면서 조금 더 복잡해졌다. 그래도 같은 방식으로 전개해보자.
- $1 \leq i \leq m$ 에 대해 $\langle \pi_U(x) - x, b_i \rangle = \langle b_i, \pi_U(x) - x \rangle = b_i^T(x - \pi_U(x)) = b_i^T(x - B\lambda) = 0$
- 이는 다음과 같이 바꿀 수 있다. $$ \begin{aligned} \begin{bmatrix} b_1^\top \\ \vdots \\ b_m^\top \end{bmatrix} (x - B\lambda) = 0 &\iff B^\top (x - B\lambda) = 0 \\ &\iff B^\top B \lambda = B^\top x \end{aligned} $$
- 그런데, 여기서 $b_1, b_2, ... b_m$은 $U$의 basis이기 때문에, 선형 독립이다! 따라서 역행렬이 존재한다. 그러므로 $\lambda$를 다음과 같이 구할 수 있다.
- $\lambda = (B^TB)^{-1}B^Tx$
- Projection Matrix도 같은 방식으로 구하면 $$ \begin{aligned} \pi_U(x) &= \lambda B \ &= B \lambda \ &= B(B^TB)^{-1}B^Tx \[2em]
P_{pi} &= B(B^TB)^{-1}B^T \end{aligned} $$