GAN [1]

민재원·2022년 1월 31일
0

딥러닝

목록 보기
1/3
post-thumbnail

GAN이란?

Generative Adversarial Network이며 개인적으로 모든 AI 모델중 이름만으로 가장 잘 표현한 신경망이 아닐까 싶다. GAN은 Adversarial(적대적)인 학습으로 Generative(생성)를 하는 모델이다.

어떻게 Generation을 하나요?

이미지는 보통 RGB의 픽셀 데이터로 이루어져 있다. 그리고 사람의 얼굴에는 통계적인 평균치가 존재할 수 있다. 예를들면 눈 코 입의 위치, 크기, 모양 등등 사람은 모두 다르게 생겼지만 비슷한 분포를 가지고 있다. 그렇다면 그 분포에서 살짝의 노이즈를 준다면 그와 비슷하지만 같지는 않은 이미지를 Generation 할 수 있다. 이 원리를 이용한게 GAN의 생성 방식이다.

어떻게 학습을 하는데요?

GAN을 떠올렸을때 가장 먼저 생각나는건 지겹도록 보는 위조지폐범과 경찰의 창과 방패의 싸움이다. 위조범(Generator)는 계속 그럴싸한 Fake data를 만드는게 목표이고 경찰(Discriminator)은 위조범이 만든 위조지폐와 실제 지폐를 두고 어떤게 가짜인지 맞추는게 목표이다. 이 컨셉에서 Adversarial이라는 단어가 파생된 것 이다.
위의 논문에서 표현한 그래프를 보면

검정선 -> ground truth (원본 데이터의 분포)
초록선 -> Generator
파란선 -> Discriminator

우리의 목표는 ground truth의 분포를 표현할 수 있도록 Generator를 학습시키는 것 이다. Generator는 Discriminator와 경쟁하며 점차 ground truth와 흡사하게 되고 Discriminator의 정답률은 1/2로 수렴해간다. 즉 Generator가 너무 그럴싸하게 만들어서 Discriminator가 결국에는 찍어 맞추게 되는 것 이다.

목적함수

  • Discriminator는 Real Image는 1 Fake Image는 0으로 분류하도록 학습해야하기 때문에 위의 두 기댓값중 앞의 기댓값(원본 이미지)은 1이 되도록, 뒤의 기댓값(Generator가 만든 가짜 이미지)은 0이 되도록 목적함수가 설계되어있다. [Maximizing]

  • Generator는 뒤의 기댓값만 보면 된다. 최대한 Discriminator가 1으로 내뱉을 수 있도록 Discriminator의 학습을 교란시킨다. (이러한 컨셉에서도 서로 Adversarial의 컨셉이 들어가 있다) [Minimizing]


이번 포스트에서는 GAN의 컨셉을 위주로 정리해보았다.
다음 포스트에서는 목적함수의 수식을 증명해보고 코드와 함께 보도록 하겠다.

Image reference
paper link

profile
코딩하는 너구리

0개의 댓글