2021. 5. 29. 22:38ㆍ민공지능/논문
Generative Adversarial Networks
Proceedings of the 27th International Conference on Neural Information Processing Systems 2014
Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
https://ysbsb.github.io/gan/2020/10/07/Generative-Adversarial-Networks.html
<간단 설명>
첫 번째 단계에서 Discriminator(판별자)를 훈련한다. train set에서 실제 이미지 배치를 샘플링하고 생성자에서 생성한 동일한 수의 가짜 이미지를 합친다. 가짜 이미지의 label은 0으로 세팅하고 진짜 이미지는 1로 세팅한다. 판별자는 binary(sigmoid) crossentropy를 사용해 한 step 동안 이렇게 label된 배치로 훈련한다. 이 단계에서 역전파는 판별자의 가중치만 최적화한다.
두 번째 단계에서 Generator(생성자)를 훈련한다. 먼저 생성자를 사용해 다른 가짜 이미지 배치를 만든다. 다시 판별자를 사용해 이미지가 진짜인지 가자인지 판별한다. 이번에는 배치에 진짜 이미지를 추가하지 않고 label을 모두 1(진짜)로 세팅한다. 이는 의도적으로 가짜 이미지를 진짜 이미지로 믿게 만드는 것이다. 이 단계 동안에는 판별자의 가중치를 동결하여 역전파는 생성자의 가중치에만 영향을 미치도록 한다.
생성자가 입력으로 받는 것은 판별자를 통해 전달되는 Gradient가 전부다. 판별자의 성능이 좋아질수록 간접 Gradient에 진짜 이미지의 정보가 많이 담겨 생성자의 성능이 크게 향상된다.
Generator는 가짜 샘플을 생성하고 진짜 샘플과 구분할 수 없게 만들고 싶어 하며,
Discriminator는 진짜 샘플을 진짜로, 가짜 샘플을 가짜로 판별하고 싶어한다.
그래서 이 둘을 경쟁시키면서(Mini-max Game) 서로의 성능을 끌어올려
Generator가 진짜 샘플과 최대한 비슷한 결과물을 만들어내도록 한다.
D와 G는 value function V(G, D)라는 두 명의 플레이어가 있는 minmax game을 플레이한다.
위의 수식을 G에서는 'min(최소화)'시키는 방향으로, D는 'max(최대화)'하는 방향으로 가게하는 것이다.
즉, D입장에서 위의 손실 함수는 큰 값을 가질수록 성능이 좋으며 G입장에서는 작은 값을 가질수록 성능이 좋다.
Discriminator
Generator
처음 Generator가 생성한 결과물은 엉터리다. 이러한 엉터리 결과를 보고 Discriminator는 아주 쉽게 가짜라고 판별할 수 있다. 따라서, 학습 초기에 D(G(z))의 값은 0에 가깝다. (binary crossentropy를 사용해서 진짜면 1, 가짜면 0으로 판별)
log(1-x)에서 x에 0과 가까운 값을 대입하면 기울기의 절댓값이 생각보다 작다.
log(x)에서 x에 0에 가까운 값을 대입하면 기울기가 거의 무한대가 된다. 이는 Dicriminator가 초기에 가짜라고 확신하는 상황에서 최대한 빨리 벗어나게 해 주며 Dicriminator가 어느 정도는 헷갈리게 만든다.
GAN의 loss 최적화 시 "미분값", 즉 기울기를 이용한 오차역전파 방법을 사용하여 log(1-x)를 최소화 하기 보다는 log(D(G(z))를 최대화하여 수렴이 빠르도록 해준다.
참고한 링크 :
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture13.pdf
https://dongsarchive.tistory.com/31
* LSGAN
https://leechamin.tistory.com/227
'민공지능 > 논문' 카테고리의 다른 글
KLUE: Korean Language Understanding Evaluation(2) (0) | 2021.07.12 |
---|---|
Multi-Path and Group-Loss-Based Network for Speech Emotion Recognition in Multi-Domain Datasets (0) | 2021.07.02 |
Speech emotion recognition using deep 1D & 2D CNN LSTM networks (0) | 2021.06.16 |
GPT-2 (Metrics : PPL, BPB, BPC) (0) | 2021.05.28 |