반응형
Variational Auto-Encoder(VAE)에 대한 논문.
0. Auto-Encoder란?
- 오토앤코더는 입력 데이터를 압축(Encoding)하고, 압축된 표현에서 원본 입력을 재구성(Decoding)하는 신경망 구조.
- 입력 데이터를 압축하고 복원하는 과정에서 입력의 특징을 학습하게 된다.
- 데이터 압축, 차원 감소, 이상 감지, 노이즈 제거 등에 활용.
1. 생성형 모델 관점에서 Auto-Encoder
- Auto-Encoder는 Encoder가 단순히 입력 데이터를 어떤 벡터(z)로 압축해서 표현.
- 이렇게 압축된 latent vector는 분포에 대한 제약이 없음. (z가 어떠한 분포를 따르지 않음)
- latent space에서 임의의 z를 샘플링해서 생성(Decoding)할 경우 원하는 데이터가 생성될지 확실하지 않다.
- (ex: z1과 z2가 비슷한 이미지여도, 그 중간 (z1+z2)/2가 전혀 이상한 이미지가 생성될 수 있음)
따라서 latent space의 z가 벡터가 아닌 특정한 분포를 따르도록 학습하면?
-> 생성(Decoding) 때 의도하는 데이터를 생성할 수 있지 않을까? 하는 내용이 본 논문의 큰 주제이다.
2. 분포 계산 문제
- p_ θ(x) : θ 파라미터를 통해 데이터 x가 나올 확률, 즉 모델이 x 같은 데이터를 "자연스럽게" 만들 수 있는 확률 분포.
- VAE의 목표는 p_θ(x)를 최대한으로 크게 만드는 θ를 학습하는 것.
문제점 1.
- 베이즈 정리에 의해 p_ θ(x)는 위와 같이 정의
- p(z)는 가우시안 분포와 같이 특정 분포로 가정한다고 해도, Decoder 역할인 p_θ(x | z)는 Nerual network로 구성되어 비선형적이고, z에 대해 적분 계산이 복잡하거나 불가능하다.
문제점 2.
- 그렇다면 Encoder 부분인 p_ θ (z | x)는 계산이 가능할까?
- 마찬가지로 분모에 p_ θ(x)가 있어 계산 불가
위와 같이 Encoding , Decoding 문제를 사후 분포 계산으로 풀고 싶지만 불가능하다.
3. 제안 방법
Recognition Model
- p_θ(z | x)는 계산이 불가능하기 때문에 q_ϕ(z | x)로 근사(approximation)하는 Recognition Model 제안.
- 계산하기 어려운 p(x), p(z | x) 대신, 정규 분포의 형태로 근사.
!!! 문제점 !!!
- Encoder를 학습하기 위해 파라미터 ϕ에 대해 미분해야 한다.
- 하지만 샘플링 연산(분포에서 z 선정)은 본질적으로 Random 이기 때문에, Gradient 계산을 위한 Chain rule 적용이 불가능.
Reparameterization Trick
- 이러한 샘플링 문제를 해결하기 위해, 샘플링을 결정론적인 함수 형태로 변형.
- 더 이상 z를 직접 샘플링하지 않고, 고정된 분포(ex:Gaussian noise)에서 샘플링된 값 ϵ를 사용.
- 이를 통해 z는 ϕ에 대해 연속적이고 미분 가능한 함수가 됨. (Backpropagation 가능)
4. 실험 및 결과
- latent variables z가 모여있는 latent space를 시각화
- z가 2개 차원을 가지도록 학습하고, 정규화 -> z 좌표들을 하나하나 Decoder에 통과시켜서 이미지를 생성
- 위 이미지를 보면 비슷한 z값은 비슷한 x를 생성하고 있다 -> 모델이 데이터의 구조를 잘 학습
- latent space의 연속성 확보 : z값이 조금만 바뀌면 생성도니 이미지도 부드럽게 바뀜.
반응형
'DeepLearning > GAN' 카테고리의 다른 글
[GAN] DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better (0) | 2024.03.26 |
---|---|
[GAN] DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks, 논문 리뷰 (0) | 2024.03.06 |