참석자 : 이차민, 권동근, 김승민, 김영범
기존에 모임을 오랫동안 가지지 못해서 밀려있었던 총 4개의 논문을 리뷰했습니다.
WGAN / DCGAN / LSGAN / CGAN
순서로 발표를 진행하고 서로 피드백하는 시간을 가졌습니다.
1. WGAN(2017)
WGAN은 김영범님이 발표해주셨습니다.
기존 GAN의 Loss와 다른 distance를 채택한 방식입니다. Loss를 변경한 논문이기에 수식적인 설명을 많이 필요로해서 논문과 김영범님이 찾아오신 "십분딥러닝-WGAN"의 피피티를 보고 발표를 진행했습니다.
간략하게 정리해보자면 기존의 distance를 "EM distance(Wasserstein distance)"로 바꾼 것, Backpropagation시에 gradient clipping을 한 것이라고 정리할 수 있습니다.
추가적으로 WGAN에 대해서는 Improved된 WGAN-GP가 있기에 다음주에 있을 3회 정기 모임에서 WGAN-GP를 다루면서 내용적인 측면에서 더 보충하기로 했습니다.
2. DCGAN(2016)
DCGAN은 권동근님이 발표해주셨습니다.
DCGAN의 경우에는 archiecture에 대한 변화를 다룬 구현논문이기에 크게 집을 부분이 많지 않았습니다. 간략하게는 4가지 contribution이 DCGAN의 성공을 도모했다고 할 수 있습니다.
Pooling Layers 대신에 strided convolutions(downsample) & fractional-strided convolutions(upsampling)로 대체한다.
Conv features의 맨 위의 FC layers를 제거한다. 대신에 Global average pooling으로 모델 안정성을 향상시킨다.(수렴속도는 하락)
Batch Normalization으로 inputs를 normalize한다. 이는 깊은 모델의 훈련에서 발생하는 초기화 문제와 gradient 흐름 문제에 대해 도움을 준다. 하지만 모든 layers에 대해 BN을 적용하면 샘플이 변동하고, 모델이 불안정해진다. 그래서 generator의 output layer(이미지)와 discriminator의 input layer(이미지)에는 BN을 적용하지 않는다.
Generator에는 ReLU를 사용 ( output은 Tanh ) 경계가 있는 activation이 모델이 학습을 더 빨리 수렴하도록 학습하고 학습 분포의 색공간을 빠르게 커버하도록 하기 때문이다. Discriminator에는 LeakyReLU 사용.
또한 DCGAN에서는 latent vector를 arithmetic하게 연산할 수 있다고 말하고 있습니다. word embedding처럼 이미지내에서 의미를 가지는 latent vector를 조작함으로써 이미지를 조작할 수 있다고 말합니다.
3. LSGAN(2017)
LSGAN은 제가 발표했습니다.
Least Square 방식을 채택한 LSGAN은 기존의 cross entropy loss 대신에 MSE를 사용하고 있습니다.
LSGAN이 말하는 이점 두 가지는 다음과 같습니다.
더 실제같은 이미지를 생성할 수 있다는 것
더 안정적인 학습과정을 도모할 수 있다는 것
기존에 불안정했던 GAN의 loss를 바꿈으로써 얻어진 이점입니다. 먼저 더 실제같은 이미지를 형성할 수 있었던 이유는 다음과 같습니다. Least Square를 채택함으로써 기존에 잘 분류되었던 Sample들에 대해서도 penalty를 주어 decision boundary쪽의 real sample쪽으로 향하게 하여서, 더 실제같은 이미지를 생성할 수 있게 되는 것 입니다.
그리고 이러한 방법이 기존의 GAN과는 다르게 gradient vanishing, mode collapse 문제를 방지하여서 모델의 안정성을 높이게 됩니다. 그리고 논문 중간에 Batch normalization을 제거해도 성능이 비슷하다는 것 또한 학습의 속도를 높여줄 수 있다는 것을 암시하고 있습니다.
4. CGAN(2014)
CGAN은 김승민님이 발표해주셨습니다.
Conditional GAN은 기존의 GAN의 방식에 class인 "y"를 condition으로 추가하여 원하는 class의 이미지만 생성하도록 도와주는 방식입니다. 이 condition "y"를 추가했다는 것이 논문의 주요 내용이며 핵심입니다. 예를 들어 MNIST의 경우 class를 숫자 2로 condition을 주었을 때, 2의 이미지만 생성할 수 있는 것입니다.
본문도 간략하지만, 핵심은 기존의 object function에 condition "y"를 추가함으로써 원하는 class에 해당하는 이미지를 생성할 수 있다는 것입니다.
(사진은 첨부가 잘 되지 않아서... 글로만 작성했습니다..!)
추가적으로 논문을 더 깊게 이해하기 위해서 1주에 1편의 논문을 4명이 모두 발표를 준비한다는 마음가짐으로 준비해오고 추가적으로 더 공부해야한다면 그 다음 주에 시간을 내어 더 공부하는 방향으로 진행하기로 했습니다