본문 바로가기
딥러닝

[GAN 논문 리뷰] RealnessGAN : REAL OR NOT REAL, THAT IS THE QUESTION

by 미스터탁 2020. 5. 7.

이번에 리뷰할 논문은 RealnessGAN (REAL OR NOT REAL, THAT IS THE QUESTION) 입니다.

 

2020 ICLR poster spotlight 논문으로 선정된 논문으로,, 굉장히 제목만 보면 클릭해보지 않을 수 없는 논문입니다.

 

먼저 RealnessGAN의 결과부터 보고 가도록 하겠습니다.

 

얼핏 봐도 굉장히 좋은 성능을 내는 GAN이라는 것을 알 수 있습니다.

 

Vanilla GAN

Vanllia GAN은 input의 realness를 D의 single scalar를 이용해서 추정합니다. 하지만 인간은 이미지를 인식 할때 하나의 측면만을 보면서 인지 하지 않죠. 각도, 질감, 조합 등 다양한 측면과 기준을 고려합니다. 그러므로, 이 single scalar 값은 generator에게 불충분한 정보를 전달하게 됩니다. 아래 그림의 (a)는 아무런 결점이 없는 이미지 이며, (b)의 이미지는 약간의 어색한 부분이 있는 이미지 입니다. 이러한 이미지를 보면서 알 수 있듯이, '진짜'의 정도는 여러 측면을 통해서 인지하게 된다라는 것이죠.

 

Vanllia GAN의 loss function은 다음과 같습니다.

 

이 loss function을 D와 G의 입장에서 위와 같이 해석할수 있습니다. 그런데 '진짜' 데이터를 1로 학습을 시키고 '가짜'데이터를 0으로 학습시키는 이유는 뭘까요 ? 단지 우리는 그것이 'reasonable'하다고 생각 했기 때문이죠. Input에 대하여 '진짜' 와 '가짜'로 분류해야하기 때문에 어쩔수 없이 1과 0으로 라벨링 해왔습니다. RealnessGAN은 '진짜' 데이터를 A분포로 '가짜' 데이터를 B분포로 학습시키는 개념입니다.

 

더불어, vanilla GAN의 loss function에 대한 증명은 다음과 같이 진행 할 수 있습니다. G를 고정시킨 이후 최적의 D값을 찾은 이후, 최적의 D값으로 대체한후 최적의 G를 찾아 Pg와 Pdata가 같아지는 지점이 loss funciton의 global optimum이다 라는 것을 증명합니다.

 

Realness GAN

 

RealnessGAN은 '진짜' 데이터를 A분포로 '가짜'데이터를 B분포로 학습시키는 모델이며, D의 output은 realness의 measure로서의 scalar가 아닌 분포를 가지게 됩니다. 저자들은 RealnessGAN의 theorical result를 보이며, vanillaGAN과 비슷한 theorical guarantee를 가진다라는 것을 보입니다. 실험적으로 DCGAN과 비슷한 구조에서 1024 x 1024 고해상도 이미지도 잘 생성해내는 것을 보였습니다. 

 

RealnessGAN의 objective function은 다음과 같습니다. 각각의 분포를 real/fake data로 correspond 시킵니다. 여기서 A는 anchor의 약자로서 우리가 이끌고자 하는 분포를 이야기합니다. A1은 real분포 A0는 fake분포로 생각하시면 됩니다. VanillaGAN은 minimax problem을 푸는 것이였지만, 여기서는 Maximini problem으로 바꿔서 풀게 됩니다. 아래 objective function을 보시면 D의 입장에서는 x~data가 A1에 correspond 되고 x_pg과 A0에 correspond되길 원하니 각각 KL divergence를 구했을때 0이 되는게 best입니다. D의 입장에서는 objective function을 최소화 시켜야하며, 반면 G의입장에서는 앞의 term은 필요가 없고, 뒤의 term에서 D가 g가 만들어낸 데이터를 A1으로 생각하게끔 해야합니다. 그리고 G의 입장에서는 뒤의 term을 최대화 시켜야하는 것입니다. 

 

 

RealnessGAN의 theorical result는 다음과 같습니다.

우선 G가 고정되어있을때 optimal D를 찾습니다.

 

그리고 optimal D를 찾고 optimum G를 찾아 저자들이 제시한 objective function의 global optimum은 pg=pdata일때 달성된다라는 것을 보입니다.

 

실험부분에 대한 설명입니다.

 •Synthetic Dataset에 실험 – four fully connected layer

 • Real data - DCGAN구조

  • CIFAR10, CelebA에 대한 실험

  • High resolution인 FFHQ dataset에 대한 실험

  • Standard GAN, WGAN-GP, HingeGAN, LSGAN과 비교

 

Synthetic data에대한 실험 결과입니다.

 

 

 

Real data에 대한 실험 결과입니다.

 

 

 

 

개인적으로 Realness GAN은 꽤 재밌게 읽은 논문입니다. 기존의 GAN에 대한 개념을 어느정도 깨뜨리는 논문이며 개인적으로는 contribution이 높은 논문이라 생각합니다. 다만, 아쉬운건 최근에 SOTA를 찍은 GAN구조에 활용해서 실험결과를 보였으면 더 좋지 않았을까라는 생각이 들긴 합니다. 

반응형

댓글