부스트 캠프 ai tech 4주 4일차 DL Basic (8)
Generative Model
- 생성모델은 아래와 같은 특징을 가진다
- Generatation
- 기존의 데이터 확률분포 $p(x)$ 에 속하는 $x_new$를 만들어 낸다
- Density estimation
- data $x$가 기존의 데이터와 비슷하면 확률분포 $p(x)$상에 존재할 가능성이 높다.
- anomaly detection 이상치 탐지
- 설명 가능한 모델 등이 있다
Variaty Autoencoder
- Latent Space로 부터 데이터를 생성해내는 모델을 말한다
- Encoder와 Decoder 2부분으로 이루어져 있다
- Encoder에서는 기존의 Dataset으로 부터 Latent Space를 생성한다
- $x \rightarrow p(x)$
- Decoder는 Latent Space로부터 역으로 Data를 생성한다
- $p(x) \rightarrow x$
- Encoder에서는 기존의 Dataset으로 부터 Latent Space를 생성한다
- 그래서 Encoder에서는 Dataset으로 Latent Space의 확률분포를 근사하고
- $q_\phi$(z|x)
- Decoder에서는 Latent Space에서 기존 Dataset의 확률분포로 이동을 시켜준다
- $p_\theta(x)$
- 하지만 위의 확률분포는 우리가 알 방법이 없다
- 그래서 이것을 근사하기 위해 VAE에서 사용된 2가지 기법에 대해서 간략하게 설명한다
Variaty Inference
$q_\phi(z|x)$와 $p_\theta(z|x)$의 차이($D_{KL}$)를 줄이는것이 궁극적인 목표이다
- 하지만 $p_\theta(z|x)$은 우리가 알 수가 없다
그래서 Maximum Likehood를 변형시켜서 학습에 이용한다
$\mathcal{L}(\theta, \phi ; x)$ : Evidence Lower Bound (ELBO)
$$
\begin{aligned}
log(p_\theta (x)) &= \int_z q_\phi(z|x)log(p_\theta(x))\\
&= \mathcal{L}(\theta, \phi ; x) + D_{KL}(q_\phi(z|x)||p_\theta(z|x))
\end{aligned}
$$$D_{KL}$는 항상 1보다 크기때문에 위의 식은 다음과 같이 나타낼 수 있다.
$$
log(p_\theta (x)) \geq \mathcal{L}(\theta, \phi ; x)
$$
- 여기서 ELBO를 크게 하는 쪽으로 학습을 하게되면 $D_{KL}$은 줄어들게 된다.
Reparametrization Trick
- 학습과정 중간에 Sampling이 들어가서 미분이 되지 않는것을 해결하기 위한 Trick
- sampling 한 값 $z$가 $\mu_q + \sigma_q \cdot \epsilon$ 과 같다고 생각하고 기존에 없던 $z$에 대해서 미분이 가능하게 바꾸었다.