본문 바로가기
Study/DL

GAN - 1편 (GAN 구조,학습,어려움)

by 까망우동 2023. 7. 1.
반응형

Index

    Generative Adversarial Network (GAN)

    • Generative : 새로운 데이터를 생성해낸다. VAE는 기존의 input과 유사한 데이터를 생성했다면 GAN른 기존에 없는 새로운 데이터를 생성해낸다. 
    • Adversarial : Generator 와 Discriminator가 서로 경쟁적으로 G는 D를 속이기위한 데이터를 생성, D는 G의 fake 데이터를 골라내기위해 학습 
    • 즉 GAN은 이름 그대로 적대적인 생성 신경망으로 G와D가 적대적이면서도 서로를 보완해가며 새로운 질좋은 데이터를 만들어 내는, 대표적인 비지도학습이다. 

    • G는 생성한 fake sample이 real data에서 나온 척해서 D가 잘못판단할 확률을 maximize 하도록 학습한다.
    • D는 Generator가 생성한 데이터를 fake(0)로 제대로 판단할 확률을 높이는 방향으로 학습한다. 
    • G와 D가 학습할때는 반대쪽을 fix시켜두고 반복적으로 학습한다. (G학습때는 D를 fix)
    • 학습이 끝나면 D는 버린다. (D는 온전히 G의 학습을 위해서만 필요한 객체다) 
    • Noise vector 'z'는 대게 ~N(0,1) 혹은 U(-1,1)를 따른다고 가정한다. 

     

    Objective function 

    Loss function for GAN

    • D는 1,2번 term을 모두 maximize하려고 하고, G는 2번 term을 minimize하려고 한다. (1번은 관심없다) 
    • 이러한 2-Player minmax problem 에서는 Nash equilibrium이 solution 으로, 결국 generated distribution 과 real distribution이 동일할 때가 global optimum이 된다.

    Training GAN (Backpropagation)

    • Train D : G의 parameter θ(g)는 fix해두고 gradient ascent를 진행 (왼쪽아래)
    • Train G : D의 parameter θ(d)는 fix해두고 gradient descent를 진행 (오른쪽아래) ①,②번 방식 모두 사용 가능하지만, 학습초기에는 D대비 G의 성능이 워낙 떨어지기 때문에 D(G(z))값이 0에 가깝고, 때문에 초기 학습을 빠르게 하기 위해서는 보통 ②방식이 주로 선호된다.
    • D학습 보다는 G학습이 오래 걸리고 어렵다. 그렇기 때문에 보통 1batch당 (D를 k번 학습 + G를 1번학습) 이런식으로 세트로 진행한다. *이 때 k는 하이퍼 파라이터

     

    GAN 의 Pros & Cons

    • Pros: 비지도 학습, Generate High quality images (VAE는 원본대비 low qual), BackPropagation 으로 학습이 가능
    • Cons: ① Non-convergence, ②Mode collapes, ③Diminished gradient 문제가 있다. P(G(z)) 즉, 만들어진 G(z)의 분포를 알수 없다. G-D 한쪽이 너무 빨리 학습되는 불균형을 막으려면 parameter를 컨트롤 해가며 babysitting 해줘야함. 명확한 metric이 없다. 주요 3가지 단점에 대해서만 부연 설명을 해보면
      1. Non-Convergence : G 와 D 는 independently update 한다. 따라서 각각이 좋아지는 방향이 상대에겐 안좋은 방향일 수 있고 oscilate하게 된다면 Global optimum (Nash equilibrium)에 도달하지 못할수도 있다
      2. Diminished gradient : D가 too powerful하면 D(G(z))가 거의 0에 가까워 G학습이 잘 안된다. (반대의 경우도 마찬가지로 Gradient값이 너무 작아 업데이트가 잘 안됨)
      3. Mode collapse : D를 작 속일 수 있는 fake data 유형을 찾으면 G는 Diversity를 잃고 local optima에 쉽게 빠진다. 

     

     

     

     

     

     

     

     

    반응형

    'Study > DL' 카테고리의 다른 글

    GAN - 2편 (DCGAN, cGAN)  (1) 2023.07.02
    Variational Auto Encoder (VAE)  (0) 2023.07.01
    Auto Encoder  (0) 2023.07.01
    Attention Mechanism  (0) 2023.07.01
    RNN - 2편 (LSTM)  (0) 2023.07.01

    댓글