본문 바로가기

논문 리뷰

GAN (Generative Adversarial Nets) 생성적 적대 신경망 논문 리뷰/번역 - 2014

Goodfellow, Ian, et al. "Generative adversarial networks." Communications of the ACM 63.11 (2020): 139-144.

논문 원문 : https://arxiv.org/abs/1406.2661v1

 

GAN 은 데이터를 생성해내는 모델과, 생성된 모델 vs 원본을 구별해내는 모델 총 2가지 모델을 훈련시키는 새로운발상에서 탄생하였다. 전체적인 모델의 훈련과정은 K번만큼 D라고 불리는 구별모델을 훈련시키고 K번의 훈련이 끝났을때 G라는 데이터생성모델을 한번 훈련시키는 방법이다. 초반의 학습이 덜 된 G는 제대로된 데이터를 생성해내지 못하기때문에 D에 의해 모두 구별되지만 점점 기울기가 조정되며 결국에 D는 아무것도 구별을 못하게되는 1/2의 확률을 가진 모델이 된다.

https://this-person-does-not-exist.com/en 사이트에서 제공하는 모든 사진은 생성모델에 의해 생성된 사진들이고 실제 사람과 구별을 하지 못할 정도로 정교하게 생성된 모습을 확인할 수 있다. 하지만 간간히 사물이 겹치는부분(목 카라, 목부분이 뒷 배경과 겹치는 부분) 등은 어색하게 픽셀이 비벼진것을 발견할 수 있다.

 

 

Abstract

우리는 2가지 모델을 훈련시켜 적대적인 프로세스를 통해 생성모델을 평가하는 새로운 프레임워크를 제시한다 : 데이터를 제공하는 생성모델 G와 해당 데이터가 G가 만든것인지, 원본인지 확률을 평가하는 구별모델 D이다. G는 D가 실수할 확률을 높이는 방향으로 학습된다.(잘 구별하지 못하도록). 이 프레임워크는 2인용 minimax 게임과 비슷하다. 임의의 경우에서 G 와 D는 각각 유일한 답이 존재하며 모두 1/2의 확률을 갖는다. G와 D가 다층퍼셉트론의 구조를 가지고 있다면 역전파를 이용한 학습이 가능하다. 이는 데이터를 훈련하거나 생성할때 다른 어떤 네트워크나 마르코프 체인이 필요가 없다. 이 실험은 생성된 샘플에 대해 질적으로, 양적으로의 가능성을 보여준다.

 

1. Introduction

딥러닝은 계층적이고 풍부한 모델을 학습하여 이미지, 음성을 포함한 오디오 파형, 자연어 특징과 같은 데이터를 인공지능을 활용하여 확률로 나타내어 준다. 여태까지 가장 성공한 딥러닝은 모두 고차원의 특성, 많은 입력을 가지는 구별하는 모델을 포함했다. 이런 성공들은 역전파와 드롭아웃 알고리즘에 기초하였으며, 선형적인 단위를 사용하여 가중치에 잘 작용하였다. Maximum Likelihood Estimation(MLE, 최대우도추정)과 같은 전략들에서 나오는 많은 확률론적 계산의 어려움 때문에 Deep generation model은 영향을 덜 받았다. 또한 생성적인 맥락에서 선형단위의 이점을 활용하는 것의 어려움 때문이기도 하다. 우리는 이러한 어려움을 피하는 새로운 생성모델을 소개한다.

 

제안하는 프레임워크에서는 생성모델은 상대모델과 맞선다 : 구별모델은 샘플이 원본인지 생성모델이 만든 데이터였는지 결정하는 것을 학습한다. 생성모델은 위조지폐를 만드는 위조범과 비슷하고 구별모델은 위조지폐를 검거하려는 경찰과 비슷하다. 이러한 방식은 진짜와 가짜가 구별되지 않게끔 서로를 끌어올린다. 이 프레임워크는 다양한 모델과 최적화 알고리즘에 대해 특정한 훈련 알고리즘을 생성할 수 있습니다. 이 글에서는 생성 모델이 다층 퍼셉트론을 통해 랜덤 노이즈가 부가된 샘플을 생성하고, 구별 모델도 다층 퍼셉트론인 특별한 경우를 살펴본다. 우리는 이걸 적대신경망이라 부른다. 여기서는 매우 성공적인(좋다고 평가되는) 역전파, 드롭아웃 알고리즘만을 사용하여 두 모델을 훈련하고, 생성모델은 순전파만을 사용하여 샘플을 생성할 수 있다. 다른 inference나 Markov chain은 필요없다.

 

2. Related work

잠재 변수가 있는 유향 그래픽 모델의 대안은 잠재 변수가 있는 무방향 그래픽 모델이다. Restricted Boltzmann Machines(RBMs), Deep Boltzmann machines(DBMs) 및 다양한 변종이 예이다. 이 모델 내의 상호작용은 랜덤 변수의 모든 상태에 대한 전역 합산/적분에 의해 정규화된 비정규화 전위 함수의 산물로 표현된다. 마르코프 연쇄 몬테카를로(MCMC) 법칙으로 추정할 수 있지만, 이 양(분할 함수)과 그레이디언트는 거의 모든경우에 대해 다루기 어렵다. 혼합한 방법은 MCMC에 의존하는 학습알고리즘들에 많은 영향을 끼친다.

 

Deep belief networks(DBNs)는 하나의 무향 계층과 여러개의 유향 계층을 포함하는 하이브리드 모델이다. 빠른 근사 계층별 훈련 기준이 존재하는 반면 DBN은 무향 및 유향 모델 모두에서 계산의 어려움이 있다. 

 

점수 매칭(score matching) 및 소음 대비 추정(NCE, Noise-Contrastive Estimation)과 같이 로그 우도에 근접하거나 제한하지 않는 대체 기준도 제안되었다. 둘 다 학습된 확률 밀도를 정규화 상수까지 분석적으로 지정해야 한다. 여러 레이어의 잠재 변수(예: DBN 및 DBM)가 있는 많은 흥미로운 생성 모델에서는 다루기 쉬운 비정규 확률 밀도를 도출하는 것조차 불가능하다. denoising 오토 인코더나 contractive 오토 인코더등의 일부 모델에서는, RBM 에 적용되는 스코어 매칭과 매우 유사한 학습 방법이 있다. NCE에서는 이 연구에서와 같이 구별모델에서의 훈련 기준을 사용하여 생성 모델을 적용한다. 그러나 별도의 구별 모델을 적합시키는 대신 생성 모델 자체를 사용하여 생성된 데이터를 표본에서 고정 noise 분포로 구별한다. NCE는 고정 noise 분포를 사용하기 때문에, 모델이 관측 변수의 작은 부분 집합에 대해 대략적으로 올바른 분포를 학습한 후 학습 속도가 급격히 느려진다.

 

마지막으로, 일부 기술은 확률 분포를 명시적으로 정의하는 것이 아니라 원하는 분포에서 표본을 추출하도록 생성 모델을 훈련시킨다. 이 접근방식은 모델을 역전파로 훈련하도록 설계할 수 있다는 장점이 있습니다. 이 영역에서 주목할 만한 최근 연구는 일반화된 denoisisng 오토 인코더를 확장하는 generative stochastic network(GSN) 프레임워크를 포함한다. 두 가지 모두 매개 변수화된 마르코프 체인을 정의하는 것으로 볼 수 있다. 즉, generative 마르코프 체인의 한 단계를 수행하는 모델의 매개 변수를 학습하는 것이다. GSN과 비교하여, 적대신경망은 샘플링을 위해 마르코프 체인을 요구하지 않는다. 적대신경망은 생성 중에 피드백 루프가 필요하지 않기 때문에, 역전파의 성능을 향상시키지만 피드백 루프로 사용될 때 무한 활성화에 문제가 있는 단계별 선형 단위를 더 잘 활용할 수 있다. 생성 모델에 역전파를 통해 생성 모델을 훈련시키는 보다 최근의 예로는 auto-encoding variational Bayes 와 stochastic backpropagation 에 대한 연구가 있다.

 

3. Adversarial nets

적대신경망은 모델이 모두 다층퍼셉트론일때 가장 적용하기 쉽다. 원본 x에 대해 생성된 \(p_g\)를 학습하기 위해 입력에서 더해질 noise 변수를 \(p_z\)(Z)라 정의하고 데이터 공간에 대한 매핑을 G(z; \(θ_g\))로 표현하는데, 여기서 G는 매개 변수를 가진 다층 퍼셉트론에 의해 표현되는 미분 가능한 함수이다. 또한 단일 스칼라를 출력하는 두 번째 다층 퍼셉트론을 D(x; \(θ_d\)) 라고 정의한다. D(x)는 x가 \(p_g\)가 아닌 원본일 확률을 나타낸다. 우리는 D가 훈련 샘플과 G의 샘플 모두 올바르게 구별하도록 훈련시킨다. 동시에 log(1 − D(G(z)))를 최소화하도록 G를 훈련시킨다. 즉, D와 G는 가치 함수 V(G, D)를 가진 다음과 같은 2인용 미니맥스 게임을 한다. 

다음은 G와 D에 충분한 용량이 주어짐에 따라 훈련 criterion이 데이터 생성 분포를 복구할 수 있음을 본질적으로 보여주는 적대신경망의 이론적 분석을 제시한다. 자세한 설명은 Figure1을 참고하시오.

Figure 1 : 적대신경망은 데이터 생성 분포(검은색 점선) \(p_x\)와 생성 모델 \(p_g\)(G)(녹색, 실선)을 구별하도록 구별모델(D, 파란색, 파선)를 동시에 업데이트하여 훈련된다. 여기서 아래쪽 수평선의 영역은 z가 동등하게 샘플링 되는것을 나타낸다. 위쪽 수평선은 x영역의 일부이다. 위를 향하는 화살표는 x = G(z) 가 변형된 샘플에 대해 \(p_g\)가 불균형적인 것을 보여준다. G는 \(p_g\)의 고밀도 영역에서는 수축하고 저밀도 영역에서는 팽창한다. (a)의 적대적 쌍이 수렴되는곳을 보면 : \(p_g\)는 \(p_{data}\)와 비슷하게 보이고 D는 부분적으로 정확하게 분류했다. (b), D의 내부루프에서는 샘플들을 구별하기위해 훈련된다. \(D^*\)(x) = \( \frac {p_{data}(x)} {p_{data}(x)+p_g(x)} \) 로 수렴한다. (c), G의 업데이트 이후에는 G(z)가 더욱 원본으로 분류될 것 처럼 D의 기울기가 조정된다. (d), G와 D가 충분한 능력을 가질때 까지 몇번의 훈련과정이 지나면, \(p_g\)=\(p_{data}\)가 되는 지점에 도달하기 때문에 더이상 성능향상이 되지 않는다. D(x) = \( \frac {1} {2} \) 가 되기때문에 구별모델은 더이상 구별하지 못한다.

실제로 우리는 반복적이고 수학적인 방법으로 게임에 접근해야 한다. 훈련의 내부 루프에서 종료까지 D를 최적화하는 것은 계산상으로는 불가능하며, 유한한 데이터셋에서는 과적합이 발생한다. 대신에, 우리는 K번마다 D를 최적화 하고 한번의 G를 최적화하는 것을 번갈아 시행하였다. 따라서 G의 변화가 충분히 느리면 D 또한 최적의 수치 근처에서 유지된다. 이 전략은 SML/PCD 훈련이 학습의 내부 루프의 일부로서 마르코프 사슬에서 연소되는 것을 피하기 위해 한 학습 단계에서 다음 단계로 마르코프 사슬의 샘플을 유지하는 방식과 유사하다. 이 방식은 Algorithm 1에 명시되어있다.

 

실제로, 방정식 1은 G가 잘 학습하기에 충분한 기울기를 제공하지 않을 수 있다. 학습 초기에 G가 미흡할 때, D 는 샘플이 높은 확률로 원본데이터와 다르다는 것을 출력할 수 있다. 이 경우 log(1 - D(G(z)))는 0에 수렴한다. 이 경우 log(1 - D(G(z)))를 최소화하도록 G를 훈련하는 대신 log D(G(z)를 최대화하도록 G를 훈련시킬 수 있다. 이 목적 함수는 동일한 지점에서 G와 D가 요동치지만 학습 초기에 훨씬 더 강한 기울기를 제공한다.

 

4. Theoretical Results

G는 확률 분포 \(p_g\)를 z ~ \(p_z\)일 때 얻은 표본 G(z)의 분포로 암묵적으로 정의한다. 따라서, 우리는 충분한 양과 훈련 시간이 주어진다면 알고리즘 1이 \(p_{data}\)의 좋은 추정치로 수렴되기를 바란다. 이 섹션의 결과는 non-parametric하게 수행된다. 예를 들어 확률 밀도 함수의 공간에서의 수렴을 연구하여 무한 용량을 가진 모델을 나타낸다.

 

섹션 4.1에서 이 미니맥스 게임이 \(p_g = p_{data}\)에 대한 전역 최적점임을 보여줄 것이다. 섹션 4.2에서 알고리즘 1이 방정식 1을 최적화하여 원하는 결과를 얻는다는 것을 보여줄 것이다.

 

Algorithm 1 : 

적대신경망의 훈련을 위한 미니배치 확률적 경사 하강법. 하이퍼파라미터 k는 구별모델에 적용하기 위한 스텝을 나타낸다. 우리는 실험에서 가장 저렴한 k=1을 사용하였다.

 

1. noise prior \(p_g(z)\) 로부터 noise 시킨 m개의 미니배치 {\(z^{(1)},...,z^{(m)}\)} 샘플을 만든다.

2. 데이터 생성분포 \(p_{data}(x)\) 로부터 미니배치 m개의 샘플 {\(x^{(1)},...,x^{(m)}\)}을 평가한다.

3. 확률적 경사 상승법을 이용하여 D를 업데이트한다.

 

k번의 스텝이후 

k-1. noise prior \(p_g(z)\) 로부터 noise 시킨 m개의 미니배치 {\(z^{(1)},...,z^{(m)}\)} 샘플을 만든다.

k-2. 확률적 경사 하강법을 이용하여 G를 업데이트한다.

 

우리의 실험은 momentum을 이용한 옵티마이저를 사용했다.

 

4.1 Global Optimality of \(p_g = p_{data}\)

우선 주어진 G에 대해 최적의 D를 고려해보자.

 

Proposition 1. G가 고정 되어 있을 때 최적의 D는 아래와 같다.

증명 : 주어진 어떤 G에 대해 D의 훈련법은 V(G,D)의 양을 최대화 시키는 것이다.

임의의 \( (a,b) \in R^2\) \ {0,0} 에 대하여 함수 y → a log(y) + b log(1 - y) 는 \( \frac {a} {a+b} \)로 [0,1]에서 최대치를 달성한다. D를 \( Supp(p_{data}) \cup Supp(p_g)\) 외부에서 정의할 필요가 없으며 증명은 마무리된다.

 

D에 대한 훈련 목표는 조건부 확률 P(Y = y|x)를 추정하기 위한 로그 우도를 최대화하는 것으로 해석될 수 있다. 여기서 Y는 x가 \(p_{data}\) (with y = 1) 또는 \(p_g\)(with y = 0)로부터 오는지를 나타낸다. 방정식 1에서의 minimax 게임을 다음과 같이 재구성할 수 있다.

 

Theorem 1. 가상 훈련 기준 C(G)의 전역 최소값은 \(p_g\) = \(p_{data}\)인 경우에만 달성된다. 이 시점에서 C(G)는 다음과 같은 값을 달성합니다. - log 4.

증명 : (방정식 2에 따르면) \(p_g = p_{data}\) 에 대해 \(D^*_G(x) = \frac {1} {2} \) 이다. 따라서 \(D^*_G(x) = \frac {1} {2} \)에서의 방정식 4를 보면 C(G) = log\( \frac{1}{2} \) + log\( \frac{1}{2} \) = -log4 인것을 확인할 수 있다. 이 식이 \(p_g = p_{data}\)에 대해 최적의 C(G)값인지는 다음 식을 확인하시오.

그리고 이 식을 C(G) = V(\(D^*_G\), G)에서 빼면 다음과 같은 값을 얻을 수 있다.

KL은 Kullback-Leibler 발산이다. 우리는 이전 표현에서 모델의 분포와 데이터 생성과정에서 Jensen-Shannon발산을 발견했다.

두 분포 사이의 Jensen-Shannon 발산은 항상 음이 아니고 그것들이 같을 때만 0이기 때문에, 우리는 \(C^*\) = -log(4)가 C(G)의 전역 최소값이며, 유일한 값은 \(p_g = p_{data}\)이다. 이는 생성모델이 완벽하게 데이터를 생성했다고 본다.

 

4.2 Convergence of Algorithm 1

Proposition 2. G와 D가 충분한 능력을 가지고 있고 알고리즘 1의 각 단계에서 D는 최적의 G에 도달할 수 있으며 \(p_g\)는 정책을 개선하기 위해 갱신된다.

그리고 \(p_g\)는 \(p_{data}\)로 수렴한다.

 

증명 : 위에서 쓰인 기준과 같이 V(G, D) = U(\(p_g\), D)를 \(p_g\)의 함수로 간주한다. U(\(p_g\), D)\(p_g\) 에서 convex 하다. 볼록함수 우위의 하위 도함수는 최대치에 도달하는 지점에서 함수의 도함수를 포함한다. 이말은, 만약 f(x)=\( sup_{\alpha \in \mathcal{A}} f_\alpha(x) \) 이고 모든 \( \alpha \) 에 대해 \( f_\alpha(x) \) 가 x 에 convex 하면 \( \beta = argsup_{\alpha \in \mathcal{A}} f\alpha(x) \) 일때 \( f_{\beta}(x) \in ∂f \) 이다.

이는 해당 G가 주어진 최적 D에서 \(p_g\)에 대한 경사 하강법을 계산하는 것과 같다. \(p_g\) 에 대해 \( sup_DU(p_g, D) \) 가 유일한 전역최적점을 가지며 convex 하는것이 Thm1 에서 증명되었기 때문에 \(p_g\) 는 충분히 작게 갱신되고, \(p_g\) 가 \(p_x\) 로 수렴하므로 증명을 마무리한다.

 

실제로, 적대신경망은 함수 G(z; \(θ_g\))를 통해 \(p_g\) 분포의 제한된 부분을 나타내며, 우리는 \(p_g\) 자체보다는 \(θ_g\)를 최적화한다. 다층 퍼셉트론을 사용하여 G를 정의하면 파라미터 공간에 여러 임계점이 도입된다. 그러나 실제로 다층 퍼셉트론의 뛰어난 성능은 이론적인 보장이 없음에도 불구하고 사용하기에 합리적인 모델임을 보여준다.

 

5. Experiments

우리는 MNIST, the Toronto Face Database (TFD), and CIFAR-10 데이터셋을 이용하여 적대신경망을 훈련시켰다. G는 ractifier linear, sigmoid 활성화 함수를 섞어서, D는 maxout 을 사용하였다. D에는 Dropout이 적용되었다. 이론상으로는 G의 중간 계층에서 드롭아웃 및 기타 노이즈를 사용할 수 있지만, 우리는 노이즈를 G의 맨 아래 계층에에서 입력으로만 사용했다.

 

G로 생성된 샘플에 Gaussian Parzen window를 맞추고 이 분포에서 로그 우도를 보고하여 \(p_g\) 테스트 세트 데이터의 확률을 추정한다.

Table 1: Parzen window 기반의 로그우도 추정이다. MNIST에 표시된 숫자는 테스트 샘플에 대한 로그우도의 평균이고, 샘플에 대한 평균 오차가 계산되어 있다. TFD는 k-fold validation 을 통해 측정된 표준오류값이고 각 fold에 대한 로그우도의 평균이 계산되어 있다. MNIST에 대해서는 다른 모델들과의 실제수치가(binary가 아닌) 비교되어있다.

 

가우시안의 σ 파라미터는 validation set에서 교차검증을 통해 얻어졌다. 이 과정은 Breuleux et al.에서 소개되었고 다루기 어려운 여러 생성모델에서 쓰였다. 결과는 Table1에 보고되어있다. 확률을 추정하는 이 방법은 다소 높은 편차를 가지며 고차원 공간에서는 잘 수행되지 않지만 우리가 알 수 있는 최선의 방법이다. 표본을 생성할 수 있지만 확률을 추정할 수 없는 생성 모델의 발전은 그러한 모델을 평가하는 방법에 대한 추가 연구에 직접적인 동기를 부여한다.

 

그림 2와 3에는 교육 후 G에서 추출한 샘플이 나와 있다. 우리는 이 샘플이 기존 방법에 의해 생성된 샘플보다 낫다고 주장하지 않지만, 우리는 이러한 샘플이 적어도 문헌의 더 나은 생성 모델과 경쟁하고 있으며 적대신경망의 가능성을 강조한다.

Figure 2 : 생성된 샘플을 시각화 한것이다. 가장 우측의 열은 모델이 훈련세트를 기억하지 않는다는 것을 나타내기 위해 생성된 샘플과 가장 비슷한 훈련 샘플을 나타낸 것이다. 샘플들은 cherry-pick이 아닌 무작위로 뽑았다.대부분의 다른 심층 생성 모델 시각화와 달리 이러한 이미지는 은닉층의 조건부 평균이 아니라 모델이 생성한 실제 샘플을 표시합니다. 게다가 샘플링 과정은 마르코프 연쇄 혼합에 의존하지 않기 때문에 이들 샘플은 상관관계가 없다. a) MNIST b) TFD c) CIFAR-10 (fully connected model) d) CIFAR-10 (convolutional discriminator and "deconvolutional" generator)

 

Figure 3 : 전체 모델의 z 공간에서 좌표 간에 선형 보간하여 얻은 숫자

 

 

Table 2 : 생성 모델에서의 도전 : 모델을 포함하는 각 주요 작업에 대해 심층 생성 모델링에 대한 다양한 접근법이 직면하는 어려움을 요약했다.

 

 

6. Advantages and disadvantages

새로운 프레임워크는 이전과 비교하여 장단점이 존재한다.단점은 일차적으로 \(p_g(x)\)의 명시적 표현이 없고 훈련 중에 D를 G와 잘 동기화해야 한다는 것이다(특히 G가 너무 많은 z 값을 x의 동일한 값으로 분해하여 다양성 갖추지 못하는 "헬베티카 시나리오"를 피하기 위해 D를 업데이트하지 않고 G를 너무 많이 훈련해서는 안 된다. 장점은 마르코프 체인이 필요하지 않고, 기울기 조정을 위해 역전파만 사용되며, 학습 중에 inference가 필요하지 않으며, 다양한 기능이 모델에 통합될 수 있다는 것이다. Table2에서 적대신경망과 생성 모델의 다양한 접근을 보여주고 있다.

 

앞서 언급한 장점은 주로 계산적인 측면이다. 또한 적대신경망은 데이터 예시로 직접 업데이트되지 않고 D의 기울기 조정만으로 G에서 통계적 이점을 얻을 수 있다. 즉, 입력의 일부가 G의 매개 변수로 직접 복사되지 않는다. 적대 네트워크의 또 다른 장점은 그들이 매우 날카롭고 심지어 퇴화된 분포를 나타낼 수 있다는 것이다. 반면 마르코프 체인에 기초한 방법은 체인이 모드 간에 혼합될 수 있도록 분포가 다소 흐릿할 것을 요구한다.

 

7. Conclusions and future work

이 프레임워크는 많은 간단한 확장을 허용합니다.

 

1. G, D 양쪽에 입력으로서 c를 더하면 조건부 생성 모델 p(x | c)를 얻을 수 있다.

2. 학습된 근사 추론은 주어진 x를 예측하기 위해 보조 네트워크를 훈련함으로써 수행될 수 있다. 이것은 wake-sleep 알고리즘에 의해 훈련되는 inference net과 유사하지만, G가 훈련을 마친 후 고정된 G에 대해 inference net이 훈련될 수 있다는 장점이 있다.

3. S가 x 지수의 부분 집합인 모든 조건부 \(p(x_S | not x_S)를 파라미터를 공유하는 조건부 모델군을 훈련시킴으로써 대략적으로 모델링할 수 있다. 본질적으로, 결정론적 MP-DBM의 확률적 확장을 구현하기 위해 적대신경망을 사용할 수 있다.

4. 준지도 학습: D 또는 inference net 의 feature는 제한된 레이블 데이터를 사용할 수 있을 때 분류기의 성능을 향상시킬 수 있다.

5. 효율성 향상: 훈련 중에 G와 D를 조정하는 더 나은 방법을 찾거나 z 표본을 추출하는 더 나은 분포를 결정함으로써 훈련을 크게 가속화할 수 있다.

 

본 논문은 적대신경망의 실행 가능성을 입증하여 이러한 연구 방향이 유용할 수 있음을 시사한다.