티스토리 뷰

용어 정리

GAN 시리즈 - CycleGAN

duckracoon5z 2025. 8. 13. 16:47

1. CycleGAN

image to image translation이란 이미지 데이터셋을 사용하여 input 이미지와 output 이미지를 mapping하는 것을 목표로 하는 생성 모델의 한 분야다. 대표적 모델로 Pix-2-Pix, Cycle GAN, Style GAN 등이 있다. Pix-2-Pix가 처음 등장하였고 이후 Pix-2-Pix의 단점을 해결하기 위해 Cycle GAN이 등장하였다. 또한 Style GAN은 Cycle GAN을 베이스로 하여 개발되었다.

 

이해를 돕기 위해 간단하게 Pix-2-Pix에 대해 먼저 알아본다.

 

1-1 Pix-2-Pix

 

 Pix2Pix는 image를 image로 변환하도록 generator을 학습한다. 예를 들어, generator의 입력값으로 스케치 그림을 입력하면 완성된 그림이 나오도록 학습할 수 있다. 기존 GAN과 비교하여 설명하자면, Pix2Pix는 기존 GAN의 noise 대신에 스케치 그림을 입력하여 학습을 하는 것이다.

 

Image-to-Image Translation은 보통 GAN의 변형 중 CGAN(Conditional GAN)을 기반으로 한다. 가령, 위 그림에서는 edge를 조건으로 받아 실제 이미지를 생성하고, 판별자 또한 이 edge와 생성 이미지를 받아 판별하면서 모델을 발전시키게 된다.

CGAN

 

CGAN의 손실 함수는 위와 같다. 최적의 Generator를 얻기 위해서는 L(G,D)를 최소화하는 방향으로, Discriminator은 최대화하는 방향으로 학습을 진행한다. 그러나 이 Loss를 단순히 사용하기 보다 L1, L2 Norm과 같은 traditional Loss를 추가해 사용한다면 조금 더 나은 이미지를 생성할 수 있다.

 

위 식은 에 관한 식이다. 즉, 판별자 에 대해서 사용하지는 않고, 단지 생성자 가 생성 이미지를 타겟 이미지와 가까워지게끔 추가한 LOSS이라 할 수 있다. L1 loss가 더 좋다고 판단하여 최종적인 loss를 아래와 같이 정의한다.

 

 

 

pix2pix-Generator

pix2pix 연구에서 Generator로는 인코더-디코더 구조에 스킵커넥션이 추가된 U-Net을 사용한다.

 

즉, 인코더와 디코더가 대칭적으로 연결되어 있다. 그래서 U-Net은 skip connection을 (대칭적으로) 추가해 이 경로를 통해 얕은 layer의 경우 조금 fine(local)한 정보를 담고 있고, 깊은 layer의 경우 corase(global)한 정보를 담게 된다.

이러한 구조를 통해 정보 손실을 낮추고, 기존의 Localization(details, fine)과 Context(semantic, global) trade-off 관계를 해결할 수 있게 된다.

 

pix2pix-Discriminator

pix2pix2의 판별자로는 PatchGAN을 사용한다.

  • ImageGAN : 일반적인 GAN은 이미지 전체에 대한 진위 여부를 판단한다.
  • PatchGAN : cGAN에서는 종종 PatchGAN을 사용하게 되는데, 이 때는  사이즈의 이미지 패치 단위에 대한 진위 여부를 판단하게 된다.
  • PixelGAN : 이미지 픽셀 단위에서 진위 여부를 판단한다.

 

 

L1 loss만을 사용할 경우 이미지의 Low-frequency(픽셀의 변화 정도) 성분들을 잘 검출해내는 특징을 지닌다. 따라서 Discriminator에서 high-frequency의 검출을 진행한다. 또한 이를 위해서는 이미지 전체가 필요 없고 local image patch를 사용해 판별을 진행해도 무방하다(디테일한 부분을 파악하는 데 전체 이미지는 필요 없음).

 

문제는 Pix-2-Pix를 학습시키기 위해 paired image 데이셋이 필요하다는 것이다. 아래 그림처럼 말 사진에 얼룩말이 가진 특징을 씌워서 얼룩말로 변환하려면 말 사진과 동일한 포즈와 크기의 얼룩말 사진, 즉 paired image를 가지고 학습을 시켜야 다.

이런 단점을 해결하기 위해 등장한 모델이 Cycle GAN이다.

 

1-2 Cycle GAN

Image-To-Image Translation은 pair 형태의 train 이미지를 활용해 input과 output을 매핑하는 것이 목표다. 하지만, pair 형태의 학습 이미지를 구하는 일은 쉽지 않기 때문에 CycleGAN은 X라는 도메인으로부터 얻은 이미지를 타깃 도메인 Y로 변환하는 방법을 활용하였다. 즉, 한 이미지 집합에서 고유한 특징들을 포착하고 이 특징을 다른 이미지 집합으로 전이시키는 것이다. 이러한 방법을 통해 CycleGAN을 활용하였을 때, 다음과 같은 결과물을 얻을 수 있다.

 

Cycle GAN의 구조

unpaired image 데이터를 가지고 image to image translation를 하는 것이 cycle GAN의 목적이다. 이때 모델의 loss function을 GAN의 Loss function으로 사용하는 경우 Mode collapse라는 문제가 발생한다. 이를 해결하기 위해 기존의 Generator G 외에 Generator F를 추가한 순환구조가 등장한다.

 

 

X에서 Y의 이미지를 만들어주는 Generator와 이 이미지가 진짜인지 판단하는 Discriminator, 그리고 역방향 학습까지 고려하기 때문에 2개의 GAN을 필요로 한다.

 

파이프라인을 구축하기 위한 Component는 다음과 같다.

- Generator G : X → Y mapping

- Generator F : Y → X mapping

- Discriminator Dy : 실제 도메인 Y의 이미지 y와 G가 생성한 y_hat=G(x)을 구분

- Discriminator Dx : 실제 도메인 X의 이미지 x와 F가 생성한 x_hat=F(y)을 구분

 

함수 G : X → Y와 Dy에 대해서는 아래와 같은 목적함수를 적용한다.

 

 

여기서, G는 위의 함수를 최소화 D는 위의 함수를 최대화시키고자 하며 이는 다음과 같이 나타낼 수 있다.

 

 

마찬가지로, 함수 F : Y → X와 Dx에 대해서도 다음과 같이 나타낼 수 있다.

 

 

 

Unpaired data는 이미지 간의 대응 관계가 너무 많기 때문에 만들어진 이미지가 실제 이미지와 한 쌍이라고 확정지을 수 없다. 오히려 mapping의 제약이 적기 때문에 mode-collapse를 초래할 수 있다. 이러한 문제를 해결하기 위해 cycle consistency loss를 도입하였다.

 

 

cycle consistency loss는 각각 생성한 이미지를 다시 원본으로 복구할때 원본과 복구 값 간의 거리를 구하는 것으로,

생성된 이미지가 다시 원본으로 대응될 수 있게끔 학습하면서 다양성을 최대한 제공하도록 한다.

 

 

cycle consistency loss가 유도한 결과는 다음과 같으며, 재건된 이미지 F(G(X))가 input 이미지 x와 유사함을 확인할 수 있다.

 

 

앞서 설명한 loss를 합치면 전체 목적 함수는 다음과 같다.

 

λ는 두 함수(= 위 식에서의 첫 번째 항과 두 번째 항)의 상대적인 중요도에 따라 결정되며, 풀고자 하는 목표는 다음과 같다.

 

 

즉, X → Y GAN의 Adversarial Loss와 Y → X GAN의 Adversarial Loss를 더하고 각각 다시 원본으로 복구하는 cycle consistency loss 값을 더해준 값이 최종 Loss값이며, 이를 최소화하는 방향으로 G와 F를 학습하는 것이다.


Cycle GAN의 한계

CycleGAN은 획기적인 방식으로 부족한 데이터 문제를 해결했지만, 당연히 한계도 존재한다.

 

CycleGAN은 주로 분위기나 색상을 바꾸는 것으로 스타일을 학습하여 다른 이미지를 생성한다. 따라서, 기하학적인 모양을 변경하는 데는 어려움이 있다. 또한, 데이터셋의 분포가 불안정하면 이미지를 제대로 생성할 수 없다.

 

 

참조

https://bo-10000.tistory.com/116

 

[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)

Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였

bo-10000.tistory.com

https://baobao.tistory.com/66

 

GAN 겉햙기 (GAN 종류)

GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성

baobao.tistory.com

https://wikidocs.net/146366

 

5) Cycle GAN

**image to image translation이란** 이미지 데이터셋을 사용하여 input 이미지와 output 이미지를 mapping하는 것을 목표로 하는 생성 모델의 한…

wikidocs.net

https://dacon.io/forum/405902

 

[GAN] CycleGAN 논문 리뷰

 

dacon.io

 

'용어 정리' 카테고리의 다른 글

GAN 시리즈 - BigGAN  (4) 2025.08.19
GAN 시리즈 - PGGAN  (4) 2025.08.13
GAN 시리즈 - WGAN  (0) 2025.08.13
GAN 시리즈 - CGAN  (0) 2025.08.13
GAN 시리즈 - DCGAN  (3) 2025.08.13
최근에 올라온 글
링크
글 보관함