이번에도 당연히 관련된 논문이 있답니다. 논문의 제목은 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 입니다.
이 논문을 바탕으로 실습을 진행하고 싶다면, Tensorflow의 CycleGAN 튜토리얼을 참고해보십시오.
CycleGAN은 조건부 GAN을 사용하여 쌍으로 연결되지 않은 이미지 간 변환을 보여줍니다. 한 쌍의 훈련 예제가 없을 때 하나의 이미지 도메인의 특성을 포착하고 이러한 특성이 다른 이미지 도메인으로 어떻게 변환할 수 있는지 알아내 수 있는 방법을 제안합니다.
CycleGAN은 Pix2Pix에 익숙해져야 학습하는데 용이합니다. CycleGAN의 코드는 Pix2Pix 튜토리얼과 비슷하며, 차이점은 추가 손실 함수와 쌍으로 연결되지 않은 훈련 데이터를 사용한다는 점입니다.
CycleGAN은 주기 일관성 손실을 사용하여 쌍으로 연결된 데이터 없이도 훈련을 수행할 수 있습니다. 즉, 소스와 대상 도메인 사이에서 일대일 매핑 없이 한 도메인에서 다른 도메인으로 변환할 수 있습니다.
이를 통해 사진 향상, 이미지 색상 지정, 스타일 전송 등과 같은 많은 흥미로운 작업을 수행할 수 있습니다. 소스와 대상 데이터 세트만 있으면 됩니다.
모델이 말과 얼룩말 사진을 받아도 스스로 각각의 데이터에서 스타일을 학습하여 새로운 이미지에 그 스타일을 입힐 수 있도록 설계되었습니다. 딥러닝에서 쌍으로 된 데이터(paired data)가 필요 없다는 것은 데이터를 구하기 쉽고, 라벨을 붙이는 주석(annotation) 비용이 필요 없다는 것을 뜻합니다.
CycleGAN의 또다른 활용 사례는 실제 사진을 모네 또는 고흐 같은 화가가 그린 그림처럼 바꾸는 것이었습니다.
👉 Pix2Pix는 한 방향으로의 변환만 가능하지만, CycleGAN은 양방향으로의 변환을 할 수 있다.
👉 Pix2Pix는 입력 데이터와 출력 데이터끼리 쌍으로 이루어진 데이터셋이 필요하지만, CycleGAN은 필요없다.