(2014)Conditional Generative Adversarial Nets

Gyuha Park·2021년 8월 13일
0

Paper Review

목록 보기
11/34
post-thumbnail
post-custom-banner

0. Abstract

Generative Adversarial Nets(GAN)은 기존에 생성 모델을 훈련하는 방법 중 하나로 소개되었다. 본 논문에서 저자는 Generator와 Discriminator 모두에 조건부 데이터 y를 제공하여 구성할 수 있는 CGAN을 소개한다.

이 모델에서는 클래스 label에 따라 MNIST 숫자를 지목해 생성 할 수 있다. 또한 이를 사용하여 multi-modal 모델을 학습하는 방법을 설명하고, 이 방식이 어떻게 학습 레이블의 일부가 아닌, 설명 태그를 생성할 수 있는지 보여주는 image tagging 예비 예제를 제시한다.

1. Introduction

최근 생성 모델을 훈련하기 위한 framework로 GAN이 도입되고 있다. GAN은 Markov chain이 전혀 필요하지 않고, back propagation만 사용하여 기울기를 얻고, 학습 중에 추론이 필요하지 않으며 그리고 다양한 요소와 상호 작용을 모델에 쉽게 통합 할 수 있다는 장점이 있다.

기존 GAN에서는 생성되는 데이터에 대한 control이 불가능하다. 예를 들어 MNIST를 보면, 내가 '1'을 생성하고 싶다고 해서 '1'만을 목표로 생성할 수 없다. 만들고자 하는 데이터셋을 지시할 수 없다는 뜻이다. 대신 CGAN은 생성 모델에 대한 추가 정보를 조건화하여 데이터 생성 프로세스를 조건화 할 수 있다. 이를 conditioning이라 하며, class label 혹은 다른 양식의 data를 기반으로 한다.

1) Multi-modal Learning for Image Labeling

성공적인 supervised neural network에도 불구하고, 큰 두 가지의 문제점이 있었다.

  • 극적으로 큰 수의 예측된 output을 수용하기 위해 모델을 학습 시키는 것은 어렵다.
  • 현재 까지 많은 작업은 input-output의 일대일 mapping 학습에 초점을 맞추고 있다는 것이다. 그러나 많은 문제는 일대다 mapping으로 이어진다. 예를 들어 이미지에는 여러 태그가 존재할 수 있으며, 인간은 그에 대해 다양한 단어를 사용할 수 있다.

첫 번째 문제를 해결하기 위한 방법은 다른 양식의 추가 정보를 활용하는 것이다. 두 번째 문제를 해결하는 방법은 조건부 확률적 생성 모델을 사용하는 것이다. 입력 값은 조건부 변수로 하며 일대다 mapping은 조건부 예측 분포로 구체화한다.

3. Conditional Adversarial Nets

1) Generate Adversarial Nets

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\min\limits_{G}\max\limits_{D}V(D,G)=\mathop{\mathbb{E}}_{x\sim p_{data}(x)}[\log D(x)]+\mathop{\mathbb{E}}_{z\sim p_z(z)}[\log (1-D(G(z)))]

GAN은 생성되는 데이터를 지목할 수 없다는 단점이 있다. MNIST를 예로 들어보면 0 ~ 9의 숫자를 noise를 통해 생성하지만 정확히 이번 output으로 어떠한 수를 생성할 지 지정할 수 없다. 그래서 CGAN이 등장하였다.

2) Conditional Adversarial Nets

CGAN에서는 기존 GAN과 똑같지만, 차이가 있다면 y라는 새로운 정보를 입력한다. 위에서 예시로 든 MNIST라고 한다면, 만약 숫자 4를 생성하고 싶을 땐 [0 0 0 0 1 0 0 0 0 0]를 y로 함께 넣어 주는 것이다.

이를 condition이라 하며 위 그림에서는 y가 condition이다.

minGmaxDV(D,G)=Expdata(x)[logD(xy)]+Ezpz(z)[log(1D(G(zy)))]\min\limits_{G}\max\limits_{D}V(D,G)=\mathop{\mathbb{E}}_{x\sim p_{data}(x)}[\log D(x|y)]+\mathop{\mathbb{E}}_{z\sim p_z(z)}[\log (1-D(G(z|y)))]

기존의 GAN의 objective function에서 Discriminator와 Generator에 조건 y가 추가되었다.

4. Experimental Results

y (condition)에 들어갈 수 있는 것은 Unimodal, multimodal 두 가지가 있다.

1) Unimodal

Discriminator와 Generator 모두에게 conditioning을 추가한다. MNIST에서는 생성하고 싶은 수에 대한 one-hot을 y로 입력을 넣어준다.

2) Multimodal

Word vector와 같은 다른 양식의 데이터를 넣어준다. 이는 후에 pix2pix, cyclegan과 같은 형태로 발전하였다.

5. Futere work

이 결과는 CGAN의 잠재력을 보여주고 앞으로의 무수한 가능성을 보여준다. 지금은 각 태그를 개별적으로 사용하지만, 후에는 동시에 여러 태그를 사용하여 더 나은 결과를 얻을 수 있으리라 본다.

post-custom-banner

0개의 댓글