[논문리뷰] InfoGAN

장우솔·2022년 11월 15일
1

딥러닝

목록 보기
15/15

Abstract

  • disentangle representation
    원하는 특징을 가진 랜덤한 이미지를 만드는 것은 쉽지않다.
    한 특징은 다른 특징과 연관이 있기 때문이다. 이것이 ‘entangle’, 얽히다. 꼬여있음을 의미한다. 내가 원하는 피처 외에 나머지를 고정한 채로 이미지를 생성하고 싶으면 축을 ‘disentangle’ 하게 만들면 된다.
    이러한 방법은 DC-LGN, info-GAN, beta-VAE 등이 있다.

이 논문은 기본적인 GAN 구조에 약간의 변형을 통해 GAN으로 하여금 데이터의 mutual information을 크게 만드는 representation을 찾도록 학습시키는 방식을 제시한다. 정확한 mutual information을 objective로 사용하지는 못하지만 mutual information에 대한 lower bound를 수학적으로 보이고 이 lower bound를 maximize하는 문제로 mutual information을 높아지도록 돕는다.
InfoGAN은 기존에 지도학습에 견줄만큼 GAN에 interpretable representation을 부여했다.
즉, 기본적인 아이디어는 기존의 GAN은 생성 모델의 input이 z 하나인 것에 비해 InfoGAN은 (z,c)로 input에 code라는 latent variable c가 추가된다. 그리고 GAN objective에 애드온(add-on)을 하나 붙여서 생성 모델이 학습을 할 때, latent 공간(z-space)에서 추가로 넣어준 코드 c와 생성된 샘플(generated sample) 사이의 Mutual Information (MI)가 높아지도록 도와준다.

Introduction

disentangled representation는 어떤 정보가 주어졌을 때 그 정보간에 뚜렷하게 구분할 수 있다. 예시로 MNIST 숫자에 어떤 변환이 있다고 가정한다면, 그 변환을 글씨 두께, 회전과 같이 구분되는 정보로 나눌 수 있다. generative model 관점에서는 각각을 조절할 수 있는 것이니 이점이 생기게 된다. 본 논문에서는 이러한 관점에서 GAN으로 하여금 disentangled representation을 학습하도록 하는데 목적이 있다고 말한다. InfoGAN은 비지도학습을 사용함으로써 label data가 필요하지 않다.

Background: Generative Adversarial Networks

  • 기본 GAN의 minimax game (1)
    기본적인 GAN의 구조에서 사용하는 input noise vector z는 특별한 제약없이 사용한다. 따라서 generator가 사용하는 input인 noise vector의 정보는 entangled 되어있다고 할 수 있다. 하지만 데이터는 여러 semantic factor로 구성되어 있고 GAN 구조는 noise vector에서 데이터의 semantic feature를 직접 대응시키기가 어렵다.

Mutual Information for Inducing Latent Codes

본 논문은 semantic feature를 input noise에서 분리하는 방법을 다루므로 input vector를 다음과 같이 구분해 표기한다.

  1. z : source noise로 GAN에서 사용하는 일반적인 noise
  2. c : latent code로 이 latent code로 data distribution의 뚜렷한 semantic feature를 찾을 수 있다. Latent code은 독립을 가정한다.

GAN이 unsupervised 방식으로 이 latent code를 구분하도록 만들어야 하는데 GAN이 latent code를 무시하면서 학습할 수도 있다. 즉 latent code에 대한 가중치를 낮게 잡으면서 사실상 사용하지 않는 학습을 할 가능성이 있으므로 이를 억제하기 위한 장치가 필요하다. 이를 위해 정보이론에서의 mutual information 개념을 도입하게 된다. 정보량은 I(X;Y)로 표현된다. (2) X정보량과 Y정보량이 전혀 관련이 없다면 I(X;Y)=0일 것이다. 이러한 개념을 사용해 information-regularized minimax game을 다음과 같이 정의한다. (3)

Variational Mutual Information Maximization

(3)을 실제로 적용하기에는 문제가 있다. 상호정보량은 이전 관측 x를 통해 새로운 관측 y에 불확실성이 얼마나 제거되는가에 대한 척도라고 할 수 있다. I(X;Y)를 가장 크게 만들기 위해 즉, I(c;G(z,c))는 posterior P(c|x)를 알아야 하는데 애초에 generative model이 posterior를 알았다면 이렇게 어렵게 갈 필요도 없었을 것이다. Posterior를 사용하지 않고 mutual information을 최대화하기 위해 variational information maximization을 이용해서 posterior P(c|x)를 근사하는 auxiliary distribution Q(c|x)의 lower bound를 찾는 문제로 바꾸고 lower bound를 구한다.

  • Lower bound 유도 식

Lower bound를 위와 같이 잡음으로써 posterior P(c|x)를 사용하는 것은 피했지만 아직도 posterior에서 sampling을 하는 부분이 포함되어 있다. 아래의 Lemma를 사용해 sampling하는 부분도 바꾸어 줄 수 있다.

정리하면 InfoGAN은 기존 GAN을 다음의 minimax game으로 바꾼다. variational regularization of mutual information이 추가된 형태이며 lambda는 hyperparameter이다.

  • 최종 InfoGAN 목적함수

Experiments

실험해서 확인하는 가장 중요한 것은 정말로 InfoGAN을 사용할 때 mutual information이 maximized되는지를 확인하는 것이다. 두 번째로는 학습한 InfoGAN모델에서 disengtangled and interpretable representation이 찾아졌는지를 보는 것으로 generator에서 latent factor를 바꿔가면서 실험해보면 이를 확인할 수 있다.

Mutual Information Maximization

MNIST에 대해서 학습을 시켰으며 c~Cat(k=10, p=0.1)로 categorical distribution에서 sampling한다.
아래의 Figure 1을 보면 GAN은 mutual information이 증감을 거치고 일정값을 유지하는 반면 InfoGAN은 증가 후 유지됨은 물론 그 값자체가 InfoGAN보다 훨씬 큰 값을 갖는다.

Disentangled Representation

Figure 2는 InfoGAN의 핵심을 보여준다. 우선 (a)를 보면 c1은 discrete latent code로 Cat(k=10, p=0.1)에서 sampling하는 것을 생각할 때 정확하게 의도한 결과를 얻었음을 보여준다. 둘째 행의 마지막 숫자(9->7)는 오류가 있지만 10개의 class에 대해 supervision없이 수행한 값으로 정확하게 10개의 숫자가 있음을 구분해낸 것이다. 다른 두 개의 continuous latent code가 보여주는 결과도 매우 흥미롭다. 비록 Unif(-1,1)에서 sampling했지만 더 대비되는 결과를 보기 위해 저자는 값을 -2 ~ 2로 바꾸어가면서 generator의 출력을 그려 각각 (c), (d)에서 보여주었다. (c)에서는 기울기가, (d)에서는 굵기가 latent code화 되었음을 볼 수 있다. 이는 의도한 disentangled and interpretable의 성질을 충분히 뒷받침하는 결과이다. Faces와 chairs에 대해서도 이와 유사한 결과를 보여준다.

Conclusion

이 논문에서는 representation learning algorithm으로 InfoGAN을 제시하였다. 이전 접근법들과 대비되는 점은 supervision이 필요없이 unsupervised learning으로써 representation learning을 할 수 있음을 보였다는 점이며 interpretable and disentangled representation을 효과적으로 잡았다는데 있다. 계산비용에 있어서도 기존 GAN에 약간의 계산이 더해지는 정도라 매우 효율적이다.

한계로는 다양하고 큰 데이터셋에서는 적용하기 어렵다. noize variable에 민감하다. 추후에 나온 모델 beta-VAE는 하이파라미터 beta를 조절함으로써 disentangle 정도를 조절가능했다.

infogan 코드
https://colab.research.google.com/drive/1nNWpzjJOkIfSjgHk2q8HVqjblN-xV2DL?usp=sharing

InfoGAN paper
참고 blog

profile
공부한 것들을 정리하는 블로그

0개의 댓글