부스트 캠프 ai tech 9주 2일차 Conditional Generative Model


Conditional Generative Model

  • 사용자가 컨트롤이 가능한 Generative Model
  • 서로 다른 두 도메인을 변화시켜주는 Task
  • 통역모델, 음성의 고품질 전환, 요약모델 등 다양한 분야에서 응용가능하다

Conditional GAN

랜덤으로 생성되는 Latent Noise z 만 받는 GAN과는 다르게 latent Noise z + Conditional Input이나, domain Data의 형식으로 받는다

  • CV 응용분야
    • Style Transfer
    • Super resolution
    • Colorization

Super Resolution

  • 해상도가 낮은 이미지를 높은 이미지로 변환시키는 Task
  • Super Resolution을 위한 기존의 Naive Regression model에서는 MAELoss나 MSELoss를 사용
    • MAE와 MSELoss는 이미지를 전체 이미지의 평균값으로 생성하는 경향이 존재해서 이미지가 뿌옇게 생성됨
  • Super Resolution GANLoss를 이용하여 좀더 선명한 품실의 image를 얻어냈다
    • GAN Loss는 전체 이미지의 분포로 접근해서 생성하는 경향이 있었기에 MAE, MSE에 비해서 덜 뿌연 이미지를 생성

Image Translation Model

Pix2Pix

  • Image Translations Task를 위한 GAN model

  • Generator는 Segmentation Masking Data를 사용하여 이미지를 생성한다

  • Discriminator는 Segmentation Masking Data + image를 가지고 진짜인지 가짜인지 판별한다

  • Total Loss

    • GAN Loss + L1 Loss
      • 논문에서는 GAN Loss로 Cross Entropy를 사용
    • L1 Loss : 형태는 Ground Truth와 비슷하지만 Blurry한 이미지가 생성
    • GAN Loss : Sharp한 이미지가 형성되지만 형태가 불안전한 이미지가 생성

$$
G^{*} = arg, \underset{G}{min}, \underset{D}{max}, \mathcal{L}_{cGAN}(G,D) + \lambda \mathcal{L}_{L1}(G)
$$

CycleGAN

  • Pix2Pix와 같은 Image Translation Model 이지만 Unpair Data를 변환시켜줄 수 있다
    • Pix2Pix의 Pair Image라는 제약상황에서 벗어날 수 있다
  • Generator
    • Input으로 변환시킬 Image를 받는다
    • Unet의 Decoder처럼 단계적으로 Size를 확장시키면서 생성하는구조의 Generator를 가진다
  • Discriminator
    • Input으로 Image를 받고 Real, Fake를 판단
    • PatchGAN의 형태를 가짐
  • CycleGAN에서는 2개의 Discriminator와 2개의 Generator가 존재해서 서로 Cycle을 이룬다
  • Total Loss
    • GAN Loss + Cycle Consistency Loss
    • GAN Loss : adversarial losses를 적용
    • Cycle Consistency Loss : mode collapse 문제를 막기위해 도입한 함수
      • 변환된 이미지를 재변환(reconstruct)시켰을 때 Real Image사이의 L1 Distance Loss

$$
\mathcal{L} = \mathcal{L}_{GAN}(X \rightarrow Y) + \mathcal{L}_{GAN}(Y \rightarrow X) + \mathcal{L}_{cycle}(G, F)
$$

Perceptiaul Loss

  • GAN은 학습시키기 힘들다

  • High quality output을 위한 Loss

  • Adversarial Loss

    • 학습과 구현의 난이도가 높다
    • Data 만 존재하면 Pretrained 모델이 없어도 좋은 성능을 낼 수 있다
  • Perceptiaul Loss

    • 학습 및 구현의 용이성
    • Pretrained 모델을 통해서 만 구현이 가능

Perceptiaul Loss 구조

Perceptiaul Loss는 다음과 같이 이미지를 변환시켜주는 Image Transform Network과 pretrained Model로 이루어진 Loss Network 2개로 구현 할 수 있다.
우선 Image Transform Network는 바꿀 이미지를 넣어서 새로운 이미지로 생성하는 역할을 한다. Loss Network는 생성된 이미지 $\hat{y}$, 이미지를 바꾸고싶은 Style Target $y_{s}$와

reference

부스트 캠프 ai tech 4주 5일차 DL Basic (9)


GAN

  • 적대적 생성모델
  • 노이즈로부터 데이터를 생성하는 Generator와 데이터가 진짜 데이터인지 생성된 데이터인지를 판단하는 Discriminator 2개의 구조로 이루어져 있다
  • Generator와 Discriminator는 서로의 Loss값을 최대로 하는 방향으로 학습을 하려 한다
    • Generator는 Discriminator의 판단한 결과로 실제 데이터와 유사하게 학습하는 방향으로 학습한다
    • Discriminator는 이진분류기로 실제데이터와 생성데이터를 분류한다
  • GAN을 아래와 같이 표현이 가능하다.
    $$
    min_G, max_D, V(D,G) = \mathbf{E}{x\sim p{data}(x)}[\operatorname{log}D(x)] + \mathbf{E}{z \sim p{z}(z)}[\operatorname{log}(1 - D(G(z)))]
    $$

GAN & VAE

  • VAE
    • 학습이 안정적이다
    • 결과물이 흐릿하게 나올 확률이 높다
    • 학습 데이터에 있는 데이터와 비슷하게 나온다
      • 새로운것을 만들어내지는 못함
  • GAN
    • 학습이 불안전하다
    • 출력물이 뚜렷한 편이다
      • 새로운 분포를 만들 수 있다
  • 최근에는 VAE또한 많이 발전해서 output이 GAN 이상의 것들을 보여준다

    reference

  • Naver Connect Boostcamp - ai tech