[Deep Learning] Generative Adversarial Networks, GAN (강의 13)

이수빈·2023년 6월 14일
0

☑️ what) GAN은 다음과 같다.

  • 적대적(Adversarial) 방법으로 Generator와 Discriminator를 학습하여,
  • 그럴듯한 가짜 데이터를 생성하는 (Generative)
  • 네트워크(Networks)

▶️ use) 가짜 데이터 생성, feature vector를 조합하여 이미지 생성하기, Image Super-resolution (화질 개선)

1 Generator


☑️ what) 실제와 비슷한 분포를 가지는 그럴듯한 가짜 데이터를 생성한다.

❓ for) GAN의 목적: 가짜 data를 만들어주는 generator를 찾자!

▶️ use) 원래 분포를 모르는 경우
가짜 데이터를 G(generator)에 넣으면, G가 가짜 분포를 실제 분포와 비슷하게 만들어준다.

2 Generator & Discriminator (Adversarial)


☑️ what)
Generator : z(랜덤 노이즈)를 입력하면, 최대한 x(실제)와 비슷하게G(z)(가짜)를 만들어 출력하는 함수.
Discriminator : 입력 데이터의 실제일 확률을 출력하는 함수. 가짜면 0, 실제면 1. G(z)x를 구분하는 역할을 한다.

how) 학습 이론

minG maxD V(D,G)=E[logD(x)+log(1D(G(z)))]min_G\ max_D\ V(D, G) = \mathbb E[logD(x) + log(1 - D(G(z)))]

  • G (generator)는 위의 수식을 최소화함으로써    D(G(z))D(G(z))가 1에 가까워지도록 한다. (G(z)G(z)가 실제와 비슷해지도록)
  • D (disciminator)는 위의 수식을 최대화함으로써  D(x)D(x)는 1로, D(G(z))D(G(z))는 0이 되도록 학습한다.D:

3. Use of GAN


D: 증가시키기, gradient = θdE[logD(x)+log(1D(G(z)))]\nabla_{\theta_d} \mathbb E[logD(x) + log(1 - D(G(z)))]
G: 감소시키기, gradient = θgE[log(1D(G(z)))]\nabla_{\theta_g} \mathbb E[log(1 - D(G(z)))]

Image GenerationFeature 더하고 빼기Image Super-resolution
GAN 형태
G(z1)G(z2)+G(z3)=G(z1z2+z3)G(z_1) - G(z_2) + G(z_3) = G(z_1 - z_2 + z_3)

0개의 댓글