새소식

딥러닝, 머신러닝/생성 모델

GAN 모델 기초

  • -

대표적인 생성 모델인 GAN에 대해 알아보겠습니다.

 

GAN 구조 (출처: 구글)

기본적인 모델은 random noise를 입력으로 사용한다고 가정합니다.

GAN은 generator가 만든 이미지가 discriminator가 가진 참값 이미지에 포함이 되는지를 판단하는 역할을 하는 구조입니다.

 

———————

 

Objective function (목적함수)

log loss (출처: 구글)

binary cross entropy loss

(scalar 값, 0~1 사이, positive class가 될 확률)

일반적인 로그 함수는 위 그림을 세로로 뒤집은 형태로, x 축 커질수록 y축 커지는 지수 함수의 모양이 나온다.

 

 

negative log likelihood

이를 loss minimize에 적용하기 위해 -log(negative log likelihood) 하면, positive class 확률 값(likelihood)을 최대화하게된다.

(= binary cross entropy 같은 의미)

 

 

GAN 목적함수 (출처: 구글)

negative class 확률

1 - D(G(x,z)) : 위 수식의 오른쪽 항

D(G(z)) : Discriminator output

 

E : Expectation

z~p_z(z) : 표준정규분포를 따르는 랜덤 벡터 z

 

 

Saddle point (출처: 위키피디아)

Generator 입장에서는 Discriminator와 반대로 loss를 maximize한다.

그래서 minimize와 maximize의 반대되는 최적화가 일어나는데,

x축에서 제일 높고, y축에서 제일 낮은 그런 점에 수렴하게 되고, 이는 위 그림의 saddle point(말의 안장과 비슷함)에 수렴하게 된다. 

 

 

일반적으로 discriminator보다 generator가 훨씬 학습이 어렵습니다.

 

 

Code

'딥러닝, 머신러닝 > 생성 모델' 카테고리의 다른 글

생성 모델의 기초  (0) 2022.05.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.