Adversarial Latent Autoencoders


  • 본 논문은, GAN의 Generator를 F, G로 Discriminator를 E, D로 각각 분리해서 연구를 진행했습니다.
  • F에서 나온 Latent space와 E를 통해 나온 latent space가 서로 동일한 분포를 가진다고 가정을 한 상태로 연구가 진행 되었으며, F는 deterministic하게 latent space mapping이 이루어지고, G와 E는 독립적이고 이미 알려진 분포의 노이즈인 \( \eta\)를 입력으로 주어 stochastic하게 만듭니다.
  • 결론적으로 Latent space의 확률 분포를 Adversarial하게 학습할 수 있는 장점이 있으며 그로 인하여 GAN과 비슷한 생성 능력을 지니고 disentangled representations을 학습 한 점을 보여주고 있습니다.


  • Adversarial Latent Autoencoders에 대해 간단하게 리뷰를 해본 후 다음 포스팅에서는 논문을 바탕으로 code에서 어떤식으로 구현이 되었는지 살펴보도록 하겠습니다.

✔️ [논문 리뷰] Adversarial Latent Autoencoders
◻︎ [코드 리뷰] Adversarial Latent Autoencoders


Abstract


Autoencoder의 목표
Autoencoder는 encoder-generator map을 동시에 학습하여 generation and representation properties을 결합하는 것을 목표로 하는 unsupervised 접근 방식 입니다.

Autoencoder의 한계
Autoencoder에 대한 많은 연구가 진행되었지만, GANs(Generative Adversarial Networks)과 동일한 생성 능력을 가지고 있는지, 아니면 disentangled representations을 학습하는지에 대한 문제는 완전히 다루어지지 않았습니다.

제안한 방법
본 논문에서는 위에서 언급한 문제인

  • GANs와 동일한 생성 능력을 가지고 있는지
  • disentangled representations을 학습하고 있는지

에 대한 문제를 해결하는 autoencoder를 소개하며 저자들은 이 네트워크를 Adversarial Latent Autoencoder라고 부릅니다.

2가지의 autoencoder 설계
본 논문에서는 2가지의 autoencoder를 설계했습니다.

  • MLP Encoder를 기반으로 하는 encoder
  • StyleGAN의 Generator를 기반으로 하는 StyleALAE

설계된 두가지의 아키텍처의 disentanglement properties를 확인합니다.

StyleALAE는 StyleGAN과 비슷한 품질의 1024x1024 얼굴 이미지를 생성할 수 있으며, 동일한 해상도에서 실제 이미지를 기반으로 face reconstructions, manipulations도 생성할 수 있음을 보여주고 있습니다.

이로써 이 논문에서 해결하고자 하는 (1) GANs와 동일한 생성 능력을 가지고 있는지. (2) 네트워크가 disentangled representations을 학습하고 있는지에 대한 문제를 해결했다는 것을 알 수 있습니다.

따라서 ALAE는 GAN의 성능과 비슷하거나 그 성능을 능가하는 최초의 Autoencoder라고 소개하고 있습니다.



1.Introduction


지금까지 발표된 이미지 생성 네트워크를 보면 아래와 같이 크게 두가지 특징을 관심있게 볼 수 있다고 생각할 수 있습니다.

  • GAN처럼 얼마나 고해상도 이미지를 실제와 똑같게 생성할 수 있는지
  • disentangled representations 학습이 잘 이루어졌는지.

지금까지 진행된 연구들의 논문들을 보면 아직까지는 고해상도 이미지를 생성하는 네트워크는 Autoencoder 보다는 GAN이라고 다들 이렇게 생각하실겁니다. 또한 Autoencoder는 지금까지는 entangled representations을 배워 manipulations가 불가능했습니다.

이 논문의 저자들은, 이때당시 나온 GAN의 발전 동향, 특히 StyleGAN의 아이디어를 응용하여 위에서 언급한 근본적인 한계들을 해결하는 new AutoEncoder를 제안하고 있습니다.

StyleALAE의 생성 결과부터보면 아래 그림 1처럼 GAN처럼 고해상도 이미지를 잘 생성하고 있는것을 보여주고 있습니다.

그림 1. FFHA generation. Generations with StyleALAE trained on FFHQ at 1024 x 1024



2. Preliminaries


AutoEncoders

그림 2. Autoencoder architecture (출처:https://learnopencv.com/variational-autoencoder-in-tensorflow/)

Encoder

입력된 이미지에 대한 특징(feature)인 고차원 input space을 저차원 latent space \( z\)로 압축하는 모델이며 식은 다음과 같습니다.
$$ z = E(x) $$

Decoder

Encoder에 의해 고차원에서 저차원으로 인코딩된 \( z\)를 다시 입력된 이미지와 동일한 도메인으로 재구성 하는 모델이며 식은 다음과 같습니다.
$$ \hat{x} = D(z) $$

GANs


그림 3. GANs architecture (출처: https://developers.google.com/machine-learning/gan/gan_structure)

GAN

Generator와 Discriminator로 구성되어있으며 서로 Adversarial Training 하는 방식으로 고해상도 이미지를 생성하도록 학습하는 생성모델 입니다. 이는 \( q(x)\)가 \( P_D(x)\)만큼 가깝도록 G를 학습 하는것을 목표로 하게 되며 다른 의미로는 G가 D를 속여서 D가 진짜인지 가짜인지 헷갈리게 만들도록 학습 되는것을 목표로 합니다.

Generator

Autoencoder처럼 입력 이미지를 latent space로 직접 인코딩 하는 방식이 아니라, synthetic distribution \( q(x)\)를 표현하는 새로운 이미지를 생성하기 위해 이전에 알려진 \( p(z)\)의 latent space \( Z\)을 학습하는 네트워크 입니다.

Discriminator

학습 데이터셋의 True distribution \( P_D(x)\)를 나타내는 이미지와 생성된 이미지를 구분하는 네트워크 입니다. 즉, 진짜인지 가짜인지 구분하는 binary classifier라고도 볼 수 있습니다.

Adversarial Latent Autoencoders


Autoencoder는 지금까지 많은 연구가 진행되었지만 크게 2가지 문제에 대해서는 아직 해결을 못한 상태라고 볼 수 있습니다. (자주 언급되고 있는 내용이지만 다시 한번 언급을 하도록 하겠습니다.)

  • GANs와 비슷한 생성 능력을 가지고 있는가?
  • disentangled representations을 잘 학습하였는가?

이 논문 저자는 위에서 언급한 두가지 문제를 모두 해결할 수 있는 AutoEncoder를 설계했으며 자세한 아키텍처는 아래에서 다루도록 하겠습니다.



3. Architecture


ALAE

그림 4. ALAE Architecture. Architecture of an Adversarial Latent Autoencoder.

ALAE는 generator G, discriminator D를 \(\textit{G} = F \circ G \) and \( \textit{D} = D \circ E \)로 decomposing한 네트워크 입니다. 이때 decomposed 네트워크 사이의 latent space 즉, \(F(z)\)를 통해 나온 \( w\)와 discriminator E인 \(q_G(x\vert w, \eta)\)에 의해서 나온 \( w\)가 서로 동일하다는 가정을 지니고 있느며 이 latent space를 \( \mathcal{W}\)로 표현하고 있습니다.

1) Generator F [code]

F는 prior distribution \( p(z) \to \) intermediate latent space \( w \) distribution \( q_F(w)\)로 변환하는 역할을 가지고 있습니다.

그림 4. intermediate latent space로 변환하는 역할인 F

이 논문에서 disentaglement에 대해 아주 중요한 이야기를 하고 있습니다.

input space에서 멀리 떨어진 intermediate latent space 가 더 나은 disentanglement properties를 갖는 경향이 있음을 보여주었다.”

따라서 저자는, F가 most general cases에서 deterministic map이라고 가정했습니다. 따라서 F는 know prior p(z)에서 샘플을 가져와서 q_F(w)을 출력하게 됩니다.

deterministic mapping에 대해 궁금하신 분들은 해당 링크를 참고해주시기 바랍니다. [link]


2) Generator (G) [code]

기존 original GAN과 차이점부터 비교해가며 알아보면,

📌 GAN
  • Generator에 대한 입력은 latent space에서 직접 샘플링
  • 생성된 이미지는 binary classifier처럼 진짜/가짜로 분류해주는 Discriminator에 바로 입력.
    📌 ALAE
  • F에서 학습된 intermediate latent space \( w\)에서 샘플링
  • G에서 생성된 이미지가 Encoder를 먼저 거친 뒤 Discriminator에 입력.

저자는 G가 known fixed distribution \( p_\eta(\eta)\)에서 샘플링된 independent noisy input \( \eta\)에 optionally 하게 의존할 수 있다고 가정하고 있습니다. 따라서 G에 대한 입력은 \( q_F(w)\)와 optionally \( p_\eta(\eta)\) 입니다. 그래서 해당 식은 다음과 같이 정의됩니다.

그림 6. Generator G에 대한되는 영역.

💡 \(q_G(x\vert w, \eta)\): \(w\) and \(\eta\)가 주어지면 생성된 이미지 \(x \)의 조건부 확률(conditional probability)

그림 7. Discriminator Encoder E에 해당되는 영역


3) Discriminator Encoder(E)

위에서 언급했던대로 decomposed 네트워크 사이의 latent space가 서로 동일하다는 가정을 지니고 있느며 latent space를 \( w\)로 표현하고 있음을 언급 했습니다.

즉, intermediate latent space \( w\)로 data space를 인코딩 하며 이는 \( \textit{G} = F \circ G\) and \( D = E \circ D\) 둘다 동일한 latent space을 갖습니다.

학습중에 Encoder에 대한 입력은 실제 데이터 분포 \( P_D(x)\)의 real image 또는 synthetic distribution q(x)를 나타내는 생성 이미지 입니다.

synthetic distribution에서 입력을 가지고올 때 encoder의 출력을 다음 식과 같습니다.

\( q_E(w)\): 주어진 data space에서 latent space \(w \)의 conditional probability distribution


실제 데이터 분포 \( P_D(x)\)에서 입력을 가져올 때 Encoder의 출력은 아래 식과 같습니다.

$$ q_{E, D}(w) = \int_{x} q(w \vert x) P_D(x) dx$$

위와 같은 식이 성립되는 이유는, F에서 나온 intermediate latent space \( w\)와 E에서 나온 intermediate latent sapce \( w\)가 동일하다는 가정하에 연구가 진행된 것 입니다. 따라서 아래와 같은 식이 성립됩니다.

$$ q_F(w) = q_E(w) $$

ALAE는 adversarial strategy로 학습이 진행됩니다. 따라서 \( q(x)\) → \( P_D(x)\)가 되며 이는 \(q_E(x)\) → \(q_{E, D}(x)\)로 이동하는 것을 암시합니다.


3-1) Matching the latent space

latenet space에 대한 가정은 \(q_E(w)\)의 output distribution이 \(q_F(w)\)의 input distribution과 유사하다는 점 입니다. 이 개념을 바탕으로 실제 학습을 진행할 때 두 분포간의 squared difference를 최소화 하는 방향으로 학습을 진행하게 됩니다.


일반적인 autoencoder에서 입력된 이미지와 Decoder에 의해 복원된 이미지를 이용하여reconstruction loss을 구할 때 사용된 loss는 L2 loss 입니다. L2 loss는 data space에서 연산이 이루어지만, human visual perception을 반영하지 않는다는 특징이 있습니다. 이러한 이유로 인해 autoencoder가 GAN과 같은 선명한 이미지를 생성할 수 없게 되는 이유 중 하나 입니다.


4. Discriminator D

Encoder에 의해 제공되는 intermediate latent space가 입력되며 진짜인지 가짜인지 판별해주는 역할을 하는 네트워크 입니다.

D는 학습 과정에서 2번 호출됩니다.

  • G에 의해 생성된 이미지 \(q_G(x\vert w, \eta)\)가 E를 통해 latent space mapping이 이루어지고, 그 latent space \( q_E(w)\)가 D에 제공되는 경우.
  • 실제 데이터 \( x\)가 E에 입력되고 그로 인해 나오는 출력이 D에 제공되는 경우.

이건 그냥 일반적인 GAN 학습 방법에서 Discriminator 역할을 떠올리시면 됩니다.


StyleALAE


위 내용까지는 ALAE에 대한 특징 및 아키텍처에 대해 알아보았습니다. ALAE의 기본 아키텍처에다가 StyleGAN에 적용하여 StyleGAN과 거의 비슷한 성능을 보이는 StyleALAE 아키텍처에 대해 간단하게 알아보도록 하겠습니다.

그림 8. StyleALAE Architecture

StyleALAE는 StyleGAN의 Generator 부분과 ALAE를 결합한 아키텍처 입니다. 따라서 StyleALAE는 다은과 같이 구성됩니다.

  • (그림 9)와 같이 ALAE의 Generator가 StyleGAN의 Generator로 변경.
  • style information을 추출하는 Encoder network E는 Generator와 대칭이 되도록 구성 됩니다.

그림 9

IN(Instance Normalization)
각 레이어 \( i^{th} \)의 Style content를 추출하며, 입력된 영상에 대한 Normalization을 진행합니다.

Style Information
IN에 의해 추출된 style content를 구성하는 channel-wise average \( \mu \)와 \( \sigma\)를 의미 합니다.

Encoder는 \( i^{th}\)의 style content들은 latent space \( w\)와 선형적으로 관련된 symmetric generator(G of StyleALAE)의 AdaIN(Adaptive Instance Normalization) 으로 입력 됩니다. 따라서, Encoder의 각 레이어의 IN에 의해 추출된 style content는 multilinear map을 통해 latent space에 mapping 됩니다.