작성자: 15기 우명진
generator model(위조범, 거짓 화폐를 생산함) vs. discriminative model(경찰, 위조 화폐를 구별해냄)
→ 두 모델은 서로 겅쟁을 통해 성능을 향상 시켜 나간다. (Advsersarial Model)
GAN 모델은 unsupervised learning으로, generator model은 노이즈로부터 실제 데이터와 유사한 가짜 이미지를 생성한다. 그리고 discriminator model은 fake image를 실제 데이터와 구별하여 판별하도록 학습한다.
-Generative Model과 Discriminative Model은 모두 다층 퍼셉트론이어서 Markov Chain을 사용하지 않고, backpropagation과 dropout algorithm을 통한 학습이 가능하다.
-Generative Model은 fake image를 들킬 확률이 최소화되어야 하며, Discriminative Model은 정확하게 판별할 확률이 높아야 한다.
목적함수를 통한 GAN 이해
G는 목적함수 V를 최소화하고, D는 목적함수 V를 최대화한다
> Generator 목적 관점
→ 생성한 가짜 데이터가 들킬 확률을 최소화하는 것이 목표!
> Discriminator 목적 관점
→ 진짜 데이터와 가짜 데이터를 정확하게 판단할 확률을 최대화하는 것이 목표!
분포를 통한 GAN 학습 과정 이해
-z: generator를 생성해내는 noise, z는 uniform distribution
-초록선 : generative distribution
-검은 점선: 실제 이미지의 분포
-파란 점선: discriminative distribution
+) GAN가 학습할 때는 Generator와 Discriminator 중에서 하나를 고정하고 하나만 학습함
(a) uniform distribution인 z에서 x(이미지 공간)으로 mapping이 발생함 → generator 학습
처음의 generator는 원래 이미지 분포와 달리 정확하지 않은 분포를 생성 ex) 원하지 않은 이미지가 출력됨
(b) generator가 고정되어 있는 상태에서, discriminator를 학습하였다.
학습한 discriminator는 (a)에 비해서 안정적으로 학습하는 것을 알 수 있고, 진짜 이미지에 대해서 1을 반환함.
(c) discriminator가 고정되어 있는 상태에서, generator를 학습하였다.
z에서 x로의 mapping이 (a)에 비해서 실제 이미지 분포에 가깝도록 학습되었다.
(d) GAN 학습 과정을 계속 반복하여 나타나는 결과
1) z에서 x로의 mapping이 실제 이미지와 거의 동일한 분포가 생성이 된다.
2) discriminator는 0.5의 확률을 반환(실제 이미지와 가짜 이미지 판별할 확률이 반반)
→ 이후 discriminator의 성능은 더 이상 높아지지 않는다
4. Theoretical Results
5. Experiments
GAN 코드 분석
> Generator, Discriminator Class 생성
> Loss Function, Optimizer
> Training
> Train Generator
> Train Discriminator
장점
1) Markov Chain이 필요하지 않고 backpropagation을 이용해서만 gradient를 계산한다. (한번에 샘플을 생성 가능)
2) adversarial model은 generator의 파라미터가 실제 데이터에 의해 직접 업데이트 하는 것이 아니라 discriminator의 gradient에 의해 업데이트를 하기 때문에 통계적 이점을 얻는다
3) degenerate(변형된) distribution를 표현할 수 있다
단점
1) Mode collapse: 분포의 형태를 전반적으로 맵핑하기보다, 단순히 오류를 최소화하기 위해서 최빈값에만 집중하여 학습함에 따라 실제 값(이미지 등) 중 특정한 형태만 생성
→ mini-batch discrimination, feature matching 등 도입하여 해결
2) 어떻게 평가할 것인가? : 생성된 결과가 잘 생성된 것인지 판단할 수 있는 지표가 없고, 이에 따라 학습을 얼마나 진행해야 하는지 명확한 기준이 부족하다
→ Inception Score(생성된 이미지의 다양성을 측정하는 지표) 사용하여 해결
3) Unstable Training
서로 이기려는 minimax 게임을 통해 학습하기 때문에 G와 D 간의 힘의 균형이 깨지기 쉬움
→ DCGAN 등 학습을 안정적으로 바꾸고자 구조를 새로 제안하는 모델 등장
참고한 자료들:
https://wegonnamakeit.tistory.com/54
https://hyeongminlee.github.io/post/gan001_gan/
https://www.youtube.com/watch?v=jB1DxJMUlxY
코드 링크:
https://github.com/eriklindernoren/PyTorch-GAN
댓글 영역