GAN이란?
GAN은 Generative Adversarial Network의 약자로 "생성 모델"을 뜻하는데 즉 생성 모델이 그럴듯한 가짜를 만들어내는 모델입니다.
GAN을 설명할때 다루는 대표적인 예시는 바로 "지폐 위조범& 경찰"에 관한 이야기 입니다. 위조 지폐범이 위조 지폐를 생성하게 되면 경찰은 이 지폐가 진짜인지 아닌지를 구별하게 됩니다. 이 과정을 반복하게 되면 위조 지폐범이 계속해서 더 진짜 같은 위조 지폐를 만든다는 것입니다.
GAN의 구성요소
GAN은 다음과 깉이 Generator(생성기)와 Discriminator(판별기)로 구성되어 있습니다. 이 둘을 서로 경쟁적으로 대립시켜(Adversarial) 학습을 시키는 신경망입니다.
[Discriminator(판별기)]
판별기의 역할은 진짜 데이터는 진짜로 가짜 데이터는 가짜로 구별하도록 학습하는 것입니다.
[Generator(생성기)]
생성기의 역할은 랜덤한 코드를 받아서 Discriminator(판별기)를 속이기 위한 진짜 데이터 같은 가짜 데이터를 만들게 됩니다.
GAN 수식으로 살펴보기
[Discriminator(판별기)]
V(D,G)는 GAN의 Loss함수, 목적 함수라고 불리고 D의 목적은 V(D,G)가 최대가 되도록 하는 것입니다.
Discriminator는 가짜 데이터는 0, 진짜 데이터는 1을 출력하게 됩니다. X는 진짜 데이터를 의미하고 G(Z)는 가짜 데이터를 의미합니다. 결과적으로 D는 D(x)=1, D(G(z))는 0이 되도록 해야 합니다.
[Generator(생성기)]
V(D,G)는 GAN의 Loss함수, 목적 함수라고 불리고 D의 목적은 V(D,G)가 최소가 되도록 하는 것입니다.
Generator G는 D가 가짜 데이터에 대해서 1을 출력하도록 해야 합니다. (D가 진짜 데이터를 제대로 구별하는지는 신경 쓰지 않아도 됩니다.) 결과적으로 G는 D(x)=0, D(G(z))는 1이 되도록 해야 합니다.
Reference
www.youtube.com/watch?v=odpjk7_tGY0
'Deep Learning' 카테고리의 다른 글
RNN(Recurrent Neural Networks) (0) | 2020.11.02 |
---|---|
CNN(convolutional neural network) (0) | 2020.10.07 |
활성화 함수(Activation Function)의 종류 (0) | 2020.10.06 |
Deep Learning Summary (0) | 2020.08.23 |