본 포스팅은 성균관대학교 이지형 교수님의 '심층신경망'강의를 참조하였음을 알립니다.
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을 수행한다.
- Generator가 진돗개만 그린다.
- Discriminator가 속는다.
- Discriminator가 Generator가 진돗개만 그리는 것을 알게 된다. Discriminator는 진돗개를 가짜로 추론한다.
- Generator가 푸들만 그린다.
- 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
- 성균관대학교 이지형교수님 심층신경망 강의
- Goodfellow, Ian J., et al. "Generative adversarial networks." arXiv preprint arXiv:1406.2661 (2014).
- Nash Equilibrium -https://ko.wikipedia.org/wiki/%EB%82%B4%EC%8B%9C_%EA%B7%A0%ED%98%95