[latexpage]
1. Auto Encoder
a. Auto Encoder의 구조: Encoder&Decoder
Auto Encoder의 구조는 어떤 입력에 대해서 특징을 추출하여 입력의 압축된 정보를 Latent Variables(잠재 변수) 에 담고, 이 Latent Variables 로부터 다시 자기 자신(입력) 복호화하는 알고리즘이라고 할 수 있다.
(1). Encoder
입력된 정보들은 Encoder를 통해 Hidden 공간 (Latent Space, 잠재 공간)으로 압축된다.
예시: 얼굴 이미지 전체 픽셀 → 피부색, 눈, 코, 입, 귀
(2). Decoder
Latent Space에 있는 Latent Variables의 정보를 기반으로 원래의 이미지를 복원한다.
예시: 피부색, 눈, 코, 입, 귀 → 얼굴 이미지
b. Auto Encoder + Generative Model
Latent Space로부터 데이터를 생성하고자 한다면?
Latent Space 속 특징들에 대한 벡터들의 값들을 조정하면 새로운 데이터를 생성하지 않을까?
그러기 위해서 Sampling을 해보자
2. Variational Auto Encoder (VAE)
a. Approximate (근사)
가지고 있는 데이터(X)는 너무 많고 고차원이다.
→ $Sample(X)$의 분포가 정규분포를 따른다고 한다면
→ 분포 내에서 샘플링을 통해 새로운 데이터 $\hat{X}$를 추정 가능해짐
Encoder의 출력이 $N(\mu(X), \sigma^2(X))$가 된다면, 샘플링을 통해 잠재 변수 $z$를 생성해 낼 수 있고, Decoder를 통해 대응하는 새로운 데이터를 추정할 수 있다.
(1). Reparamentrization Trick
그러나, 샘플링을 할 경우 Random성을 띄기 때문에 학습이 불가능해짐.
→ Reparamentrization Trick을 통해 미분이 가능해짐
기존 식: $x\sim N(\mu(X),\sigma^2(X))$
Trick을 적용한 식: $\epsilon\sim N(0,1),~ x=\mu(X)+\sigma^2(X)\times\epsilon$
→ 미분할 때는 샘플링이 아니라서 가능하지만, 샘플링 식을 닮아서 분포를 따른다는 가정을 지킬 수 있어짐
(2). KL Divergence
두 분포가 가우시안 분포를 따를 경우.
$$ D_{KL}(p||q)=\log\frac{\sigma_2}{\sigma_1}+\frac{\sigma_1^2+(\mu_1-\mu_2)^2}{2\sigma_2^2}-\frac12\\where ~~~p(x)=N(\mu_1,\sigma_1^2),~q(x)=N(\mu_2,\sigma_2^2),~N(\mu,\sigma^2)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} $$
(3). Bayes Rule
$$ P(H|E)=\frac{P(H)*P(E|H)}{P(E)} $$
E: Evidence | H: Hypothesis
P(H): 사전에 알고 있는 H가 발생할 확률
P(E|H): 모든 사건 H에 대한 E가 발생할 우도
P(E): E가 발생할 확률
P(H|E): E가 주어졌을 때, H가 발생할 사후 확률
(4). Monte Carlo Approximation
$$ E_{p(x)}[f(x)]=\int f(x)p(x)dx \approx \frac1N\sum^{N}_{i=1}f(x_i), ~~x_i~p(x) $$
b. ELBO (Evidence Lower Bound)
(1). 샘플 $x_i$를 잠재 변수 z의 분포를 이용해 표현해보자
$$ \log P(x_i)=\log\frac{P(x_i|z)P(z)}{P(z|x_i)}~~~~(\because Bayes~Rule)\\=\log P(x_i|z)+\log P(z)-\log P(z|x_i) $$
(2). 샘플 $x_i$를 잠재 변수 z의 확률 밀도함수의 성질을 이용해 변형해보자
$$ \log P(x_i)=\log P(x_i)\int q(z|x_i)dz~~~(\because \int q(z|x_i)dz=1)\\=\int q(z|x_i)\log P(x_i)dz~~~~~~~~~~~~~~~~~~~~~ $$
(3). (1)과 (2) 합치기
$$ \log P(x_i)=\int q(z|x_i)[\log P(x_i|z) + \log P(z)-\log P(z|x_i)]dz \\= E_{q(z|x_i)}[\log P(x_i|z)]+\int q(z|x_i)\log P(z) dz – \int q(z|x_i)\log P(z|x_i)dz\pm \int q(z|x_i)\log q(z|x_i)dz~~(\because Monte~Carlo~Approximation)\\=E_{q(z|x_i)}[\log P(x_i|z)]\\-\int q(z|x_i)\log q(z|x_i)dz+\int q(z|x_i)\log P(z)dz\\+\int q(z|x_i)\log q(z|x_i) dz-\int q(z|x_i)\log P(z|x_i)dz\\=E_{q(z|x_i)}[\log P(x_i|z)]-D_{KL}(q(z|x_i)||P(z))+D_{KL}(q(z|x_i)||P(z|x_i))(\because KL~Divergence)\\\geq E_{q(z|x_i)}[\log P(x_i|z)]-D_{KL}(q(z|x_i)||P(z))(\because D_{KL}\geq0) $$
(4). ELBO
$$ \log P(x_i) \geq E_{q(z|x_i)}[\log P(x_i|z)]-D_{KL}(q(z|x_i)||P(z))\\z\sim N(0,1)\\q(z|x_i)\sim N(\mu_{q(x_i)},\sigma_{q(x_i)}^2)\\D_{KL}(q(z|x_i)||P(z))=\sum_i-\log \sigma_{q(x_i)}+\frac12(\sigma_{q(x_i)}^2+\mu_{q(x_i)}^2-1) $$
(5). 정리
$E_{q(z|x_i)}[\log P(x_i|z)]$: Reconstruction Error
$D_{KL}(q(z|x_i)||P(z))$: Regularization Parameter
답글 남기기