일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Computer Vision
- ICCV 2021
- Paper
- 리눅스
- 2022
- IROS
- 딥러닝
- pytorch
- 파이토치
- Neural Radiance Field
- ICCV
- 논문
- 융합연구
- paper review
- 논문 리뷰
- 경희대
- NeRF paper
- docker
- CVPR2023
- Semantic Segmentation
- GAN
- Python
- 논문리뷰
- panoptic segmentation
- NERF
- panoptic nerf
- CVPR
- linux
- Deep Learning
- Vae
- Today
- Total
윤제로의 제로베이스
Intro-VAE 본문
1. Introduction
VAE
VAE(Variational Autoencoder)의 장점은 익히 알고 있기로 좋은 Manifold representation을 만들어낸다는 점이다.
Manifold란 데이터가 있는 공간 정도로 이해하면 되는데, 대부분의 generating model은 데이터의 manifold를 찾고 그 manifold를 바탕으로 다양한 이미지를 생성하는 방식으로 작동한다. 예를 들어 강아지 사진들로 generating model을 학습시키면 강아지 사진들이 분포하는 manifold를 찾게 되는 것이다. 그렇다면 그 manifold상의 데이터를 무작위로 꺼낸다면 그 사진 또한 강아지 사진일 것이라는 이야기이다. 이 이야기가 성립하기 위해서는 manifold 가정이 필요하다. manifold 가정이란 아무리 고차원의 데이터라도 그들을 나타낼 수 있는 저차원의 manifold가 존재한다는 것이다. 그러한 manifold를 확률분포로 나타내어 찾는 것이 VAE이다.
하지만 VAE의 치명적인 단점은 굉장히 blurry한 이미지들을 output으로 내놓는다는 것이다.
GAN
GAN(Generating Adversarial Network)의 경우 VAE와 비교하여 비교적 선명한 이미지들을 만들어 낸다. 하지만 training stability와 sampling diversity 문제가 존재한다는 치명적인 단점 또한 존재한다.
위 단점을 보완하기 위해서 GAN에서는 multi-scale discriminator를 도입하여 high resolution에서 발생하는 문제를 해결하고자 했지만 이러한 방식은 model의 complexity를 높이기 때문에 좋은 해결책은 아니었다.
Hybrid VAE & GAN
이후로 나오게 된 방식이 바로 Hybrid VAE & GAN이다. blurry한 이미지를 만드는 VAE의 단점을 GAN을 통해 보완하여 더 선명하게 나올 수 있게 하면서도 GAN의 training stability문제를 좋은 manifold representation을 만드는 VAE의 장점으로 해결하고자 하였다.
하지만 이러한 방식은 더욱더 model의 architecture를 복잡하게 만들었고 GAN의 image quality에 못 미치는 결과를 낳았다.
위의 hybrid model들을 보면 비교적 architecture가 비슷하다는 걸 알 수 있다.
이러한 특징이 보는 이유는 (개인적으로 생각했을 때) hybrid model들이 모두 architecture에 초점을 맞추고 있어서라고 생각한다.
GAN으로써 generater와 discriminator는 있어야겠고, VAE로써는 encoder와 generator가 있어야하니 모든 architecture를 살리려 하니 model이 복잡해지기만 한 것이다.
저자는 여기서 architecture보다는 VAE에 초점을 맞춘다.
기존의 VAE 같은 경우에 무조건 높은 probability를 찾아내려 했다. 그래서 ELBO를 maximization하는 것으로 찾아내고자 했는데 저자는 여기서 의문을 제시한다.
과연 low-probability가 blurry한 것이라고 단언할 수 있을까?
그래서 이 논문에서는 새로운 training technique을 제시하며 VAE가 self-estimation하는 기법을 만든다.
IntroVAE
위 그림이 바로 IntroVAE의 architecture이다.
앞서 보았던 Hybrid model들과 비슷한대?라고 생각할 수 있다.
하지만 여기서 위 Hybrid model들과의 차이점은 VAE만을 사용한다는 점이다.
다시 위에 올라가서 보면 위 모델들은 3개의 network가 필요하다.
encoder, generator, discriminator
하지만 IntroVAE는 VAE인 Encoder와 Generator만 사용한 채 기법에 변형을 주어 작동한다.
한마디로 표현하면
The model acts like a standard VAE for real data and acts like a GAN when handling generated samples.
Method
VAE와 비슷하게 보이지만 이중에 다른 점은 바로 [m-E(G(z))]+ 일것이다.
바로 이 부분이 VAE와 GAN을 섞는 부분이다.
GAN에서 가장 큰 특징이 Generator와 Discriminator가 서로 minmax game을 한다는 점인데, 여기서도 똑같이 작용하게 된다.
Encoder의 Loss부터 보면 [m-E(G(z))]+가 가장 작아지려면 E(G(z))는 커져야 할 것이다. 그래야 0과 음수 중에 max를 찾아 0이 나오기 때문이다.
그런데 Generator의 Loss를 보면 E(G(z)) 즉 만들어진 이미지에 대한 KL Divergence term이 있다.
이를 줄이려면 Encdoer의 Loss는 커질 것이고 이렇게 minmax 게임이 일어나게 된다.
자세한 training 과정은 아래와 같다.
'Self Paper-Seminar > VAE' 카테고리의 다른 글
VDVAE: Very Deep VAEs Generalize Autoregressive Models and Can Outperform Them on Images (0) | 2022.11.16 |
---|---|
Soft-Intro VAE: Analyzing and Improving the Introspective Variational Autoencoder (0) | 2022.11.02 |
InfoVAE: Information Maximizing Variational Autoencoders (0) | 2022.10.19 |
VQ-VAE (Neural Discrete Representation Learning) (0) | 2022.10.12 |
Beta-VAE (1) | 2022.10.05 |