VQ-VAE์ VQ-GAN
๐ ๊ด๋ จ ๋ ผ๋ฌธ: [NeurIPS 2017] Neural Discrete Representation Learning
๐ ๊ด๋ จ ๋ ผ๋ฌธ: [CVPR 2021] Taming Transformers for High-Resolution Image Synthesis
VQ (Vector Quantization)๋ ์ฐ์์ ์ธ ๋ฒกํฐ๋ฅผ ์ด์ฐ์ ์ธ ์ฝ๋๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค.
VQ-VAE
์ผ๋ฐ์ ์ธ VAE๋ Latent Space๋ฅผ ์ฐ์์ ์ธ ํ๋ฅ ๋ถํฌ๋ก ๋ชจ๋ธ๋งํ๋ค.
ํ์ง๋ง ๋์ฝ๋์ ํํ๋ ฅ์ด ์ถฉ๋ถํ ๋์ ๊ฒฝ์ฐ, ์ฌํ ๋ถ๊ดด (Posterior Collapse) ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
VQ-VAE๋ Latent Space๋ฅผ ์ด์ฐ์ ์ผ๋ก ํํํจ์ผ๋ก์จ ์ด๋ฌํ ํ๊ณ๋ฅผ ์ํํ์๋ค.
Posterior Collapse๋?
์ผ๋ฐ์ ์ธ VAE๋ ๋ค์์ ์์ค ํจ์๋ฅผ ์ต์ํํ๋ค.
\[L_{\text{VAE}}=L_{\text{recon}}+\text{KL}(q(z\mid x)โ\parallelโp(z))\]์ฌ๊ธฐ์ KL ํญ์ ์ธ์ฝ๋์ ์ฌํ ๋ถํฌ $q(z\mid x)$๋ฅผ ์ฌ์ ๋ถํฌ $p(z)$์ ๊ฐ๊น๊ฒ ๋์ด๋น๊ธฐ๋ ์ ๊ทํ ์ญํ ์ ํ๋ค.
ํ์ง๋ง ๋์ฝ๋๊ฐ ๋๋ฌด ๊ฐ๋ ฅํด์ Latent Variable $z$ ์์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ณต์ํ ์ ์๋ค๋ฉด, ๋ชจ๋ธ์ KL ํญ์ ์ค์ด๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก $q(z\mid x)\approx p(z)$๋ฅผ ๋ง๋ค์ด ๋ฒ๋ฆฐ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ธ์ฝ๋๋ ์ ๋ ฅ์ ๋ฌด๊ดํ Latent Variable์ ์ถ๋ ฅํ๊ฒ ๋๊ณ , $z$๋ $x$์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ง ์๋ ๋ฌด์๋ฏธํ ๋ณ์๊ฐ ๋๋ค.
์ด๋ฌํ ํ์์ Posterior Collapse๋ผ ๋ถ๋ฅธ๋ค.๋ฐ๋ฉด, VQ-VAE์์๋ $q(z\mid x)$๊ฐ ๊ฐ์ฐ์์์ด ์๋๋ผ One-hot ๋ถํฌ์ด๋ค.
\[q(z=k\mid x)=\begin{cases}1&k=\arg\min_j\lVert z_e(x)-e_j\rVert_2\\0&\text{otherwise}\end{cases}\]๋ํ ์ฌ์ ๋ถํฌ $p(z)$๋ฅผ $K$๊ฐ์ ์ฝ๋์ ๋ํ ๊ท ๋ฑ ๋ถํฌ๋ก ๊ฐ์ ํ๋ค.
\[\text{KL}(q(z\mid x)โ\parallelโp(z))=1โ \log\frac{1}{1/K}=\log K\]
์ด๋ KL์ ์ง์ ๊ณ์ฐํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์์๊ฐ ๋๋ค.์ฆ, ์ธ์ฝ๋ ํ๋ผ๋ฏธํฐ์ ๋ํ KL ํญ์ ๋ฏธ๋ถ๊ฐ์ด 0์ด๋ฏ๋ก, KL ํญ์ด ์ฌํ ๋ถํฌ๋ฅผ ์ฌ์ ๋ถํฌ ์ชฝ์ผ๋ก ๋์ด๋น๊ธฐ๋ ๊ทธ๋๋์ธํธ๋ฅผ ๋ง๋ค์ง ์๋๋ค.
์ด๋ฌํ ํน์ฑ์ผ๋ก ์ธํด VQ-VAE์์๋ Posterior Collapse ํ์์ด ๋ฐ์ํ์ง ์๋๋ค.
๋ชจ๋ธ ๊ตฌ์กฐ
์ด๋ฌํ ์ด์ฐํ๋ฅผ ์ํด VQ-VAE๋ ์ฝ๋๋ถ(Codebook)์ด๋ผ๋ ํ์ต ๊ฐ๋ฅํ ๋ฒกํฐ๋ค์ ์งํฉ ${e_1, e_2, โฆ, e_K}$๋ฅผ ์ฌ์ฉํ๋ค.
์ฝ๋๋ถ์ ์ ์ฌ ๊ณต๊ฐ์ ์ด์ฐํํ๋ ์ฌ์ ์ญํ ์ ํ๋ฉฐ, ์ธ์ฝ๋์ ์ถ๋ ฅ์ ํญ์ ์ด ์ฝ๋๋ถ ์์ ๋ฒกํฐ ์ค ํ๋๋ก ๋งคํ๋๋ค.
์ ์ฒด ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ ๋ ฅ ์ด๋ฏธ์ง $x$๊ฐ ์ธ์ฝ๋๋ฅผ ํต๊ณผํ์ฌ ์ฐ์์ ์ธ ์ ์ฌ ๋ฒกํฐ $z_e(x)$๋ก ๋ณํ๋๋ค.
$z_e(x)$๋ ์ฝ๋๋ถ์ ๋ฒกํฐ๋ค ์ค L2 ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฒกํฐ $e_k$๋ก ๋์ฒด๋๋ค. (Quantization)
\[z_q(x) = e_k,\quad\text{where } k = \text{argmin}_j \lVert z_e(x) - e_j \rVert_2 \tag{1}\]- ๋์ฝ๋๋ ์์ํ๋ ๋ฒกํฐ $z_q(x)$๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์๋ณธ ์ด๋ฏธ์ง $x$๋ฅผ ์ฌ๊ตฌ์ฑํ๋ค.
STE (Straight-Through Estimator)
์ด๋ 2๋ฒ์ ์์ํ ๋จ๊ณ์์ $\arg\min$ ์ฐ์ฐ์ ๋ฏธ๋ถ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก, ์ญ์ ํ ๊ณผ์ ์์ ๋์ฝ๋๋ก๋ถํฐ ์ธ์ฝ๋๋ก ๊ธฐ์ธ๊ธฐ๊ฐ ์ ๋ฌ๋์ง ๋ชปํ๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด VQ-VAE๋ STE ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
STE๋ ๋์ฝ๋ ์
๋ ฅ $z_q(x)$์์ ๊ณ์ฐ๋ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ์ฌ ์ธ์ฝ๋ ์ถ๋ ฅ $z_e(x)$๋ก ์ง์ ์ ๋ฌํ๋ค.
์ฆ, ์ญ์ ํ ์์ ์์ํ ์ฐ์ฐ์ด ๋ง์น ํญ๋ฑ ํจ์์ธ ๊ฒ์ฒ๋ผ ์ทจ๊ธ๋๋ค.
์ด๋ฅผ ํตํด ์ธ์ฝ๋๋ ๊ทธ๋๋์ธํธ๋ฅผ ์ ์์ ์ผ๋ก ๋ฐ์ ํ์ต๋ ์ ์๋ค.
Training Objective
VQ-VAE์ ์์ค ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด 3๊ฐ์ง ํญ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
\[L = -\log p(x\mid z_q(x)) + \lVert \text{sg}[z_e(x)] - e \rVert_2^2 + \beta \lVert z_e(x) - \text{sg}[e] \rVert_2^2 \tag{2}\]์ ์์์์ $\text{sg}$๋ Stop-Gradient ์ฐ์ฐ์๋ก, ์์ ํ์์๋ ์
๋ ฅ์ ๊ทธ๋๋ก ํต๊ณผ์ํค์ง๋ง ์ญ์ ํ ์ ๊ทธ๋๋์ธํธ ํ๋ฆ์ ์ฐจ๋จํ๋ ์ญํ ์ ํ๋ค.
์ด๋ฅผ ํตํด ํ๋์ ์์ค ํจ์ ์์์ ์ธ์ฝ๋์ ์ฝ๋๋ถ์ ๋ถ๋ฆฌํ์ฌ ์
๋ฐ์ดํธํ ์ ์๋ค.
- $-\log p(x\mid z_q(x))$ (Reconstruction Loss): ์๋ณธ ์ด๋ฏธ์ง์ ๋์ฝ๋๊ฐ ๋ณต์ํ ์ด๋ฏธ์ง ๊ฐ์ ์ฐจ์ด๋ก, ์ผ๋ฐ์ ์ธ ๋ณต์ ์ค์ฐจ์ ํด๋นํ๋ค.
- $\lVert \text{sg}[z_e(x)] - e \rVert_2^2$ (Codebook Loss): ์ธ์ฝ๋ ์ถ๋ ฅ์ ๊ณ ์ ์ํจ ์ฑ, ์ฝ๋๋ถ ๋ฒกํฐ $e$๊ฐ ์ธ์ฝ๋ ์ถ๋ ฅ์ ๊ฐ๊น์์ง๋๋ก ์ ๋ฐ์ดํธํ๋ค. ์ฝ๋๋ถ์ด ์ค์ ๋ฐ์ดํฐ ๋ถํฌ์ ์ ์ํ๋๋ก ๋ง๋๋ ํญ์ด๋ค.
- $\beta \lVert z_e(x) - \text{sg}[e] \rVert_2^2$ (Commitment Loss): ์ฝ๋๋ถ์ ๊ณ ์ ์ํค๊ณ , ์ธ์ฝ๋ ์ถ๋ ฅ์ด ์ ํ๋ ์ฝ๋๋ถ ๋ฒกํฐ์์ ๋๋ฌด ๋ฉ์ด์ง์ง ์๋๋ก ๊ฐ์ ํ๋ค. ์ธ์ฝ๋์ ์ถ๋ ฅ์ด ์ฌ๋ฌ ์ฝ๋๋ถ ๋ฒกํฐ๋ค ์ฌ์ด์์ ์ง๋ํ์ง ์๊ณ ํน์ ๋ฒกํฐ์ Commitํ๋๋ก ์ ๋ํ๋ ์ญํ ์ ํ๋ค.
๋์ฝ๋์ ์ถ๋ ฅ ๋ถํฌ๋ฅผ ๊ฐ์ฐ์์ $\mathcal{N}(\hat{x}, \sigma^2 I)$์ผ๋ก ๊ฐ์ ํ๋ฉด, Reconstruction Loss๋ ๋ค์๊ณผ ๊ฐ์ด L2 Loss๋ก ์นํ๋ ์ ์๋ค.
\[โ\log p(x\mid z_qโ(x))=\frac{1}{2\sigma^2}\lVert xโ\hat{x}\rVert_2^2โ+\text{const} \tag{3}\]VQ-GAN
VQ-VAE๋ ์ด์ฐ์ ์ธ Latent Representation์ ํ์ตํ๋ ํ์ ์ ๊ณตํ์ง๋ง, ๋ณต์๋ ์ด๋ฏธ์ง๊ฐ ํ๋ฆฟํด์ง๋ค๋ ๋ฌธ์ ์ ์ด ์๋ค.
Reconstruction Loss๋ก ์ฌ์ฉ๋๋ ํฝ์
๋จ์์ L2 ์ค์ฐจ๊ฐ ๋์ฝ๋๊ฐ ๊ฐ๋ฅํ ์ถ๋ ฅ๋ค์ ํ๊ท ์ ๊ฐ๊น์ด ๊ฐ์ ๋ด๋๋ก ์ ๋ํ๊ธฐ ๋๋ฌธ์ ๊ณ ์ฃผํ ๋ํ
์ผ์ด ์์ค๋๋ ๊ฒฝํฅ์ด ์๊ณ , ์์ถ๋ฅ (๋ค์ด์ํ๋ง ๋น์จ)์ ํค์ธ์๋ก ์ด ๋ฌธ์ ๋ ๋ ์ฌํด์ง๋ค.
VQ-GAN์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด VQ-VAE์ Reconstruction Loss๋ฅผ Perceptual Loss + Adversarial Loss์ ์กฐํฉ์ผ๋ก ๋์ฒดํ์๊ณ , ์ด๋ฅผ ํตํด ๊ฐํ ์์ถ๋ฅ ์์๋ ์๊ฐ์ ์ผ๋ก ํ๋ถํ ๋ณต์์ด ๊ฐ๋ฅํด์ก๋ค.
๋ชจ๋ธ ๊ตฌ์กฐ
VQ-GAN์ ์ธ์ฝ๋-์ฝ๋๋ถ-๋์ฝ๋ ๊ตฌ์กฐ๋ VQ-VAE์ ๋์ผํ๋ฉฐ, $\arg\min$ ์ฐ์ฐ์ ๋ฏธ๋ถ ๋ถ๊ฐ๋ฅ ๋ฌธ์ ์ญ์ VQ-VAE์ ๋ง์ฐฌ๊ฐ์ง๋ก STE๋ก ์ฒ๋ฆฌ๋๋ค.
\[\hat{x}= G(z_\vq) = G (\vq(E(x))) \tag{4}\]์ ์์์์ $E$๋ ์ธ์ฝ๋, $G$๋ ๋์ฝ๋, $\vq$๋ ์์ํ ์ฐ์ฐ์ ์๋ฏธํ๋ค.
VQ-VAE์ ๋ค๋ฅธ์ ์ ๋์ฝ๋์ ์ถ๋ ฅ $\hat{x}$๊ฐ ๋จ์ํ ํฝ์ ์ค์ฐจ๋ก ํ๊ฐ๋์ง ์๊ณ , Perceptual Network์ Patch-based Discriminator๋ฅผ ํจ๊ป ๊ฑฐ์น๋ฉฐ ํ๊ฐ๋๋ค.
Training Objective
VQ-GAN์ ์ ์ฒด ํ์ต ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
\[\mathcal{Q}^* = \arg\min_{E, G, \mathcal{Z}} \max_{D} \mathbb{E}_{x \sim p(x)} \Big[ \mathcal{L}_{\text{VQ}}(E, G, \mathcal{Z}) + \lambda\, \mathcal{L}_{\text{GAN}}(\{E, G, \mathcal{Z}\}, D) \Big] \tag{5}\]$E, G, \mathcal{Z}$๋ ์์ค์ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก, Discriminator $D$๋ ์ต๋ํํ๋ ๋ฐฉํฅ์ผ๋ก ์ ๋์ ์ผ๋ก ํจ๊ป ํ์ต๋๋ค.
VQ Loss
$\mathcal{L}_{\text{VQ}}$๋ VQ-VAE๋ก๋ถํฐ ๊ทธ๋๋ก ๊ฐ์ ธ์จ ํญ์ด๋ค.
\[\mathcal{L}_{\text{VQ}}(E, G, \mathcal{Z}) = \lVert x - \hat{x} \rVert^2 + \lVert \text{sg}[E(x)] - z_{\vq} \rVert_2^2 + \lVert \text{sg}[z_{\vq}] - E(x) \rVert_2^2 \tag{6}\]์ฒซ ํญ $\mathcal{L}_{\text{rec}}$๋ VQ-VAE์์๋ ํฝ์ L2 Loss $\lVert x - \hat{x} \rVert^2$์์ง๋ง, VQ-GAN์์๋ ์ด๋ฅผ Perceptual Loss๋ก ๋์ฒดํ๋ค. (๋ ผ๋ฌธ์์ ๊ตฌ์ฒด์ ์ธ ์์ ํํ๋ ๋ช ์ํ์ง ์์)
Adversarial Loss
Adversarial Loss๋ ํ์ค GAN์ ํํ๋ฅผ ๋ฐ๋ฅธ๋ค.
\[\mathcal{L}_{\text{GAN}}(\{E, G, \mathcal{Z}\}, D) = \left[ \log D(x) + \log(1 - D(\hat{x})) \right] \tag{7}\]$D$๋ ์ค์ ์ด๋ฏธ์ง $x$์๋ ๋์ ์ ์๋ฅผ, ์ฌ๊ตฌ์ฑ๋ $\hat{x}$์๋ ๋ฎ์ ์ ์๋ฅผ ๋ถ์ฌํ๋๋ก ํ์ต๋๊ณ , $E, G, \mathcal{Z}$๋ ๊ทธ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ํ์ต๋๋ค.
Adaptive Weighting
Adversarial Loss๊ฐ ํ์ต ์ด๊ธฐ์ ์ง๋์น๊ฒ ํฌ๋ฉด ๋ชจ๋ธ์ด ๋ฐ์ฐํ๊ณ , ๋๋ฌด ์์ผ๋ฉด ๋ค์ ํฝ์ ํ๊ท ์ ๊ฐ๊น์ด ํ๋ฆฟํ ์ถ๋ ฅ์ผ๋ก ํ๊ทํ๋ค.
VQ-GAN์ Reconstruction Loss์ Adversarial Loss์ ๊ท ํ์ ๊ณ ์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ก ๋์ง ์๊ณ , ๊ฐ์ค์น $\lambda$๋ฅผ ๋์ ์ผ๋ก ๊ฒฐ์ ํ๋ค.
\[\lambda = \frac{\nabla_{G_L}[L_{\text{rec}}]}{\nabla_{G_L}[L_{\text{adv}}] + \delta} \tag{8}\]
