---
# System prepended metadata

title: VAE vs. GAN
tags: [working, machine-learning]

---

# VAE vs. GAN
###### tags: `working` `machine-learning`

[TOC]

## Stochastic Variational Inference (SVI)

VAE 是其中一個分支專門做 unsupervised learning，相信 supervised learning 也是可行的，也有看到有人將 SVI 應用在 reinforcement learning

因為 bayesian approach 將所有東西都視為 probability distribution，並不會像一般的 NN 像是 table-lookup 那樣的 deterministic approach
### 動機
希望結合兩個優點：
 - Bayesian Infernce (使用 Variational Inference) 的 robustness
 - Neural Network 的 scalability
### 目的
 - 描述 Bayesian Inference
 - 給定一組 data，用 NN 學習 approximate posterier distribution $q_\phi(\cdot|x)$，這個 $q_\phi$ 可以用來量測給定 $x$ 之後的穩定性(可靠度)
### 訓練
Maximize the Evidence Lower Bound (ELBO) $$\mathcal{L}_\phi = \mathop{\mathbb{E}}\log\text{likelihood} - \beta\cdot\text{KL}$$
 - 最大化 likelihood 跟 MLE 的目標相同就是在 training data 上預測越準越好
 - 最小化 KL-divergence 有兩種說法：
   1. 控制 NN representation $z$ 的 robustness，從 NN 的觀點也是一種 regularizer。
   2. 從 information theory 的觀點，是一種 information bottleneck，控制 NN representation $z$ 留下 $x$ 資訊的程度，KL 越小，保留的 $x$ 資訊越少
   
Maximizing ELBO 是希望藉由越少的 $x$ 資訊來完成 task，上式的 $\beta$ 為一個 hyperparameter，用來控制保留 $x$ 資訊的程度
### 應用
 - 比起以前只用 likelihood 來學習 (Maximum Likelihood Estimation, MLE)，SVI 的學習方式 (Maximum a Posteriori estimation, MAP) 能得到比較不會 over-confident 的 prediction
 - Bayesian 領域的方法都有機會利用 SVI 應用在上面，大多是跟 uncertainty 有關的研究，還需要再 survey 詳細的方法。粗略想到的方法是，在 posterior 上 sample 多個 $z_1, z_2, \ldots,$ 得到各自的 prediction 後判斷它們的 variance

## Generative Advarserial Network (GAN)

仔細想一下，其實我們對近年 GAN 的發展也沒多少追蹤，花點時間 survey，也許它的 potential 也跟我們看到 SVI 的 potential 一樣大 

### 目的
給定一組 data，用 NN 學習一個 generative model 來描述 data 的分佈 $$ x = \text{Generator}(z)$$ $z$ 是可以從**任意的 distribution** 去抽樣的
### 訓練
Generator 和 Discriminator 互相對抗的 minigame
### 應用
因為相對 VAE 給的 constraint 比較少，有機會產生與原始 dataset 截然不同的 data

## Referencing to slides in DeepBayes19
![](https://i.imgur.com/6Ep7ffw.jpg)
