GAN

seung·2024년 8월 24일

Generative Model

목록 보기
3/7

GAN이란?

Generative Adversarial Networks의 약자이다.
concept 자체는 GAN는 Generator(G)와 Discriminator(D)로 구성되어 있다.

Discriminator(D)는 생성된 이미지가 Generator로 학습한 건지, 아니면 원래 들고 있던 데이터인지 구분하는 역할을 한다.
Generator(G)는 Discriminator(D)를 속이는 역할을 하게 된다.

즉, D와G는 서로를 상대적으로 적대시(adversary)하는 것이다.

GAN의 목적

GAN의 학습은 Jensen Shannon divergence를 최소화하는 방향으로 한다.
그 이유를 알아보자

위에서의 수식을 보면 G에 대해서 최소화하고 D에 대해서 최대화하는 것을 볼 수 있다. 문제가 어렵기 때문에 하나씩 떼어서 살펴보자

  • G가 고정되어 있고 Discriminator만 최적화를 한다면

    위의 식을 미분하여 optimal discriminator를 구할 수 있다.

  • G를 최적화 할 때 optimal discriminator를 대입하면
    optimal discriminator는 generate 함수이기 때문에 아래와 같은 식이 나온다.

Jensen Shannon divergence은 KL divergence를 적당히 두개를 sysmmetric하게 만들고 2로 나누어 준 것이다. 그래서 GAN의 lower bound는 -log4가 된다

결론은 GAN이라고 불리는 것은 모르지만 존재하는 나의 DATA 분포와 내가 최적화 할려고 하는 Generator 분포 사이의 Jensen Shannon divergence를 최소화 할려는 목적을 가지고 있다!!

하지만 두개의 disciriminator와 generator사이의 밸런스를 맞추는게 굉장히 어려워 학습하기 힘들다.

발전된 GAN 모델

GAN 모델이 나온 이후 그와 관련된 수천개의 논문이 나오고 다양한 모델들이 나왔다.(밑의 그림은 그중에 한 예시로 Deep Convolutional GAN을 소개한다.)
각각의 장단점이 있으므로 상황에 맞게 사용하자

0개의 댓글