본문 바로가기
Deep learning/Paper review

CycleGAN paper review (ICCV 2017)

by 위풍당당 가리비 2023. 6. 23.
반응형

예전에 석사 초창기에 읽었던 논문 리뷰한 내용들을 여기에 다시 적어본다. 리뷰도 개판이고 핵심들을 진짜 잘 못 정리했던 것 같지만 썩히기에는 아까워서 티스토리에 다시 올려본다. 예전에는 노션에 정리를 했었는데 다시 백업해와서 차곡차곡 티스토리에 옮겨적어야겠다.

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (ICCV 2017)

Summary


  • Problem
    • image translation을 하는데 보통 paired dataset이 필요한데 이런 데이터를 구하기가 힘든 경우가 많다. photo → artistic picture를 예로 들 수 있다. 그리고 그냥 pair가 아닌 데이터 사이에도 domain을 변화시키고 싶을 때 사용할 수 있는 방법이 필요하다.
  • Inspiration
    • adversarial autoencoder가 x → latent representation → G(x)의 구조를 가지는데 latent representation의 distribution을 arbitrary target domain과 match시키는데서 아이디어를 받았음.
    • 그러면 GAN이 이미지나 도메인의 distribution을 잘 학습하니깐 encoder → forward GAN, decoder →backward GAN으로 만든다면 잘 되지 않을까?라고 생각한거 같음.
  • Solution
    • 2개의 GAN을 써서 encoder, decoder를 구성해보자. x → encoder → y → decoder → x,
    • y → decoder → x → encoder → y가 되도록 network를 구성한다면 y의 distribution을 더 잘 학습할 것이다. 그러면 2개의 도메인을 자유롭게 왔다갔다 할수도 있다.
    • autoencoder를 GAN으로 재해석을 했다고 볼 수도 있고, mapping의 성능을 높일 때 inverse mapping의 성능도 높인다면 효과가 있다고도 볼 수 있다.
  • Main contribution
    1. novel architecture : inverse연산이 forward연산의 성능을 높일 수 있다는 생각과 그 architecture.
    2. unpaired dataset에도 돌아간다. pix2pix는 paired dataset으로 학습을 시켰다.
  • Architecture
    • Generator
      • 3개의 convolution, residual block(6 or 9), 2 fractionally-strided convolution (stride = 1/2), convolution(feature → RGB) + instance norm
    • Discriminator
      • 70 X 70 patchGAN

CycleGAN pipeline & visualization of cycle-consistency loss

반응형
  • Loss fuction

Total loss function
Cycle consistency loss
Vanila GAN loss
CycleGAN loss function

  • Interesting point of paper
    1. G와 F의 상호 보완적인 구조를 사용하여 cycle consistent라는 property를 활용했다.
    2. space of possible mapping을 줄이기 위해서 cycle consistent property를 추가했다.
    3. training detail
      • 다른 논문이 밝혀낸거를 사용한거지만 처음 봄. 
      • Training을 stabilize하기 위해서 negative log likelihood objective → least-squares loss로 변경. stability뿐만 아니라 결과의 퀄리티도 더 좋다.
      • Model oscillation을 줄이기 위해서 discriminator를 업데이트 시킬때 한장 한장마다 update를 하는게 아니라 여러장이 쌓이면 그때 업데이트 하는걸로 함. (history of generated images) mini batch SGD랑 비슷한 느낌. 타당해 보이는 방법.
    4. 한쪽에만 cycle consistent loss를 주는 경우 mode collapse가 자주 발생했고, 특히 mapping 방향이 사라졌다.
    5. pix2pix처럼 identity maping loss(input과 output간의 L1 norm)를 사용하니깐 color, intensity distribution이 많이 비슷해졌다.
  • Introduction
    paired dataset에 supervised learning으로 돌리는 거는 많이 있다.
    1. D. Eigen and R. Fergus. Predicting depth, surface normals and semantic labels with a common multi-scale convolutional architecture. In ICCV, 2015.
    2. A. Hertzmann, C. E. Jacobs, N. Oliver, B. Curless, and D. H. Salesin. Image analogies. In SIGGRAPH, 2001.
    3. P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. Image-to-image translation with conditional adversarial networks. In CVPR, 2017.
    4. J. Johnson, A. Alahi, and L. Fei-Fei. Perceptual losses for real-time style transfer and super-resolution. In ECCV, 2016.
    5. Y. Shih, S. Paris, F. Durand, and W. T. Freeman. Data-driven hallucination of different times of day from a single outdoor photo.
    6. Y. Shih, S. Paris, F. Durand, and W. T. Freeman. Data-driven hallucination of different times of day from a single outdoor photo.
  • Related work
    1. GAN
      • generation, editing, representation learning, text2image, inpainting, future prediction, etc. 안쓰는데가 없음.
    2. Image-to-Image translation
      • 2001년 image anolgies라는 논문에서 부터 시작한다 - non parametric texture model.
      • 최근에는 딥러닝 써서 parametric translation function을 만듦. cycle gan은 pix2pix2기반으로 연구했따. paired image 가지고 연구가 많이 됐는데 우리는 unpaired image 사용함.
    3. Unpaired Image-to-Image translation
      • 2개의 도메인 사이를 연결하는 목적을 가진 task. bayesian framework(markov random field와 likelihood를 사용한 방법)이 2003년에 연구되었고, 최근에는 coGAN과 cross modal scene network는 weight sharing stategy로 domain 사이의 representation을 학습했다.
      • VAE와 GAN을 적절히 섞어서 사용하는 방법도 있음. content는 같게, style은 다르게에 초점을 맞춘 GAN을 사용한 방법도 있다. constraint를 줄 때 space를 나눠서 줄 수 있는데 class label, pixel, feature space로 3가지 정도로 space를 구분할 수 있다.
    4. Cycle-consistency
      • 이 structured data를 regularize하는 아이디어는 오래 전부터 있었다. 예를 들어서 visual tracking에서 forward-backward consistency를 사용한다.
    5. Neural style transfer
      • pre trained deep feature의 gram matrix statistics를 사용해서 content와 style을 합성하는 task. 우리가 하고싶은거랑 쫌 다른거는 이거는 1:1로 style을 전달하는 거라면 이 논문에서 하고 싶은거는 다 : 다로 mapping을 시키는 것. high-level-appearance를 학습해서 여러 task에 써먹을 수 있다. style transfer가 잘 동작하지 않는 painting → photo, object transfiguration 같은 task에도 더 잘 동작한다.

Strength


  1. novel architecture
  2. a llitle analysis

Weakness


  1. cycle consistency가 각각의 mapping에 효과가 있는가?? 하는 의문이 듦.
  2. consistent loss가 효과가 있기 위해서는 이미 어느정도 실제 데이터 분포와 생성된 데이터의 분포가 비슷해야 효과가 있을 것 같다는 생각이 듦.
  3. color 나 texture같은 거는 변환이 잘되는데 geometric change는 변환이 잘안됨. 예를 들어서 고양이→강아지 하면 그냥 변화가 없음.
  4. 이거는 geometric change + different label 문제이지 않을 까 싶음. 보여준 실험중에 label이 다른경우는 못봤음.
  5. label이 섞이는 경우나 바뀌는 경우가 생김.

Appendix


  1. bi-jection
    • 전단사 함수. 중복없이 일대일 대응이 되는 함수, 이 논문에서는 F와 G가 bijection이 되어야한다고 말함.
  2. perceptual loss
    • image transformation task에 사용할 목적으로 만들어진 loss, SR task에도 사용됨. 이전에는 output과 GT간의 per-pixel loss를 사용했다. per-pixel loss는 perceptual difference를 측정하지 못한다. 그래서 high level feature 기반의 loss를 새로 정의함
    • perceptual loss = feature(content) loss + style loss
    • feature loss(content loss) : 이미지 사이의 유사도를 측정하기 위해서 2개의 이미지가 pretrained neural network를 거치면서 나오는 feature representation을 euclidean distance를 사용해서 loss를 측정함.
    • style loss : 아직은 잘 모르겠지만 gram matrix로 정의.
      1. Generating images with perceptual similarity metrics based on deep networks. NIPS, 2016.
      2. Perceptual losses for real-time style transfer and super-resolution. ECCV, 2016.
  3. identity mapping loss
    • A와 B가 같아지도록 만드는 loss, auto encoder에서 input과 output 이미지 사이의 L1 norm으로 생각하면 됨.
  4. mode collapse
    • GAN이 generator와 discriminator가 번갈아 가면서 학습을 진행하기 때문에 generator 입장에서는 discriminator가 가장 구분을 잘 못하는 1개의 sample만 계속 내보면 된다. 이런 식으로 목적과 다르게 학습이 되는걸 mode collapse라고 한다.
반응형

'Deep learning > Paper review' 카테고리의 다른 글

FDA paper review (CVPR 2020)  (0) 2023.06.24
Unsupervised PixelDA paper review (CVPR 2017)  (0) 2023.06.24
Pix2Pix paper review (CVRP2017)  (0) 2023.06.24
SinGAN paper review (ICCV 2019)  (0) 2023.06.24