윤제로의 제로베이스

Conditional Variational AutoEncoder: CVAE 본문

Self Paper-Seminar/VAE

Conditional Variational AutoEncoder: CVAE

윤_제로 2022. 9. 28. 18:52

Introduction

Generative model의 경우 one-to-many mapping을 목표로 한다.

따라서 이를 수해하기 위해서 Deep Conditional Generative Model이 필요하다. 

즉, 고차원의 Ouput Space를 Input에 conditional 된 Generative Model이 필요하다는 것이다.

이것으로 쓰일 것이 바로 CVAE이다.

 

VAE

아래와 같은 수식으로 모델링 된 모델을 우린 VAE라고 칭한다.

 

Deep Conditional Generative Models for Structured output Predicted

여기서 쓰이는 변수는 총 3개이다.

Input x, Output y, 잠재변수 z.

x가 주어졌을 때 z의 확률변수를 표현한다면 p(z|x)와 같이 표현할 수 있다.

그리고 Output y는 p(y|x,z)의 확률분포로부터 생성되게 된다.

여기서 잠재변수의 prior는 Input 변수에 의해 조절되는 것처럼 보일 수 있지만, 이러한 제한은 아래의 수식을 통해 잠재변수를 Input 변수에 독립적으로 만들어 해결할 수 있다.

p(z|x) = p(z)

 

Deep Conditional Generative Model은 Log Likelihood를 최대화 하며 학습한다.

1) Recongintion Nework q(z|x,y)

2) Prior Network p(z|x)

3) Generation Network p(y|x,z)

 

Output Inference and Estimation of the Conditional Likelihood

모델 파라미터가 잘 학습되면 생성 과정에 따라 Input으로 부터 Output에 대한 예측을 수행하게 된다.

모델 평가를 위해서 z에 대한 Sampling 없이 Deterministic Inference를 수행하게 된다.

또는 사전 확률로부터 복수의 z를 추출한 뒤 사후 확률의 평균을 사용하여 예측할 수도 있다.

Model을 평가하는 또다른 방법은 test Data를 통해서 Conditional Likelihood를 비교하는 것이다.

사전 확률 네트워크로부터 z를 추출한 후 LIkelihood의 평균을 취하는 것이다. (Monte Carlo Sampling)

Monte Carlo Sampling

Sampling이 많이 필요하다는 단점이 있다. 이것이 어려울 경우 Importance Sampling을 통해 Conditional Likelihood 추정 가능

Learning to predict structured output

q(z|x,y) →recognition Network

p(z|x)→Prior Network에서 z 추출

recognition Network에서 y는 Input으로 주어지며 학습 목표는 y의 reconstruction이다.

 

2개의 파이프라인의 차이를 줄이려 한다.

이 특성을 활용하여 train과 test 과정에서 잠재변수의 Encoding의 차이를 줄이기 위한 방법이 있다.

이는 가중치를 크게 두는 방법인데 큰 효과는 없다.

 

대신에 train과 test에서 예측 파이프라인을 일치시키는 방향으로 네트워크를 학습시닠다.

즉, Prior Network와 Recognition Network를 동일하게 만드는 방식이다. (Gaussian Stochastic Neural Network, GSNN)

test 과정에서 Inference와 Conditional Likelihood 추정 또한 CVAE와 같다.

두 모델의 목적 함수를 결함하여 Hybrid 목적 함수를 얻을 수 있다.

CVAE for Image Segmentation and Labelling

robust하게 학습시키기 위해 

1) Multi-scale 예측 목적 함수

2) 구조화된 Input Noise

 

Training with multi-scale prediction objective

이미지가 커질수록 pixel-level 예측이 어려워 진다.

그래서 Multi-scale로 loss를 계산하여 output을 예측한다.

 

Training with Input Omission Noise

Input x를 Moise Process에 따라 Noise를 만들어 x*를 만들고 L(x*, y)로 Network를 최적화 시킨다.

Noise Process란 Rnadom BLock Omission Noise를 많이 만드는데, 사각형 마스크를 생성하여 픽셀값을 0으로 만들어 Block된 이미지로 만들어 버린다.

'Self Paper-Seminar > VAE' 카테고리의 다른 글

Intro-VAE  (0) 2022.10.25
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
Variational Autoencoders: VAE  (0) 2022.09.21