Search
Duplicate

AI/ Dimension Reduction - PCA, FA, Autoencoder, Multi-Dimensional Scaling(MDS)

Dimension Reduction

VAE를 이해하려면 Autoencoder를 이해해야 하는데, AE를 이해하려면 Factor Analysis(FA)를 이해해야 하고, FA를 이해하려면 Principal Component Analysis(PCA)를 이해해야 한다. 즉 PCA → FA → AE → VAE 흐름으로 이해하면 된다.
위 방법들은 모두 Dimension Reduction 방법의 종류이고, 주어진 데이터에 대해 저차원으로 압축하여 데이터에 대한 본질적인 특징 —저차원 표현— 을 추출하고, 그 특징을 기반으로 원본 데이터를 복구하는 모델에 해당한다.
가장 먼저 차원 축소의 형식으로 사용된 방법이 PCA였고, 그것을 일반화한 모델이 FA이고, 그것을 Encoder-Decoder 구조로 신경망에 적용한 것이 Autoencoder이다. 이후 Autoencoder를 생성 모델 형태로 만든 것이 바로 Variational Autoencoder(VAE)이다.

Principal Component Analysis(PCA)

PCA의 기본 아이디어는 고차원 데이터 xRD\bold{x} \in \mathbb{R}^D를 원본 데이터에 대한 ‘좋은 근사’를 표현하는 저 차원 부분 공간 zRL\bold{z} \in \mathbb{R}^L에 대한 선형 직교투영을 찾는 것이다.
이를 위해 입력 x\bold{x}z=Wx\bold{z} = \bold{W}^\top \bold{x}로 project(또는 encode)하고 z\bold{z}를 다시 unproject(또는 decode) 하여 x^=Wz\hat{\bold{x}} = \bold{Wz}를 얻는다. 그 다음 decode한 x^\hat{\bold{x}}를 원래의 입력 x\bold{x}2\ell_2 거리로 가깝게 한다. 이를 위해 다음의 reconstruction error (또는 distortion)을 정의한다.
L(W)1Nn=1Nxndecode(encode(xn;W);W)22\mathcal{L}(\bold{W}) \triangleq {1\over N} \sum_{n=1}^N \|\bold{x}_n - \text{decode}(\text{encode}(\bold{x}_n;\bold{W});\bold{W})\|_2^2
구체적으로 (unlabeled) 데이터셋 D={xn:n=1:N}\mathcal{D} = \{\bold{x}_n:n=1:N\}을 가졌다고 가정하자. 여기서 xnRD\bold{x}_n \in \mathbb{R}^D이다. 이것을 N×DN \times D 데이터 행렬 X\bold{X}로 표현할 수 있다. 데이터 중심화를 보장하기 위해 xˉ=1Nn=1Nxn=0\bar{\bold{x}} = {1 \over N} \sum_{n=1}^N \bold{x}_n = \bold{0}을 가정한다.
xn\bold{x}_n을 저차원 표현 znRL\bold{z}_n \in \mathbb{R}^L로 근사하기를 원한다. 각 xn\bold{x}_n이 기저 함수 w1,...,wL\bold{w}_1, ... , \bold{w}_L의 weighted combination의 측면으로 ‘설명된다’고 가정한다. 여기서 wkRD\bold{w}_k \in \mathbb{R}^D이고 가중치는 znRL\bold{z}_n \in \mathbb{R}^L로 주어진다. 즉 xnk=1Lznkwk\bold{x}_n \approx \sum_{k=1}^L z_{nk} \bold{w}_k라고 가정한다. 벡터 zn\bold{z}_nxn\bold{x}_n의 저차원 표현이고, 데이터에서 관찰되지 않은 latent 또는 ‘숨겨진’ 것으로 구성되기 때문에 latent vector 라고 불린다. 이 잠재 변수들의 집합은 latent factors라고 불린다.
이 근사에 의해 생긴 오류를 다음과 같이 측정할 수 있다.
L(W,Z)=1NXZWF2=1NXWZF2=1Nn=1NxnWzn2\begin{aligned} \mathcal{L}(\bold{W}, \bold{Z}) &= {1 \over N} \|\bold{X} - \bold{ZW}^\top \|_F^2 \\&= {1\over N} \|\bold{X}^\top - \bold{WZ}^\top\|_F^2 \\&= {1 \over N}\sum_{n=1}^N\|\bold{x}_n - \bold{Wz}_n\|^2 \end{aligned}
여기서 Z\bold{Z}의 행은 X\bold{X}의 행의 저차원 버전을 포함한다. 이것은 x^n=Wzn\hat{\bold{x}}_n = \bold{Wz}_n을 이용하여 각 xn\bold{x}_n을 근사하기 때문에 (average) reconstruction error라고 한다.
W\bold{W}가 직교 행렬이라는 제약조건을 이용하여 이것을 최소화하기를 원한다. W^=UL\hat{\bold{W}} = \bold{U}_L을 설정하여 최적 해를 구할 수 있다. 여기서 UL\bold{U}_L은 경험적 공분산 행렬의 가장 큰 고유값들의 LL개 고유벡터를 포함한다.

Factor Analysis(FA)

FA는 선형 저차원 표현을 계산하는 PCA의 비선형을 포함한 일반화 형태이다. Factor analysis는 다음과 같이 관측 데이터 x\bold{x}가 잠재 변수 z\bold{z}의 선형 결합으로 표현되는 모델이다. 이때 관측과 잠재 변수는 모두 가우시안이고 따라서 FA는 선형 가우시안 잠재 변수 생성 모델(linear-Gaussian latent variable generative model)에 해당한다. —물론 비가우시안 분포를 따르는 FA도 존재한다.
p(z)=N(zμ0,Σ0)p(xz,θ)=N(xWz+μ,Ψ)\begin{aligned} p(\bold{z}) &= \mathcal{N}(\bold{z}|\boldsymbol{\mu}_0, \boldsymbol{\Sigma}_0) \\ p(\bold{x}|\bold{z},\boldsymbol{\theta}) &= \mathcal{N}(\bold{x}|\bold{Wz} + \boldsymbol{\mu}, \boldsymbol{\Psi} )\end{aligned}
여기서 W\bold{W}D×LD \times L 행렬이고 factor loading matrix라고 한다. Ψ\boldsymbol{\Psi}는 대각 D×DD \times D 공분산 행렬이다. FA는 가우시안 분포의 low-rank 버전으로 생각할 수 있다.
관찰이 잠재 변수에 영향 받는다는 점은 state-space model(SSM)과도 유사하지만, FA는 정적인 데이터 구조를 다루는 반면 SSM은 동적인 시스템을 다룬다는 점에 차이가 있다.

Autoencoder

Autoencoder는 PCA와 Factor Analysis(FA)의 encoder와 decoder를 신경망으로 구현한 모델이다. Autoencoder의 encoder는 xz\bold{x} \to \bold{z} (선형) 매핑이고 decoder는 zx\bold{z} \to \bold{x}의 또 다른 (선형) 매핑을 학습한다. Autoencoder를 선형으로 만들면 PCA와 동등해진다.
전체 reconstruction 함수는 r(x)=fd(fe(x))r(\bold{x}) = f_d(f_e(\bold{x}))의 형식을 갖고, 모델은 L(θ)=r(x)x22\mathcal{L}(\boldsymbol{\theta}) = \|r(\bold{x}) - \bold{x}\|_2^2를 최소화하는 것을 학습한다. 더 정확하게 L(θ)=logp(xr(x))\mathcal{L}(\boldsymbol{\theta}) = -\log p(\bold{x}|r(\bold{x}))를 사용할 수 있다.
Autoencoder의 hidden layer가 충분히 넓으면 identify 함수가 학습되는 것을 막을 수 있는 방법이 없기 때문에 모델에 제한을 줘야 한다. 예컨대 만일 입력에 noise를 추가하고 출력에서 denoising 입력을 복구하도록 학습시킨다면 Denoising Autoencoder가 된다. 또 다른 방법으로 reconstruction loss에 페널티 항을 추가하면 Contrastive Autoencoder를 만들 수 있다.

Multi-Dimensional Scaling(MDS)

PCA, FA, Autoencoder는 모두 유클리드 공간에서 데이터의 차원 축소와 특징 추출을 하는 모델이다. 이를 비유클리드 공간에서 차원 축소와 특징 추출하는 방법이 있는데 그것을 Manifold Learning이라 부른다. Multi-Dimensional Scaling(MDS)는 Manifold Learning 중의 한 가지 방법이다.
Manifold Learning은 국소적으로 유클리드인 topological 공간으로 공간의 곡률도 반영할 수 있기 때문에 훨씬 유연한 모델을 구성한다. 비유클리드 공간에서 동작하기 때문에 비유클리드 거리(코사인 유사도 또는 맨해튼 거리)를 사용할 수도 있다. 따라서, MDS를 포함한 매니폴드 학습 기법은 비선형적인 데이터 구조를 탐색하고 이를 낮은 차원에서 표현하는 데 적합하다.
물론 Manifold Learning이 더 유연하다는 것은 그만큼 계산 비용이 더 비싸다는 의미도 된다.

참고