GAN(Generative Adversarial Network)

J·2021년 5월 31일

심층신경망

목록 보기
1/1

본 포스팅은 성균관대학교 이지형 교수님의 '심층신경망'강의를 참조하였음을 알립니다.
GAN은 기존의 모델과는 다르게 어떠한 네트워크가 아니라 시스템이다. 많이 볼 수 있는 discriminative model은 P(Y|X)를 추정하는데, GAN의 경우에는 P(X)를 modeling한다. P(X)를 modeling하여 새로운 이미지를 생성해낸다. target하는 이미지를 어떤 n차원에서 확인하였을 때 특정한 분포를 가지고 있을 것이다. 이 분포에서 추출하여 이미지로 변환하면 target처럼 보인다. 하지만 training data에 존재한 이미지는 아니다.

  • Generative models은 주어진 데이터의 분포를 모델링한다.
  • 이를 통해 실제 이미지와 아주 유사한 데이터를 생성해낼 수 있다.
  • 생성을 위해 sampling method가 필요하다

GAN

  • discriminator와 generator 두개의 neural network로 이루어진 시스템이다.
  • optimal discriminator가 이미지 또는 fake 이미지를 보고 진짜인지 가짜인지 구분 못하는 순간이 optimal point다.

Discriminator

  • Discriminator는 실제 이미지와 가짜 이미지를 판별한다.
  • Discriminator가 잘 구분하지 못하면 Generator가 quality 낮은 이미지를 생성해도 속을 수 있기 때문에 K:1의 비율로 Discriminator를 많이 학습한다.

Generator

  • Generator는 Discriminator가 속을만한 이미지를 생성하려고 한다.
  • Generator는 real data의 distribution을 학습하게 된다.

Advantage of GAN

  • Maximum Likelihood Estimation을 포함하지 않기 때문에 clear한 이미지가 생성된다.
  • Generator는 training image를 본 적이 없기 때문에 overfitting 되지 않는다.
  • GAN은 distribution의 modes를 잘 포착한다.

cf) AutoEncoder의 문제

  • random noise z를 올바르게 선택하기 어려움.(VAE에서 cover됨)
  • MSE loss로 인해서 quality가 낮다.(모든 training data와 유사하게 하는 이미지 생성) + blur현상

Issue of GAN

  • Nash equilibrium(Optimal Solution)을 달성하기가 어렵다. -> 수렴하지 않을 수 있다.
내시 균형(Nash equilibrium)은 게임 이론에서 경쟁자 대응에 따라 최선의 선택을 하면 서로가 자신의 선택을 바꾸지 않는 균형상태를 말한다. 상대방이 현재 전략을 유지한다는 전제 하에 나 자신도 현재 전략을 바꿀 유인이 없는 상태를 말하는 것으로 죄수의 딜레마(Prisoner's Dilemma)와 밀접한 관계가 있다.
  • Generator의 목적은 실제와 같은 이미지를 생성하는 것이지만 loss로 주어지는 목적은 Discriminator를 속이는 것이다. 실제 목적과 loss의 목적의 불일치로 문제가 발생한다.

Mode Collapse

  • Generator가 쉽게 Discriminator를 속이는 방법은 어떤 한 mode에 대해서만 이미지를 생성하는 것이다. 이 문제가 일어나는 순서는 아래와 같다. '개'에 대한 GAN을 수행한다.
  1. Generator가 진돗개만 그린다.
  2. Discriminator가 속는다.
  3. Discriminator가 Generator가 진돗개만 그리는 것을 알게 된다. Discriminator는 진돗개를 가짜로 추론한다.
  4. Generator가 푸들만 그린다.
  5. Discriminator가 Generator가 푸들만 그리는 것을 알게 된다. Discriminator는 푸들을 가짜로 추론한다.

이러한 과정이 반복되고, Genetor는 진돗개 -> 푸들 -> 시바견 -> 포메라이언 -> 시베리안 허스키 -> 진돗개... 와 같은 순환을 반복한다.

  • mode collapse의 원인은 discriminator를 속이려고만 하기 때문이다.

solution1 - Feature matching

  • Discriminator를 속이려고만 하는 대신에 실제 이미지와 feature값이 유사한 이미지를 생성하게 한다. GAN model이 학습시 불안정할 때 효과적이다.

solution2 - Historical Averaging

  • 기존의 historical average와 크게 차이나게 업데이트가 안되도록 한다. generator가 mode를 돌아가며 가짜이미지를 생성하는 것을 막는다.

solution3 - Minibatch Discrimination

  • mode collapse가 일어났을 때 생성된 이미지는 서로 비슷하다. real 이미지와 fake 이미지를 따로 입력한다. 이 때 minibatch의 유사도를 측정하여 discriminator에게 전달한다. discriminator는 유사도가 높은 경우 fake이미지로 판단하기 쉬워진다. 이 때문에 Generator는 Dicriminator를 속이기가 어려워져서 비슷한 이미지만 생성하지 않고 다양한 이미지를 생성하게 된다. 이를 통해 mode collapse현상에서 탈출한다.

Reference

  1. 성균관대학교 이지형교수님 심층신경망 강의
  2. Goodfellow, Ian J., et al. "Generative adversarial networks." arXiv preprint arXiv:1406.2661 (2014).
  3. Nash Equilibrium -https://ko.wikipedia.org/wiki/%EB%82%B4%EC%8B%9C_%EA%B7%A0%ED%98%95
profile
I'm interested in processing video&images with deeplearning and solving problem in our lives.

0개의 댓글