[논문 Review] Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks (ICLR 2016)
* 여름 연구실 인턴 정기 미팅에서 논문 리뷰한 것을 정리한 게시글입니다.
* 발표 자료는 직접 제작했으며, 사진이나 자료의 출처는 페이지에 바로 표시해두었습니다.
* 2021. 07. 21(수) 발표
지난 논문 리뷰 글에서 GAN 모델에 대해 다루었는데, 이 때 GAN 모델들의 가장 큰 단점으로 안정적으로 학습되기 어려웠기 때문에 좋은 성능을 얻기 어려웠고, 결과물에 대한 객관적인 평가가 어려웠다는 점을 소개했다. 그렇기 때문에 초기에는 GAN을 응용하는데에 많은 어려움이 있었고, GAN의 단점들을 극복하기 위해 DCGAN이 등장한다. DCGAN이 나온 이후에는 대다수의 GAN 구조는 DCGAN의 구조를 따르고 있다고 하여 의미가 크다고 한다.
이번에 리뷰해볼 논문은 DCGAN을 처음 제안한 Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 라는 논문이다. 이 논문은 ICLR에서 2016년에 발표되었으며, 기존의 GAN 모델에 Multi-Layer Perceptron이 아닌 CNN을 도입한 DCGAN을 제안하여 의미가 크다.
기존의 GAN 모델은 불안정하다는 단점이 있었다. DCGAN 연구진들은 이를 해결하기 위해 기존의 불안정했던 GAN에 CNN을 적용시킨 모델을 제안한다. 단순히 CNN을 적용하기만 해도 충분히 좋은 결과를 얻을 수 있다고 실험을 통해 확인해 보여주고 있다. 또한 그 중에서도 위의 빨간 박스 속의 하이퍼 파라미터를 제시하며 다음과 같을 때 최적의 결과를 낼 수 있다고 보여주고 있다.
해당 하이퍼 파라미터들을 간단히 설명하자면, Maxpooling 제거, Feature map 크기 조절, batch normalization 적용, Fully connected hidden layer 제거, 그리고 Generator와 Discriminator에서의 각각 다른 활성함수 적용이다. 이 과정을 통해서 연구진들이 찾아낸 최적의 Generator 구조를 시각화하면 아래의 그림과 같다.
위 사진들은 DCGAN 모델을 통해 생성한 가짜 침실 이미지들이다. 침대 이미지 셋으로 5번의 에폭을 돌려 학습된 Generator가 생성한 가짜 침실 이미지들인데, 실제 침실 이미지라고 해도 무리가 없을 정도로 높은 성능을 보여주고 있다.
DCGAN을 활용한 두번째 실험을 보자.
'웃는 여자' 이미지 데이터셋에서 '무표정의 여자' 데이터셋을 빼고, '무표정의 남자' 데이터셋을 다시 더해 '웃는 남자' 라는 가짜 이미지를 얻어냈다. 이 때 이 모델이 단순히 기존의 모델들을 암기해서 웃는 남자라는 결과를 얻게 된건지 의심해볼 수 있을 것이다. 이를 간접적으로나마 증명하기 위해 주어진 학습 데이터셋들을 각각 픽셀 단위로 단순하게 더해보자.
맨 아래의 그림에서 보듯, 각 데이터셋을 단순하게 더했을 때 의미 없는 이미지들을 얻게 되는 것을 볼 수 있다. 이를 통해 확실히 Generator 모델은 단순히 이미지를 암기한 것이 아니라 나름 의미 있는 축을 가지고 있는 벡터공간으로 보내는 변환을 통해 이미지를 생성한다는 것을 간접적으로 알 수 있다.
이 그림들은 GAN과 DCGAN 관련된 자료들을 찾아보다가 두 모델을 통해 각각 생성된 이미지들을 비교해볼 수 있어서 가지고 왔다. 둘 다 그럴듯한 형태의 숫자를 생성해낸 것을 볼 수 있다. 특히, DCGAN에서 생성한 숫자들은 GAN에서 생성한 숫자들보다 훨씬 선명하다는 특징도 볼 수 있다.
오늘 소개한 GAN과 DCGAN 이외에도 GAN을 기반으로 한 모델은 아주 다양하다. 이후에 다양한 GAN 모델에 대해서도 공부해보면 좋을 것 같다.