[GAN 기초] GAN이란 무엇인가? Loss 함수는 어떻게 계산하는가
요약
본 글에서는 GAN이란 무엇인지 설명을 하며, 생성자와 판별자를 학습하기 위한 Loss 함수에 대한 설명을 다룬다.
Appendix
GAN(Generative Adversarial Network)란
정의
- GAN이란 생성자와 구분자가 서로 학습을 하여 새로운 데이터를 생성하는 비지도 학습의 한 분야이다.
- Discriminator는 fake image는 0으로 real image는 1을 출력하도록 학습하는 과정이다.
- Discriminator만 따로 학습을 시키는 것이 아닌, Discriminator와 Generator가 번갈아 가면서 학습을 진행한다.
코드
실제 코드에서도 loss함수를 다음과 같이 구현함을 알 수 있다.
########## 로스 선언 #########
def discriminator_loss(d_real, d_fake):
real_loss = tf.keras.losses.BinaryCrossentropy()(tf.ones_like(d_real), d_real) fake_loss = tf.keras.losses.BinaryCrossentropy()(tf.zeros_like(d_fake), d_fake)
return real_loss + fake_loss
def generator_loss(d_fake):
return tf.keras.losses.BinaryCrossentropy()(tf.ones_like(d_fake), d_fake)
그 이후, discriminator와 generator가 번갈아 가며 학습을 진행한다.
for epoch in range(num):
d_mean.update_state(d_loss)
g_mean.update_state(g_loss)
'AI (Artificial Intelligence) > 논문 리뷰' 카테고리의 다른 글
[과적합 줄이는 방법2] Regularization, Argumentation (0) | 2021.02.25 |
---|---|
[과적합 줄이는 방법] Early Stopping, Dropout, Batch Normalization (0) | 2021.02.24 |
[유튜브 논문 리뷰, pr-16] You only look once: Unified, real-time object detection(2015.06) (0) | 2021.02.07 |
[개념 설명] Object Detection 평가 방법[2](IOU, AP, mAP) (0) | 2021.02.02 |
[개념 설명] Object Detection 평가 방법[1] (0) | 2021.01.31 |