생성 모델을 훈련하기 위해 적대적인 과정을 사용하는 새로운 프레임워크를 제안한다. 생성 모델 G와 판별 모델 D 두 개를 동시에 훈련시킨다.
G : 데이터 분포를 잡아내는 생성 모델
D : 샘플이 G가 아닌 훈련 데이터에서 나왔을 확률을 추정하는 판별 모델
G의 훈련은 D가 실수를 저지르도록 하는 확률을 최대화하는 방향으로 이루어진다. 즉 G가 훈련 데이터 분포를 복원하고 D가 모든 상황에서 1/2인 유일한 해가 존재한다. 다층 퍼셉트론으로 G와 D를 정의된다면, 역전파 알고리즘을 사용하여 전체 시스템을 훈련시킬 수 있다.
딥러닝 생성 모델은 최대우도 추정과 관련된 다양한 비현실적인 확률 계산을 근사화하는 어려움과 생성적 맥락에서 특정 부분의 이점을 활용하는 어려움이 존재한다. 이러한 어려움을 우회하는 새로운 생성 모델 추정 프로세스를 제안한다.
제안된 적대적 네트워크 프레임워크에서 생성 모델은 적대적인 상대인 판별 모델과 경쟁한다. 판별 모델은 샘플이 모델 분포에서 왔는지 아니면 데이터 분포에서 왔는지를 판단하는 방법을 학습한다.
생성 모델은 위조 화폐를 생산하고 감지되지 않고 사용하려는 위조팀에 비유할 수 있으며, 판별 모델은 위조 화폐를 감지하려는 경찰에 비유할 수 있다. 이 게임에서의 경쟁은 위조팀과 경찰 모두가 위조품이 진짜와 구별할 수 없을 때까지 방법을 개선하도록 동기를 부여한다.
이 논문에서는 생성 모델이 임의의 노이즈를 다층 퍼셉트론을 통해 통과시킴으로써 샘플을 생성하고, 판별 모델도 다층 퍼셉트론인 특수한 경우를 탐구한다. 이 특수한 경우를 적대적 네트워크라고 한다. 이 경우에는 매우 성공적인 역전파와 드롭아웃 알고리즘만을 사용하여 두 모델을 훈련시킬 수 있으며, 생성 모델에서는 순전파(?)만을 사용하여 샘플링할 수 있다. 근사 추론이나 마르코프 체인은 필요하지 않다.
생략
적대적 모델링 프레임워크는 모델이 모두 다층 퍼셉트론인 경우에 가장 직관적으로 적용할 수 있다.
pg : 데이터 x에 대한 생성자의 분포
pz(z) : pg를 학습하기 위해 입력 노이즈 변수에 대한 사전확률
G(z; θg) : 데이터 공간으로의 매핑G : 다층 퍼셉트론에 의해 표현되는 미분 가능한 함수
θg : 매개변수
D(x; θd) : 두 번째 다층 퍼셉트론, 단일 스칼라를 출력
D(x) : x가 데이터에서 나왔을 확률
D를 학습하여 훈련 샘플와 G에서 생성한 샘플에 대해 올바른 레이블을 할당하는 확률을 최대화한다. 동시에 G를 학습하여 log(1 − D(G(z)))를 최소화한다. 즉 D와 G는 value function V(G,D) 를 가진 두 플레이어 미니맥스 게임을 진행한다.
다음 섹션에서는 G와 D가 충분한 용량을 갖는다면(즉, 비모수적인 한계에서) 데이터 생성 분포를 복원할 수 있는 훈련 기준임을 보여준다. 훈련의 내부 루프에서 D를 완전히 최적화하는 것은 계산상 불가능하며, 유한한 데이터셋에서는 과적합으로 이어진다. 대신, D를 최적화하는 k 단계와 G를 최적화하는 단계를 번갈아 가면서 진행다. G가 충분히 천천히 변화한다면 D는 최적해에 가까운 상태를 유지한다. Algorithm 1에서 설명한다.
생성적 적대 네트워크는 데이터 생성 분포(px, 검은색 점선)와 생성 분포(pg(G), 초록색 실선)의 샘플을 구별하도록 판별 분포(D, 파란색 점선)를 동시에 업데이트하여 훈련된다.
위로 향하는 화살표는 매핑 x = G(z)가 변환된 샘플에 비균일한 분포 pg를 부여하는 방식을 보여준다.
G는 pg의 밀도가 높은 영역에서는 수축하고, pg의 밀도가 낮은 영역에서는 팽창한다.(a) D는 일부 부분적으로만 정확한 분류기이다.
(b) 알고리즘의 내부 루프에서 D는 데이터 샘플과 구별하기 위해 훈련되며, D* (x) = pdata (x) / (pdata (x) + pg (x))에 수렴한다.
(c) G를 업데이트한 후, D의 그래디언트는 G(z)가 데이터로 분류될 가능성이 더 높은 영역으로 흘러가도록 안내한다.
(d) 훈련의 여러 단계를 거친 후에는 G와 D가 충분한 용량을 갖고 있으면 pg = pdata가 되는 지점에 도달한다. 판별자는 두 분포를 구별할 수 없으며, 즉 D(x) = 1/2이다.
학습 초기에 G가 좋지 않을 때, D는 훈련 데이터와 명백히 다른 샘플을 높은 확신으로 거부할 수 있으며 이 경우 log(1 − D(G(z)))가 포화다. log(1 − D(G(z)))를 최소화시키기 위해 G를 훈련시키는 대신, log D(G(z))를 최대화하는 방식으로 G를 훈련시킬 수 있다. 이 목적 함수는 G와 D의 동역학의 고정점을 동일하게 유지하지만, 학습 초기에는 훨씬 강력한 그래디언트를 제공한다.
생성자 G는 z ∼ pz일 때 얻은 샘플 G(z)의 확률 분포 pg를 암묵적으로 정의한다. 용량과 훈련 시간이 충분하다면 알고리즘 1이 pdata의 좋은 추정값에 수렴기를 기대한다.
판별자 D의 훈련 기준은 임의의 생성자 G에 대해 V(G, D)를 최대화하는 것이다. 즉 x가 pdata(이때 y = 1)에서 온 것인지 pg(이때 y = 0)에서 온 것인지를 추정하는 조건부 확률 P(Y = y|x)의 log-likelihood를 최대화하는 것으로 해석할 수 있다.
적대적 네트워크를 다양한 데이터셋에 대해 훈련시켰다. 생성자와 판별자 네트워크는 다층 퍼셉트론을 사용하였고, 생성자는 ReLU와 시그모이드 활성화 함수를 혼합하여 사용하였으며, 판별자는 maxout 활성화 함수를 사용하였다. Dropout을 판별자 네트워크에 적용하였다. 이즈를 생성자 네트워크의 가장 하단 레이어의 입력으로만 사용했다.
생성자 G로 생성된 샘플에 가우시안 파르젠 창을 적합시켜 pg에서 테스트 세트 데이터의 확률을 추정하고, 이 분포에 대한 log-likelihood를 보고했다. 가우시안의 σ 매개변수는 검증 세트에서 교차 검증을 통해 얻었다.
단점으로는 pg(x)의 명시적인 표현이 없고, D와 G의 동기화가 필요하며, 복잡한 분포를 모델링하는 데 어려움이 있을 수 있다.
G를 D를 업데이트하지 않고 너무 많이 훈련시키면 G가 너무 많은 z 값을 동일한 x 값으로 축소하여 충분한 다양성을 갖지 못해 pdata를 모델링하기에 충분한 다양성을 갖지 못하는 "Helvetica 시나리오”가 생긴다
장점으로는 마르코프 체인이 필요하지 않으며, 그래디언트를 통해 학습하고, 추론이 필요하지 않으며, 다양한 함수를 모델에 통합할 수 있다.
또한 생성자 네트워크가 데이터 샘플로 직접 업데이트되지 않고 판별자를 통해 그래디언트만 흐르기 때문에 통계적 이점을 얻을 수 있으며(즉 입력 구성 요소가 생성자의 매개변수로 직접 복사되지 않는다), 날카롭거나 퇴화 분포를 표현할 수 있다.
본 논문은 적대적 모델링 프레임워크의 실용성을 입증하며, 이러한 연구 방향이 유용할 수 있다는 것을 시사한다.