평범한 필기장

[평범한 학부생이 하는 논문 리뷰] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Network (CycleGAN) 본문

AI/GAN

[평범한 학부생이 하는 논문 리뷰] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Network (CycleGAN)

junseok-rh 2023. 6. 21. 02:37

기존 image to image translation의 문제점

기존 pix2pix모델을 통한 image to image translation은 paired된 데이터로만 가능했다. 그러나 paired된 데이터는 실제로는 흔하지 않다. 그렇기에 unpaired된 데이터에 대해서도 image to image translation이 가능한 모델이 필요하다.

이러한 문제를 해결하기 위해 나온 모델이 바로 CycleGAN이다.

CycleGAN은 그럼 어떤 차이점을 가졌길래 앞선 문제를 해결했을까?

 

CycleGAN의 특징

위의 이미지(a)가 CycleGAN의 가장 특징을 보여준다. 기존의 GAN은 $G : X \rightarrow Y$ 라는 하나의 매핑함수만 가지고 이미지를 생성했다. 하지만 $X$라는 도메인에서 Y라는 도메인으로 translation시키는 매핑함수 $G$뿐만 아니라 $Y$라는 도메인에서 $X$라는 도메인으로 translation시키는 매핑함수$F( F : Y \rightarrow X)$도 이용하면서 각 도메인으로의 이미지 변환이 가능하도록 설계했다.

 

1. Adversarial loss

앞서 말했듯이 CycleGAN에는 매핑함수가 $G,F$로 두개이다. 그러므로 adversarial loss 함수 또한 두개가 필요하다.

$$ \mathcal{L}_{GAN}(G,D_Y,X,Y) = \mathbb{E}_{y \sim p_{data}(y)}[logD_Y(y)] + \mathbb{E}_{x \sim p_{data}(x)}[1-logD_Y(G(x))], (1)$$

$$\mathcal{L}_{GAN}(F,D_X,Y,X) = \mathbb{E}_{x \sim p_{data}(x)}[logD_X(x)] + \mathbb{E}_{y \sim p_{data}(y)}[1-logD_X(G(y))], (2)$$

$G$와 $D_Y$는 각각 $min_Gmax_{D_Y}\mathcal{L}(G,D_Y,X,Y)$인 방향으로, $F$와 $D_X$는 각각 $min_Fmax_{D_X}\mathcal{L}(F,D_X,Y,X)$인 방향으로 학습되어진다.

 

2. Cycle Consistency loss

논문 내용을 해석하면 대략 "네트워크 용량이 충분히 크면 네트워크는 동일한 입력 이미지 세트를 목표 도메인의 임의 이미지 순열에 매핑할 수 있으며, 학습된 매핑 중 어느 것이든 목표 분포와 일치하는 출력 분포를 유도할 수 있습니다. 따라서 적대적 손실만으로는 학습된 함수가 개별 입력 $x_{i}$ 를 원하는 출력 $y_{i}$에 매핑할 수 있다고 보장할 수 없습니다. 가능한 매핑 함수의 공간을 더 줄이기 위해, 우리는 학습된 매핑 함수가 cycle consistency가 있어야 한다고 주장합니다."와 같은 내용으로 어렵게 설명되어있다. 이 내용을 간단하게 설명하면 adversarial loss만 사용하게 되면 $X$ 도메인에서 $Y$ 도메인으로 translation은 가능하나 우리가 원하는 결과를 내놓는다는 건 보장할 수 없다는 것이다.

위 그림에서 (b) 와 (c)를 보면 우리가 원하는 output을 얻기 위해 $x$ 를 $G$를 통해 $Y$도메인으로 변환해서 $\hat{y}$를 생성하고 다시 $F$를 통해 다시 $X$ 도메인으로 변환해서 생성된 $\hat{x}$은 $x$와 유사해야한다. 식으로 표현하면 아래와 같이 표현할 수 있다. 

$$ \hat{x} = F(G(x)) \approx x \ ( \hat{y} = G(F(y)) \approx {y})$$ 

이러한 제약을 주기 위해 loss function에 이러한 제약을 주는 cycle consistency loss term을 추가해주었다.

$$\mathcal{L}_{cyc}(G,F) = \mathbb{E}_{x \sim p_{data}(x)}[\Vert F(G(x)) - x\Vert_1] + \mathbb{E}_{y \sim p_{data}(y)}[\Vert G(F(y)) - y\Vert_1]$$

 

3. Full Object

  • Full Objective $$\mathcal{L}(G,F,D_X,D_Y) = \mathcal{L}_{GAN}(G,D_Y,X,Y) + \mathcal{L}_{GAN}(F,D_X,Y,X) + \lambda\mathcal{L}_{cyc}(G,F)$$

$\lambda$는 두 objective의 상대적 중요도를 제어한다.

  • Aim to Solve $$G^*,F^*=arg\underset{G,F}{min}\underset{D_x,D_Y}{max} \mathcal{L}(G,F,D_X,D_Y)$$

CycleGAN은 두개의 autoencoder를 학습시키는 것으로 볼 수 있다. ($F \circ G : X \rightarrow X, \ G \circ F: Y\rightarrow Y$)

 

Result

실험 결과를 설명하기 전에 이 논문에서는 pix2pix에서 쓰인 데이터셋과 동일한 데이터셋을 가지고 동일한 방식으로 평가를 진행했다고 한다.

 

1. 기존 GAN들과의 비교

위의 두 이미지는 기존 몇 가지의 GAN모델들을 baseline으로 동일한 데이터셋으로 이미지를 생성한 결과를 보여준다. 생성된 이미지를 보면 다른 GAN들은 그럴듯한 이미지를 거의 생성하지 못했고 CycleGAN만이 fully supervised pix2pix처럼 정답이미지와 가깝운 이미지를 생성해냈다. 또한 오른쪽의 표의 결과 또한 CycleGAN의 결과가 좋은 것으로 나온다. 이러한 결과를 통해 CycleGAN은 unpaired 데이터로 학습시켰는데도 paired된 데이터로 학습된 pix2pix와 비슷한 성능을 낸다는 것을 확인할 수 있다.

 

2. Loss function 분석

위의 그림과 표는 CycleGAN에서 각 loss function을 제거한 후의 결과를 나타낸다. 결과를 보면 GAN loss와 Cycle loss 모두 중요한 것을 확인할 수 있다.

 

3. Applications

다양한 적용에 대한 결과들이 존재한다.

왼쪽 이미지들의 결과를 통해 CycleGAN은 '별이 빛나는 밤에'의 그림 스타일을 모방하는 것이 아니라 반 고흐 작품들의 전체적인 스타일 모방하는 것을 확인할 수 있다. 또한 오른쪽의 결과를 통해 identity loss를 통해 생성된 이미지가 원래 이미지의 색상을 보존하는 것을 확인할 수 있다. 이 때 identity loss는 $\mathcal{L}_{identity}(G,F) = \mathbb{E}_{y \sim p_{data}(y)}[\Vert G(y)-y\Vert_1] + \mathbb{E}_{x \sim p_{data}(x)}[\Vert F(x) - x\Vert_1]$로 표현할 수 있다.

이 외에도 다양한 적용을 통해 좋은 결과들을 논문에서 보여준다.

 

Limitations and Discussion

색상과 질감을 변경하는 작업은 잘 수행하지만 위 이미지들과 같이 객체의 기하학적인 변화를 해야하는 경우에는 종종 실패하는 것을 볼 수 있다. 이렇기에 앞으로 이러한 문제들을 해결하기위한 방식들이 많이 필요하다.

 

 이 논문 또한 생성모델 논문 스터디를 진행하면서 읽은 논문인데 내가 발표한 논문이 아니라 읽고 블로그에 포스팅을 종강하고 하게 되었다. 그리고 발표한 논문들 보다는 세세한 내용들을 많이 생략하고 전체적인 중요한 틀 위주로 리뷰를 진행했다.

 이번 논문을 읽으면서 그리 어려워 보이지 않은 아이디어로 신기한 결과를 낸 것 같아서 흥미롭게 읽은 논문이였던 것 같다. 최근에 꾸준히 생성모델과 관련되 논문들을 읽고 있는데 내용 자체가 흥미로워서 논문 읽는 것 자체가 나름 재미있는것 같다!!

 많이 부족한 논문 리뷰를 읽어주셔서 항상 감사합니다!