GAN에 기반한 논문이기에, GAN에 대한 이해가 먼저 선행되고 읽는 것이 권장되는 논문입니다. 단순한 1:1 mapping 모델에서 벗어나, 확률적으로, 그리고 이것을 조건부적으로 원하는 class label이나 정보를 담고 있는 output sample을 만들어낼 수 있는 cGAN에 대하여 알아보자.
널리 알려진 GAN 모델의 특징은 Unconditional(무조건적) 학습이 진행되는 생성 모델 중 하나였다. 허나, cGAN은 단순히 y라는 데이터를 넣어주는 것만으로도, GAN과 유사하면서도 conditional(조건적) GAN 모델을 학습시킬 수 있다. 본 cGAN이 비단 class label에 맞는 MNIST dataset 이미지 생성과 더불어, multi-modal 및 이미지 태깅에서의 적용도 알아볼 수 있다.
GAN은 intractable(처치 곤란한) 확률적 연산을 근사시키는 어려움으로 인해 제안된 모델이었다. AN(Adversarial network)은 Markov chain 없이 오직 back-propagation만으로 학습이 가능하며 별도의 추론 과정이 존재하지 않는다. 더불어, log-likelihood 추정을 통하여 실제같은 샘플들을 만들어낼 수 있다.
Unconditional GAN에서는 생성 데이터의 모드를 제어할 수단이 없었으나, 추가적인 정보를 통해 모델에 조건을 걸어주면서 데이터 생성 프로세스를 제어할 수 있게 된다. 이러한 Conditioning은 class label에 근거하거나, 다른 modality에서 온 데이터 등으로 설정할 수 있다.
최근 신경망의 발전에도 불구하고 첫째, 많은 Class label을 가지고 있는 모델의 경우 이를 스케일링하는 것에 어려움이 있을 수 있다. 둘째, 대부분의 모델들이 input과 output의 1:1 mapping에만 집중하는 경향이 있었다. 이를 다루기 위해 첫째, 다른 modality로부터 추가적은 정보를 다루는 것으로 일부 해결할 수 있다. 예를 들어 NLP에서 corpora를 활용하여 기하적 관계에서 연속적으로 유의한 것을 찾는 방식으로 단어를 vector representation으로 변형하는 것에 해당한다. 그리고 두번째 문제에 해당하는 것의 해결 방법으로는 1:1 mapping 대신 조건적 확률 생성 모델을(cGAN)을 활용하면서 해결 할 수 있다.
GAN은 두 'Adversarial(적대적)' 모델로 이루어져 있는데,
- 데이터 분포를 입력받아 realistic(but fake) data를 생성해내는 생성 모델 G
- 훈련 데이터가 진짜인지, G가 만들어낸 가짜 데이터인지를 판별하는 분류 모델 D
그리고 두 모델은 MLP와 같은 비선형 mapping 함수일 수 있다.
생성모델 이 이 분포 p_g를 학습하기 위하여, 생성 모델은 prior noise distribution p_z(z)에서 mapping function을 가져와야 한다. 그리고 D(x;theta_d), 분류 모델에서 생성 모델의 분포 p_g보다 훈련 데이터에서 나온 x에 대한 확률을 스칼라 값으로 표현한다.
G와 D는 동시에 학습되며, log(1-D(G(z))를 최소화하고, logD(X)를 극대화하는 방식으로 파라미터를 적용하며, 상기 V(G,D) 함수의 min-max를 통하여 궁극적으로 D(z) 확률 값을 이론적으로 0.5로 만들어 실제와 가짜를 구분할 수 없도록 만든다.
상기된 GAN의 G(생성 모델)와 D(분류 모델)에 추가 정보 y를 넣어 조건부 생성 모델로 연장될 수 있다. y는 Class label이나 다른 modality에서의 data처럼 여느 종류의 보조 정보이다. 이를 input layer에 추가로 넣으면서 conditioning을 구현할 수 있으며 이는 첫째 상기 이미지와 같다.
G에서는 p_z(z)와 y가 joint hidden representation으로 합쳐졌으며, 이 학습 프레임워크는 해당 hidden representation의 구조에 대해 큰 유연성을 허용한다. 그리고 D에서는 x와 y로 표현된 input이 함꼐 들어가게 된다. 이에 대한 목적 함수는 상기 두번째 이미지와 같다.
Generator Net:
- noise prior z: uniform distribution, 100-dimensionality
- z, y: ReLU로 매핑된 각각 200-d, 1000-d layer size
- 1200-d hidden layer로 ReLU가 합쳐짐
- Sigmoid Unit에서 784-d MNIST samples로 변환되어 출력
Discriminator Net:
- x: maxout layers with 240 units & 5 pieces
- y: maxout layer with 50 units & 5 pieces
- joint maxout layer with 240 units & 4 pieces (Sigmoid 입력 전)
Training:
- SGD with 100 mini batches
- Learning rate = 0.1, decay factor 1.00004로 .000001 기하급수적 감소
- Momentum=0.5 ~ 0.7로 상승
- Dropout=0.5 on G & D
- Val set에서 가장 좋은 log-likelihood 추정을 보일 때 Stopping point로 함
생성된 태그들이 기존 데이터들에 비해 적절하다라고 말할 수는 없지만, 적어도 관련도가 있는 벡터들에 기반한 단어들을 뽑아냈다는 점에서 그 의의가 보이는 결과라고 할 수 있겠다.
Multi-modal
- Image Feature: ImageNet dataset with 21,000 labels on pre-trained convolutional model
- Tag corpus: concatenation of user-tags, titles and descriptions from YFCC100M --> dictionary of 247465 size
on skip-gram model with word vector size of 200
Generator Net:
- Gaussian noise of size 100 as noise prior & ReLU layer with 500-d
- 4096 image feature vector to 2000 ReLU hidden layer
- 200-d linear layer -> 생성된 word vector의 결과를 출력
Discriminator Net:
- 500-d ReLU for word vectors & 1200-d ReLU for image features
- maxout layer with 1000 units & 3 pieces --> 최종 output으로 single sigmoid unit으로 확률값 출력
Training:
- SGD with 100 mini batches
- Learning rate = 0.1, decay factor 1.00004로 .000001 기하급수적 감소
- Momentum=0.5 ~ 0.7로 상승
- Dropout=0.5 on G & D
- hyperparameter의 경우, Cross-validation & Random Grid Search & manual Selection으로 선정됨
본 결과들은 굉장히 초기 버전이지만, 그럼에도 불구하고 조건부 적대적 신경망(Conditional Adversarial Network)의 잠재성을 보여줬다고 할 수 있다. 또한 추후 연구에서 더 정교하고 철저한 분석을 통해 성능과 그 특징성을 끌어올릴 수 있는 점은 특히 고무적이라고 할 수 있다. Image Model 뿐만 아니라, 특정 분야에서의 language model에서도 그 가치를 보일 수 있음을 보여주었다고 할 수 있다.
단순히 GAN model에 수학적인 '조건부확률'만 넣어서 GAN 모델을 학습시켰음에도 그 특정한 정보 y가 output들에 그 영향을 줄 수 있다는 점에서 그 의의가 크다고 할 수 있다. 그리고 이는 Pix2Pix나 CycleGAN과 같은 모델의 기반이 되었다는 점은, 이러한 '조건부'와 관련된 생성모델들에 큰 영감을 주었음을 부정할 수 없다. 이러한 하나의 작은 발상이, 때로는 새로운 연구 분야의 한 기조로 작용되는 것 그리고 큰 영감의 Motivation이 된다는 것을 배울 수 있었던 논문이었다.
댓글 영역