๋ณธ ๊ธ์ ์๋ ์์์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์์ต๋๋ค.
https://www.youtube.com/watch?v=GbCAwVVKaHY&list=PLQASD18hjBgyLqK3PgXZSp5FHmME7elWS&index=10
# Variational Autoencoders(VAE)
AE ๊ฐ์ ๊ฒฝ์ฐ์๋ encoder๊ฐ ์ค์ํ ๋ฐ๋ฉด, VAE๋ decoder๊ฐ ๋ ์ค์ํ๋ค.
์ฆ, AE๋ ์ฐจ์์ ์ถ์ํ๋ ๊ฒ ์ค์ํ๊ณ , VAE๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ค์ํ๋ค.
encoder๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ฐ๋ก $z$๋ฅผ ๊ตฌํ๋๊ฒ ์๋๋ผ
ํ๊ท $\mu$์ ๋ถ์ฐ $\sigma$๋ฅผ ๋ฝ์๋ธ ํ ์ํ๋งํด์ $z$๋ฅผ ๊ตฌํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ samplingํ๋ ๊ณผ์ ์์ Reparameterization Trick $e$์ ์ฌ์ฉํด์ผ backpropagation์ด ๊ฐ๋ฅํ๋ค.
loss function์ 2๊ฐ์ง์ ํฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. (1) Reconstruction Error (2) Regularization
(1)
์ผ๋จ, input์ด ๊ทธ๋๋ก ๋ณต์๋ ์ ์๊ฒ ํ๋ Reconstruction Error๊ฐ ์ต์ํ๋ ๋
$p_{i}$๊ฐ ๋ฒ ๋ฅด๋์ด ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ๊ฐ์ ํ๋ฉด Cross Entropy๋ก ํํํ ์ ์๋ค.
(2)
๋ํ, encoder๋ฅผ ํต๊ณผํ ๊ฐ์ด normal distribution์ ๋ฐ๋ผ์ผ ํ๊ธฐ ๋๋ฌธ์ KL divergence ์์ ์ฐ๋๋ฐ
์ด๋ $KL(q_{\emptyset}(z|x_{i}) || p(z))$๋ฅผ ์๋ฏธํ๊ณ ๋ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ต์ํํ๊ธฐ ์ํ ์์ด๋ค.
# Loss Function
์ผ๋จ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์ถ์ ๊ฒ์ ์ต์ ํ๋ $\theta$์ธ $\theta*$์ด๋ค
์ด๋ฅผ ์ด๋ป๊ฒ ํ๋ จ์ํฌ ์ ์์๊น?
p_{\theta}(x|z)$๋ decoder NN์ด๋ผ๊ณ ํ์ ๋
z๋ ๋ฌดํํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ z์ ๋ํด ์ ๋ถํ ์ ์์ด์ $p_{\theta}(x)$๋ฅผ ๊ตฌํ ์ ์๋ค.
๊ทธ๋์ ๋ค๋ฅธ ์์ผ๋ก ๊ตฌํด๋ณด๊ธฐ๋ก ํ๋ค.
๋ง์ฝ $p_{\theta}(z|x)$๋ฅผ ๊ตฌํด๋ณด๋ฉด ์ด๋จ๊น?
์ด ์์ ๋ค์ ์จ๋ณด๋ฉด, $p_{\theta}(x|z) * p_{\theta}(z) / p_{\theta}(x)$์ธ๋ฐ
์ฌ๊ธฐ์ ๋ค์ $p_{\theta}(z|x)$๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ตฌํ ์ ์๋ค.
๊ทธ๋ผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น? decoder๋ฅผ ๊ตฌํ๊ธฐ ์ํด encoder๋ฅผ ์ถ๊ฐ๋ก ์ ์ํ๊ธฐ๋ก ํ๋ค.
์ฆ, ์ฌ๊ธฐ์๋ decoder๋ฅผ modelingํ๊ธฐ ์ํด์ encoder $q_{\emptyset}(z|x)$๋ฅผ ์ ์ํ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด $q_{\emptyset}(z|x)$๋ $p_{\emptyset}(z|x)$์ ๊ทผ์ฌํ๋ ๊ฐ์ด๋ค.
ํต์ฌ์ ์๋ decoder๋ง ์์ผ๋ฉด ๋๋๋ฐ ์ด๋ฅผ ํ์ต์ํค๊ธฐ ์ํด์ encoder์ ๋์์ ๋ฐ์ ๊ฒ์ด๋ค.
๊ตฌ์ฒด์ ์ธ ํ์ด๊ณผ์ ์ ์์ ์๊ณผ ๊ฐ๋ค.
๋ฐ๋ผ์, $log(p_{\theta}(x^(i)))$๋ฅผ ์ต๋ํํ ๋, $L(x^(i), \theta, \emptyset)$๋ฅผ lower bound๋ก ์ค์ ํ๋ ๊ฒ์ด๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก๋,
$L(x^(i), \theta, \emptyset)$๋ฅผ ์ต๋ํํด์ฃผ๋ $\theta*$์ $\emptyset*$์ ์ฐพ์ผ๋ฉด ๋๋ค.
์ด๋ $\theta$๋ $\emptyset$์ encoder ์์ W,b์ด๊ณ , decoder ์์ W,b์ด๋ค.
# Optimization
Regularization์ ๊ตฌํ๋ ์์ ๊ตฌํด๋ณด์.
์ด๋ ์์ ๊ฐ์ ๊ฐ์ 2๊ฐ๋ฅผ ์ค์ ํ๋ค.
100% ์ดํด๋๊ฑด ์๋๊ฑฐ ๊ฐ์๋ฐ ์ผ๋จ ๋์ด๊ฐ๊ฒ..
L์ 1์ด๋ผ๊ณ ๊ฐ์ ์ ํด๋ฒ๋ฆผ. randomํ๊ฒ ๋ฑ ํ๋์ sampling์ ํ๋ค๊ณ ๊ฐ์
ํต์ฌ์, ํ๋ฅ ๋ถํฌ๋ฅผ ๋ฒ ๋ฅด๋์ด๋ผ๊ณ ๊ฐ์ ํด์ loss ๊ตฌํ ์ ์์
ํ๋ฅ ๋ถํฌ๋ฅผ ๊ฐ์ฐ์์์ผ๋ก ๊ฐ์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ loss๋ฅผ ๊ตฌํ ์ ์์
์์ ๊ฐ์ด Decoder์ ๋ถํฌ๋ฅผ ๋ฒ ๋ฅด๋์ด๊ฐ ์๋ ๊ฐ์ฐ์์์ผ๋ก๋ ํํํ ์๋ ์์
๋น์ฐํ latent space์ ์ฐจ์์ ๋๋ฆด์๋ก ์ด๋ฏธ์ง๊ฐ ์ ๋ณต์๋๋ ๊ฒ์ ๋ณผ ์ ์์
๋ค์ ์ฑํฐ์ GAN์ด VAE์ ๋นํด ์๋ก์ด ๋ฐ์ดํฐ๋ค์ ๋ ์ ์์ฑํ๋ค.
๋ฐ๋ผ์, VAE๋ decoder ๋๋ฌธ์ ์ ์๋๊ฑด๋ฐ ์ค์ ์ฐ๊ตฌ์์๋ encoder๋ฅผ ๋ง์ด ์ฌ์ฉํจ
๊ทธ๋ฆฌ๊ณ ์ฝ๋๋ regularization๊ณผ reconstruction error๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ์งค ์ ์์
'๐ Study > AI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Diffusion Model ์ํ์ด ํฌํจ๋ tutorial (1/2) (0) | 2024.07.17 |
---|---|
[๋ฅ๋ฌ๋๊ณผ ์ค๊ณ] GAN (0) | 2024.07.11 |
[๋ฅ๋ฌ๋๊ณผ ์ค๊ณ] Autoencoder & Anomaly Detection (1) | 2024.07.10 |
[๋ฅ๋ฌ๋๊ณผ ์ค๊ณ] Unsupervised Learning ๋น์ง๋ํ์ต๊ธฐ์ด (1) | 2024.07.10 |
[cs231n] Variational Autoencoders (VAE) (0) | 2024.07.09 |