Deep Learning study

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(Cycle GAN) 본문

AI/papers

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(Cycle GAN)

HwaniL.choi 2019. 5. 6. 09:53
반응형

오늘은 Cycle GAN에 대해서 알아보자 !

 

보통 image-to-image translation모델을 학습시킬때 training data 로 input image와 output image의 pair를 사용하게 된다. 예를들면 모네의 사진을 실제 사진처럼 바꾸는 모델을 만들려고한다면, 모네의 그림과 모네의 그림의 배경이 되는 풍경 사진이 pair로 존재해야한다.

하지만 translation에서, 대다수의 경우에는 짝이 지어진 training data를 구하기는 매우 힘들다.

 

그래서 이 논문에서 paired example 없이 source domain(X)에서 target domain(Y)으로 image를 변환(translate)하는 방법을 소개한다.

 

즉 이논문의 목표는  G(X)의 image distribution(분포)가 Y의 distribution과 구분되지 않게하는  X → Y로의 mapping G( 즉, G : X → Y ) 를 학습하는 것이다.

 

그렇지만 G만으로는 부족한 면이 있기때문에 , inverse mapping인 F를 만들고 F(G(X)) = X가 되도록하는 cycle consistency loss 도 함께 소개한다

 

Introduction

 

 위 그림에서 보듯, 우리는 모네의 그림이 어떻게 그려지고 있는지 상상 할 수 있다. 아마 그것은 파스텔풍의 색조일것이고, 퉁명스런 붓질에 다소 평탄해진 역동적인 범위를 가졌을 것이다.

이렇게 우리는 모네가 그 풍경을 그리지 않았더라도 어떻게 그려질지를 상상할 수 있고, 그 외의 다른 사진들도 마찬가지일 것이다. 예를들어 얼룩말이 보통 말이된다면 얼룩이 사라질 것이고, 계절이 여름에서 겨울로 바뀐다면 당연히 어느정도 눈이 쌓여있을 것이다.

(즉 , 한 image collection(X) 에서 공통된 특색을 찾아내어, 다른 image collection(Y)에 그 특색들을 적용시킨다는 것이다.)

 

이 논문에서 소개할 내용은 다음과 같다.

 

한 image collection에서의 특정 특색을 찾고, 찾은 특색들이 어떻게 다른 image collection으로 변환되는지를 이해한다. (물론 두 image collection은 paired data가 아니다)

 

이전에 말한것처럼, 논문에서는 주어진 domain X 와 다른 domain Y가 주어졌을때 , mapping G : X → Y 를 학습하게 된다. 하지만 이러한 변환만으로는 input x와 output y와의 의미있는 방법(즉, input 이미지의 본질을 잃지 않으면서 target의 특색만을 가져와 덮는다는 것이다) 으로 짝지어진다는 것을 보장해주지않고, 모델을 optimize하기에 매우 어렵다는 것 이다.

따라서 다른 mapping F : Y → X(G 의 inverse mapping) 를 만들었다. 그리고 cycle consistency loss 를 추가함으로써 F(G(x)) = x 와 G(F(y)) = y가 되도록하는 방법을 소개하려한다.

 

Formulation

 

domain X 와 Y 사이의 mapping 함수( G : X → Y 와 F : Y → X )를 학습하는것을 목표로 한다. 

추가적으로 discriminator인 Dx와 Dy가 있는데, Dx는 x (x ∈ X) 와 변환된 image F(y) (y ∈ Y)를 구분해내고, 같은 방ㅂ버으로 Dy는 y 와 G(x)를 구분해내도록 한다. 이 논문에서 소개하는 objective 는 두가지 term이 존재한다.

 

 

1. Adversarial Loss

 

G는 domain Y의 image와 비슷하게 만들어내려고 노력할 것이고, 반면에 Dy는 G(x)와 real image y를 구분해 내려고 노력할 것이다. 따라서 G는 objective를 minimize 하려고 하고 D는 maximize하려고 할것이다.

mapping F : Y → X 도 마찬가지로 계산 될 수 있다.

 

실제 학습에서는 log likelihood objective가아닌 least squares loss 를 사용하여 학습하였다고한다. 왜냐하면 후자가 학습에 있어서 더 안정적이고, 더 높은 퀄리티의 결과를 생성해내기 때문이라고 한다.

 

 

2. Cycle Consistency Loss

 

위의 그림 (b)에서 보듯이, 각각의 Domain X 의 image x 에 대해서,  image translation cycle은 x를 다시 original image로 돌려놓을 수 있어야 한다. 즉, x → G(x) → F(G(x)) = x. ( forward cycle consistency).

마찬가지로 위의 그림 (c)에서 보듯이, 각각의 Domain Y의 image y에 대해서 , backward cycle consistency : y → F(y) → G(F(y)) = y 를 만족해야한다.

 

그러면 위와같이 L1 norm을 이용해 cycle consistency loss를 정의할 수 있다.

 

 

3. Full Objective

 

 full objective는 위의 수식이 된다. λ는 두 objective 간의 상대적인 중요도를 조절하는 변수이다.

 

최종적으로 두개의 autoencoder를 학습시키는 것 으로 생각될 수 있다.

 

Results

 

간단하게 논문에서 소개한 결과들 몇개를 보고 마치도록 해야겠다.

 

 

 

 

Reference

[1] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

반응형
Comments