본문 바로가기

딥러닝 & 머신러닝/논문 리뷰

[논문 리뷰] GAN - Vanilla GAN (NIPS 2014)

반응형

CNN을 활용한 분류 모델을 어느 정도 공부하고 난 후, 관심 분야인 GAN에 대해 공부하기 시작했습니다. 블로그에 올라오는 글들은 원 논문 및 논문 관련 설명들을 참고하여 작성한 것입니다. GAN은 딱히 코드를 구현하지 않고 논문 분석에 많이 집중을 했습니다. 설명에 틀린 부분이 있을 수 있습니다. 정중하게 지적해주시면 참고하겠습니다.

 


원 논문: https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf

 

 

* 이미지 데이터는 다차원 특징 공간의 한 점으로 표현되며, 우리는 이미지의 분포를 근사하는 모델을 학습시킬 수 있다.

* 사람의 얼굴에는 통계적인 평균치가 있을 수 있는데, 모델은 이를 수치적으로 표현할 수 있게 된다.

* 이미지 데이터에 대한 확률 분포: 이미지에서의 다양한 특징들이 각각의 확률 변수가 되는 분포, 즉 다변수 확률 분포 중 하나.

* 다변수 확률 분포의 예시는 다음과 같다.

* 코의 길이와 눈의 모양을 특징으로 하는 이변수 확률 분포. 확률 값이 높은 가운데로 갈수록 더 정교한 얼굴, 확률 값이 낮은 가장 자리로 갈수록 더 어색한 얼굴을 가질 수 있을 것이라 예상 가능하다.

* GAN은 이러한 이미지 데이터의 확률 분포를 학습하여 마치 진짜 같은 가짜 이미지를 생성한다.

 

 

참고 자료 (위에 두 개는 수식을 이용한 자세한 증명):

https://haawron.tistory.com/8

http://jaejunyoo.blogspot.com/2017/01/generative-adversarial-nets-2.html

http://jaejunyoo.blogspot.com/2017/01/generative-adversarial-nets-1.html

https://pathmind.com/kr/wiki/generative-adversarial-network-gan

https://www.notion.so/GAN-DCGAN-6a7f50f92fca49bda73ecf301d9a8de8

 

저자 코드:

https://github.com/goodfeli/adversarial/blob/master/__init__.py

 

참고할 만한 코드:

<파이토치>

https://github.com/Yangyangii/GAN-Tutorial/blob/master/MNIST/VanillaGAN.ipynb

<케라스>

https://github.com/eriklindernoren/Keras-GAN/blob/master/gan/gan.py

<김태영 이사님 블로그>

https://tykimos.github.io/2018/10/10/Understanding_Generative_Adversarial_Nets/

반응형