Deep Learning/GAN

[GAN] Generative Adversarial Networks(GAN) - (StarGAN, fusionGAN)

언킴 2021. 9. 8. 19:08
반응형

GAN

Generative Adversarial Networks(GAN)은 Vision 분야를 접해본 사람이라면 한 번쯤은 들어봤을 단어이다. GAN을 한국어로 번역하면 '대립쌍(Adversarial) 구조를 사용하는 생성모델'이라고 할 수 있다. 말그대로 서로 다른 대립쌍 GeneratorDiscriminator를 만들어낸다.

 

Generator(생성자)는 새로운 데이터를 계속해서 생성하고, Discriminator(구분자)는 생성된 데이터가 진짜인지 가짜인지 계속해서 구별한다. 굿펠로우에서는 Generator를 위조 지폐범, Discriminator를 위조지폐를 구분하는 경찰에 비유했다. Generator는 Random noise를 받아서 Traning set과 비슷한 데이터를 생성해 Discriminator가 분류에 성공할 확률을 낮추는 것을 목표로 계속해 학습해 나가며 실제 데이터의 분포에 가까운 데이터를 생성하게 된다.

 

처음 GAN은 이미지 생성(generation)과 스타일 변환(style translation), 얼굴 이미지 합성(face image synthesis)과 같은 vision 분야에 많이 활용되었지만, 요즘에는 음성(speech)이나 자연어(NLP) 등 이미지가 아닌 여러 task에도 활용되고 있는 추세를 보인다. 

 

starGAN, fusionGAN

일반적으로 기존의 GAN모델에서는 여러가지 task에 대해 사용하는데에 제약이 존재한다. 각 task에 대해 독립적으로 모델링을 해야하기 때문이다. 그런 문제를 해결하기 위해 StarGAN이라는 모델이 등장했다. StarGAN은 여러 도메인을 연결하는 단일 Generation을 기반으로 동작한다.

 

학습방식은 타깃 도메인 라벨을 무작위로 생성하고, 학습모델의 생성자는 이미지와 타겟 도메인을 입력으로 받고, 이미지를 해당 다겟 도메인으로 변환하는 방식으로 학습을 진행한다. 여기서 가짜 이미지와 원래 이미지의 도메인을 입력받아 다시 원래 이미지를 재구성하는 방법도 학습한다. 그 후 모델의 구별자는 실제 이미지와 진짜 이미지를 구분하고 타깃 도메인을 분류하면서 학습을 하기 때문에 starGAN은 이미지를 여러 도메인으로 자유자래로 변환할 수 있게 된다. 

 

왼쪽 : GAN, 오른쪽 : starGAN

 

fusionGAN

funsionGAN은 바로 이미지 속 특정 객체(identity)의 원하는 모양(shape)으로 만드는 데 집중을 하고 있다. fusionGAN은 최소패치(Min-Patch)라는 새로운 학습 방식을 제안했다. 인간이 이미지를 볼 때 아주 사소한 부분이 이상하면 가짜라고 느낀다는 점을 착안한 것이다. 기존 연구에서 한 이미지를 다른 이미지로 합성하기 위해서는 하나의 생성기를 만들어야 했다. (한 사람을 다른 사람과 shape하려면 사람마다 생성기를 만들어야 했다) 하지만 fusionGAN은 starGAN처럼 하나의 생성기 만으로도 이미지를 합성해낼 수 있다. 아래의 그림을 보ㅕ면 FusionGAN이 CycleGAN, DiscoGAN보다 성능이 더 좋은 것을 확인할 수 있다.

'Deep Learning > GAN' 카테고리의 다른 글

[GAN] Variants of GAN - DCGAN, LSGAN, SGAN  (0) 2021.10.30
[GAN] Probability Distribution  (0) 2021.10.30
[GAN] Generative Model  (0) 2021.10.21