[논문 리뷰] Generative Adversarial Nets

권유진·2022년 6월 26일
0

논문 리뷰

목록 보기
11/17
post-custom-banner

Abstract

  • 적대적인 과정을 통해 생성 모델을 추정하는 구조를 제안한다.
    • 생성 모델 G는 데이터의 분포를 포착하고, 구별 모델 D는 G 또는 training data로부터 오는 확률을 추정한다.
  • 학습과정에서 G는 D가 실수하게 만드는 확률을 최대화시킨다.
    • minimax two-player game과 구조가 일치한다.
    • 함수 G와 D의 임의적인 공간에서, 유일한 해결법이 존재한다.
      • G와 D 모두 1/2
  • G와 D는 MLP로 정의되고, 모든 시스템은 역전파법으로 학습된다.
  • 표본의 학습또는 생성 과정동안 Markow chain이나 unrolled approximate inference networks는 필요없다.

Introduction

  • 딥러닝의 유망함은 AI 적용에서 마주하는 데이터의 확률 분포를 표현하는 풍부하고 계층형 모델을 발견하는 것이다.
    • 자연 이미지, 담화 오디오 파동, 자연어 상징
  • 딥러닝에서 충격적으로 성공적인것은 구별하는 모델을 포함한 것이었다.
    • 고차원의 풍부한 감각 입력을 class label에 매핑
    • 해당 성공은 piecewise linear units를 사용하여 역전파법과 dropout 알고리즘을 바탕으로한다.
  • 생성 모델은 덜 중요하다.
    • 최대우도추정과 관련된 전략을 일으킨 많은 상호확률적 계산을 추정하는 어려움 때문에
    • 생성 맥락에 piecewise linear units의 이득을 레버리징하는 어려움 때문에
  • 적대적 신경망(adversarial nets)에서 생성 모델은 적대적이다.
    • 표본이 모델 구조로부터 나온 것인지 데이터 분포에서 나온 것인지 결정하는 것을 학습하는 구별 모델에 적대적
    • 생성모델은 가짜 화폐를 생성해서 발각되지 않고 사용하는 위조 팀과 유사하다
    • 반면 구별모델은 위조화폐를 탐색하는 경찰과 비슷하다.
  • 이 게임에서의 경쟁은 두 팀이 그들의 방법을 위조품과 진품을 구별할 수 없을 때까지 향상시키게 한다.
  • 해당 구조는 다양한 모델 및 최적화 알고리즘에 대한 특정 학습 알고리즘을 생성한다.
  • 생성모델이 무작위 노이즈를 부여함으로써 MLP를 통해 표본을 생성한다.
    • 구별 모델 역시 MLP 사용
  • 이러한 특별한 경우를 적대적 신경망(adversarial network)라고 부른다.
    • 두가지 모델을 매우 성공적인 오차역전파법과 dropout 알고리즘을 사용하여 학습한다.
    • 그리고 순전파법을 사용하여 생성 모델로부터 표본추출한다.
    • approximate inference 또는 Markov chain은 필요하지 않다.
  • 잠재 변수가 있는 directed graphical model의 대안은 undirected graphical model이다.
    • RBMs(restricted Boltzmann machines), DBMs(deep Boltzmann machines) 등과 같은
  • 이 모델과 같은 상호작용은 정규화되지 않은 잠재 함수의 곱으로 표현된다.
    • 무작위 변수의 모든 상태의 전역 합산/적분으로 정규화되는 함수
  • 이 양과 경사는 모두 다루기 힘들지만 MCMC 방법으로 추정 가능
  • DBN은 단일 undirected layer와 몇몇 directed layer을 포함하는 혼합 모델이다.
  • 빠른 근사 계층별 학습 기준이 존재하지만, DBN은 undirected, directed 모델과 연관된 계산적 어려움을 초래한다.
  • 로그 우도를 근사하거나 제한하지 않는 대체 기준도 제안되었다.(score matching, NCE;noise-contrastive estimation)
  • 둘 다 정규화된 상수까지 분석적으로 세분화하기 위해 학습된 확률 분포를 필요로 한다.
  • 잠재 변수의 많은 계층의 많은 생성 모델에서(DBNs, DBMs) 다루기 쉬운 unnormalized 확률 분포를 찾는 것은 불가능하다.
  • DAE, CAE와 같은 모델들은 RBMs에 적용된 score matching과 매우 유사한 학습 방식을 갖는다.
  • NCE에서 구별 학습 기준은 생성 모델에 맞춰서 사용된다.
    • 하지만 구별 모델을 학습하기 보다는 생성 모델 그 자체가 고정된 노이즈 분포로부터 생성된 데이터를 구별하는 것에 스스로 사용한다.
    • NCE는 고정된 노이즈 분포를 사용하기 때문에, 관찰된 변수의 작은 하위 집합에 대해 대략적으로 정확한 분포를 학습한 후 학습 속도가 급격히 느려집니다.
  • 일부 기술은 확률분포를 명시적으로 정의하는 것이 아니라 원하는 분포에서 샘플을 추출하도록 생성 기계를 훈련시킵니다.
    • 오차역전파법으로 학습할 수 있다는 장점 보유
    • GSN(generative stochastic network): 일반화된 DAE를 확장한 구조
    • 파라미터를 보유한 Markov Chain으로 보일 수 있다.
      • 생성적 Markov Chain의 첫번째 단계를 수행하는 기계의 파라미터를 학습한다.
  • GSN과 비교하여 adversarial nets는 Markov Chain으로 sampling하지 않는다.
    • 생성 도중에 feedback loop가 필요하지 않기 때문
    • piecewise linear units를 더 잘 활용할 수 있다.
      • 오차역전파법의 성능을 향상시키지만 feedback loop를 사용할 때 무제한 활성화 문제를 지닌다.
  • AE variational Bayes, stochastic backpropagation이 최근 생성모델의 연구

Adversarial nets

  • 적대적 모델 구조는 모두 MLP에 적용할 때 간단하다.
  • xx를 활용해 생성자의 분포 pgp_g를 학습하기 위해서 사전분포를 input noise 변수 pz(z)p_z(z)로 정해놓고 데이터 공간에 대한 매핑을 G(z;θg)G(z;\theta_g)로 나타낸다.
    • GG는 파라미터 θg\theta_g를 보유한 MLP를 나타낸 미분 함수이다.
  • 단일 scalar를 산출하는 두번째 MLP D(x;θd)D(x;\theta_d)를 정의한다.
    • pgp_g보다 데이터로부터 xx가 나올 확률 계산
    • DD가 학습 데이터와 GG로부터 추출된 올바른 라벨을 부여할 확률을 최대화하는 것을 학습
    • GGlog(1D(G(z)))\log(1-D(G(z)))를 최소화하기위해 학습
  • DDGG는 가치 함수 V(G,D)V(G,D)를 갖고 two-player minimax game을 한다.
    minGmaxDV(D,G)=ExPdata(x)[logD(x)]+ExPdata(x)[log(1D(G(z)))]min_Gmax_D V(D,G) = E_{x \sim P_{data}(x)}[\log D(x)] + E_{x \sim P_{data}(x)} [\log(1-D(G(z)))]
  • 그 다음 부분에서 적대적 신경망의 이론적 분석을 한다.
    • non-parametric limit에서 충분한 용량이 주어진 GGDD의 분포를 생성하는 데이터를 복구하는 것을 허용하는 학습 기준을 보여주는 분석
  • 반복적이고 수치적인 접근법을 사용하는 게임을 실행해야한다.
  • 훈련의 내부 반복에서 완료까지 DD를 최적화하는 것은 금지되어 있으며 데이터 셋이 유한할 때는 과적합이 발생할 수 있다.
  • 대신 대안으로 DD를 최적화하는 kk step 동안에는 GG를 1스텝 최적화한다.
    • DD는 최적의 해결법을 가깝게 유지하는 만큼 GG도 천천히 충분히 변한다.
    • 해당 전략은 SML/PCD 방법과 유사하다.
      • 내부 학습 loop의 일부로 Markov Chain에서 연소되는 것을 방지하기 위해, 한 학습 단계에서 다음 학습 단계로 Markov Chain의 샘플을 유지
  • 1번 식은 GG가 학습할 충분한 경사를 제공하지 않는다.
    • 학습 초기에 GG는 빈곤하기때문에 학습 데이터와 명확히 다르기 때문에 DD는 높은 신뢰수준으로 sample을 기각한다.
    • 이 경우에 log(1D(G(z)))\log(1 - D(G(z)))는 포화된다.
    • 오히려 log(1D(G(z)))\log(1 - D(G(z)))를 최소화하기위해 GG를 학습하기보다는 logD(G(z))\log D(G(z))를 최대화하기위해 GG를 학습할 수 있다.
    • 목적 함수는 GGDD의 같은 고정된 지점을 갖지만 학습 초기에 더욱 강한 경사를 제공한다.
  • G가 데이터 생성, D가 더 잘 구분하기 위해 학습, G는 더욱 비슷하게 생성하기 위해 학습, 이를 반복하는 pg=pdatap_g = p_{data}가 되므로 성능 향상 불가

Theoretical Results

  • 생성자 GG는 확률분포 pgp_gzpzz \sim p_z로부터 얻어진 G(z)G(z)의 분포로 정의한다.
    • 충분한 용량과 시간이 주어지면 알고리즘1이 적절할 것이다.
    • 해당 설정은 parameter 없이 setting이 가능하다.
    • 모델을 확률분포 식 공간에서 전환하는 것을 학습함으로써 한정된 용량과 함께 표현한다.
    • minimax game은 pg=pdatap_g = p_{data}에서 전역 최적값을 갖는다.
    • 아래 알고리즘이 GAN의 loss식을 최적화 시키는 것을 보여준다.(원하는 결과 얻음)
  • 알고리즘
    • 아래 과정 k번 수행
      • noise prior pg(z)p_g(z)로부터 noise sample의 미니배치를 샘플링
      • data 생성 분포 pdata(x)p_{data}(x)에서 예시 미니배치 샘플링
      • θg1mΣi=1m[logD(x(i))+log(1D(G(z(i))))]\nabla_{\theta_g} \cfrac{1}{m} \Sigma_{i=1}^m [\log D(x^{(i)}) + \log(1-D(G(z^{(i)})))]의 경사를 높여 판별자 업데이트
    • 그 다음 아래 수행
      • noise prior pg(z)p_g(z)로부터 noise sample의 minibatch 샘플링
      • θg1mΣi=1mlog(1D(G(z(i))))\nabla_{\theta_g} \cfrac{1}{m} \Sigma_{i=1}^m \log(1-D(G(z^{(i)})))의 경사를 감소시킴으로써 생성자 업데이트
    • 일반적인 SGD사용(모멘텀 사용 x)

Gloabl Optimality of pg=pdatap_g = p_{data}

  • 주어진 생성자 GG로부터 최적 판별자 DD를 고려
  • G가 고정되면, 최적 D는 pdata(x)pdata(x)+pg(x)\cfrac{p_{data}(x)}{p_{data}(x) + p_g(x)}
  • 학습 간에 아래 지표는 V(G,D)V(G,D)를 최대화하고자 한다.
    V(G,D)=xpdata(x)log(D(x))dx+zpz(z)log(1D(g(z)))dz=xpdata(x)log(D(x))+pg(x)log(1D(x))dxV(G,D) = \int_x p_{data}(x) \log(D(x)) dx + \int_z p_{z}(z) \log(1-D(g(z))) dz\\ = \int_x p_{data}(x) \log(D(x)) + p_g(x) \log(1-D(x))dx
  • D는 조건부확률 P(Y=yx)P(Y=y|x) 로그우도를 최대화한다.
    • xxpdatap_{data}에서 오면 y=1y=1, pgp_g에서 오면 y=0y=0일 경우
  • 학습 목적함수 C(G)C(G)의 전역 최소값은 pg=pdatap_g=p_{data}에서만 최소가 된다.
    • 해당 경우 C(G)=log4C(G) = -\log4
  • pg=pdatap_g=p_{data}이면, DG(x)=12D^*_G(x) = \cfrac{1}{2}
    • DG(x)=12D^*_G(x) = \cfrac{1}{2}이면, C(G)=log12+log12=log4C(G) = \log \cfrac{1}{2}+\log \cfrac{1}{2} = -\log 4이기 때문
    • C(G)=V(DG,G)C(G)=V(D^*_G,G)를 통해 C(G)=log4+KL(pdatapdata+pg2)+KL(pgpdata+pg2)C(G) = -\log 4 + KL(p_{data}||\cfrac{p_{data}+p_g}{2}) + KL(p_g||\cfrac{p_{data}+p_g}{2}) 얻음
      • KL은 Kullback-Leibler divergence이다.
        • 모델의 분포와 데이터 생성 과정 사이의 Jensen-Shannon 이전 표현에서 인지한다.
          • C(G)=log(4)+2JSD(pdatapg)C(G) = -\log(4) + 2 \cdot JSD(p_{data}||p_g)

Convergence of Algorithm1

  • G와 D가 충분한 용량과 알고리즘의 단계를 갖고 있다면, 판별자는 최적의 G와 pgp_g에 도달하고 pgp_g는 아래 식을 향상시키기위해 업데이트 된다.
    Expdata[logDG(x)]+Expg[log(1DG(x))]E_{x \sim p_{data}}[\log D^*_G(x)] + E_{x \sim p_{g}}[\log(1-D^*_G(x))]

Advantages and disadvantages

  • 단점은 주로 pg(x)p_g(x)의 분명한 표현이 없고 D는 학습도중에 G와 동일화되야만한다는 것이다.
    • 특히, D의 업데이트 없이 G는 너무 많이 학습되면 안된다.
      • Helvetica scenario를 피하기 위해(G는 pdatap_{data}의 다양성을 갖기 위해 xx와 같은 값으로 너무 많은 z값을 붕괴)
  • 장점은 Markov Chain이 필요하지 않고 역전파법이 사용된다는 것이다.
  • 계산가능하다는 장점도 보유
    • 적대 모델은 데이터로 직접 업데이트 하지않고 생성자로부터 통계학적 이득을 본다. 또한 판별자를 통해 경사를 흐른다.
  • 날카롭고 퇴화된 분포 나타내기 가능

Conclusions and future work

  1. 조건부 생성 모델 p(xc)p(x|c)GGDD의 input으로 cc를 추가함으로써 얻을 수 있다.
  2. 학습된 근사 추론은 보조 신경망을 학습해 xx로부터 zz를 예측함으로써 수행할 수 있다.
    • 추론 신경망이 generator 신경망 학습 후 고정된 채로 학습할 수있다는 장점 보유
  3. 파라미터를 공유하는 조건부 모델군을 학습함으로써 모든 조건부를 대략적으로 모델링할 수 있다.
    • GAN을 사용해 결정론적 MP-DBM의 확률적 확장을 구현 가능
  4. 반정형학습: Discriminator 또는 추론 신경망으로부터의 feature는 라벨링된 데이터가 부족할 때 성능 향상에 사용할 수 있다.
  5. 효율적인 향상: G와 D를 조정하거나 zz를 더 나은 분포로부터 추출함으로써 학습을 가속화할 수 있다.
profile
데이터사이언스를 공부하는 권유진입니다.
post-custom-banner

0개의 댓글