[cs231n] Variational Autoencoders (VAE)

์ด์ PixelCNN ๊ฐ์ ๊ฒฝ์ฐ์๋, ํ๋ฅ ๋ชจ๋ธ์ด ๊ณ์ฐ ๊ฐ๋ฅํ ํจ์์๋๋ฐ,
VAE(Variational Autoencoders)๋ ํ๋ฅ ๋ชจ๋ธ์ด ๊ณ์ฐ ๋ถ๊ฐ๋ฅํ ํจ์๋ก ์ ์๊ฐ ๋๋ค.
๋ฐ๋ผ์, Lower bound(ํํ์ )์ ๊ตฌํด์ ๊ณ์ฐ ๊ฐ๋ฅํ ํํ๋ก ๋ง๋ค์ด์ฃผ๋๊ฒ ๋ชฉ์ ์ด๋ค.
VAE์ ๋ํด ๋ฐ๋ก ๋ค์ด๊ฐ๊ธฐ ์ ์,
Autoencoder์ ๊ณผ์ ์ธ Encoder์ Decoder์ ๋ํด ์์๋ณด์.

Autoencoder์ด๋ input data $x$๋ก๋ถํฐ ๋ ๋ฎ์ ์ฐจ์์ feature $z$๋ฅผ ํ์ตํ๋ ๋ฐฉ๋ฒ์ด๋ค.
$z$๊ฐ $x$๋ณด๋ค ์ฐจ์์ด ๋ฎ์ ์ด์ ๋, ๊ธฐ์กด์ input ์ค์์ 'ํต์ฌ ์ ๋ณด'๋ง์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, encoder๋ฅผ ํตํด input data์ Noise๋ผ๊ณ ์๊ฐ๋๋ ๋ถ๋ถ์ ์ ๊ฑฐํ๊ณ ์ถ๋ค๋ ๋ป์ด๋ค.
์ ๋ฆฌํด์ ๋งํ๋ฉด,
Autoencoder: unlabeled training data๋ก๋ถํฐ
lower-dimensional feature representation์ ํ์ตํ๊ธฐ ์ํ unsupervised approach
Encoder: Input data $x$๊ฐ ๋ค์ด์์ ๋, ๊ทธ ํน์ง ๋ฒกํฐ $z$๋ฅผ ์ถ์ถํ๋ ๊ณผ์

์ฆ, autoencoder๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋
input data $x$๋ก ๋ถํฐ ์ป์ feature์ธ $z$๋ง ๊ฐ๊ณ input data๋ฅผ ๋ณต์($\hat{x}$)ํ๊ธฐ ์ํด์์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ฐ๋ก decoder์ ์ญํ ์ด๋ค.
Decoder: feature vector $z$๋ฅผ ํตํด input data๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ๊ณผ์
์ผ๋ฐ์ ์ผ๋ก, Encoder๊ณผ Decoder์ ๊ฐ์ ํํ๋ฅผ ๊ฐ๊ณ ์๋ค. (ํ์ง๋ง, ์ญ๊ณผ์ )

์ผ๋ฐ์ ์ผ๋ก, ํ๋ จ์ ํ๊ธฐ ์ reconstructed data๋ฅผ ์ดํด๋ณด๋ฉด ์ค๋ฅธ์ชฝ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
์ ์ด๋ ๊ฒ ํ๋ฆฟํ๊ฐ? ์ด์ฉ๋ฉด ๋น์ฐํ๋ค.
๊ธฐ์กด input data๋ก๋ถํฐ ์ฐจ์์ด ๋ฎ์ feature $z$๋ฅผ ์ป์๊ณ , ์ด๋ฅผ ํตํด ํ์ ๋ ์ ๋ณด๋ก ๋ค์ ๋์ ์ฐจ์์ผ๋ก ๋งคํํ๊ธฐ ๋๋ฌธ์ด๋ค
๋ฐ๋ผ์, autoencoder๋
reconstructed๋ $\hat{x}$์ ์๋ input์ด์๋ $x$ ๋ ์ฌ์ด์ loss๋ฅผ ์ค์ฌ๋๊ฐ๋ ๋ฐฉ์์ผ๋ก ํ์ตํ๋ค.
input data๋ฅผ ๋ ์ ๋ํ๋ผ ์ ์๋ feature $z$๋ฅผ ์ป๋ ๊ณผ์ ์ด๋ผ๊ณ ๋ ์๊ธฐํ ์ ์๋ค.

decoder๋ feature vector์ธ $z$๋ฅผ ํ์ตํ๊ธฐ ์ํด ํ์ํ๊ธฐ ๋๋ฌธ์
training์ด ๋๋ ํ์๋ ์ฌ์ฉํ์ง ์๋๋ค.
์ฆ, test๋ฅผ ํ ๋์๋ encoder๋ง ์ฌ์ฉํ๋ค.

ํ์ต์ํจ Encoder๋ supervised model์ ์ด๊ธฐํํ๋๋ฐ ์ฌ์ฉ๋๋ค.
autoencoder๋ unlabeled data์์ ์์ง์ general feature representation์ ํ์ตํ ์ ์๋ ์ฅ์ ์ ๊ฐ์ง๋ค.
๋ฐ๋ผ์, ์ด๋ ๊ฒ ํ์ต์ํจ feature representation์
๋ฐ์ดํฐ๊ฐ ๋ง์ง ์์ supervised learning model์ ์ด๊ธฐ ๊ฐ์ค์น๋ก ์ด์ฉ๋ ์ ์๋ค.

Autoencoder๊ฐ data๋ฅผ ์ reconstructํ๊ณ , supervised model๋ฅผ ์ด๊ธฐํํ๋ feature์ ์ ํ์ตํ๋ค.
์ด๋ฌํ feature vector $z$๋ฅผ ์ด์ฉํด์ ์๋ก์ด ์ด๋ฏธ์ง๋ค์ generateํ ์ ์์๊น?
๋ผ๋ ๋ฐฐ๊ฒฝ์์ ๋์จ ๊ฒ์ด ๋ฐ๋ก 'VAE(Variational Autoencoder)'์ด๋ค.
VAE๋ AE์ ๋ค๋ฅด๊ฒ
latent variable $z$๋ก๋ถํฐ ์ด๋ฏธ์ง $x$๋ฅผ ์์ฑํ๋ ๋ชจ๋ธ์ด๋ค.
(autoencoder์ decoder ์ญํ ๊ณผ ์ ์ฌํจ)

๋ง์ฝ ์ผ๊ตด($x$)์ generateํ๋ค๊ณ ํ๋ฉด,
$z$๊ฐ ๊ฐ๊ณ ์๋ ์ ๋ณด๋ ์ผ๋ง๋ ๋ฏธ์๋ฅผ ์ง์๋์ง, ๋์น์ ์์น, ์ผ๊ตด์ ๋ฐฉํฅ ๋ฑ์ด ๋ ์ ์๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ true parameter $\theta$๋ฅผ ์ถ์ ํ๋ ค๊ณ ํ๋ค.

์ผ๋ฐ์ ์ผ๋ก prior์ ๊ฐ์ฐ์์ ๋ถํฌ๋ฅผ ์ฌ์ฉํ๋ค.

์ด๋ป๊ฒ ๋ชจ๋ธ์ trainํ ์ ์์๊น?
- generative model์ trainingํ๋ ์ ๋ต์ผ๋ก FVBN(Fully Visible Brief Network) ์ ์ฌ์ฉํ๋ค.
- ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ์์์ผ ํ ๊ฒ์, training data์ likelihood๋ฅผ ์ต๋ํํ๋ ๋ชจ๋ธ์ parameter๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค.

์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ $p_{\theta}(x)$๋ฅผ ์ต๋ํํ๊ณ ์ถ์๋ฐ.. ๋ฌธ์ ๊ฐ ๋ฌด์์ผ๊น?
๊ทธ๋ ๋ค ๊ธฐ์กด์ PixelCNN๊ณผ ๋ค๋ฅด๊ฒ intractableํ ํ์์ด๋ผ๋ ๊ฒ์ด๋ค.



์ intractible์ด๋ผ๊ณ ํํํ ๊น? ๋ฐ๋ก, ๊ณ์ฐ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
$P_{\theta}(x | z)$๋ ๋ชจ๋ $z$์ ๋ํด์ ์์๋ด์ผ -> $P_{\theta}$๋ฅผ ๊ตฌํ ์ ์๋๋ฐ
๋ชจ๋ $z$๋ ์ฐ๋ฆฌ๊ฐ ์์๋ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.

๋ฐ๋ผ์, ์ถ๊ฐ์ ์ธ encoder๋ฅผ ํตํด์ ํ์ต์ ์ํค๋๋ฐ
$P_{\theta}(x | z)$๋ฅผ ๊ทผ์ฌํ $Q_{\theta}(x | z)$๋ฅผ ์ด์ฉํด ํ์ต์ ์ํจ๋ค.
์ด๋, $Q_{\theta}(x | z)$์ ๊ณ์ฐ์ด ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๊ณ์ฐ๋ฒ์ ๋ฐ์ดํฐ์ ๊ฐ๋ฅ๋(likelihood)์ ๋ํ tractableํ ํํ(lower bound)์ ์ ๋ํ ์ ์๋ค.



- Decoder Network Term(์ฒซ ๋ฒ์งธ term):
[reconstruction]: original input being reconstructed
$q_{\theta}(z|x)$๋ก๋ถํฐ samplingํ $z$๋ฅผ ๊ฐ์ง๊ณ $p_{\theta}(x_{i}|z)$๊ฐ $x_{i}$๋ฅผ ์์ฑํ log likelihood
- KL term
prior $p_{theta}(z)$์ posterior $q_{\theta}(z|x)$ ์ฌ์ด์ KL-divergence
์ฆ ๊ทผ์ฌ๋ posterior์ ๋ถํฌ๊ฐ ์ผ๋ง๋ normal distribution๊ณผ ๊ฐ๊น์ด์ง์ ๋ํ ์ฒ๋์ ๋๋ค
(๋จ ์ด๋ prior๋ฅผ normal distribution์ผ๋ก ๊ฐ์ )
- KL term(๋ง์ง๋ง KL term)
$p_{\theta}(z| x_{i}|)$๋ intractableํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ด๋ ต๋ค.
(Intractible: Baye's rule์ ์ ์ฉํ ์์ $p_{\theta}(z| x_{i}|)$์ด ๊ณ์ฐ์ด ๋์ง ์๋ ๊ฒ์ ํ์ธ)
ํ์ง๋ง KL์ ์ฑ์ง(ํน์ฑ)์ ์ํด ์ธ๋ฒ์งธ ํญ(๋ง์ง๋ง KL term)์ ๋ฌด์กฐ๊ฑด 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค







์ฐธ๊ณ ๋ธ๋ก๊ทธ ๋งํฌ
https://taeyoung96.github.io/cs231n/CS231n_13/
CS231n 13๊ฐ ์์ฝ
Unsupervised Learning๊ณผ Generative Models์ ๋ํด์ ์์๋ณด์!
taeyoung96.github.io
https://doubleyoo.tistory.com/7
[cs231n] Lec13 - Generative models
Overview Unsupervised Learning Generative models: PixelRNN and CNN, VAE, GAN Unsupervised Learning (๋น์ง๋ ํ์ต) label ์์ด ํ์ต ๋ฐ์ดํฐ๋ง์ผ๋ก ๋ฐ์ดํฐ์ ์จ์ด์๋ ๊ตฌ์กฐ๋ฅผ ํ์ตํ๋ ๋ฐฉ๋ฒ ex) Clustering, dimensionality reduction, f
doubleyoo.tistory.com
https://deepinsight.tistory.com/121
[๋ชจ๋๋ฅผ ์ํ cs231n] Lecture 13 - Part 2. VAE(Variational AutoEncoer)
VAE(Variational AutoEncoder) ์๋ ํ์ธ์ Steve Lee์ ๋๋ค. ์ค๋์ cs231n 13๊ฐ์ Variational AutoEncoder์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค! (๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋์ ๊ฐ์ข๋ค์ ์๋์ ๋ชฉ์ฐจ๋ฅผ ํต
deepinsight.tistory.com