# AI 이론/DeepLearning

[GAN] 생성적 적대 신경망

alz 2022. 5. 12. 22:11
GAN 논문자료
GAN 딥러닝 논문 리뷰(Youtube - 동빈나)

Youtube  동빈나 님의 자료와 GAN 논문 자료를 인용하여 작성하였습니다.

 

 

GAN에 대해 설명하기 앞서, 필요한 내용인 Generative Models에 대해서 간략하게 설명하겠습니다.

 

Generative Models

Generative model이란 실존하지는 않지만 있을 법한 이미지를 생성할 수 있는 모델을 의미합니다.

 

Generative Model에 대한 설명

 

사진의 왼쪽에서 보면 분류의 경우는 클래스간의 경계를 나눈 것이고, Generative 의 경우는 데이터간의 분포를 생성한 것입니다.

 

생성모델의 목표는다음과 같습니다.

  • 입력 데이터의 분포에 근사하는 모델 G를 만드는 것

 

모델 G가 잘 작동한다는 것은 기존 이미지들의 분포를 잘 모델링 한다는 의미인데, 

이때 2014년에 제안된 Generative Adversarial Networks(GAN)이 대표적인 모델입니다.

 

 

Generative Adversarial Networks(GAN)

 

 

GAN 을 설명하기전 이해를 돕기 위해 예시를 하나 두겠습니다.

 

다음 그림과 같이 왼쪽은 경찰, 오른쪽은 위조지폐범이 있습니다. 이때 위조지폐범(생성자)은 최대한 진짜같은 화폐를 만들어서 경찰(판별자)를 속이려고 하고, 경찰은 화폐를 완벽히 판별하여 위조지폐범을 검거하는 것을 목표로 합니다.

이러한 경쟁적인 학습이 지속되다 보면, 위조지폐범은 실제 지폐와 똑같은 위조지폐를 만들 것이고, 이로 인해 경찰은 위조지폐가 진짜인지 아닌지에 대해서 구별할 수 있는 확률이 50%로 수렴 할 것입니다.

 

여기서 경찰은 분류모델(Discriminator), 위조지폐범은 생성모델 (Generator)입니다.

 

즉 GAN 이란 다음과 같이 정의 할 수 있습니다.

  • 생성자와 판별자 두개의 네트워크를 활용한 생성모델

 

다음의 목적 함수를 통해 생성자는 이미지 분포를 학습 할 수 있습니다.
여기서 G(z)은 생성자가 만들어낸 데이터, D(x)는 실제 분포로부터온 샘플입니다.

 

 

 

GAN의 수렴 과정

 

$P_g  -> P_data$ 는 Generator 가 만든 분포가 입력 데이터의 분포와 같아지도록 하는것이 목표입니다.

 

 

Global Optimality 

 

위 수식에서 X~$P_{data}(x)$ 는 실제 데이터에 대한 확률분포에서 샘플링한 데이터를 의미하고, 

Z~$P_z(Z)$는 일반적으로 가우시안 분포를 사용하는 임의의 노이즈에서 샘플링한 데이터를 말합니다.

 

우선 여기서 D가 V(D,G)를 최대화 하는 관점에서 생각해보면,

위의 식을 최대화 하기 위해서는 E_{x~$p_{data(x)}$[logD(x)] 에는 G가 포함되어 있지 않기 때문에, 생성자와 연관이 없어 생략이 가능합니다. 

 

이제 두번째 항을 최소화 시키기위해서는 log(1-D(G(z))값이 최소화 되어야 합니다.

따라서 log(1-D(G(z))는 0이 되어야 하므로 D(G(z)) 는 1이 되어야 합니다.

이 말은 , 판별자D가 진짜라고 생각할만큼의 데이터를 G가 생성해야 한다는 의미입니다.

 

이 식을 통해서, JSD($pdata \vert pg $) =0 일때 C(G) 는 -log(4)라는 값을 갖습니다.

 

 

 

'# AI 이론 > DeepLearning' 카테고리의 다른 글

Variational AutoEncoder(VAE)  (0) 2022.05.12
트랜스포머 정리(3)  (0) 2022.05.10
트랜스포머 정리(2)  (0) 2022.05.09
트랜스포머 정리(1)  (0) 2022.05.09
어텐션 메커니즘  (0) 2022.05.09