ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 📷 Conditional generative model
    CS 공부/AI 2023. 4. 5. 03:33

    Conditional generative mode


    • Generative model과 Conditional generative model
      • Generative model: random sample을 생성
        • 이미지 스타일 변환, 채색화
        • Super resolution (저해상도 -> 고해상도)
        • 게임 테마 바꾸기
      • Conditional geterative model: 주어진 조건에서 random sample을 생성 
        • 저해상도 오디오 고해상도로 바꾸기
        • 중국어 문장 영어 문장으로 번역하기
        • 제목과 부제목만 주고 전체 기사 글 생성
    • GAN(Generative Adversarial Network)
     

    Latent variable model (GAN, Diffusion model)

    Maximum Likelihood Learning 훈련 세트가 주어지면, 우리는 generative model 학습 과정을 모델 계열에서 가장 근사적인 밀도 모델을 찾는 것으로 생각할 수 있다 그렇다면 approximation이 우수하다는 것을 어

    imsmile2000.tistory.com

     

     

    Super resolution

    • 저해상도 이미지 고해상도로 높임
    • Naive Regression model: 더 단순한 loss(L1, L2 norm)로 학습

     

    • MAE(L1) / MSE(L2) 관점에서는 어느 한쪽에 치우쳐진 Solution은 반대쪽 Manifold에 대해서 loss가 너무 크다
    • 하지만 GAN에서는 이런 문제가 없다
      • 실제 이미지에 흰색과 검정색이 있다고 하면 MAE는 회색을 출력하지만 GAN은 검정 또는 흰색을 출력(가능한 경우의 수)

    Manifold: 실제 이미지들

     

     

    Image translation GANs


    Pix2Pix

    • Image translation: 이미지를 다른 domain으로 바꾸는 것 (흑백을 컬러로, 낮을 저녁으로 등..)
    • L1 loss를 사용하면 흐릿한 이미지가 생성된다.
    • GAN loss가 더 실제 분포에 가깝게 이미지 생성해줌
      • loss= GAN loss + L1 loss

    L1- 흐림, GAN- 선명함 L1+GAN이 제일 선명

     

    CycleGAN

    • Pix2Pix에서는 두개의 도메인 간의 translation을 학습시키기 위해 실제 데이터와 스케치 데이터 쌍인 pairwise data가 필요하다. 하지만 pairwise dataset을 얻는 것은 힘들다
    • CycleGAN은 non-pairwise dataset으로 학습이 가능하게 한다
    • CycleGAN loss = GAN loss + Cycle-consistency loss
      • GAN loss: 도메인 A에서 B, B에서 A로 이미지를 번역하는 것
        • GAN loss만 사용하게 되면 입력에 관계없이 항상 동일한 출력이 나올 수 있어 input이 출력에 제대로 반영되지 않는다
      • Cycle-consistency loss: 원본 이미지와 이미지를 왔다 갔다 하면서 조작한 이미지가 동일해야 한다
        • 따라서 이미지의 contents가 유지되게끔  이미지를 X에서 Y로 번역한 결과 이미지를 다시 X로 번역한다

     

     

    Perceptual loss

    • GAN은 학습이 힘들어서 어떻게 하면 GAN을 사용하지 않고 높은 퀄리티의 이미지를 얻을 수 있을까 생각하다 나온 것!
    • GAN loss: 학습과 코딩이 힘들지만 pre-trained 네트워크가 필요없어서 다양하게 응용 가능
    • Perceptual loss: 학습과 코딩이 쉽다. loss를 측정하기 위해pre-trained 네트워크가 필요
    • pre-trained된 "perception"을 활용하여 이미지를 perceptual space로 변환한다
    •  VGG는 freeze하고 image transform net만 학습시킴

    perceptual loss network

    • Feature reconstruction loss
      •  pre-trained된 loss network(VGG)에 원본 이미지와 transformed 이미지를 넣는다
      • loss network를 거쳐서 나온 원본이미지 feature map과 transformed 이미지 feature map의 L2 loss를 계산한다
    • Style reconstruction loss
      • pre-trained된 loss network(VGG)에 변환하고 싶은 스타일의 이미지와 transformed 이미지를 넣는다
      • loss network를 거쳐서 나온 두개의 feature map의 Gram matrix를 구해서 matrix 간의 L2 loss를 계산
    • Gram matrix: input style을 target style과 맞게 만들어줌. 특정 layer에서의 상관관계를 찾아 texture에 대한 정보 뽑음
      • 참고 자료
     

    Gram matrix (그람 행렬) 정리

    Gram matrix (그람 행렬) 정리 목차 시작에 앞서 만약 Gram matrix를 찾아본다면 아마도 2016 CVPR L. A. Gatys et al. 연구진들이 제안한 Style Transfer에 나와있는 style loss 구성의 일부를 확인하셨기 때문으로 판

    aigong.tistory.com

     

    Perceptual loss 퀄리티를 향상시키려면 Feature reconstruction loss만 사용

    하지만 Super resolution처럼 스타일이 변하지 않는 경우에는 Style reconstruction loss도 함께 사용

     

    GAN 응용


    • Deepfake (딥페이크):  존재하지 않는 사람에 실제 사람의 얼굴이나 목소리를 입히는 것
      •  윤리적인 부분 생각해야함
    • Face de-identification: 사람의 얼굴을 살짝 바꿔서 프라이버시 보호
      • 사람과 비슷해보이지만 컴퓨터는 같은 사람으로 인식하지 못함
    • Face anonymization with passcode: 제대로된 password를 입력해야만 원본 이미지로 복호화됨
    • Pose transfer , video control 등
Designed by Tistory.