Conditional VAE (CVAE), 2015 논문리뷰

changdaeoh·2021년 7월 4일
0

Paper Review

목록 보기
9/25
post-thumbnail

Learning Structured Output Representation using Deep Conditional Generative Models, NIPS 2015

Conditional GAN이 심플하게 이미지의 label을 조건으로써 입력에 더해주어 해당 label의 이미지를 생성하는 연구를 진행한 논문이라면, Conditional VAE는 이미지의 일부를 주고 남은 부분을 예측하여 생성하는 것에 주된 목적을 두며, 본 논문은 이미지 생성보다는 이미지 픽셀값 예측이라는 측면에서 접근한 연구이다.

논문에서 직접 다뤄지진 않았지만 제안된 CVAE모델은 CGAN처럼 똑같이 class label등을 input하여 supervised 방식으로 학습시킨 뒤 해당 label의 image를 생성하는 등의 일이 가능하며, 많은 튜토리얼들이 CVAE를 그러한 방식으로 설명한다.


Contents

  1. Abstract
  2. Introduction
  3. Preliminary: Variational Auto-encoder
  4. Deep Conditional Generative Models for Structured Output Prediction
  5. Experiments
  6. Conculsion
  • 본문의 Related Works는 생략




0. Abstact

지도학습방식의 딥러닝 모델들은 매우 복잡한 many-to-one 함수에 잘 근사되어 다양한 recognition 문제들에 성공적으로 적용되어왔다. 그런데 여전히 복잡한 구조화된 출력 표현을 모델링 하는것은 challenging함.

본 연구에서는 구조화된 출력 예측을 위해 가우시안 잠재변수를 사용하는 심층 조건부 생성모델을 제안한다. 이 모델은 VAE와 마찬가지로 SGVB 알고리즘에 의해 효율적으로 훈련되며, robust한 알고리즘을 구축하기 위한 두 가지 신선한 전략을 제시한다. (1. 노이즈주입, 2. 다중스케일 예측 목적함수사용)

구조화된 출력에 대한 예측력을 실험하였고, 픽셀수준 object segmentation이나 semantic labeling 성능에 대해서도 실험해보았음.

구조화된 출력(structured output) 예측이란?
키, 몸무게, 나이 등 변수 하나하나하가 독립적인 의미를 갖는 정형데이터와는 달리 이미지, 그래프, 시계열 데이터처럼 구조를 가지는 데이터에 대해 예측하는 task



1. Introduction

구조화된 출력 예측 task에서는 one-to-many 매핑의 학습을 위해 확률적인 추론이 가능하며 다양한(diverse) 예측을 만드는 모델을 학습하는 것이 중요하다.

저자들은 이 작업을 위한 deep conditional generative models(CGMs)를 제안한다. 즉, 고차원 출력공간의 분포입력된 관측데이터로 conditioning한 생성모델로써 모델링한다.

조건부 생성모델로써 VAE를 사용하였으며, 이것을 저자들은 CVAE라 칭한다. CVAE는 SGVB(stochastic gradient variational bayes)를 이용해 조건부 log-likelihood를 최대화하도록 학습되며, 입력되는 관측데이터가 가정된 가우시안 latent variable의 prior를 modulate한다. 또한 robust한 모델을 만들기 위해 noise-injection 그리고 multi-scale prediction training 등의 방법을 제시한다.

Contribution은 다음과 같음

  • SGVB 프레임워크를 사용해 효율적으로 학습되는 CVAE와 그 변종 모델들을 소개, 추가로 그 모델들의 robustness 확보를 위한 참신한 전략들 소개
  • 가우시안 확률적 뉴런들을 포함한 위의 제안 알고리즘들이 구조화된 출력변수의 멀티모달 분포를 모델링하는데 얼마나 효과적인지 보임
  • 높은 semantic object segmentation 성능 보임



2. Preliminary: Variational Auto-encoder

VAE 리마인드

  • latent variable를 사용하는 directed graphical model
  • generative process는 다음과 같음
    1. latent variable를 prior pθ(z)p_{\theta}(z)로부터 샘플링
    2. 데이터 x를 pθ(xz)p_{\theta}(x|z)로부터 샘플링하여 생성
  • 목적함수로써 데이터 x에 대한 log likelihood의 Variational Lower Bound를 사용



3. Deep Conditional Generative Models for Structured Output Prediction

CGMs에서 사용되는 변수는 3가지 이다.

  • input 변수 x
  • output 변수 y
  • latent 변수 z

output 예측과정에 관여하는 분포는 3가지이다.

  • pθ(zx)p_{\theta}(z|x) : x로 conditioning된 z의 prior 분포
  • pθ(yx,z)p_{\theta}(y|x,z) : 모델이 예측한 output 변수 y의 분포
  • qϕ(zx,y)q_{\phi}(z|x,y) : z의 posterior 분포(데이터 공간에서 잠재변수 공간으로의 매핑)
    Baseline CNN 위에 위 3가지 분포들을 모델링하기 위한 네트워크를 쌓은 형태로 구현되며, 표준적인 output prediction과정은 (b)인데, 본 논문의 실험 결과 (d)에서 처럼 z의 prior에 y에 대한 base CNN의 prediction을 추가적으로 전달해주는 recurrent connection을 만들면, 유의미한 성능향상을 가져다준다고 한다.

CVAE는 output변수 y의 조건부 로그가능도의 variational lower bound를 목적함수로써 최적화하는데, 이것의 수식은 다음과 같다.일반 VAE의 objective에 변수 하나가 추가로 conditioning된 형태일 뿐이다.


3.1 Output inference and estimation of the conditional likelihood

모델이 학습되고 나면, CGM의 생성 프로세스(위 Figure1의 (b)와 (d) 그림)를 통해 y의 예측이 가능해진다. 이 예측은 어떻게 평가할까? 두 가지 방법이 있다.

  1. input x와 z에 대한 샘플링 없이 수리적으로 기댓값을 구해 그것을 output distribution에 주입 후 그 결과 추정된 분포의 argmax가 되는 y를 모델의 output 예측값으로써 채택. true y값과 비교하여 metric값 산출(기댓값을 수리적으로 구하는 대신 MC method를 이용해 근사적으로 구할 수도 있음)
  2. 두 번째 방법은 학습된 모델의 pθ(yx,z)p_{\theta}(y|x,z)로부터 테스트 셋에 대한 y의 조건부 로그가능도를 구하여 모델간에 비교하는 것이다. 위와 같이 MC method를 활용하는 편이 직관적이지만, 아래와 같은 importance sampling을 이용하는 것이 더 practical하다고 한다.

3.2 Learning to predict structured output

training된 CVAE가 test 단계에서 optimal한 예측을 하지 못할수도 있는데, 이는 CVAE가 train시에는 qϕ(zx,y)q_{\phi}(z|x,y)를 사용하지만, test시에는 pθ(zx)p_{\theta}(z|x)를 사용하여 z를 샘플링하고 예측을 수행하기 때문이다.

이를 해결하기 위해 목적함수에서 저 두 분포가 비슷하도록 만드는 KL term에 대한 가중치를 높이는 방식을 활용할 수 있지만 본 연구에서는 효과적이지 않았다.

그 대신 train과 test과정에 동일한 prediction pipeline을 활용하는 네트워크를 제안한다. 이는 recognition network와 prior network를 동일하게 둠으로써 달성된다. 즉, qϕ(zx,y)q_{\phi}(z|x,y) = pθ(zx)p_{\theta}(z|x). 이 경우 목적함수는 다음과 같게된다.그냥 CVAE의 목적함수에서 KL term이 0이 되어 빠진 형태이다. 이 모델을 본 연구에서 GSNN(Gaussian stochastic neural network)라고 명한다. (Note: GSNN에서 noise 분포의 공분산행렬이 영행렬이라고 가정하면 이 모델은 deterministic해지고, GDNN이라고 부른다.)

CVAE와 GSNN의 목적함수를 결합한 다음과 같은 hybrid 모델도 생각할 수 있다. (0α10\leq\alpha\leq1)


3.3 CVAE for image segmentation and labeling

structured output prediction task중 하나로 semantic segmentation이 있다. 본 섹션에서는 시멘틱분할을 위한 robust한 예측모델을 얻는 방법을 알아본다.

3.3.1 Training with multi-scale prdiction objective

첫 번째 방법은 input된 이미지를 다양한 사이즈로 reshape하여 그것들 각각에 대해 segmentation을 진행한 뒤 loss들을 구하여 합하는 방식이다.
이러한 방식으로 픽셀수준 시멘틱 레이블링에 global-to-lacal, coarse-to-fine_grained 한 예측을 수행할 수 있었다고 한다.


3.3.2 Training with input omission noise

두 번째 방법은 input되는 이미지에서 사각형모양으로 일부분을 랜덤하게 masking 하여 네트워크에 주입하는 방법이다. 이것은 훈련과정을 더욱 challenging하게 만들지만, 동시에 모델의 일반화 성능을 높인다.



4. Experiments

  • 구조화된 출력 예측 task를 위해 MNIST 데이터셋을 사용.
  • Caltech-UCSD Birds(CUB), Labeled Faces in the Wild(LFW) 데이터셋을 이용하여 semantic segmentation, labeling 성능 평가.
  • CNN backbone, Adam optimizer
  • 모델 후보군 : CVAE, GSNN, GDNN, hybrid, baseline CNN

4.1 MNIST

손글씨 이미지를 사분면으로 나눈 뒤 분할된 분면 1, 2, 3개를 input으로 사용하여 나머지 3, 2, 1개의 분면을 prediction하는 task를 수행하였다. input되는 분면의 개수가 작을수록(output할 분면의 개수가 많을수록) 출력이 diverse 해지는 것을 확인. 왼쪽 그림은 사분면 1개를 input하여 3개의 output을 예측하는 경우이고, 오른쪽 그림은 사분면 2개를 input하여 2개의 output을 예측하는 경우이다.

  • deterministic한 baseline 모델은 real한 이미지를 잘 만들어내지 못하며(출력이 흐릿함), 결정론적 모델이므로 오직 하나의 출력만 만들어낼 수 있다.
  • CVAE의 예측이미지는 더 realistic하며 shape에 있어서 다양하다.

또한 아래의 표에서 확인할 수 있듯이 negative 조건부로그가능도가 CVAE에서 가장 낮은 것을 확인할 수 있다. (특히 input되는 사분면의 수가 적을수록 그 차이가 두드러짐)


4.2 Visual Object Segmentation and Labeling

조류 데이터셋(CUB)과 사람얼굴 데이터셋(LFW)을 이용하여 시멘틱분할 task를 수행하고 pixel accuracy와 IoU를 확인하였다. (두 metric이 어떻게 계산되는지 궁금하신 분은 [이 링크]를 참고하세요.)
표를 보면, 당연히 제안된 모델의 성능들이 기존의 방법들 및 baseline에 비해 확실히 좋은 것을 확인할 수 있다. 또한 3절에서 언급한 Multi Scale PredictionNoise Injection 테크닉을 사용하여 훈련시켰을 때가 그렇지 않았을 때보다 성능이 더 좋음을 확인할 수 있다.

또 저자들은 LFW 데이터셋의 경우 deterministic한 모델인 GDNN의 경우에도 GSNN이나 CVAE와 맞먹는 성능을 보였다고 하였는데, 이것에 대한 이유가 CUB 데이터셋과 비교했을때 LFW 데이터셋의 Output space는 variation의 정도가 더 낮기 때문에(새는 종에 따라 모양이 상당히 다를 수 있는데, 얼굴 모양들은 다 거기서 거기임.) 그럴 것이라고 주장하고있다.


4.3 Object Segmentation with Partial Observations

  • CUB, LFW 데이터셋에 대해 원본 이미지에 <25%, 50%, 70%>의 노이즈 마스크 추가. 마스킹 블록 사이즈는 <1, 4, 8>을 실험.
  • 마스킹되지 않은 부분을 input하고 마스킹된 부분을 예측하는 segmenation with noisy / partial observations task

  • CVAE의 생성이미지는 깔끔, GDNN은 그렇지못함.
  • 모든 노이즈비율/노이즈블록사이즈에서 CVAE가 GDNN보다 월등한 성능

결론 : 정량적, 정성적 측면 모두 확률적 추론과정이 포함된 CVAE가 그렇지 않은 동일구조의 GDNN보다 더 좋은 결과를 보였다.



5. Conculsion

구조화된 출력변수들의 멀티모달 분포를 모델링하는 것은 중요한 연구과제이다. 본 연구에서 이를 위한 conditional deep generative model을 제안하였으며, 제안된 모델은 확장성이 뛰어남과 동시에 추론과 학습에 있어서 효율적이었다. 저자들은 다중모드를 갖는 출력공간에서 확률적 추론을 진행하는 것의 중요성을 보였으며, 제안된 모델의 훌륭한 세그멘테이션 성능, 높은 조건부우도 추정치를 달성했고, 생성된 이미지를 시각화하였다.




개인 노트

  • VAE가 이미지 생성 뿐만 아니라 다른 다양한 task에도 사용될 수 있겠구나
  • 이미지 생성 뿐만 아니라 structured output prediction 측면에서도 확률적인 뉴런(stochastic neurons)의 사용이 이렇게 효율적일 수 있구나
  • computer vision task에서 Multi-scale predictionNoise injection이 확실히 모델의 robustness를 높여주는구나
profile
말보다는 행동

0개의 댓글