본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
카테고리 없음

[2024-2] 임재열 - GAN(Generative Adversarial Networks), Conditional GAN

by limlimlim1109 2024. 12. 21.

 GAN(Generative Adversarial Networks, 생성적 적대 신경망)은 2014년 Ian Goodfellow 등이 제안한 모델입니다. 해당 논문을 요약하여 모델의 핵심 아이디어를 파악하고, GAN의 한계점을 극복하기 위해 2014년 Mehdi Mirza와 Simon Osindero가 제안한 Conditional GAN 모델도 간단하게 알아보겠습니다.

 

[GAN]

https://arxiv.org/abs/1406.2661

 

Generative Adversarial Networks

We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that

arxiv.org

 

[CGAN]

https://arxiv.org/abs/1411.1784

 

Conditional Generative Adversarial Nets

Generative Adversarial Nets [8] were recently introduced as a novel way to train generative models. In this work we introduce the conditional version of generative adversarial nets, which can be constructed by simply feeding the data, y, we wish to conditi

arxiv.org

 

<GAN 논문 리뷰>

* Abstract

1. 우리는 적대적 과정을 통해 생성 모델을 추정하는 새로운 프레임워크를 제안합니다. → What is "adversarial process"?

 

2. 이 과정에서는 두 가지 모델을 동시에 학습합니다. 첫 번째는 데이터 분포를 포착하는 생성 모델 G,

두 번째는 샘플이 에서 나온 것이 아니라 학습 데이터에서 온 것인지 판별하는 확률을 추정하는 판별 모델 D입니다.

G의 학습 절차는 D가 실수하도록 만들 확률을 최대화하는 것입니다.

 

3. 이 프레임워크는 minimax 2인 게임에 해당합니다. 임의의 함수 G의 공간에서, 가 학습 데이터 분포를 복원하고 D가 모든 곳에서 1/2가 되는 고유한 해가 존재합니다. → ???

 

4. GD다층 퍼셉트론으로 정의된 경우, 전체 시스템은 역전파(backpropagation)를 통해 학습될 수 있습니다.

 

5. 학습이나 샘플 생성 과정에서 마르코프 연쇄(Markov chains)나 펼쳐진 근사 추론 네트워크(unrolled approximate inference networks)가 필요하지 않습니다. → 기존 모델들의 단점: 마르코프 연쇄, 근사 추론 네트워크를 사용

 

6. 실험을 통해 생성된 샘플의 질적 및 양적 평가를 통해 이 프레임워크의 가능성을 입증했습니다.

 

* Introduction

 

 1. 딥러닝이 생성 모델에서 상대적으로 적은 영향을 끼친 이유

      → 최대 우도 추정(maximum likelihood estimation)과 관련된 전략에서 발생하는 다루기 힘든 확률적 계산의 근사가 어려움

 

 2. 우리는 이러한 어려움을 피할 수 있는 새로운 생성 모델 추정 절차를 제안합니다. 제안된 적대적 네트워크(adversarial nets) 프레임워크에서는 생성 모델이 적수와 대립합니다. 이 적수는 모델 분포와 데이터 분포 중 샘플이 어느 쪽에서 왔는지를 학습하는 판별 모델입니다. 생성 모델은 마치 위조지폐를 만들어 탐지되지 않고 유통시키려는 위조자 팀과 유사하며, 판별 모델은 위조지폐를 탐지하려는 경찰과 유사합니다. 이 게임에서의 경쟁은 두 팀이 각자의 방법을 계속 개선하도록 유도하여, 결국 위조 화폐가 진짜 화폐와 구별되지 않게 만듭니다.

 

출처: https://baechu-story.tistory.com/12

 

 3. 특히, 생성 모델은 랜덤 노이즈를 다층 퍼셉트론(multilayer perceptron)을 통해 통과시켜 샘플을 생성하며, 판별 모델 역시 다층 퍼셉트론으로 정의되는 경우를 고려합니다. 이 경우, 성공적으로 검증된 역전파와 드롭아웃 알고리즘만으로 두 모델을 훈련시킬 수 있고, 생성 모델에서는 단순히 순방향 전파(forward propagation)만으로 샘플을 생성할 수 있습니다. 이를 통해 근사 추론이나 마르코프 연쇄가 전혀 필요하지 않게 됩니다.

 

* Adversarial Network

* flow chart

출처: https://kjhov195.github.io/2020-03-09-generative_adversarial_network/

 

 

 

* 이진 크로스 엔트로피(Binary Cross Entropy)를 기반으로 설계

 

1. Discriminative model

→ logD(x) 최대화 → D(x) 최대화

→ log(1-D(G(z)) 최대화 → D(G(z)) 최소화

 

2. Generative model

→ log(1-D(G(z)) 최소화 → D(G(z)) 최대화

 

파란선 - 판별기(D(x)), 초록선 - 생성기 분포(p_g), 검정선- 실제분포(p_data)

* p_g → p_data

* D(x) → 0.5

 

* Theoretical Results

* 학습 과정

학습 내부 루프에서 D를 완전히 최적화하는 것은 계산적으로 부담 & 유한한 데이터셋에 overfitting 발생

→ D 를  단계 최적화한 후 G를 한 단계 최적화하는 방식을 번갈아가며 진행

 D는 최적해 근처에 유지, G는 천천히 변화

 

* 학습 알고리즘 (1번의 training iteration 당)

 1. D 학습을 위해 (노이즈로부터 G를 통해 생성한 데이터 샘플링 → 실제 데이터 샘플링 → D 업데이트) 과정을 k번 반복

 

 

 2. G 학습을 위해 (노이즈로부터 G를 통해 생성한 데이터 샘플링 → G 업데이트) 과정을 1번 반복

 

* 수학적으로 증명

 1.  최소-최대(minimax) 게임이 p_g=p_data일 때 전역 최적(global optimum)을 가진다.

 2. 알고리즘이 minimax game의 식 V(D, G)를 최적화한다.

 

* Experiment 

1. 타 모델과의 성능 비교 (Parzen window-based log-likelihood estimates)

 

2. GAN으로 생성한 이미지 예시

 

* Advantages and Disadvantages


* conclusion

1. 조건부 생성 모델은 조건 C를 생성기 G와 판별기 D에 입력으로 추가함으로써 확보 가능

 

2. 학습된 근사 추론은 보조 네트워크(auxiliary network)를 학습시켜 x가 주어졌을 때 z를 예측하게 함으로써 수행 가능

 

3.  의 인덱스의 부분집합일 때, 모든 조건부 확률 분포(p(x_s | x_not.s)) 근사적으로 모델링 가능

 

4. 반지도 학습(Semi-supervised learning): 판별기 또는 추론 네트워크에서 추출한 특징은 라벨이 제한된 데이터셋에서 분류기의 성능을 향상시키는 데 도움을 줄 수 있음

 

5. 효율성 개선(Efficiency improvements): G  간의 협력을 더 잘 조정하거나, 학습 중 z를 샘플링할 더 나은 분포를 찾음으로써 학습 속도 향상 여지 존재

 

<GAN의 한계>

1. 학습 불안정성

  1.1 G와 D 중 하나가 너무 강해진다면?

  1.2 Mode Collapse 에 따른 생성 데이터의 다양성 저하 → 클래스를 오가다가 학습이 종료되는 현상 발생

 

2. 수렴 불확실성: 정말 p_g가 p_data에 수렴할까? → local optimum 문제

 

3. p_g 명시성이 떨어짐

→ 평가 분석이 어려움

→ p_g - p_data를 직접적으로 계산하는 것이 아님

→ p_g 가 D를 속이려고 하는 과정에서 정말 p_data를 모방해 가고 있는걸까?

 

<Conditional GAN>

* Main Idea

1. 생성기와 판별기를 생성할 때 특정 조건 데이터 y를 함께 주면, G가 생성하는 이미지에 제한을 줄 수 있다.

2. External Information y는 label, tag 등 다양한 정보가 될 수 있다.

* minmax game

y 조건 하에 계산

  1.