랩실에서 앞으로 할 연구가 GAN에서 더 나아가야하기 때문에 8월 과제는 GAN 공부였음
따라서 일단 GAN의 이론적인 부분을 정리해보고자 함
[GAN : Generative Adverserial Network]
game-theoretic 접근 방법
2-player가 있다고 생각하면됨 : 각각 generator과 discriminator
두 네트워크가 서로 적대적 방향의 학습을 진행하며 결론 도출 => 다루기 힘든 밀도함수들의 근사치를 신경 쓸 필요가 사라짐
generator의 역할 : true data의 분포와 동일하게 모델이 학습하여 생성해내는 데이터의 분포를 맞춰가는 역할
discriminator의 역할 : generator가 생성해낸 이미지의 real/fake를 가려내는 역할
마치 경찰과 위조지폐범과 같다는 비유를 많이 함
generator이 게으르다면 discriminator을 못 속이므로 모델 수렴이 안됨
discriminator이 게으르다면 실제와 구분을 잘 못해 모델 학습이 진행이 안됨
잠깐 minimax algorithm에 대해 알아보자
맛보기 개념) 체스나 바둑, 상대방과 번갈아 하는 게임에 있어서 상대방이 최악의 수를 둔다고 고려하지 않음
상대방이 최선의 플레이를 했을 경우 그 결과가 나에게 최소의 영향을 끼치도록 하는 것이 minimax algorithm
위 그림 ) 4수 앞을 예측한 트리 노드, 0,2,4는 내 차례이므로 max가 되도록, 1,3은 상대방 차례이므로 min이 목적임
다시 GAN으로 돌아가서,, 목적함수를 설명해보겠음
max는 discriminator에 관련된 부분,, 이부분을 하나씩 해석해보자
먼저 Pdata에 대해 discriminator은 최대한 많이 맞춰야한다는 의미,, Dd(x)=1
P(z)에 대해 generator가 생성해낸 데이터들을 discriminator가 true라고 하면 안되므로 이 부분은 1에서 빼 최소가 되도록,,//Dd(Dg(x))=0
그 후 min은 generator에 대한 부분으로 덧셈 앞의 부분은 generator가 영향을 줄 수 없음
+뒷부분에서 generator가 생성해낸 부분이 가장 적어야함
즉 수식 그대로 GAN의 목표를 해석해보자면
1) Pg => Pdata 분포와 동일해지도록해야함
2) D(G(x))가 최종적으로 1/2가 되도록 하는 것 (1/2 = 가짜 이미지와 진짜 이미지 구분 X)
이때 모든 학습이 그렇듯 local optima인지 global optima인지 확인해야함
global optima = 모든 경우에서 최적의 값임
GAN도 문제점이 있음
1) mode collapse
2) vanishing gradient
mode collapse 같은 경우 생성자가 게으른거임.. 생성자가 게을러 판별자가 한 두번 속은 타입의 이미지들만 생성함
= local minimum에 빠지게 됨
vanishing gradient 같은 경우는 생성자의 학습이 판별자의 구분보다 더 어렵나보니 학습을 반복하는 과정에서 모델과 data의 학습이 상이해져 gradient가 0에 다다르게됨 => gradient를 통해 학습을 진행해야하는데 gradient=0이니 제대로된 학습이 진행이 안되는 것임
위 문제들을 해결하기 위해 등장한 것이 WGAN
WGAN
위 vanishing gradient 문제를 해결하기 위해 wassersteint loss 적용
무슨 말이냐,,?
본래 GAN의 목표는 Pdata(x)와 동일하도록 Pmodel(x)를 학습시키는 것임
즉 data와 model의
'DL > Generative' 카테고리의 다른 글
[CEGAN] (1) | 2023.09.06 |
---|---|
[CEGAN] Classification Enhancement with Generative Adversarial Networks for Imbalanced Data Sets (0) | 2023.08.28 |
[Wasserstein GAN with Gradient Penalty : WGAN-GP] (0) | 2023.08.01 |
Wasserstein GAN (WGAN) (0) | 2023.08.01 |
Generative Adversarial Network란? (0) | 2023.08.01 |