Group Study (2021-2022)/Machine Learning (GAN)

[Machine Learning] 7주차 스터디-CycleGAN

NayeonKeum 2021. 11. 28. 13:10

Cycle GAN: 박태성(UC 버클리)

Prisma: 사진을 그림처럼 바꿔주는 AI -> 그림을 사진으로 바꾸는 인공지능

 

pix2pix: 사진을 사진으로 바꾸는 작업

  • Self-Supervised
  • 흑백사진을 컬러로 바꾸는 경우 결과를 모르니 중간값을 선택하는 경향이 있다
  • -> 사람이 할 수 있다면 딥러닝 네트워크도 할 수 있지 않나? = GAN
  • "위조지폐 만들기" + "위조지폐 감별하기"

 

CycleGAN

  • 대칭적인 로스를 기반으로 동시에 훈련시켜 4가지 로스를 합친 결과가 CycleGAN
  • 사진을 특정 화풍의 그림으로 바꿀 수 있다
  • 그림을 사진으로 바꿀 수 있다
  • 말을 얼룩말로 바꿀 수 있다
  • Loss 컨셉
    • 추가적인 loss가 원리 이미지로 reconsturct되게 하는 것
    • 위의 loss는 가짜 이미지를 다시 generate한 결과 이미지와 기존 원본 이미지의 손실이 최소화

 

 

Generator 아키텍쳐

  • encoding <-> decoding의 방식에서 벗어나 U-Net을 사용
  • U-Net: 스킵 커넥션 이용, 바틀넥에 들어갔다 나올 때 많이 없어짐
  • ResNet: 뎁스도 있고 바틀넥은 없어 디테일을 간직할 수 있었음. 그러나 메모리를 많이 사용함

 

 

  • GAN의 로스를 트레인하고자 하면 그래디언트가 flat해진다는 단점이 있음

-> LSGAN 사용

  • LSGAN: 진짜는 1, 가짜는 0을 주는 방식, 안정적인 트레이닝
  • L1 loss를 stable한 guiding force로 사용하는 GAN 훈련
  • 시드 값에 따라 불안정성이 대두될 수 있음 -> 여러 개의 평균을 내보았는데 메모리가 많이 필요했음
  • replay buffer: 단점) 성능이 천차만별

-> 주기적으로 Generator가 만든 사진을 다시 Discrimminator에게 보여줌

CycleGAN의 한계점

  • 모양을 바꾸는 것이 매우 어려움

CycleGAN의 유용한 사례

  • GTA <-> 실제 사진: 이를 이용하여 자율주행차에서 detection을 수행할 수 있음
  • 그러나 정확도가 그리 높지는 않았음