오늘은 Autoencoder의 구조와 GAN framework를 결합해 탄생한 AAE에 대해서 알아보도록 하겠습니다.

 

 

paper : arxiv.org/abs/1511.05644

 

Adversarial Autoencoders

In this paper, we propose the "adversarial autoencoder" (AAE), which is a probabilistic autoencoder that uses the recently proposed generative adversarial networks (GAN) to perform variational inference by matching the aggregated posterior of the hidden co

arxiv.org

 

 

Abstract

 

 

이번 논문에서는 autoencoder의 hidden code vector의 aggregated posterior를 임의의 prior distribution과 매칭 하여 variational inference를 수행하기 위해 최근에 제안된 generative adversarial networks를 사용하는 확률적 autoencoder인 "adversarial autoencoder" (AAE)을 제안한다.

 

Aggregated posterior를 prior에 매칭시키는 것은 prior space의 특정 부분에서 생성하는 것이 의미 있는 샘플을 가져옴을 보장한다.

 

그 결과로, adversarial autoencoder의 decoder는 도입된 prior를 data distribution으로 mapping 하는 deep generative model을 학습한다.

 

우리는 semi-supervised classification, disentangling style and content of images, unsupervised clustering, dimensionality reduction and data visualization과 같은 응용 분야에서 사용될 수 있음을 보인다.

 

MNIST와 Street View House Numbers, Toronto Face dataset에서 실험을 수행하였으며, adversarial autoencoders가 generative modeling과 semi-supervised classification task에서 경쟁력 있는 결과를 나타냄을 보였다.

 

 

1. Introduction

 

 

Audio나 image, 혹은 video와 같은 풍부한 분포를 포착하기 위해 scalable generative model을 만드는 것은 machine learning의 중요한 도전 중 하나이다.

 

최근까지, Restricted Boltzmann Machines (RBM), Deep Belief Networks (DBNs), 그리고 Deep Boltzmann Machines (DBMs)와 같은 deep generative models들은 주로 MCMC 기반의 알고리즘에 의해서 학습되어 왔다.

 

이러한 접근법에서 MCMC 방법은 학습이 진행될수록 더욱 애매해지는 log-likelihood의 gradient를 계산한다.

 

이는 Markov Chains에서 나온 샘플들이 modes 사이에서 충분히 빠르게 혼합될 수 없기 때문이다.

 

최근에, direct back-propagation을 통해서 학습되고 MCMC 학습에서 마주하게 되는 어려움들을 회피할 수 있는 generative model이 개발되어져 왔다.

 

예를 들어, variational autoencoder (VAE) 혹은 importance weighted autoencoders는 잠재 변수에 대한 posterior distribution을 예측하는 recognition network를 사용하였고, generative adversarial networks (GAN)는 back-propagation을 통해서 네트워크의 output distribution을 직접적으로 형성하기 위해 adversarial training procedure를 사용했고 generative moment matching networks (GMMN)은 데이터 분포를 학습하기 위해 moment matching cost function을 사용하였다.

 

본 논문에서는 autoencoder를 generative model로 전환할 수 있는 adversarial autoencoder (AAE)라고 불리는 일반적인 접근 방식을 제안한다.

 

우리 모델에서, autoencoder는 전통적인 reconstruction error criterion와 autoencoder의 latent representation의 aggregated posterior distribution을 임의의 prior distribution으로 매칭 하는 adversarial training criteriondual objectives를 가지고 학습된다.

 

우리는 이 training criterion이 VAE 학습과 강한 연관이 있음을 보였다.

 

학습의 결과로 encoder는 data distribution을 prior distribution으로 변환하도록 학습하며 decoderimposed prior를 data distribution으로 mapping하는 deep generative model을 학습한다.

 

(이번 논문에서 가장 핵심되는 내용들이라 밑줄과 볼드체로 표시하였습니다. 해당 내용을 숙지하시고 앞으로 논문 내용을 보시면 좋을 것 같습니다.)

 

Figure 1

Figure 1: adversarial autoencoder의 아키텍처. 위의 행은 이미지 latent code $z$로부터 이미지 $x$를 복원하는 일반적인 autoencoder이다. 아래 행은 한 샘플이 autoencoder의 hidden code로부터 나온 것인지, 혹은 유저에 의해서 정해진 sampled distribution으로부터 나온 것인지를 예측하도록 학습된 두 번째 네트워크를 나타낸다.

 

 

1.1 Generative Adversarial Networks

 

 

Generative Adversarial Networks (GAN) framework는 generative model $G$와 discriminative model $D$의 두 신경망 사이의 min-max adversarial game을 만든다.

 

The discriminator model $D(x)$는 data space에 있는 point $x$가 우리의 generative model로부터 나온 샘플(negative samples)이라기보다는 우리가 모델링하려고 시도하고 있는 data distribution으로부터 나온 샘플(positive samples) 일 확률을 계산하는 신경망이다. 

 

동시에, generator는 prior $p(z)$로부터 나온 샘플 $z$를 data space로 mapping하는 함수 $G(z)$를 사용한다.

 

$G(z)$는 discriminator가 샘플들이 data distribution에서 생성되었다고 믿도록 최대한 속게끔 학습된다.

 

Generator는 $D(x)$의 $x$에 대한 gradient를 활용하여 학습하게 되며, 이를 사용해 generator의 parameter를 수정한다.

 

이 게임의 해결책은 다음과 같이 표현될 수 있다.

 

 

Generator $G$와 discriminator $D$는 두 단계에서 교대로 적용되는 SGD를 사용하여 확인할 수 있다.

 

(a) discriminator는 generator에 의해서 생성된 fake samples로부터 true samples를 구별하도록 학습한다.

 

(b) 생성된 샘플을 가지고 discriminator를 속이기 위해서 generator를 학습한다.

 

(GAN과 관련해서는 cumulu-s.tistory.com/22 에서 이미 다뤘기 때문에, 혹시 GAN에 대한 background 지식이 없으신 분들은 해당 포스트를 참고하셔서 GAN에 대한 내용을 확인하시면 되겠습니다.)

 

 

 

2. Adversarial Autoencoders

 

 

$x$를 input이라 하고 $z$를 deep encoder와 decoder를 가진 autoencoder의 latent code vector (hidden units)이라고 하자.

 

$p(z)$를 codes에 대해서 우리가 도입하길 원하는 prior distribution이라 하고, $q(z|x)$는 encoding distribution, $p(x|z)$는 decoding distribution이라 하자.

 

또한, $p_d(x)$는 data distribution이라 하고 $p(x)$는 model distribution이라 하자.

 

Autoencoder의 encoding function $q(z|x)$는 autoencoder의 hidden code vector에 대해서 aggregated posterior distribution $q(z)$를 다음과 같이 정의한다.

 

Equation 1

 

Adversarial autoencoder는 aggregated posterior $q(z)$를 임의의 prior $p(z)$에 매칭 시킴으로써 regularized 되는 autoencoder이다.

 

그러기 위해서, adversarial network는 Figure 1에서 나타난 것처럼 autoencoder의 hiddne code vector의 위쪽에 부착된다.

 

$q(z)$가 $p(z)$에 매칭되도록 안내하는 것은 adversarial network이다.

 

그동안에, autoencoder는 reconstruction error를 최소화하도록 시도한다.

 

또한, Adversarial network의 generator는 autoencoder의 encoder $q(z|x)$이다.

 

Encoder는 aggregated posterior distribution이 discriminative adversarial network가 hidden code $q(z)$이 true prior distribution $p(z)$로부터 왔다고 생각하도록 속일 수 있다는 것을 보장한다.

 

Adversarial network와 autoencoder 둘 다 reconstruction phase와 regularization phase라는 두 단계에 걸쳐 SGD를 활용해 공동으로 학습되며, mini-batch로 수행된다.

 

Reconstruction phase에서, autoencoder는 encoder와 decoder를 input의 reconsturction error를 최소화하도록 업데이트한다.

 

Regularization phase에서, adversarial network는 첫 번째로 discriminative network를 prior를 사용해서 생성된 true sample을 autoencoder에 의해서 계산된 hidden code로부터 생성된 샘플과 구별하도록 학습한다.

 

그러고 나서 autoencoder의 encoder이기도 한 generator가 discriminative network를 속이도록 업데이트한다.

 

한 번 학습 절차가 마무리되면, autoencoder의 decoder는 imposed prior $p(z)$를 data distribution으로 mapping 하는 generative model을 정의할 수 있다.

 

Adversarial autoencoder의 encoder $q(z|x)$에 대한 여러 가지 가능한 선택이 존재한다.

 

(1) Deterministic: 이 경우 우리는 $q(z|x)$를 $x$의 deterministic function이라고 가정한다. 이 경우에, encoder는 standard autoencoder의 encoder와 유사하고, $q(z)$에서 확률성의 유일한 원천은 data distribution $p_d(x)$이다.

 

(2) Gaussian posterior: 이 경우 우리는 $q(z|x)$를 Gaussian distribution이라고 가정하며, 이 분포의 평균과 분산은 encoder network에 의해서 예측된다: $z_i \sim N(\mu_i(x), \sigma_i(x))$.

 

이 경우에, $q(z)$에서의 확률성은 encoder의 output에서의 데이터 분포와 Gaussian distribution의 무작위성 모두로부터 나온다. 

 

우리는 encoder network를 통한 back-propagation을 위해 VAE의 re-parametrization trick을 사용할 수 있다.

 

(3) Universal approximator posterior: Adversarial autoencoder는 $q(z|x)$를 posterior의 universal approximator로 학습하는 데 사용될 수 있다.

 

Adversarial autoencoder의 encoder network를 input $x$와 고정된 분포(예를 들어, Gaussian)를 가지는 random noise $\eta$를 입력으로 받는 함수 $f(x, \eta)$라고 가정하자.

 

우리는 $\eta$의 다른 샘플에 대해서 $f(x, \eta)$를 평가함으로써 임의의 posterior distribution $q(z|x)$에서 샘플링할 수 있다.

 

다르게 말해서, 우리는 $q(z|x, \eta) = \delta(z - f(x,\eta))$로 가정할 수 있고 posterior $q(z|x)$와 aggregated posterior $q(z)$는 다음과 같이 정의된다.

 

 

이 경우에, $q(z)$에서의 확률성은 encoder의 input에서 데이터 분포와 random noise $\eta$ 모두에게서 나오며, posterior $q(z|x)$는 더 이상 Gaussian으로 제약되지 않고 encoder는 input $x$가 주어졌을 때 임의의 posterior distribution을 학습할 수 있다.

 

Aggregated posterior $q(z)$로부터 샘플링을 하는 효율적인 방법이 있기 때문에, adversarial training procedure는 encoder network $f(x, \eta)$를 통해서 direct back-propagation을 통해 $q(z)$를 $p(z)$에 매칭 할 수 있다.

 

 

다른 종류의 $q(z|x)$를 선택하는 것은 다른 training dynamics를 가지는 다른 종류의 모델을 야기할 것이다.

 

예를 들어, $q(z|x)$의 deterministic case에서, network는 오직 데이터 분포의 확률성을 이용하는 것을 통해 $q(z)$를 $p(z)$로 매칭해야 한다.

 

하지만 데이터의 empirical distribution이 training set에 의해서 고정되고 mapping이 deterministic 하기 때문에, 이는 매우 smooth하지 않은 $q(z)$를 만들게 될 것이다.

 

그러나, Guassian이나 universal approximator case에서 network는 $q(z)$를 smoothing out 함으로써 adversarial regularization stage에서 도움이 될 수 있는 확률성의 추가적인 원천에 접근할 수 있다.

 

그럼에도 불구하고, 광범위한 hyper-parameter search 후에, 우리는 $q(z|x)$의 각 유형에 대한 유사한 test-likelihood를 얻었다.

 

따라서 논문의 나머지에서 우리는 $q(z|x)$의 deterministic version에 대한 결과만 보고한다.

 

 

2.1 Relationship to Variational Autoencoders

 

 

우리의 연구는 spirit(정신?)에서 variational autoencoder와 유사하다.

 

하지만 VAE는 autoencoder의 hidden code vector에 prior distribution을 도입하기 위해 KL divergence penalty를 사용하였으나, 우리는 hidden code vector의 aggregated posterior를 prior distribution과 일치시킴으로써 adversarial training procedure를 사용한다.

 

VAE는 다음의 $x$의 negative log-likelihood에 대한 upper-bound를 최소화하였다.

 

Equation 2

 

Aggregated posterior $q(z)$는 Equation 1에 정의되었으며, $q(z|x)$를 Gaussian 분포라고 가정하고 $p(z)$를 임의의 분포라고 가정한다.

 

Variational bound는 3개의 term을 포함한다. 

 

첫 번째 term은 autoencoder의 reconstruction term으로 볼 수 있으며, 두 번째와 세 번째는 regularization term으로 볼 수 있다.

 

Regularization term이 없다면, 모델은 단순히 input을 복원하는 standard autoencoder이다.

 

하지만, regularization term의 존재로, VAE는 $p(z)$와 호환이 되는 latent representation을 학습한다.

 

Cost function의 두 번째 term은 posterior distribution의 큰 variance를 유도하지만, 세 번째 term은 prior $p(z)$와 aggregated posterior $q(z)$사이의 cross-entropy를 최소화한다.

 

Equation (2)에서 KL divergence나 cross-entropy term은 $q(z)$가 $p(z)$의 mode를 선택하도록 유도한다.

 

Adversarial autoencoder에서, 두 번째 2 개의 term을 $q(z)$가 $p(z)$의 전체 분포에 일치하도록 유도하는 adversarial training procedure로 대체한다.

 

Figure 2

Figure 2: MNIST에서 adversarial autoencoder와 variational autoencoder의 비교. Adversarial autoencoder에 대해서 hold-out image(Test set을 의미한다고 보시면 됩니다.) 들의 hidden code $z$를 (a) 2-D Gaussian에 fitting 시켰을 때와 (b) 2-D Gaussian의 10개의 mixture에 fitting 시켰을 때의 결과이다. 각 색깔은 관련된 label을 나타낸다. Variational autoencoder에도 동일하게 (c) 2-D Gaussian과 (d) 10개의 2-D Gaussian의 혼합에 fitting 시킨 결과이다. (e) 2-D Gaussian adversarial autoencoder에서 각 hidden code dimension $z$를 따라서 Gaussian 백분위수를 균일하게 샘플링해 만들어진 이미지이다.

 

이번 section에서, code distribution에 대해 지정된 prior distribution $p(z)$를 도입하는 adversarial autoencoder의 능력을 VAE와 비교한다. 

 

Figure 2a는 hidden code $z$에 구형의 2-D Gaussian prior distribution이 부과되는 MNIST 숫자 데이터에 훈련된 adversarial autoencoder에서 비롯되는 test data의 coding space $z$를 보여준다.

 

Figure 2a에 나타난 학습된 manifold는 sharp transition을 드러내고 있으며, 이는 coding space가 채워져 있고 구멍이 없음을 나타낸다. 

 

실제로, coding space에서의 sharp transition은 $z$내에서 interpolate 해서 만들어진 이미지들이 data manifold (Figure 2e)에 놓인다는 것을 나타낸다.

 

대조적으로, Figure 2c는 adversarial autoencoder 실험에서 사용된 것과 동일한 architecture를 가지는 VAE의 coding space를 보여준다.

 

이 경우에 VAE가 대략 2-D Gaussian distribution의 모습과 일치함을 볼 수 있다.

 

하지만, coding space의 여러 local 지역에 mapping 된 데이터 포인트가 없는 것은 VAE가 adversarial autoencoder와 같이 data manifold를 포착하지 못함을 나타낸다.

 

Figure 2b와 2d는 도입된 분포가 2-D Gaussian의 10개 mixture일 때 adversarial autoencoder와 VAE의 code space를 보여준다.

 

Adversarial autoencoder는 성공적으로 aggregated posterior를 prior distribution에 일치시켰다. (Figure 2b)

 

대조적으로, VAE는 10개의 Gaussian mixture와 체계적인 차이를 보여주고 있으며, 이는 위에서 설명한 것과 같이 VAE가 distribution의 mode를 매칭 시키는데 집중하기 때문인 것을 나타낸다.

 

VAE와 adversarial autoencoder 사이의 중요한 차이점은, VAE에서는 Monte-Carlo sampling에 의해서 KL Divergence를 통해 back-propagate 하기 위해 prior distribution의 정확한 함수 형태를 알고 있어야 한다.

 

하지만, AAE에서는 $q(z)$를 $p(z)$와 일치하도록 유도하기 위해서 prior distribution으로부터 샘플링하는 것이 가능하기만 하면 된다.

 

Section 2.3에서, adversarial autoencoder가 distribution의 정확한 함수 형태를 모르더라도 Swiss roll 분포와 같은 복잡한 분포를 도입할 수 있음을 보인다.

 

 

2.2 Relationship to GANs and GMMNs

 

이 부분은 생략합니다. 

 

 

 

2.3 Incorporating label information in the Adversarial Regularization

 

 

데이터가 라벨링이 되어 있는 경우에, hidden code의 분포를 더 잘 만들어 내기 위해 adversarial training stage에서 label information을 포함시킬 수 있다.

 

이번 section에서, autoencoder의 latent representation을 더욱 강하게 regularize 하기 위해 부분적인 혹은 완전한 label information을 어떻게 활용할 수 있는지를 설명한다.

 

이 아키텍처를 설명하기 위해서, adversarial autoencoder를 2-D Gaussian의 10개 mixture에 fitting 시킨 Figure 2b로 돌아간다.

 

이제 우리는 Gaussian distribution의 mixture의 각 mode가 MNIST의 label을 나타내도록 강제하는 것을 목표로 한다.

 

 

Figure 3는 이러한 semi-supervised 접근법을 위한 학습 절차를 나타낸다.

 

우리는 distribution의 mode와 label을 연관시키기 위해서 discriminative network의 input에 one-hot vector를 추가한다.

 

One-hot vector는 class label이 주어졌을 때 이에 대응되는 discriminative network의 decision boundary를 선택하는 switch로 작용한다.

 

이 one-hot vector는 unlabeled examples에 대해서 extra class를 가진다.

 

예를 들어, 2-D Gaussian의 10개 mixture를 도입하는 경우(Figure 2b and 4a)에 one-hot vector는 11개의 클래스를 포함한다.

 

첫 번째 10개의 class 각각은 대응되는 각각의 mixture component에 대한 decision boundary를 선택한다.

 

One-hot vector에 있는 여분의 class는 unlabeled training point에 대응된다.

 

Unlabeled point가 모델에 제시되었을 때, extra class는 켜지고, Gaussian distribution의 전체 mixture를 위한 decision boundary를 선택한다.

 

Adversarial training의 positive phase 동안에, one-hot vector를 통해 discriminator에 positive sample이 뽑힌 mixture component의 label을 제공한다.

 

Unlabeled examples를 위해 제공되는 positive samples는 특정 class가 아닌 Gaussian의 전체 mixture에서 나온다.

 

Negative phase 동안에, training point image의 label을 one-hot vector를 통해서 discriminator에 제공한다.

 

Figure 4

Figure 4: hidden code를 더 잘 규제하기 위해 label information을 활용한 경우. Top Row: coding space가 10개의 2-D Gaussian mixture와 일치하기 위해서 학습된 경우: (a) hold-out image의 coding space z (b) 첫 번째 3 mixture component의 manifold: 각 패널은 대응되는 mixture component의 축을 따라 Gaussian percentile을 균등하게 샘플링했을 때 생성되는 이미지들을 포함한다. Bottom Row: 동일하지만 swiss roll distribution일 때. Label은 숫자 순서대로 mapping 됨. (즉, swiss roll의 첫 번째 10%는 숫자 0에 대응되며, 나머지는 동일) (c) hold-out image의 coding space z (d) main swiss roll axis를 따라 걸으면서 생성된 샘플들

 

Figure 4a는 1만 개의 labeled MNIST와 4만 개의 unlabeled MNIST 예제에 대해서 훈련된 10개의 2-D Gaussian의 혼합을 prior로 훈련된 adversarial autoencoder의 latent representation을 나타낸다.

 

이 경우에, prior의 $i$번째 mixture components는 semi-supervised 방식으로 $i$번째 class에 부여된다.

 

Style representation은 각 mixture component 내에서는 일관적으로 표현되며, 이것은 class와 독립이다.

 

예를 들어, Figure 4b의 모든 패널의 왼쪽 상단 영역은 곧게 쓰인 style에 대응되고, 오른쪽 하단 영역은 기울어진 스타일에 대응된다.

 

이 방법은 MNIST data를 "swiss roll" (평균이 swiss roll 축의 길이를 따라서 균등하게 분포되는 조건부 Gaussian distribution)에 mapping 하는 것을 통해서 검증되는 것처럼 parametric form이 없는 임의의 분포에도 확장될 수 있다.

 

Figure 4c는 coding space z를 묘사하고 있으며, Figure 4d는 latent space에서 swiss roll axis를 따라서 걸음으로써 생성되는 이미지들을 강조한다.

 

 

 

3. Likelihood Analysis of Adversarial Autoencoders

 

해당 논문에서 사용하고 있는 metric이 GAN paper에서 사용된 metric과 유사한데, 요즘은 잘 사용하지 않는 것 같아서 해당 부분도 제외합니다.

 

 

4. Supervised Adversarial Autoencoders

 

 

semi-supervised learning은 machine learning에서 오랫동안 지속되어 온 개념적인 문제이다.

 

최근에, 생성 모델들은 원칙적인 방식으로 class label information을 많은 다른 잠재적인 variation의 요소로부터 분리할 수 있기 때문에 semi-supervised learning에 대한 가장 인기 있는 접근법 중 하나가 되었다.

 

 

이번 section에서는, 먼저 fully supervised scenarios에 집중하고, 이미지 style information으로부터 class label information을 분리할 수 있는 adversarial autoencoder의 구조에 대해서 논의해본다.

 

그러고 나서 이 구조를 Section 5에서의 semi-supervised setting으로 확장한다.

 

Label information을 포함시키기 위해서, 우리는 decoder에 label의 one-hot vector encoding을 제공하기 위해 Figure 1의 네트워크 아키텍처를 Figure 6의 형태로 변경한다.

 

Decoder는 label을 확인하는 one-hot vector와 이미지를 reconstruct 하는 hidden code z를 모두 활용할 수 있다.

 

이 아키텍처는 hidden code z에서 label과 독립적인 모든 정보를 네트워크가 유지하도록 강제한다.

 

Figure 6
Figure 7

Figure 7a는 hidden code가 15-D Gaussian이도록 설정된 네트워크를 MNIST 숫자에 학습되었을 때의 결과를 보여준다. 

 

Figure 7a의 각 행은 hidden code $z$가 특정한 값으로 고정되지만 레이블이 변하면서 만들어진 복원된 이미지를 나타낸다.

 

주어진 행에 대해서 복원된 이미지의 style은 일정하다.

 

Figure 7b는 같은 실험을 Street View House Numbers dataset에 적용한 결과를 보여준다. SVHN style manifold를 보여주는 비디오는 다음 주소에서 볼 수 있다. (주소가 있긴 했는데, 눌러보니 안 되네요. 아마 링크가 변한 것 같아요.)

 

 

이번 실험에서, one-hot vector는 이미지에서 central digit과 연관된 라벨을 나타낸다.

 

각 row에서 style information은 가장 왼쪽과 가장 오른쪽 숫자의 라벨과 관련된 정보를 포함하게 되는데, 이는 맨 왼쪽과 맨 오른쪽 숫자는 one-hot encoding으로 label information이 제공되지 않기 때문이다.

 

 

5. Semi-supervised Adversarial Autoencoders

 

 

Section 4를 기반으로 해서, labeled data만을 사용해서 얻을 수 있는 분류 성능을 unlabeled data의 generative description을 활용하여 향상하는 semi-supervised learning을 위한 모델을 개발하기 위해 adversarial autoencoder를 사용한다.

 

구체적으로 말하자면, 데이터가 Categorical distribution에서 만들어진 latent class variable $y$와 Gaussian distribution에서 만들어진 연속형 잠재 변수 $z$에 의해서 생성되었다고 가정한다.

 

Figure 8

 

우리는 Figure 6의 네트워크 구조를 바꿔서 AAE의 inference network가 encoder $q(z, y|x)$를 사용하여 discrete class variable $y$와 연속형 잠재 변수 $z$를 예측하도록 만든다. (Figure 8 참조)

 

Decoder는 one-hot vector로 되어 있는 class label과 연속형 hidden code $z$를 활용하여 이미지를 복원한다.

 

여기에는 autoencoder의 hidden representation을 규제하기 위한 두 개의 별도의 adversarial network가 존재한다.

 

첫 번째 adversarial network는 Categorical distribution을 label representation으로 강제한다.

 

이 adversarial network는 latent class variable $y$가 어떠한 style information도 가지지 않도록 보장하며, $y$의 aggregated posterior distribution이 Categorical distribution과 매칭 된다는 것을 보장한다.

 

두 번째 adversarial network는 Gaussian distribution을 style representation으로 강제하며 이는 latent variable $z$가 연속형 Gaussian variable임을 보장한다.

 

 

Adversarial network 양쪽 모두와 autoencoder는 SGD를 이용해 reconstruction phase, regularization phase, and semi-supervised classification phase로 이루어진 3 phase 동안 공동으로 학습된다.

 

1) Reconstruction phase에서, autoencoder는 encoder $q(z, y|x)$와 decoder를 unlabeled mini-batch에서 input의 reconstruction error를 최소화하도록 업데이트한다.

 

2) Regularization phase에서, 각 adversarial network는 첫 번째로 각자의 discriminative network가 실제 샘플(Categorical and Gaussian prior를 사용해서 만들어진)을 생성된 샘플(autoencoder에 의해서 계산된 hidden codes)로부터 구별하도록 업데이트한다.

 

Adversarial networks는 그다음으로 그들의 discriminative networks를 혼란스럽게 만들도록 generator를 업데이트한다.

 

3) Semi-supervised classification phase에서, autoencoder는 $q(y|x)$가 labeled mini-batch에서 cross-entropy cost를 최소화하도록 학습된다.

 

Table 2

 

MNIST와 SVHN에 대한 semi-supervised classification 실험의 결과는 Table 2에서 확인할 수 있다.

 

100개와 1000개의 label을 가지는 MNIST dataset에 대해서, AAE의 성능은 VAE에 비해서 상당히 좋았으며, VAT와 CatGAN과 비슷하였고, 하지만 Ladder networks와 ADGM가 더 좋은 성능을 냈다.

 

우리는 또한 supervised AAE를 모든 이용 가능한 label에 학습시켰으며 error rate 0.85%를 얻었다.

 

이와 비교해서, 같은 구조를 가지고 있는 dropout supervised neural network는 전체 MNIST dataset에 대해서 1.25%의 error rate를 나타냈으며, 이는 adversarial training의 regularization effect를 강조한다.

 

1000개의 label을 가지는 SVHN dataset에 대해서는, AAE는 ADGM에 의해 나타난 SOTA classification performance와 거의 일치했다.

 

또한 모든 AAE model은 end-to-end로 학습되었다는 것을 언급할 가치가 있으며, 반면에 semi-supervised VAE model은 한 번에 한 layer씩 학습되어야 한다.

 

 

6. Unsupervised Clustering with Adversarial Autoencoders

 

 

이전 section에서는, 제한된 label information을 가지고 adversarial autoencoder가 강력한 semi-supervised representations을 학습할 수 있음을 보였다.

 

하지만, 어떠한 supervision 없이 unlabeled data으로부터 "강력한" representation을 학습할 수 있는지 없는지에 대한 질문은 아직도 답변되지 않은 채로 남아있다.

 

이번 section에서는, adversarial autoencoder가 순수하게 unsupervised fashion에서 연속적인 latent style variable로부터 discrete class variable을 구분할 수 있는지를 보인다.

 

우리가 사용한 아키텍처는 Figure 8와 유사하지만, 차이가 있다면 semi-supervised classification stage를 제거했다는 점이다.

 

따라서, 더 이상 이 모델을 labeled mini-batch에 학습시키지 않아도 된다.

 

또 다른 차이점은 inference network $q(y|x)$가 데이터가 모이기를 바라는 범주의 수를 차원으로 갖는 one-hot vector를 예측한다는 점이다.

 

Figure 9

 

 

Figure 9은 cluster의 수를 16으로 했을 때 MNIST에 학습된 AAE의 unsupervised clustering의 성능을 나타낸 것이다.

 

각 행은 하나의 cluster에 대응된다.

 

각 행의 첫 번째 이미지는 cluster head를 나타내며, 이는 style variable을 0으로 고정하고 label variable을 16 one-hot vector 중 한 개로 설정했을 때 만들어지는 숫자이다.

 

각 행에서 나머지 이미지들은 $q(y|x)$를 기반으로 대응되는 카테고리로 분류된 랜덤 테스트 이미지들이다.

 

 

우리는 AAE가 class label로 어떤 discrete style을 선택한다는 것을 볼 수 있다.

 

예를 들어서, 기울어진 숫자 1과 6 (cluster 16과 11)은 곧게 선 1과 6 (cluster 15와 10)과 별개의 군집에 놓여 있으며, 혹은 네트워크는 숫자 2를 이를 고리 모양으로 쓰였는지 아닌지에 따라 두 개의 군집(cluster 4, 6)으로 분리했다.

 

 

Table 3

우리는 AAE의 unsupervised clustering 성능을 평가하기 위해 실험을 수행했으며, 다음과 같은 평가 protocol을 사용했다.

 

학습이 끝난 후에, 각 cluster $i$에 대해서, $q(y_i|x_n)$을 최대화하는 validation example $x_n$을 찾고, $x_n$의 label을 cluster $i$의 모든 포인트에 적용한다. 그러고 나서 각 cluster에 assign 된 class label을 기반으로 test error를 계산한다.

 

Table 3에서 보이는 것처럼, AAE는 16개, 30개의 전체 라벨을 가지는 경우 9.55%와 4.10%의 classification error rate를 나타냈다. 

 

cluster의 수가 증가할수록 classification rate가 증가함을 확인하였다.

 

 

7. Dimensionality Reduction with Adversarial Autoencoders

 

 

고차원 데이터의 시각화는 데이터 생성 과정에 대한 이해를 촉진시키고 데이터에 대한 유용한 정보를 추출하도록 해준다는 점에서 많은 applications에서 매우 중요한 문제이다.

 

가장 흔하게 사용되는 데이터 시각화 방법은 근처의 point가 유사한 object에 대응되도록 저차원의 embedding을 학습하는 것이다.

 

지난 수십 년간, t-SNE와 같은 non-parametric dimensionality reduction techniques들이 계속해서 제안되어 왔다.

 

이러한 방법들의 주요한 문제점은 새로운 데이터 포인트의 embedding을 찾는 데 사용될 수 있는 parametric encoder를 가지고 있지 않다는 점이다.

 

Parametric t-SNE와 같은 다른 방법들은 이 문제를 해결하기 위해 제안되었다.

 

 

Autoencoder는 그러한 embedding을 위해 요구되는 non-linear mapping을 제공하기 때문에 흥미로운 대안이 된다.

 

하지만, non-regularized autoencoder는 manifold를 많은 다른 domain으로 균열시킨다는 사실이 널리 알려져 있으며, 이는 유사한 이미지에 대해서 매우 다른 code를 갖도록 만든다.

 

 

이번 section에서, 우리는 dimensionality reduction과 data visualization 목적을 위한 adversarial autoencoder 아키텍처를 제시한다.

 

이러한 autoencoder에서, adversarial regularization이 유사한 이미지들의 hidden code를 서로 붙게끔 만든다는 것을 보여줄 것이며, 따라서 autoencoder에 의해서 학습된 embedding에서 전형적으로 마주하게 되는 manifold fracturing problem을 방지한다는 것을 보여줄 것이다.

 

Figure 10

 

우리가 $m$ class label을 가지는 데이터셋을 가지고 있고 데이터셋의 차원을 $n$으로 줄이려고 한다고 가정하자.

 

시각화를 목적으로 할 때는 $n$은 보통 2나 3이 된다. 

 

Figure 8의 아키텍처를 final representation을 $n$차원의 style representation과 cluster head의 $n$차원의 distributed representation을 추가하여서 얻게 되는 Figure 10 아키텍처로 변경한다.

 

Cluster head representation은 $m$차원의 one-hot class label vector를 $m \times n$ matrix $W_C$를 곱해서 얻게 되며, $W_C$의 행들은 SGD에 의해서 학습된 $m$ cluster head representation을 나타낸다.

 

우리는 모든 두 cluster head 간의 Euclidean distance에 처벌을 가하기 위해 추가적인 cost function을 도입한다.

 

구체적으로, 만약 Euclidean distance가 threshold $\eta$보다 크다면, cost function은 0이며, 만약 $\eta$보다 작다면, cost function은 선형적으로 distance에 처벌을 가한다.

 

Figure 11

 

Figure 11(a, b)는 $n =2$차원으로 MNIST dataset ($m= 10$)에 대해 1000개와 100개의 label을 가지고 semi-supervised dimensionality reduction을 한 결과를 나타낸다.

 

network가 digit cluster를 깔끔하게 분리한다는 것을 확인할 수 있으며 각각 semi-supervised classification error 4.20%와 6.08%를 달성하였다.

 

2D 제약 때문에 classification error는 고차원의 경우보다 좋지 못하다. 그리고 각 cluster의 style distribution은 Gaussian이 아니다.

 

Figure 11c는 $n=2$차원에서 cluster의 수를 $m=20$으로 뒀을 때 unsupervised dimensionality reduction의 결과를 보여준다.

 

네트워크가 digit cluster와 sub-custer의 오히려 더 깔끔한 분리를 달성할 수 있음을 볼 수 있다.

 

예를 들어서, 네트워크는 숫자가 곧게 서 있는지 혹은 기울어져 있는지에 따라서 녹색 cluster인 두 개의 별개의 cluster로 숫자 1을 배치했다.

 

네트워크는 또한 숫자 6을 검은색 cluster인 3개의 cluster로 숫자가 얼마나 기울어졌는지에 따라 다르게 배치했다. 

 

또한 네트워크는 숫자 2를 빨간 cluster인 2개의 별도의 cluster로 고리 형태로 쓰였는지 아닌지에 따라 배치했다.

 

 

Figure 10에 나타난 AAE 아키텍처는 또한 이미지를 더 높은 차원($n$ > 2)으로 embedding 할 때 사용될 수 있다.

 

예를 들어서, Figure 11d는 $n = 10$차원일 때 100개의 label을 가질 때의 semi-supervised dimensionality reduction의 결과를 보여준다.

 

이 경우에, 우리는 $W_C$ matrix를 $W_C = 10I$로 고정하였으며, 이에 따라 cluster head는 10차원 simplex의 모서리에 위치한다.

 

Style representation은 10D Gaussian distribution에서 표준편차 1을 가지고 학습되었으며, final representation을 만들기 위해 cluster head에 추가되었다.

 

한번 네트워크가 학습되면, 10차원의 학습된 representation을 시각화하기 위해서 cluster head가 2D circle에 균일하게 위치한 points로 mapping 되도록 10D representation을 2D space로 mapping 하는 linear transformation을 사용하였다.

 

우리는 이 figure로부터 고차원의 경우에, style representation이 실제로 Gaussian distribution을 학습한다는 사실을 검증할 수 있었다.

 

전체 100개의 label을 가지는 경우에, 이 모델은 3.90%의 classification error-rate를 나타냈으며, 이는 Figure 8에 나온 concatenated style and label representation을 가지는 AAE 아키텍처에 의해서 달성된 1.90% classification error-rate보다 더 안 좋은 결과이다.

 

 

 

8. Conclusion

 

 

본 논문에서는 확률론적 autoencoders의 이산형 및 연속형 잠재 변수에 대한 variational inference algorithm으로 GAN framework를 사용할 것을 제안하였다.

 

우리의 방법은 adversarial autoencoder (AAE)라고 불리며, 이는 MNIST와 TFD에서 경쟁력 있는 test likelihood를 성취한 generative autoencoder이다.

 

우리는 이 방법이 어떻게 semi-supervised scenarios로 확장될 수 있는지에 대해서 논의하였으며, MNIST와 SVHN dataset에서 경쟁력 있는 semi-supervised classification performance를 나타냄을 보였다.

 

마지막으로, 이미지의 스타일과 내용을 구분하는 것, 비지도 군집화, 차원 축소 그리고 데이터 시각화에서의 adversarial autoencoder의 활용을 설명했다.

 

 

 

여기까지 해서 AAE 논문의 내용을 마무리하였습니다.

 

우리가 일반적으로 생각하는 Basic AAE의 내용만 찾으신다면 챕터의 앞부분만 읽으시면 충분하지만, 논문에서는 AAE를 활용할 수 있는 다양한 방법들을 제시하고 있어서 모든 내용을 다 다루는 것이 좋겠다고 판단, 모든 내용을 담았습니다.

 

이렇게 논문에서는 많은 활용 방법들을 제시하였는데, 논문의 공식 코드가 없다 보니 Github에 공개된 대부분의 코드들은 Basic AAE 정도만 다루고 있다는 점에서 아쉬움이 남습니다.

 

다음 글에서는 Basic AAE의 코드를 직접 작성해보면서 실험을 진행해보겠습니다.

 

+ Recent posts