【論文筆記】Auto-Encoding Variational Bayes

導讀

VAE嘛,之前覺得水平不夠,不敢讀。現在覺得,試試吧。

Abstract

如何在連續隱變量,難以估計後驗概率以及大量數據集的情況下,良好的推斷與學習呢?

本文提出隨機變量推斷。

  1. 對於隨機變量的下界估計使用重參數化可以直接通過隨機梯度進行優化
  2. 在獨立同分布數據集上的連續隱變量,後驗估計可以很好的被估計出來。

Introduction

Auto-Encoding VB 算法,使用SGVB,使用簡單的採樣就可以估計出後驗推斷,並優化識別模型。

在這裏插入圖片描述

  • pθ(z)pθ(xz)p_{\theta}(\mathbf{z})p_{\theta}(\mathbf{x}|\mathbf{z}) :生成模型,其中pθ(z)p_{\theta}(\mathbf{z})是先驗,pθ(xz)p_{\theta}(\mathbf{x}|\mathbf{z})是似然函數。則觀測變量x\mathbf{x}與目標變量z\mathbf{z}的聯合概率就是生成模型。(因爲pθ(x,z)p_{\theta}(\mathbf{x}, \mathbf{z}))將二者都設定爲隨機變量,並且可以生成對應的概率分佈。判別模型中是pθ(zx=x)p_{\theta}(\mathbf{z}|\mathbf{x}=x),只將z\mathbf{z}當作隨機變量,x\mathbf{x}是可觀測且不會變化的。一個是聯合分佈,一個是條件概率分佈。

  • qϕ(zx)q_{\phi}(\mathbf{z}|\mathbf{x}):估計出來的後驗分佈

  • pθ(zx)p_\theta(\mathbf{z}|\mathbf{x}):真實但難以計算的後驗分佈

那麼顯然其中的ϕ\phi就是我們要學習variational 參數,並且會和生成模型的概率共同學習。

方法可以被用於online, non-stationary settings,很顯然,因爲先前學習的參數和後驗會變成下一次優化的參數和先驗,自然可以進行online的學習。

2.1 Problem scenario

假設 X={x(i)}i=1N\mathbf{X}=\left\{\mathbf{x}^{(i)}\right\}_{i=1}^{N}包含NN個連續或者離散的獨立同分布變量。數據是由有一個不可觀測的連續隨機變量z\mathbf{z}的隨機過程產生的

這個過程包含兩步驟:

  1. z(i)\mathbf{z}^{(i)}是由先驗分佈pθ(z)p_{\mathbf{\theta}^*}(\mathbf{z})產生的
  2. x(i)\mathbf{x}^{(i)}是由條件概率分佈pθ(xz)p_{\mathbf{\theta}^*}(\mathbf{x}|\mathbf{z}), 已知z\mathbf{z}分佈,採樣出x(i)\mathbf{x}^{(i)}

假設先驗pθ(z)p_{\theta^*}(\mathbf{z})和似然概率pθ(xz)p_{\mathbf{\theta}^*}(\mathbf{x}|\mathbf{z})來自參數空間pθ(z)p_{\theta}(\mathbf{z})pθ(xz)p_{\mathbf{\theta}}(\mathbf{x}|\mathbf{z}),那麼θ\thetaz\mathbf{z}都是可微分的。

這部分有兩點難以讀懂:

  • x\mathbf{x} 怎麼是從給定z\mathbf{z}的條件概率中採樣的?
    • 這是assumption,觀測到的X\mathbf{X}中的值均可以在給定z\mathbf{z}的情況下進行採樣。
  • 爲什麼都是可微分的?
    • 因爲可以通過x\mathbf{x}來進行微分?

此處不使用關於pθ(x)p_{\theta}(\mathbf{x})或者後驗概率的一般簡化假設。相反地,會使得普適性算法能夠處理以下的特殊情況:

    1. Intractability:

      • pθ(x)=pθ(z)pθ(xz)dzp_\theta(x)=\int p_{\boldsymbol{\theta}}(\mathbf{z}) p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) d \mathbf{z} 是無法評估或者微分的。
      • pθ(zx)=pθ(xz)pθ(z)/pθ(x)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x})=p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) p_{\boldsymbol{\theta}}(\mathbf{z}) / p_{\boldsymbol{\theta}}(\mathbf{x}) 難解,無法使用EM算法
      • 任何合理的均值場VB算法所需的積分也是難解的

      這些難解的情況很常見,像中等程度複雜的似然概率函數pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) ,例如有一層非線性隱藏層的神經網絡。

    2. A large dataset: 數據量很大,batch 優化消耗太大了,希望能夠使用小數據甚至單個數據就可以對參數進行更新。基於採樣的方案,例如蒙特卡洛EM算法,通常來說太慢了,因爲每個數據點的採樣過程中的loop太慢了。

更希望去處理以下三種情況:

  • 高效的估計參數,參數本身會很有趣,因爲可以反應neural的過程中存在的問題。
  • 高效的後驗推斷估計, 在給定參數θ\boldsymbol{\theta}x\mathbf{x}觀測的情況下情況下,pθ(zx)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x})
  • 高效的邊緣概率估計, i.e. pθ(x)p_\boldsymbol{\theta}(\mathbf{x})

爲了解決上述問題,引入識別模型qϕ(zx)q_{\phi}(\mathbf{z}|\mathbf{x}),對真實難解的後驗概率pθ(zx)p_\theta(\mathbf{z}|\mathbf{x})的估計。

此處不需要重整計算參數,因爲作者會將模型的參數ϕ\boldsymbol{\phi} 與生成模型參數θ\boldsymbol{\theta}進行共同學習。

從編碼論角度,不可觀測變量z\mathbf{z}作爲隱表徵或者編碼。因此本文中會:

  • 將識別模型qϕ(zx)q_{\phi}(\mathbf{z}|\mathbf{x})作爲概率編碼器encoder,因爲給定一個數據點xx,encoder會生成一個概率分佈,並在其上產生一個可能的code z\mathbf{z},在code上可以產生原始數據點xx
  • pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z})作爲概率解碼器decoder,因爲給定一個codez\mathbf{z},他可以產生原始xx的對應值。

2.2 The variational bound

邊緣似然是由獨立點的邊緣似然總和logpθ(x(1),,x(N))=i=1Nlogpθ(x(i))\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(1)}, \cdots, \mathbf{x}^{(N)}\right)=\sum_{i=1}^{N} \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right), 其中每一個點均可以被協作爲:
logpθ(x(i))=DKL(qϕ(zx(i))pθ(zx(i)))+L(θ,ϕ;x(i)) \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right)=D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)\right)+\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)
第一項是識別模型的估計後驗以及真實後驗的KL散度誤差。因爲KL散度是非負的,第二項L(θ,ϕ;x(i))\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)是數據點ii的邊緣似然的變分下界。也是我們想要優化的目標。

KL散度是很自然可以理解的度量兩個分佈的相對熵

可以被寫作
logpθ(x(i))L(θ,ϕ;x(i))=Eqϕ(zx)[logqϕ(zx)+logpθ(x,z)] \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right) \geq \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=\mathbb{E}_{q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})}\left[-\log q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})+\log p_{\boldsymbol{\theta}}(\mathbf{x}, \mathbf{z})\right]
也可以被寫做:
L(θ,ϕ;x(i))=DKL(qϕ(zx(i))pθ(z))+Eqϕ(zx(i))[logpθ(x(i)z)] \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=-D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}(\mathbf{z})\right)+\mathbb{E}_{q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)}\left[\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}\right)\right]

看到這裏感覺已經比較讓我理解VAE了。有需要再in-depth

Understanding 2020-6-28

相較於之前僅僅只是映射到隱空間中,今天的閱讀讓我更區分了一些AE和VAE的區別。
AE將x-> z-> x’
VAE是將x映射成一個分佈,並在分佈上採樣出可能的x。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章