본문 바로가기

학부/논문 리뷰

Generative Adversarial Nets (GAN) 논문 리뷰

728x90
반응형
 CV 프로젝트 (1) - 논문 리뷰

약 5개월의 장기 프로젝트로 CV분야의 DALL-E 모델을 선택했다. 

Generative model과 관련하여 최근에 굉장히 뜨고 있는 모델이며, 이들을 알기 위해서는 기본적인 CV의 generative model에 대한 지식이 필요할 것 같아서 논문 리뷰를 진행했다.

 

[논문 링크]

https://proceedings.neurips.cc/paper_files/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf

I. Goodfellow et al., "Generative adversarial nets," in Advances in neural information processing systems, 2014, pp. 2672-2680.

 

[참고 링크]

5-1. GAN (Part1. GAN architecture)

 

5-1. GAN (Part1. GAN architecture)

안녕하세요. 이번 글에서는 최초의 GAN 논문인 "Generative Adversarial Nets"을 리뷰하려고 합니다. 우선, GAN이라는 모델이 설명할 내용이 많다고 판단하여 파트를 두 개로 나누었습니다. Part1에서는 GAN a

89douner.tistory.com

 


Abstract


Abstract

Adversarial process를 이용한 generative model을 estimating하는 새로운 frame work 제안

⇒ 여기서 Adversarial (적대적) 이라는 말이 쓰인 이유는, G와 D가 서로 반대의 목적을 가지고 있기 때문이라고 추측된다.

  • Generative model (G)
    • 데이터를 제공하는 생성 모델
    • 구별 모델 D가 실수할 확률을 높이는 방향으로 학습된다.
  • Discriminative model (D)
    • 데이터가 G가 만든 것인지, 원본인지 구분하는 구별 모델
    • G로부터 생성된 이미지인지 판별하기 보다, 원본 이미지인지 판별하는 것에 초점

이는 min-max 게임과 비슷하며 G와 D는 각각 유일한 답이 존재하고 모두 1/2의 확률을 가진다. G와 D가 multi-perceptron으로 정의되어 있다면, 전체 시스템은 backpropagation으로 학습된다.

이는 다른 어떤 네트워크나 markov-chain이 필요하지 않다.

이 실험을 통해 생성된 sample들은 질적으로든 양적으로든 잠재적인 가능성을 보여준다.

 

 


1. Introduction


1. Introduction

딥러닝은 많은 분야 (natural images, audio waveforms, symbols in corpora)에서 좋은 성능의 모델을 만들게 해주었으며, 이 모델들은 고차원의 특성과 많은 입력을 가지는 discriminative model을 가지고 있다.

Discriminative model은 많은 정보가 가진 입력 데이터의 클래스 label을 mapping하는 모델을 의미한다.

일반적으로 backpropagation과 dropout 알고리즘을 기반으로 이러한 성공을 이끌어낼 수 있었는데, Deep generative model같은 경우엔 Maximum Likelihood Estimation (MLE)과 같은 strategy와 관련해서 approximate하기 어렵다는 점, 즉 계산 복잡성 때문에 큰 임팩트를 주진 못했다.

따라서, adversarial nets framework를 제안하게 되었는데, 이는 위조 지폐범과 위조 지폐를 검열하는 경찰과 비슷하다.

  • Generative model (G) : 위조지폐를 만드는 위조범
  • Discriminative model (D) : 위조지폐를 검열하는 경찰

G와 D가 계속해서 adversarial training을 거치게 되면, 어느 순간부터 실제 데이터와 구별하기 힘들 정도의 모방 데이터를 잘 만들게 된다.

Generative model (G)가 Multi-perceptron를 이용하여 random noise가 부가된 sample을 생성하고, discriminative model (D)도 multi-perceptron에 데이터를 넣어 데이터의 진위 여부를 판단한다.

G와 D가 이렇게 작동하는 것을 adversarial nets라고 말한다.

GAN은 backpropagation과 dropout algorithm만을 사용하여 두 모델을 훈련하고, G는 forward propagation만으로도 sample을 생성할 수 있다.

따라서, 다른 어떠한 Markov chain과 approximation을 위한 inference는 필요없다.

 

 


2. Related Work


2. Related work

과거, 이전까지 대부분의 deep generative model은 log likelihood를 최대화하는 방식으로 훈련되었다. 이 모델 중에서 가장 성공적인 모델은 아마 deep boltzman machine이라 불리는 모델일 것이다.

하지만, 이러한 모델들은 일반적으로 계산하기 어려운 likelihood function을 가지기 때문에, 이로 인해 likelihood gradient에 대한 많은 approximation이 필요하다.

따라서, 이 어려움에 대응하기 위해 ‘generative machines’ 모델이 등장했으며 이들은 likelihood를 explicit하게 표현하지 않지만 sample을 생성할 수 있다. 그 중에서도 Generative stochastic networks는 딥 볼츠만 머신과 다르게 정확한 backpropagation을 사용하여 훈련될 수 있는 deep generative machine의 예시이다.

Kingma & welling 등의 연구자들이 더 일반적인 stochastic backpropagation rules을 개발 (Gaussian 분포의 finite distribution을 갖는 상황에서 backpropagation을 수행할 수 있는 더 일반적인 규칙)→ generator가 conditional variance (hyperparameter)을 학습

이 방법을 VAEs를 훈련하는 데에 사용, VAEs는 GANs와 비슷하게 second neural network를 가진 미분 가능한 generator network를 가지고 있지만, 중요한 차이점이 있다.

  • VAE
    • VAE의 second neural network는 추론 (inference) 모델로서 작동하며, approximate inference를 수행한다.
    • Hidden units을 통한 미분이 필요하므로 discrete latent variable을 가질 수 없다.
  • GAN
    • Visible units을 통한 미분이 필요하므로 discrete data를 모델링 할 수 없다.

이전 연구에서도 discriminative criterion (구별하는 기준)을 사용한 approach가 있었다.

하지만, deep generative model이 사용하기 어려운 criterion을 사용했는데, 그 이유는 이전의 criterion들이 probability의 ratio를 포함했는데 이는 variational approximations을 사용하여 근사화하기 어렵기 때문이다.

따라서, Noise-Contrastive Estimation (NCE) 방법을 사용하여, 이전에 훈련된 모델을 노이즈 분포로 사용함으로써 모델을 훈련시킬 수 있다.

⇒ 이런 방법들이 일종의 경쟁 메커니즘으로 볼 수 있다.

NCE의 key limitation : ‘discriminator’가 모델의 분포와 노이즈 분포의 확률 밀도 비율에 의존하기 때문에, 해당 비율에 대한 backpropagation을 수행하기 위해서는 두 확률 밀도를 evaluate & backpropagate 하는 능력이 필요하다.

이전 연구에서도 2개의 신경망이 경쟁하는 개념을 사용한 연구가 있었는데, 이는 ‘predictability minimization’으로 각 hidden unit을 다른 신경망의 출력과 다르게 훈련시킨다는 개념이다.

이 연구와 predictability minimization은 크게 3가지 차이점이 있다.

  • GAN은 network 간의 경쟁이 유일한 training criterion이며, 이것만으로도 network를 훈련시키기 충분하다.
    • 하지만 predictability minimization은 hidden unit이 다른 task를 수행하기 위해 independent가 되도록 regularizer 역할을 하는 것이므로 다르다.
  • Nature of competition이 다르다.
    • predictability minimization은 2개의 네트워크의 출력을 비교하면서 하나는 출력을 유사하게, 하나는 다르게 하려고 한다.
    • GANs은 서로가 어떻게 process했는지 알 수 없으며, 네트워크 하나의 출력이 다른 네트워크의 입력으로 들어가게 된다.
  • learning process의 specification이 다르다.
    • predictability minimization은 objective function을 가진 optimization problme으로 묘사된다. 따라서, 학습은 objective function이 최소값에 수렴하는 방식으로 진행된다.
    • GANs은 min-max game에 기반하며, 하나의 agent는 최대화, 다른 하나는 최소화하기 위한 value function을 가지고 있다.

마지막으로, GANs와 Adversarial example에 대한 설명이다.

종종 GANs와 adversarial example이라는 개념을 서로 혼동하기도 하는데, 적대적 예제는 classification network의 input에 직접적으로 gradient-based optimization을 적용하여 찾아낸 예제들이며 이들은 데이터와 유사하면서도 잘못 분류되는 예제들이다.

따라서, adversarial example은 generative model을 훈련시키는 메커니즘이 아니다. 이들은 인간 관측자에게는 보이지 않는 이미지의 차이도 confident하게 다르게 분류하는 분석 도구이다.

 


3. Adversarial nets


3. Adversarial nets

Adversarial modeling framework는 multilayer perceptron일 때, 가장 적용하기 쉽다.

입력 데이터 X에 대해 generator의 분포 $p_g$를 학습하기 전, input noise인 $p_{z(x)}$를 정의하고 $p_{z(x)}$를 data space에 매핑하는 $G(z;θ_g)$를 정의해야 한다.

→ G는 multilayer perceptron에 의해 표현되는 미분 가능한 함수이다.

이 후, 또 다른 multilayer perceptron인 $D(x;θ_d)$도 정의해야 하는데, 이는 single scalar를 출력하는 second multilayer perceptron이다.

⇒ 여기서 D(x)는 generator의 분포보다는 데이터로부터 얻은 x의 probability, 즉 원본일 확률을 의미한다.

G,D를 정의했으므로 이제 학습을 진행한다.

  • Generative model (G) : D가 correct label을 제대로 할당할 수 없을 정도로 학습 데이터셋과 유사한 데이터를 만드는 것
    • 여기서 $log(1-D(G(z)))$을 최솟값으로 만들려는 것이다.
      • $D(G(z)) = 1$이 되게 만들어야 한다는 것이다. 왜냐면 G(z)는 사실 0으로 판별이 되어야 하는데 D를 속여야 하므로 1이 되어야 한다.
    • $logD(x)$는 고려 대상이 아닌데, 이는 z만을 입력으로 받기 때문이다.
  • Discriminative model (D) : 학습 데이터 셋과 G에서 만든 데이터에 correct label을 할당할 확률을 최대로 만드는 것.
    • 여기서 $V(D,G)$가 0 값에 수렴할 수 있도록 만드는 것이다.

본질적으로 G와 D가 충분한 capacity를 가지고 있다면 (non-parametric limit), training criterion을 통해 data generating distribution을 복원(recover)할 수 있다.


4. Theoretical Results


4. Theoretical Results

training criterion이 data generating distribution을 G로 복구하고 D가 non-parametric limit에서 충분한 기능을 가지게 한다는 것을 입증한다.

→ 학습 과정이 어떻게 되는 지 설명해주는 section

  • 여기서 training criterion = loss function으로 이해할 수 있다.
  • recover은 초기에 어려운 상황이었던 generator가 improve되었다는 의미를 가지고 있다.
  • Non-parametric : distribution-free, 즉 사전 확률 분포를 정하지 않아도 된다.
    • Non-parametric model은 computationally intractable problem (큰 데이터 셋에서는 많은 parameter들이 필요)를 가지고 있지만, enough capacity가 주어진다면 training이 잘 될 것.

  • 파란색 점선 ($D$) : discriminative distribution (데이터 구분선)
  • 검은색 점선($p_x$) : data distribution (실제 데이터 분포)
  • 초록색 실선($p_g(G)$) : generative distribution (생성한 데이터의 분포)
  • $z$ : sampling 되는 영역 (domain), 균일하게 샘플링 되도록 설정

이제 각 학습 과정을 살펴보자.

  • (a)
    • 학습이 잘 되지 않은 상태
    • 생성 데이터와 실제 데이터의 분포가 유사하게 보이지만, 아직까지 D가 잘 구분해주는 상태
    • 하지만 D가 완벽하게 구분해준다고 하기엔 불안정한 모습을 보임.
  • (b)
    • D가 학습이 잘 된 상태
    • 생성 데이터와 실제 데이터를 잘 구분하고 있음
  • (c)
    • G가 학습이 되어가는 단계 → 업데이트
    • D의 distribution의 gradient가 $G(z)$가 좀 더 의미있는 이미지를 생성할 수 있도록 유도
  • (d)
    • G와 D가 충분히 학습된 상태
    • G가 기존 데이터와 분포가 거의 일치하면서 D가 진위 여부를 전혀 파악할 수 없음.
    • 따라서, 1/2의 값을 가지는 uniform distribution이 형성된다.

위의 과정을 알고리즘으로 만들어 놓은 형태이다.

k=1 → 한번 반복했다는 뜻.

 

4.1 Global Optimality of $p_g = p_{data}$

Generator 관점에서, min-max problem (여기서는 value function)은 $P_g = P_{data}$ 에서 global optimum을 가져야 한다.

Proposition 1. G가 고정되어 있을 때, optimal D는 다음과 같다.

Proof

G에 대해, D의 training criterion은 V(G,D)를 최댓값으로 만드는 것을 의미하며, V(G,D)는 다음과 같다.

$P_g = P_{data}$ 일 때, $D^*(x) = 1/2$ 의 값을 갖는데, 이는 D가 진위 여부를 1/2 확률로 판별한다는 것이다. 따라서, V(G,D) 값이 1/2 에 가까이 도달하도록 만든다.

이제, global minimum of the virtual training criterion ($C(G)$)를 식으로 나타내고, $C(G)$가 global minimum을 가지려면 $P_{data}(x) = p_g(x)$를 만족해야 한다.

그리고 이를 만족하면 $-log(4)$ 라는 global minimum을 얻을 수 있다.

증명은 아래와 같다.

JSD는 Jensen-Shannon divergence인데 JSD는 항상 양수지만 두 distribution이 일치할 때만 0이 되기 때문에**, $p_{data}=p_g$** 가 유일한 해임을 알 수 있다.

4.1 Global Optimality of $p_g = p_{data}$

Generator 관점에서, min-max problem (여기서는 value function)은 $P_g = P_{data}$ 에서 global optimum을 가져야 한다.

Proposition 1. G가 고정되어 있을 때, optimal D는 다음과 같다.

Proof

G에 대해, D의 training criterion은 V(G,D)를 최댓값으로 만드는 것을 의미하며, V(G,D)는 다음과 같다.

$P_g = P_{data}$ 일 때, $D^*(x) = 1/2$ 의 값을 갖는데, 이는 D가 진위 여부를 1/2 확률로 판별한다는 것이다. 따라서, V(G,D) 값이 1/2 에 가까이 도달하도록 만든다.

이제, global minimum of the virtual training criterion ($C(G)$)를 식으로 나타내고, $C(G)$가 global minimum을 가지려면 $P_{data}(x) = p_g(x)$를 만족해야 한다.

그리고 이를 만족하면 $-log(4)$ 라는 global minimum을 얻을 수 있다.

증명은 아래와 같다.

JSD는 Jensen-Shannon divergence인데 JSD는 항상 양수지만 두 distribution이 일치할 때만 0이 되기 때문에**, $p_{data}=p_g$** 가 유일한 해임을 알 수 있다.


4.1 Global Optimality of $p_g = p_{data}$

Generator 관점에서, min-max problem (여기서는 value function)은 $P_g = P_{data}$ 에서 global optimum을 가져야 한다.

Proposition 1. G가 고정되어 있을 때, optimal D는 다음과 같다.

Proof

G에 대해, D의 training criterion은 V(G,D)를 최댓값으로 만드는 것을 의미하며, V(G,D)는 다음과 같다.

$P_g = P_{data}$ 일 때, $D^*(x) = 1/2$ 의 값을 갖는데, 이는 D가 진위 여부를 1/2 확률로 판별한다는 것이다. 따라서, V(G,D) 값이 1/2 에 가까이 도달하도록 만든다.

이제, global minimum of the virtual training criterion ($C(G)$)를 식으로 나타내고, $C(G)$가 global minimum을 가지려면 $P_{data}(x) = p_g(x)$를 만족해야 한다.

그리고 이를 만족하면 $-log(4)$ 라는 global minimum을 얻을 수 있다.

증명은 아래와 같다.

JSD는 Jensen-Shannon divergence인데 JSD는 항상 양수지만 두 distribution이 일치할 때만 0이 되기 때문에**, $p_{data}=p_g$** 가 유일한 해임을 알 수 있다.

 


4.2 Convergence of Algorithm 1

Algorithm 1 : value function인 V(G,D)를 최적화시켜 원하는 결과를 얻는 과정

Proposition 2. G와 D가 충분한 capacity를 가지고 있고, algorithm 1의 각 단계에 있을 때, D는 G가 최적의 상태에 다다르게 해주고 $p_g$는 다음의 criterion을 향상시키는 방향으로 업데이트 되다가 $p_{data}$에 수렴한다.

 


5. Experiments


5. Experiments

G,D를 MNIST , TFD(Toronto Face Database), CIFAR-10에서 학습시키고 테스트를 진행했다.

  • G는 activation function으로 ReLU, sigmoid function을 혼합한 것을 사용했다.
    • G는 noise를 input으로 받아 data를 generation한다.
  • D는 activation function으로 dropout을 사용했다.

test set data들의 확률은 G로 생성된 데이터들에 Gaussian Parzen window를 적용하여 측정하며, 이를 log 확률로 변환하여 사용했다.

parzen window 기반의 log likelihood estimation이다.

이는 training 후, G에서 추출한 sample들이다. 이들은 생성된 샘플들이 적어도 문헌의 더 나은 generative model과 경쟁하며 adversarial network의 가능성을 강조한다.

이는 z space에서 좌표 간에 linear interpolation을 통해 얻은 숫자들이다.

 


6. Advantages and disadvantages


6. Advantages and disadvantages

  • Disadvantage
    • 생성된 데이터의 분포 $p_g(x)$를 explicitly하게 representation 할 수 없다.
    • 학습 시, D는 G와 synchronized well 되어야 한다.
      • G가 D의 updating 없이 너무 많이 학습되면 안된다.
      • 만약, D의 updating 없이 G만 계속해서 학습될 경우, $p_{data}$의 분포를 G가 충분히 다양하게 따라가지 못하는 ‘Helvetica scenario’에 빠지게 된다.
  • Advantage
    • Markov-chain이 필요하지 않다.
    • 학습 과정에서 inference가 필요하지 않다.
    • 다양한 함수들과 adversarial nets framework를 합칠 수 있다.
    • computation 측면에서 이득이 많다.
    • statistical advantage도 가지고 있다.
      • Data 예제를 통해 직접 가중치를 update하지 않고, D의 gradient 조정만으로도 가중치를 update 할 수 있다.
      • 즉, 입력 데이터의 구성 요소가 generator의 가중치 속에 직접적으로 복사되지 않는다.
        • 따라서, 날카롭고도 퇴화된 분포를 나타낼 수 있다.


7. Conclusions and future work


7. Conclusions and future work

  • conditional generative model $p(x|c)$ 를 만들 수 있다.
    • G,D에 c 라는 input을 더하게 된다면.
  • x → z를 수행하기 위한 auxiliary network를 훈련시킴으로써 Learned approximate interence를 수행할 수 있다.
  • parameter를 공유하는 conditional model 학습 ⇒ 다른 conditional model을 approximately하게 modeling 가능
  • Semi-supervised learning
    • 제한된 레이블이 있는 데이터를 사용할 때, classifier의 성능 향상
  • Efficiency improvements
    • training동안, z를 sampling하는 method를 향상시키면 학습을 엄청 가속화할 수 있다.

 



느낀 점


이론 상으로 굉장히 간단해 보이지만, 실로 수식과 코드랑 함께 볼 때는 조금 더 어렵게 체감되는 것 같다. 하지만 간단한 이론을 이렇게 구현해낸다는 사실이 조금 놀라웠고, 이렇게 adversarial training으로 이미지를 생성할 수도 있구나.. 아직 정말 배울 것도 많고 그와 동시에 내가 할 수 있는 것도 많겠구나, 라고 학부생 신분에서 생각해보게 만드는 논문이었다.

 

728x90
반응형