반응형

논문 : https://arxiv.org/abs/1703.10593


Cycle Gan이라고 불리우는 논문이다.

논문제목이 길어서 많이 놀랬는데, 그냥 CycleGan이라고 하면 나올줄 알았지만 그렇지가 않았다.

논문의 제목을 보자면 Unpaired와 Cycle Consistent가 눈에 띈다.

기존 도메인이 X라고 하면은 그것을 Y 도메인으로 넘기는 역할을 하는데 그때에 데이터를 생성하는 방법을 GAN으로 하겠다는게 이 논문의 골자이다. 그런데 우리가 기존에 살펴 봤었던 GAN의 문제점인 mode collapse를 cycle consistency 라는 방법을 통해서 해결(?)을 한것처럼 이 논문에서 보인다. 

우리가 고등학교때 배운 역함수의 개념이 여기서도 적용이 되는데,

G라는 함수에 X를 넣었을때 Y가 나온다면.

F라는 함수가 G함수의 역함수가라면 Y를 넣었을 때에 X가 나온다. 그래서 여기서는 Cycle consistency loss라는 개념을 사용해서 해당 함수가 역함수가 되도록 하는게 가능하게끔 한다.


여기서 paired training data 와 unpaired training data의 정의가 뭐냐면 해당 데이터 셋을 정의를 할 때, 짝이 존재를 하면 paired training data이고 짝이 존재하지 않고 홀로 존재를 하면 unpaired라는 단어를 사용한다.


 :  paired training data (supervised learning)

 : unpaired training data (unsupervised learning)



Cycle consistency 라는 것에 대해서도 좀 더 자세히 알아보자. 이 논문에서는 cycle consistency loss라는 것을 사용을 하는데, 이를 보면은 더욱 이해가 쉬울 것 같다.





위의 사진에서 (a)를 먼저 보자.  cycle consistency라는 X에서 Y로 바꾸는 함수를 G, Y에서 X로 바꾸는 것을 F라고 하면

X가 G를 통과하고 다시 Y를 통과했을 다시 X가 나오는 것을 cycle consistency라고 한다.

그런데 mode collapse라는 문제때문에 GAN에서는 이런 cycle consistency가 힘이 든다.

다시 사진에서 (b)를 보자. X가 G를 통과하고 다시 F를 통과했을 때의 상황을 보면, X가 나와야 되는데 그러지를 못하고 조금 다른 X2와 같은 것이 나오게 된다. 이때 원래의X와 X2의 차이를 우리는 cycle-consistency loss라고 부르고, 학습할때에 이 값도 포함한 objective function을 구성해서 학습을 진행을 하게 된다.



이 두가지 개념이 이 논문의 주축이다.

그러면 전체의 objective function은 어떻게 될까.

우리가 풀려는 식은 다음과 같다.



그리고 해당의 세부적인 함수의 모양은 다음이다.



이 식으로 학습이 시키면 cycle Gan이 학습이 된다고 한다.

(자세한 학습 파라미터와 같은 것들은 해당 논문의 implementation 부분을 참고하기 바람)







반응형

+ Recent posts