ML&DL/Paper Review (논문)

#3 논문리뷰 - Generative Adversarial Nets

NeuroN 2023. 8. 24. 16:44

논문 및 코드 링크 (sota)

https://paperswithcode.com/method/gan

 

Papers with Code - GAN Explained

A GAN, or Generative Adversarial Network, is a generative model that simultaneously trains two models: a generative model $G$ that captures the data distribution, and a discriminative model $D$ that estimates the probability that a sample came from the tra

paperswithcode.com

세 번째 논문은 연구 주제의 가장 근간이 되었던 GAN 에 대한 논문을 리뷰하고자 한다.

물론 영어논문이고 GAN의 원리를 알고 있어 논문에서 제시하는 방식에 대해서는 쉽게 이해가 가능했으나, 그 외에 이론적인 측면에서 어려움을 겪었다. 

논문에서 제시하는 모든 이론에 대해 파악하고 간다면 좋겠지만, 리뷰의 목적은 논문이 제시하는 아이디어와 생각의 흐름이라 생각하여 핵심 내용을 간추려 보았다.

물론 영어 해석과 리뷰의 경험이 적은 점을 고려하여 읽어주셨으면 하는 바람이다.


Approch

본 논문에서는 적대적 과정 (adversarial process)을 통한 생성 모델 (generative models)을 제안한다.
생성자 (Generator, 이하 G)는 데이터 분포를 포착하고, 판별자 (Discriminator, 이하 D)는 G가 아닌 훈련 데이터로부터 샘플이 나올 확률을 추정한다. G는 D가 실수할 확률을 최대화하려고 한다..
이 과정은 마치 G,D의 minmax 게임의 두 플레이어와 같다.
또한 논문에서 제시하는 핵심은 기존의 생성 모델과 달리 훈련의 모든 과정은 Markov chains 없이 역전파를 통해 가능하다.


Introduction

기존의 생성 모델은 최대 우도 추정과 관련하여 다루기 힘든 많은 확률적 계산으로 인한 어려움과, 생성적 문맥에서의 조각 단위의 선형 이점을 다루기 어렵다는 문제점이 있다. 

> 대강 수식적인 계산에서 문제가 있고, 실제와 같은 이미지를 생성하는 모델이다보니 문맥적으로 자연스럽게 나타내기 힘들다는 의미가 아닐까 생각하고 넘어갔다.
논문에서 제시하는 생성 모델은 이러한 문제점을 해결한다고 한다.

생성 모델은 상대방에게 앙숙관계이다.
D 모델은 샘플이 모델 분포로부터 왔는지 데이터 분포로부터 왔는지를 결정하는 것을 학습한다.
예시로, G 모델은 위조범들의 팀과 유사한데, 가짜 화폐를 생산하려고 하고 발각되지 않고 그것을 사용하려고 한다.
D 모델은 경찰과 유사한데, 가짜 화폐를 찾아내고자 한다.
이러한 앙숙관계가 서로의 방법을 계속해서 향상시킨다. 가짜와 진짜가 구별이 되지 않을때까지 말이다.

본 논문에서는 G 모델과 D 모델이 MLP (multilayer perceptron) 구조를 가지는 특별한 경우에 대해 살펴본다.

> MLP 는 인공신경망에서 비선형회귀로 잘 알려진 구조이지만, 사실 이 글을 읽고있다면 CNN을 사용하는게 더 효과적임을 인지하고 있을 것이다. (사용되는 데이터셋은 이미지일 것이므로..)

이 경우 두 모델 학습에 있어 오직 역전파 (backpropagation)과 드롭아웃 알고리즘 (dropout algorithms)을 이용하고, G 모델에서 생성된 샘플은 오직 순전파 (forward propagation)에 이용한다.

> MLP 구조를 살펴보면 역전파, 드롭아웃에 대한 이해가 가능하다. 다른 점은 G 모델에서 생성한 샘플이자 이미지는 오직 순전파에 이용된다는 내용이다.


Related work

> 이 부분이 가장 이해가 힘들었다. 관련된 이전의 이론들에 대한 기초 지식이 부족했던 것이 가장 큰 요인이라고 생각한다.

> 기초 지식이라 할 것 없이 무엇인지만 대강 알고가자.

Graphical model : 변수들간의 상호 의존 관계를 표현한 확률 모델이다.

latent variables (잠재 변수) : 직접 관찰되지는 않지만 관찰 가능한 데이터이며, 예시로 사용자의 구매 패턴에서 구매 이벤트는 관찰되지만 구매 선호도는 관찰할 수 없는 잠재 변수라고 한다.
variable model   : 잠재변수를 이용해 분포를 효과적으로 설명하고 복잡한 패턴을 파악하는 모델이다.
잠재 변수 에 대한 directed graphical models 의 대안은 undirected graphical models 이라고 한다.  restricted Boltzmann machines (RBMs),  deep Boltzmann machines (DBMs) 를 예시로 들고있다.
이런 모델들의 상호작용은 정규화되지 않은 퍼텐셜 함수의 곱, 랜덤 변수의 모든 상태의 전역 합/적분으로 정규화된다고 설명한다.
이런 수량(파티션 함수)과 기울기는 대부분의 예시에서 다루기 어렵지만, Markov chain Monte Carlo (MCMC) 방법으로 설명될 수 있다.

Deep belief networks (DBNs) 에 대한 설명이 나와있다.

score matching, noise-contrastive estimation (NCE) 에 대한 설명이다.

NCE 에서 discriminative한 훈련 기준은 적대적 모델에 적합하다.
별도의 discriminative model을 적합시키는 것보다 적대적 모델은 샘플로부터 생성된 데이터를 구별하는데 사용한다.
NCE가 고정된 노이즈 분포를 사용하기 때문이다.

> 이론적인 부분이 이해가 잘 되지않아 빠르게 넘어갔다. 그 중 논문에서 제시하는 아이디어와 관련된 부분을 찾으려고 노력했다.


논문의 접근은 역전파로 학습된다는 이점을 가진다.
이전의 연구에서 generative stochastic network (GSN) 는 Markov chain 개념이 필요하다.
하지만, adversarial nets 는 샘플링에 있어 Markov chain 이 필요하지 않다. 생성에 있어 feedback loop 를 요구하지 않기 때문이다.
adversarial nets은 piecewise linear units 를 통해 역전파에서 더 향상된 결과를 얻을 수 있다.
하지만 여기에 문제가 발생하는데, feedback loop에 사용될 때 제한되지 않은 활성화 문제가 발생한다.

> 이론적인 측면은 이정도이다. 본격적으로 논문에서 제시하는 모델을 살펴보는게 정신건강에 좋아보인다.


Adversarial nets

적대적 모델의 프레임워크는 MLP 에 적용하여 직설적으로 설명이 가능하다.

생성자의 x 데이터로부터의 분포 pg를 학습하기 위해,
입력 노이즈 변수 : pz(z)
첫 번째 MLP : G(z;θg) (G는 파라미터 θg로 구성된 MLP로 표현되는 차별 가능한 함수이다. )
두 번쨰 MLP : D(x;θd) (출력이 상수값 하나, D(x)는 x가 pg가 아닌 데이터로부터 왔다는 확률을 제시한다.)
D 학습을 통해 확률을 최대화하여 훈련 데이터와 G의 샘플로부터 올바른 label을 할당하도록 한다.
동시에 G 학습을 통해 log(1 − D(G(z))) 를 최소화하여 D가 구별하지 못하도록 한다.
즉, D,G는 minmax game을 하는 두 플레이어이며 수식을 V(G,D)로 표현한다.

주의할 점은 D를 먼저 최적화 해버리면 과적합에 빠질 우려가 있다. 대신 G,D를 한단계식 번갈아 가며 학습시키는 방법을 사용한다. D는 최적에 가깝게 유지되면서, G는 충분히 천천히 바뀐다.
하지만, 이 방식 또한 충분한 G의 기울기를 제공하지는 않는다. G가 충분히 학습되지 않는다면 가짜는 진짜와 확실히 다르게 D가 너무나 잘 구별을 해버린다. 이 과정에서 log(1 − D(G(z))) 수식은 최대가 되어버린다. 그렇기에 G를 훈련할 때 log(1 − D(G(z)))를 최소화 해줌으로써 학습으로부터 G,D의 잘 조절할 수 있게 된다.


Theoretical Results

Algorithm 1 을 통해 훈련 과정을 파악할 수 있다.
첫 for문에서 훈련 횟수만큼을 반복하고 두번째 for문에서 k step 만큼의 discriminator의 gradient를 업데이트한다.
이 과정에서 pg(z)로부터 노이즈 샘플 z를 얻고, pdata(x)로부터 샘플 x를 얻어 수식을 통해 업데이트를 진행한다.
이후 generator의 gradient를 업데이트한다. 마찬가지로 pg(z)로부터 노이즈 샘플 z를 얻어 수식을 통해 업데이트를 진행한다.
아래의 증명과정은 D,G가 최대 최소가 되는 pg에 대한 수식적인 증명을 보여준다. 

> 증명 과정까지 다루지는 않겠다. 이 수식을 이용해 GAN 을 직접 구현하고자 하는것이 아니며 위 수식에서 D는 수식을 최대로 하고 싶고 G는 수식을 최소로 하고 싶다는 것만 알고 지나간다.


Experiments

MNIST, Toronto Face Database (TFD), CIFAR-10 데이터셋에 대해 실험을 진행한다.
활성화함수로는 G는 rectifier linear activations 의 혼합과 sigmoid activations를 사용하고, D는 maxout activations을 사용한다.
D에는 Dropout이 적용된다.
G 네트워크의 제일 하단 layer의 입력으로만 noise를 사용한다.

훈련 결과를 살펴보면, 다소 단순한 이미지에 대해 원래의 이미지와 유사하게 복원 및 생성이 가능했음을 알 수 있다.

하지만 복잡한 이미지에 대해서는 그 성능이 떨어지는데 이는 신경망을 구축함에 있어 이후 나오게 될 DCGAN 과 같은 신경망을 활용하면 될 것이라고 유추해볼 수 있다.


Advantages and disadvantages

disadvantages

  • pg(x) 에 대한 명확한 예시가 없다는 것이다.
  • D와 G가 학습에 있어 서로 적절히 훈련이 되어야 한다는 것이다. 한쪽으로 치우치면 안된다.

Advantages

  • Markov chains 이 필요없이, 오직 역전파만을 이용하여 훈련이 가능하여 다양한 기능을 모델에 접목시킬 수 있다.

특징

  • 적대적 모델은 데이터 샘플로부터 G를 직접 업데이트하지 않고, D의 기울기 흐름으로부터 G를 업데이트한다.
    이는 입력요소가 G의 파라미터로 직접적으로 카피되어 오지 않는다는 것이다.

else

하루에 한 개씩 읽겠다는 목표로 달려왔지만 영어 논문은 그 난이도가 다르다는 생각이 든다.

내가 이미 알고있는 내용에서도 전체적인 맥락을 알뿐 정확하게 해석하기가 쉽지 않았다.

그걸 요약까지 해서 리뷰를 한다는것 자체에서 하루만에 달성하고자 한다는게 오만하다는 생각 또한 들었다.

하지만 어쩔 수 있나. 책을 읽을때와 마찬가지로 한 100편쯤 읽었을 때즈음이면 어느덧 석사도 되어있고 논문도 책처럼 읽히지 않을까 싶다.

근 1년을 함께한 GAN 모델의 시작이 되는 논문에 대한 리뷰를 마친다.