본문 바로가기
Study/DL

GAN - 2편 (DCGAN, cGAN)

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

Index

    Deep Convolutional GAN (DCGAN)

    • GAN에 CNN을 적용한 모델로, generator가 vector arithmetic 속성을 가지고 있는게 특징인데, G의 input으로 사용되는 latent vector 안에서 연산을 함으로서 output으로 생성할 이미지를 어느정도 조정할 수 있다는 뜻이다.
    • 즉 어느정도 특정 요구사항에 맞춘 generate가 가능한 모델이다. 
    • G는 fractionally-strided 혹은 transposed convolution 방식을 활용해서 up-sampling을 진행한다. 
    • D는 Maxpooling 대신 stride를 통해 down-sampling 하고, FC Layer는 사용하지 않는다. (분류문제가 아니기 때문)
    • G,D 모두 batch normalization을 사용하고, activation function의 경우 G는 ReLU, D는 LeakuReLU를 사용한다.

    DCGAN

    • Vector arithmetic 은 다소 heuristic한 방법으로 진행된다. 1) 많은 이미지를 생성한다 2) 이미지를 특징별로 분류한다 3) 각 특징에 해당하는 latent vector 평균을 구한다. 
    • 예를들어 아래와 같이 사람이미지를 많이 만들어 놓고 안경쓴 남자, 안쓴 여자 이미지로 분류하고 각 분류별 latent vector를 평균낸다. 
    • 그렇게 계산한 latent vector 를 통해 interpolation도 가능하다. 예를들어 당나귀,얼룩말에 해당하는 v,w 두개의 latent vector를 가지고 (4v+w)/5 하면 당나귀에 매우 가까운 얼룩말이 탄생할 수 있다. 

    vector arithmetic

     

    Conditional GAN (cGAN)

    • G와 D 모두에게 extra information이 condition(아래 그림에선 'y')으로 주어지는 모델이다. 
    • Condition(y)은 Class label과 같은 값들로, condition이 주어진 다는것은 일종의 supervised GAN으로 볼수있다

    cGAN

    Pix2Pix with cGAN 

    • image(condition) - to - image(output) translation task. 즉, condition도 이미지도 사용하는 것. 주로 low input → high input으로 변환하고 싶을때 사용한다. 
    • 바로 위 그림과 혼동을 위해..변수 먼저 설명하면 x=condition , y=real data, z=latent vector
    • 아래 목적함수를 보면 L1 Term이 추가되었는데, Generator가 condition(x)을 통해 만든 fake 이미지 G(x|z)가 real image(y) 와 pixel 별로(L1) 얼마나 비슷한지 계산하는 것이다. 
    • cGAN term만 있으면 이미지가 선명한데, real 이미지(y)와 pixel 위치가 안맞을 수 있다. ↔ 반대로 L1 term만 있으면 pixel 위치는 잘맞는데 output 이미지가 blurry 하다. 

    반응형

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

    GAN - 1편 (GAN 구조,학습,어려움)  (0) 2023.07.01
    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

    댓글