Abstract
CycleGAN은 매칭된 이미지 쌍 없이(unpaired) 두 도메인 간의 이미지 변환을 학습하는 새로운 방식의 모델이다. 기존의 이미지 변환 기법들은 대부분 입력–정답 이미지가 1:1로 묶인 paired data가 필요했지만, CycleGAN은 X→Y로의 변환 G과 Y→X의 역변환 F을 함께 학습하고, cycle-consistency loss로 두 변환이 서로 모순되지 않도록 제약을 준다. Adversarial loss로 변환된 이미지가 목표 도메인 분포를 따르도록 만들고, cycle consistency는 개별 입력–출력(F(G(X)) ≈ X)간의 일관성을 유지하도록 강제한다. 이를 통해 페어링이 없는 데이터셋에서도 스타일 변환, 사물 변환, 계절 변환 등 다양한 이미지 변환을 수행하며 기존 방식보다 우수한 성능을 보인다.
1. Introduction

이미지-투-이미지 변환은 한 표현의 이미지를 다른 표현으로 바꾸는 문제지만 대부분 정확히 대응하는 이미지 쌍이 필요하다. 그러나 실제로는 그런 데이터셋은 만들기 어렵고 비용도 크게 든다. 예를 들어 사진과 해당 풍경을 그린 Monet 작품의 pair는 존재하지 않는다. 그리해 CycleGAN은 쌍이 없는 두 이미지 집합 X, Y만으로도 두 도메인 간 전환 규칙을 학습한다. 하지만 단순히 GAN으로 X→Y 변환만 학습하면 무한한 해가 동시에 가능하고, 실제 의미 있는 대응을 학습하지 못하며, mode collapse도 쉽게 발생한다.
이를 해결하기 위해 “문장을 영어→프랑스어→다시 영어로 번역하면 원문이 나와야 한다”와 같은 개념을 이미지에 적용한다. 즉
- X → Y → X
- Y → X → Y
이 두 경로가 원본과 같아져야 한다는 Cycle Consistency를 도입했다. 이 제약이 GAN의 불필요하게 많은 변화를 줄이고 의미 있는 매핑을 만들도록 유도한다.
*mode collapse: 생성기가 다양한 정답 분포의 여러 mode(패턴)를 만들지 못하고, 몇 개 또는 단 하나의 패턴만 반복해서 만들어내는 문제
2. Related work
CycleGAN은 GAN 기반 이미지 생성 및 Style Transfer와 관련되지만 다음과 같은 구별점이 있다.
- pix2pix: paired data 필요
- CoGAN / DualGAN / Variants: 해당 모델들도 쌍이 없는 두 도메인을 변환하려고 하지만, CycleGAN처럼 cycle consistency를 사용하지 않는다. 대신 두 도메인이 비슷한 특징을 공유한다고 가정하거나, 두 네트워크의 초반 레이어를 공유해 같은 표현을 쓰도록 강제하는 방식을 사용한다. 즉 두 도메인이 비슷한 모양을 가질 것이라는 가정에 의존한다. 하지만 CycleGAN처럼 제자리로 돌아오는지 검사하는 확실한 기준이 없어서 변환이 틀어지기 쉽다.
- Neural Style Transfer: 한 이미지의 스타일(붓터치, 색감)만 빼서 다른 한 이미지의 내용(content)에 덮어씌우는 기술로, CycleGAN처럼 얼룩말 전체를 말처럼 보이게 하는 법이라든지 여름 사진을 겨울로 바꾸는 비주얼 규칙같은 전체 도메인의 변환 규칙은 학습하지 못한다.
CycleGAN의 주요 차별점은 특정한 사전 정의된 유사도나 공유 임베딩 없이도 도메인 간 매핑을 학습하는 점이다.
3. Formulation
CycleGAN은 다음 네 개의 구성요소로 구성된다:

1. $G$: X → Y (X를 Y 스타일로)
2. $F$: Y → X (역변환)
3. $D_{X}$: F(Y)와 실제 X를 구분
4. $D_{Y}$: G(X)와 실제 Y를 구분
3.1. Adversarial Loss

GAN의 기본 아이디어로 G는 이를 최소화하는 것을, D는 최대화하는 것을 목표로 한다. 두 도메인 모두에서 각각 적대적 손실을 둔다.
3.2. Cycle Consistency Loss
단순 GAN만으로는 가능한 매핑이 무한히 많으므로, 입력–출력 간 의미 있는 대응을 유지시키기 위해 제한하는 역할이다.

- Forward cycle: F(G(x)) ≈ x
- Backward cycle: G(F(y)) ≈ y

이를 L1 loss로 복원 이미지와 원본 이미지 차의 절대값으로 정의한다. 실험적으로, 적대적 손실 사용 시에 L1 loss보다 성능 향상이 없었기에 L1 loss를 사용한다.
3.3. Full Objective
최종 loss는 아래과 같이 나타낼 수 있으며, λ는 두 목표의 상대적 중요도를 조절한다.

4. Implementation
Network Architecture.
- Generator(G, F)는 residual network 기반 style transfer 모델을 그대로 가져와 사용한다. 구성은 Conv 층 3개, 여러 개의Residual Block, 업샘플링을 위한 fractionally-strided convolution(Transpose Conv) 2개 + 마지막 RGB로 가는 Conv 1개로 구성되어있다. 또한 이미지 크기에 따라 residual block 개수를 다르게(128×128 → 6개, 256×256 이상 → 9) 사용하며, BatchNorm 대신Instance Normalization(BN 사용 시 스타일이 섞여버림, 그래서 이미지 한장, 채널 별로 정규화)을 사용해 스타일/도메인 변화에 더 잘 적응하도록 했다.
- Discriminator (DX, DY)는 70×70 PatchGAN 구조를 사용한다. 이미지를 전체 한 번에 real/fake로 보는 게 아니라, 작은 패치 단위(70×70)로 이 영역이 진짜 같은지/가짜 같은지를 판단한다. 해당 방식 사용 시, 파라미터 수가 줄고 국소적인 texture/스타일을 잘 잡아내며 임의 크기의 이미지에도 convolutional하게 적용할 수 있다.
Training details.
1. Least-Squares GAN (LSGAN) Loss 사용
- 기본적인 GAN의 log loss 대신 제곱 오차(least squares)를 사용한다.
- 사용 시, training이 더 안정적이고, 생성물 퀄리티가 좋아졌다고 보고한다.
- 즉 Discriminator가 “진짜는 1, 가짜는 0에 가깝게” 회귀하도록 만들고, Generator는 “D(G(x))가 1에 가깝게” 되도록 학습한다.
2. Image Buffer(이미지 히스토리)로 Discriminator 업데이트
- Discriminator를 항상 가장 최근에 생성된 G(x) 만으로 학습시키면 G와 D가 서로의 완전히 새로운 패턴을 학습하려고해 모델이 계속 출렁이는(oscillation) 문제가 생길 수 있다.
- 그래서 최근에 생성된 이미지 몇 개(예: 50개)를 버퍼에 저장해두고, Discriminator는 이 히스토리 이미지들을 섞어서 사용하며 학습한다. 이를 일종 stabilization trick이라 한다.
3. 하이퍼파라미터
- Cycle consistency 가중치 λ = 10
- Optimizer: Adam
- 학습률: 0.0002
- 배치 크기: 1 (GAN + high-res 이미지라 메모리 고려)
- 학습 스케줄:
- 처음 100 epoch 동안은 learning rate 고정
- 이후 다음 100 epoch 동안 선형으로 0까지 감소(linear decay)
5. Results
5.1. Evaluation
5.1.1 Evaluation Metrics
① AMT Perceptual Studies (사람 평가)
- 사용자에게 실제와 CycleGAN 생성 이미지를 제시하고 어떤 게 진짜처럼 보이는가를 선택하게 함
- 모델이 사람을 속인 비율(=fooling rate)로 이미지의 현실감을 평가
- CycleGAN은 기존 비지도 모델(1~2%) 대비 20~30% 수준으로 훨씬 높은 속임률을 기록함
② FCN Score (자동 평가 지표)
- Cityscapes는 하늘, 도로, 자동차와 같은 것들이 색깔로 구분된 라벨맵 형태(아래 사진 Input)로 되어있어 이 라벨을 사진으로 변환하는 과정을 사용
- 이렇게 CycleGAN이 생성한 사진을 사전 학습된 FCN(fully-convolutional network, semantic segmentation)에 넣어 예측한 라벨맵 결과를 얻고 이를 원래 레이블과 비교해 성능을 측정
- 지표는 다음 세 가지를 사용: Per-pixel accuracy(맞춘 픽셀 비율), Per-class accuracy(각 클래스마다 정확도), Class IoU(예측한 영역과 실제 영역이 얼마나 겹치는지)
→ 생성 이미지가 진짜 사진처럼 구조를 잘 보존할수록 FCN이 더 정확하게 분할함 → 높은 점수
5.1.2 Baselines




비교 모델 CoGAN, SimGAN, Feature loss + GAN, BiGAN/ALI 중에서 CycleGAN이 가장 우수한 성능을 기록했다. 특히 AMT
perceptual study(사람 평가)에서 다른 모델들은 거의 1~2% 수준인 반면, CycleGAN은 20~30% 사용자 속임에 성공하며 큰 차이를 보였다. 또한 Cityscapes tasks에서도 FCN 성능 기준 CycleGAN이 모든 unpaired baselines를 이겼다.
5.1.3 Comparison against baselines


- Cycle loss만 사용 → 도메인 스타일 자체를 학습 못함
- GAN loss만 사용 → mode collapse 발생
- Cycle loss 한쪽 방향만 사용 → 불안정하거나 붕괴
- GAN + Cycle(양방향) → 반드시 필요한 구조
→ 두 loss 모두 필수적이다.
5.2. Applications
CycleGAN은 다음 문제들을 매우 자연스럽게 다룬다.
- 전체 화가 스타일을 학습해 사진을 해당 화풍으로 변환
- 한 객체의 정체성을 유지한 채 도메인만 바꾸는 object transfiguration
- 계절 변화, 조명 변화
- 심도 느낌 변환(스마트폰 → DSLR shallow depth)
특히 스타일 전환에서는 Neural Style Transfer보다 도메인 전체의 특징을 포착하여 더 자연스러운 결과를 만들었다.
6. Limitations and Discussion
CycleGAN의 한계도 명확히 언급된다.

- 기하학적 변화(geometry)는 거의 불가능
→ 예: 개 ↔ 고양이 같은 구조적 변환에서 최소한의 변경으로 퇴화 - 데이터셋이 가진 bias에 크게 영향을 받음
→ 예: 말→얼룩말 학습 시 승마 사진이 없어 사람까지 얼룩말로 변환 - paired data 대비 완전한 대체는 어려움
→ semantic alignment가 필요한 경우 지속적인 격차가 있어 한계 존재 - 라벨 스왑 등의 모호성 발생
결론
CycleGAN은 페어 데이터 없이도 GAN과 cycle consistency를 결합해 의미 있는 이미지-투-이미지 변환을 수행할 수 있음을 보여준다. 이는 데이터 수집 비용이 높은 많은 시각 변환 문제에서 새로운 가능성을 열어준 모델이며, 이후 unpaired translation 연구의 기반이 되었다.
'ML&DL > 논문리뷰' 카테고리의 다른 글
| VAE: Auto-Encoding Variational Bayes (0) | 2025.12.23 |
|---|---|
| StyleGAN: A Style-Based Generator Architecture for Generative Adversarial Networks (0) | 2025.11.27 |
| R-CNN: Regions with CNNfeatures (0) | 2025.11.18 |
| GAN: Generative Adversarial Nets (0) | 2025.11.17 |
| EfficientNet (0) | 2025.11.13 |