導讀
VAE嘛,之前覺得水平不夠,不敢讀。現在覺得,試試吧。
Abstract
如何在連續隱變量,難以估計後驗概率以及大量數據集的情況下,良好的推斷與學習呢?
本文提出隨機變量推斷。
- 對於隨機變量的下界估計使用重參數化可以直接通過隨機梯度進行優化
- 在獨立同分布數據集上的連續隱變量,後驗估計可以很好的被估計出來。
Introduction
Auto-Encoding VB 算法,使用SGVB,使用簡單的採樣就可以估計出後驗推斷,並優化識別模型。
-
pθ(z)pθ(x∣z) :生成模型,其中pθ(z)是先驗,pθ(x∣z)是似然函數。則觀測變量x與目標變量z的聯合概率就是生成模型。(因爲pθ(x,z))將二者都設定爲隨機變量,並且可以生成對應的概率分佈。判別模型中是pθ(z∣x=x),只將z當作隨機變量,x是可觀測且不會變化的。一個是聯合分佈,一個是條件概率分佈。
-
qϕ(z∣x):估計出來的後驗分佈
-
pθ(z∣x):真實但難以計算的後驗分佈
那麼顯然其中的ϕ就是我們要學習variational 參數,並且會和生成模型的概率共同學習。
方法可以被用於online, non-stationary settings,很顯然,因爲先前學習的參數和後驗會變成下一次優化的參數和先驗,自然可以進行online的學習。
2.1 Problem scenario
假設 X={x(i)}i=1N包含N個連續或者離散的獨立同分布變量。數據是由有一個不可觀測的連續隨機變量z的隨機過程產生的
這個過程包含兩步驟:
- z(i)是由先驗分佈pθ∗(z)產生的
- x(i)是由條件概率分佈pθ∗(x∣z), 已知z分佈,採樣出x(i)
假設先驗pθ∗(z)和似然概率pθ∗(x∣z)來自參數空間pθ(z)和pθ(x∣z),那麼θ和z都是可微分的。
這部分有兩點難以讀懂:
- x 怎麼是從給定z的條件概率中採樣的?
- 這是assumption,觀測到的X中的值均可以在給定z的情況下進行採樣。
- 爲什麼都是可微分的?
此處不使用關於pθ(x)或者後驗概率的一般簡化假設。相反地,會使得普適性算法能夠處理以下的特殊情況:
-
-
Intractability:
- pθ(x)=∫pθ(z)pθ(x∣z)dz 是無法評估或者微分的。
- pθ(z∣x)=pθ(x∣z)pθ(z)/pθ(x) 難解,無法使用EM算法
- 任何合理的均值場VB算法所需的積分也是難解的
這些難解的情況很常見,像中等程度複雜的似然概率函數pθ(x∣z) ,例如有一層非線性隱藏層的神經網絡。
-
A large dataset: 數據量很大,batch 優化消耗太大了,希望能夠使用小數據甚至單個數據就可以對參數進行更新。基於採樣的方案,例如蒙特卡洛EM算法,通常來說太慢了,因爲每個數據點的採樣過程中的loop太慢了。
更希望去處理以下三種情況:
- 高效的估計參數,參數本身會很有趣,因爲可以反應neural的過程中存在的問題。
- 高效的後驗推斷估計, 在給定參數θ和x觀測的情況下情況下,pθ(z∣x)
- 高效的邊緣概率估計, i.e. pθ(x)
爲了解決上述問題,引入識別模型qϕ(z∣x),對真實難解的後驗概率pθ(z∣x)的估計。
此處不需要重整計算參數,因爲作者會將模型的參數ϕ 與生成模型參數θ進行共同學習。
從編碼論角度,不可觀測變量z作爲隱表徵或者編碼。因此本文中會:
- 將識別模型qϕ(z∣x)作爲概率編碼器encoder,因爲給定一個數據點x,encoder會生成一個概率分佈,並在其上產生一個可能的code z,在code上可以產生原始數據點x
- 將pθ(x∣z)作爲概率解碼器decoder,因爲給定一個codez,他可以產生原始x的對應值。
2.2 The variational bound
邊緣似然是由獨立點的邊緣似然總和logpθ(x(1),⋯,x(N))=∑i=1Nlogpθ(x(i)), 其中每一個點均可以被協作爲:
logpθ(x(i))=DKL(qϕ(z∣x(i))∥pθ(z∣x(i)))+L(θ,ϕ;x(i))
第一項是識別模型的估計後驗以及真實後驗的KL散度誤差。因爲KL散度是非負的,第二項L(θ,ϕ;x(i))是數據點i的邊緣似然的變分下界。也是我們想要優化的目標。
KL散度是很自然可以理解的度量兩個分佈的相對熵
可以被寫作
logpθ(x(i))≥L(θ,ϕ;x(i))=Eqϕ(z∣x)[−logqϕ(z∣x)+logpθ(x,z)]
也可以被寫做:
L(θ,ϕ;x(i))=−DKL(qϕ(z∣x(i))∥pθ(z))+Eqϕ(z∣x(i))[logpθ(x(i)∣z)]
看到這裏感覺已經比較讓我理解VAE了。有需要再in-depth
Understanding 2020-6-28
相較於之前僅僅只是映射到隱空間中,今天的閱讀讓我更區分了一些AE和VAE的區別。
AE將x-> z-> x’
VAE是將x映射成一個分佈,並在分佈上採樣出可能的x。