GAN(Generative Adversarial Network) 기본 개념 되돌아보기

1. GAN의 특징

 

인공지능에서 데이터 생성이라는 새로운 분야를 선보이며 등장

 

GAN의 목적은 갖고 있는 데이터를 모방해서 새로운 데이터를 만드는 것이며, 두 개의 네트워크가 서로 목표를 달성하기 위해 적대적으로 겨루는 구조

 

 

2. GAN의 구조

 

GAN을 처음 제안한 이안 굿펠로우는 GAN을 경찰과 위조지폐범의 관계로 설명하였다.

 

https://kjhov195.github.io/2020-03-09-generative_adversarial_network/

 

GAN은 위 그림처럼 생성모델 Generator와 분류모델 Discriminator가 겨루는 네트워크로 generator는 위조지폐범, discriminator는 경찰에 비유된다.

 

위조지폐범의 목적은 경찰을 속이기 위해 최대한 진짜 지폐와 유사한 가짜 지폐를 생성하는 것이고

 

경찰은 위조지폐범이 만든 가짜 지폐와 진짜 지폐를 잘 분류하는 것을 목적으로 한다.

 

https://baechu-story.tistory.com/12

 

만약 위조지폐범의 수법이 계속 교묘해지고 진화된다면, 경찰도 어떻게든 분류를 할려고 분류 능력을 향상하도록 노력하게 된다.

 

경찰과 위조지폐범은 각자 목표를 달성하고자 자신들의 능력을 점점 향상시키는 것이다.

 

 

3. GAN의 손실함수

 

GAN의 손실함수는 generator와 discriminator의 상반된 목적을 풀기 위한 min-max problem이다.

 

$$min_{G}max_{D}V(D,G) = E_{x \sim p_{data}(x)}[logD(x)] + E_{z \sim p_{z}(z)}[log(1-D(G(z)))]$$

 

두개의 기댓값으로 구성된 손실함수를 generator와 discriminator 각자의 입장에서 살펴보면..

 

generator는 랜덤 노이즈 z로 만들어낸 가짜 데이터 G(z)를 생성해서, 가짜 데이터를 진짜 데이터로 분류할 확률인 D(G(z))를 최대한 높게 만드는 것을 목표로 한다.

 

discriminator는 다음과 같은 2가지 목표가 있다.

 

1) 실제 데이터 x를 입력받아 진짜 데이터로 분류할 확률 D(x)를 높게 만드는 것

 

2) generator가 만든 가짜 데이터 G(z)를 입력받아 진짜 데이터일 확률 D(G(z))를 낮게 만드는 것

 

극단적인 예를 들어 generator가 진짜 데이터와 완벽하게 같은 가짜 데이터를 생성한다면, 가짜를 진짜로 분류할 확률은 D(G(z)) = 1이다.

 

그러면, 손실함수의 $E_{z \sim p_{z}(z)}[log(1-D(G(z)))]$가 $-\infty$가 되면서, generator는 손실함수의 최소화를 목표로 하게 된다.

 

반면 discriminator는 가짜 데이터와 진짜 데이터를 정확하게 분류하는 것이 목표다.

 

진짜 데이터를 진짜로 분류할 확률 D(x) = 1, 가짜 데이터를 진짜로 분류할 확률 D(G(z)) = 0이 되는 것이 이상적이다.

 

이렇게 되면 손실함수가 $$E_{x \sim p_{data}(x)}[logD(x)] + E_{z \sim p_{z}(z)}[log(1-D(G(z)))] = 0$$이 되어서 최댓값을 얻게 된다.

 

즉, generator는 손실함수를 최소화하고 discriminator는 최대화하는 방향으로 학습하는 적대적 게임이다(adversarial training)

 

 

4. GAN의 예시

 

초기 GAN 모델은 이론적으로 증명 가능하며, 새로운 영역을 발견하여 많은 주목을 받았으나,

 

손실 함수의 최적해 수렴이 어렵고 복잡하며 실제 생성된 이미지는 사람이 만족하기에는 어색하고 흐릿했다.

 

이런 단점을 극복하고자 Deep Convolutional GAN(DC-GAN), Conditional GAN, Info Gan, Wasserstein GAN(WGAN), Attention GAN 등이 등장했다.

 

그리고 GAN이 응용된 Style Transfer, 딥페이크(deep fake)분야는 여러가지 흥미로운 결과를 내놓았다

 

 

 

style transfer은 이미지의 주된 형태를 갖는 content image에 원하는 스타일을 갖는 style image를 적용하여 새로운 이미지를 생성한다.

 

예를 들어 위 그림과 같이 A의 주택가 풍경이라는 content image에 여러 화가의 화풍인 style image를 적용했더니 B~F같은 그림이 나온다.

 

https://www.bbc.com/news/technology-55559463

 

 

openAI라는 AI 연구 단체에서 제시된 텍스트를 보고 이미지를 창작해 그릴 수 있는 DALL-E라는 모델을 공개한 적이 있었다.

 

간단한 이미지부터 들어본 적 없는 엉뚱한 주문이 와도 자연스럽게 그릴 수 있다.

 

위 그림은 "An illustration of a baby daikon radish in a tutu walking a dog"을 입력받고 그린 그림이다.

 

이를 통해 GAN의 수준이 동물이나 사물을 의인화하면서, 관련없는 개념도 서로 결합하는 정도까지 발전했다는 것이 입증되었다.

 

 

참조

 

 

Image Style Transfer Using Convolutional Neural Networks | Papers With Code

 

Papers with Code - Image Style Transfer Using Convolutional Neural Networks

Implemented in one code library.

paperswithcode.com

 

 

TAGS.

Comments