Generative Adversarial Nets
논문 원본 : https://arxiv.org/abs/1406.2661
1. Abstract & Introduction
minimax two-player game
- Generative model(G)와 Discriminative model(D) 을 동시에 훈련시키는 방법 제안
- G는 training data의 분포를 모사 (D가 구별하지 못하도록) => 지폐 위조범
- G의 training 과정은 D가 실수할 확률을 최대화하는 것
- D는 해당 데이터가 G가 만든 것인지, 원본인지 판별 => 경찰
- 즉, 두 모델은 서로 게임을 하듯이 경쟁하면서 학습 진행
- 학습이 잘 되었을 때(G가 training 데이터 분포에 모사) D가 입력 데이터가 실제 데이터인지 생성된 가짜 데이터인지 판별할 확률이 50%
- G와 D가 mult-layer perceptrons으로 정의된 경우,전체 시스템은 back-propagation을 통해 학습
2. Adversarial nets
- Adversarial modeling framework는 모델들이 모두 multi-layer perceptrons일 때 가장 간단하게 적용
- 첫 번째 항 : 원본 데이터 분포에서 sample x를 뽑아 logD(x)의 기대값 계산
- 두 번째 항 : 노이즈 분포에서의 sample z를 뽑아 log(1-D(G(z)))의 기대값 계산
Discriminative 입장
- 첫 번째 항 : D가 원본 데이터에 대해서 1(Real)로 판별할 수 있도록 학습
- 두 번째 항 : G로부터 생성된 이미지(가짜 데이터)로부터 0(Fake)으로 판별할 수 있도록 학습
- 즉, 아래 목적함수를 maximize하는 방향으로 학습 (최대값 0)
Generative 입장
- 첫 번째 항 : G 포함 X (고려 X)
- 두 번째 항 : G로부터 생성된 이미지(가짜 데이터)로부터 D가 1(Real)로 판별할 수 있도록 학습
- 즉, 아래 목적함수를 minimize하는 방향으로 학습 (최솟값 −∞)
초기 학습 시 문제점
- 학습 초기 G가 제대로 학습되지 않았을 때, 생성된 sample이 training 데이터와 확연히 다름
- 이로 인해 D는 높은 확률로 생성된 sample를 높은 확률로 거부할 수 있음
- 이 경우 log(1-D(G(z)))는 포화되어 gradient가 거의 0이 되므로 G의 학습이 제대로 이루어지지 않음
대안 방안
- log(1-D(G(Z)))를 최소화하는 대신 logD(G(Z))를 최대화하도록 G를 훈련
- 학습 초기에 훨씬 강한 gradient 제공
학습 과정
- (b) : Generator 고정하고 Discriminator 학습
- (c) : Discriminator 고정, Generator 학습
- 해당 과정 반복
- (d) : 원본 데이터 분포와 생성 모델 분포가 거의 비슷해짐
- 즉, D의 분포가 1/2로 수렴
- 파란색 점선 : discriminative distribution
- 초록색 점선 : generative distribution
- 검은색 점선 : data generating distribution (real)
3. Theoretical Results
증명 과정 참고 영상: https://www.youtube.com/watch?v=AVvlDmhHgC4
- G가 고정되어 있는 상황에서 D의 최적해 (수식적으로 증명)
- G의 최적해 (수식적으로 증명)
- JSD는 두 분포의 distance를 구하는데 사용 (최소값 0)
- 즉, 생성자가 잘 학습돼서 G분포와 D분포가 같아질 때 최소값 -log(4)를 가지게 됨
4. Conclusion (한계점)
Mode collapse
- 단순히 오류를 최소화하기 위해 최빈값(mode)에만 집중하여 학습
- 즉, 특정한 형태만 계속해서 생성
How to evaluate?
- 성능 평가 지표 X (사람이 판단)
- 학습을 얼마나 진행해야 하는지 명확한 기준이 부족
Unstable training
- minmax 게임 과정 속에서 G와 D 간의 힘의 균형이 깨지기 쉬움
- G가 너무 강할 경우: G는 현실적이지 않은 데이터를 생성 (하지만 D는 판별 못하는 상태)
- D가 너무 강할 경우: G는 D를 속이는 방법을 찾기 어렵게 되고, 학습이 제대로 이루어지지 않음
Reference
https://tobigs.gitbook.io/tobigs/deep-learning/computer-vision/gan-generative-adversarial-network
https://www.youtube.com/watch?v=AVvlDmhHgC4
'논문 리뷰 > CV' 카테고리의 다른 글
[X:AI] Detr 논문 리뷰 (0) | 2024.07.23 |
---|---|
[X:AI] MOFA-Video 논문 리뷰 (0) | 2024.07.20 |
[X:AI] SimCLR 논문 리뷰 (1) | 2024.07.14 |
[X:AI] Grad-CAM 논문 리뷰 (0) | 2024.07.06 |
[X:AI] Taskonomy 논문 리뷰 (0) | 2024.05.21 |