Autoencoding beyond pixels using a learned similarity metric 논문은 VAE-GAN 모델로 더 유명합니다. VAE와 GAN을 결합한 첫 번째 Architecture이고, VAE의 Pixel level reconstruction error를 Feature level error로 개선한 모델입니다. AAE는 KL divergence loss를 개선한 것과 차이가 있습니다.
VAE-GAN 모델은 VAE와 GAN을 결합하여 VAE의 reconstruction을 element-wise error 대신 feature-wise error로 대체하여 이미지가 약간 translation 되어도 invariance 되도록 합니다. CelebA 데이터에 VAE/GAN을 적용해본 결과 VAE 보다 시각적 품질이 향상됨을 확인하였다고 합니다.
VAE-GAN을 이해하기 위해서는 VAE와 GAN을 이해해야 합니다. 먼저 VAE는 data sample로부터 latent representation z로 encode 하는 네트워크와 latent representation을 data space로 decode 하는 네트워크로 구성이 됩니다. VAE는 encoder의 출력인 z가 표준정규분포와 같은 prior를 어느 정도 따라가도록 정규화합니다. 그리고 입력과 출력 간 reconstruction error로 Loss를 구성합니다.
GAN은 latent representation을 data space로 mapping하는 generator 네트워크와 실제와 생성된 데이터를 구별하는 discriminator 네트워크로 구성됩니다. GAN의 Loss는 실제를 실제로 판단하는 Log likelihood와, GAN으로부터 생성된 가짜를 가짜로 판단하는 Log likelihood로 구성됩니다. Discriminator는 Loss를 높이는 방향으로, Generator는 데이터를 실제와 같이 생성하여 Loss를 낮추는 방향으로 업데이트됩니다.
GAN의 매력적인 성질은 discriminator 네트워크가 가짜 이미지와 구별하기 위해 실제 이미지의 유사도를 함축적으로 배운다는 것입니다. VAE-GAN에서는 discriminator가 배운 함축적인 이미지의 특징을 VAE의 reconstruction error에서 활용하여 reconstruction error를 좀 더 feature-wise error에 가깝게 만들어줍니다.
VAE-GAN의 구조는 아래와 같습니다. VAE의 decoder = GAN의 generator로 함께 활용됩니다. 그리고 discriminator를 활용하여 High level similarity를 측정합니다.
VAE-GAN의 Loss는 아래와 같습니다. VAE Loss에서 Pixel reconstruction error가 변한 것이 큰 변화입니다.
Pixel level reconstruction error 대신 실제 데이터를 넣었을 때 discriminator의 hidden representation 과 가짜 x(Generator로부터 생성된)를 넣었을 때 discriminator의 hidden representation과의 negative log likelihood를 활용합니다. 이는 앞서 말한 것과 같이 pixel level의 reconstruction error 대신 데이터의 feature level의 error를 활용하여 모델을 학습하고, 데이터가 translation 되어도 invariance 되는 효과가 있습니다.
prior loss는 VAE에서의 KL Divergence를 그대로 활용하게 되고, GAN의 경우 q(z|x)와 p(z) 각각 샘플링되어 decoder를 지나 생성된 가짜 이미지를 모두 사용하였을 때 더 좋은 성능을 보여 그렇게 하였다고 합니다.
위 Loss에 대한 요약은 이미지는 아래와 같습니다.
VAE-GAN 모델의 실험 결과입니다. VAE와 GAN과 비교하여 복잡한 이미지를 생성할 수 있었다고 합니다.
VAE-GAN이 생성한 이미지가 얼마나 고품질인지는 판단하기 어렵지만 Pixel level의 Reconstruction error를 Discriminator를 활용하여 Feature level error로 변환한 아이디어는 설득력 있었습니다. AAE는 KL Divergence를 개선하였지만, Reconstruction error는 VAE의 것과 같기 때문에 AAE를 VAE-GAN의 아이디어를 차용할 수 있겠다는 생각을 하였습니다.
'Machine Learning, Deep Learning' 카테고리의 다른 글
Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting (0) | 2021.06.02 |
---|---|
Learning Spatiotemporal Features with 3D Convolutional Networks: C3D (0) | 2021.05.12 |
Data augmentation: color jitter (0) | 2021.04.18 |
Variational autoencoder (1) | 2021.04.16 |
Going deeper with convolutions (GoogLeNet) (0) | 2021.04.15 |