Home [ML 머신러닝] GAN - 정복하기 (4) GAN의 종류 - 2
Post
Cancel

[ML 머신러닝] GAN - 정복하기 (4) GAN의 종류 - 2

Preview

이번 포스트또한 지난시간에 이어서 GAN의 종류에 대해 알아보는 시간을 가진다.


Semi-Supervised GAN(SGAN)

비교적 간단한 모델이다.

https://mblogthumb-phinf.pstatic.net/MjAxOTA2MTBfMTc2/MDAxNTYwMTE2MDkxOTQ0.erngcBXRXoEcyzJ_7t4rNFMy4l8J8YT7rs0oYZiBGx4g.VFTP_qnme11Yo6ojJTSfR0CM2r9a7WYSDTIYMUGFMl8g.PNG.euleekwon/image.png?type=w800

Discriminator 에게 가짜 진짜 구분의 역할 뿐만아니라, Class를 구분하여 추가로 Fake라는 Class또한 구분하게 만든것을 SGAN이라 한다.

예를들어 G가 Fake 숫자 MNIST 이미지를 생성해낸다면, Discriminator는 그 사진이 Fake 인지 아닌지를 구분함과 동시에 Real 이미지일시 Class를 구분하여 분류한다.

Mnist 데이서셋으로 가정한다면, ​Real Image 0 이 들어왔을 때, Discriminator는 0을 나타내는 one-hot vector를 반환한다.

이때, 위의 사진에서 보듯이, G에게는 Noise, One-hot-vector가 들어가게 되는데, Generator는 One-hot vector에 들어온 숫자를 통하여 Class를 생성해낸다.


Auxiliary Classfier GAN (ACGAN)

위의 SGAN과 유사하다.

하지만 가장 중요한 차이점이 하나 존재한다. D가 두개의 Classifier로 구성되어 있다는 점

즉 D는 하나의 분류기에서는 가짜, 진짜를 판별하고, 또 다른 하나의 분류기에서는 데이터의 범주 (Class)를 판별한다.

이 덕분에 ACGAN으로 생성된 데이터는 다른 분류기에 넣더라도 범주 분류에 있어서 뛰어나다고 한다. 즉 이치에 맞는 데이터를 잘 생성해낸다고 한다.

따라서 ACCGAN의 Discriminator 은 multi-task learning 이라고도 불린다.

다음은 ACGAN의 아키텍처이다.

https://i.imgur.com/IUR0e8Q.png


Reference

  1. https://ratsgo.github.io/generative%20model/2017/12/21/gans/ - ratsgo’s blog
  2. https://m.blog.naver.com/euleekwon/221559102854 - EuleeKwon’s Blog
This post is licensed under CC BY 4.0 by the author.