Processing math: 100%

2017年7月11日 星期二

[貝氏] Paper digest (4) 煩死人的Variational Bayes續集 -- Blackbox Variational Inference

這篇接著很久很久寫的煩死人的 Variational Bayes 初探往下寫的。如果用食記部落客的語法,應該改成「再訪!煩死人的Variational Bayes」(超無聊)。

好,會寫這篇的原因是因為最近拜讀了一篇由大神David Blei團隊所寫的這篇文章,順便邊讀邊寫,吸收快又好。題目叫做Blackbox Variational Inference,你沒看錯Variaional Bayes也有黑箱版的,這篇文章刊出的時間是2014年,那年台灣高中生也剛好在反黑箱課綱,真的蠻潮的。

這個方法的賣點是不需要手動計算複雜的積分也可以做Variational Inference。



先複習一下,Variational Bayes的精神就是找一個替代的替身 q(θ) 並且讓它和posterior p(θ,x) 越像越好,也就是盡全力把 KL[q(θ),p(θ,x)] 變得很小就對了!接下來,

KL[q(θ),p(θ|x)]

=q(θ)logq(θ)p(θ,x)dθq(θ)logp(x)dθ

=q(θ)logq(θ)p(θ,x)dθlogp(x)

=Eq[q(θ)]Eq[logp(θ,x)]C

上式的Eq[q(θ)]Eq[logp(θ,x)]取負號以後叫做 ELBO (Evidence lower bound),也就是

ELBO=Eq[logp(θ,x)]Eq[q(θ)]

只要不斷讓ELBO越來越大,  KL[q(θ),p(θ,x)] 就會越來越小。

好現在假設我們的其中一個替身叫做q(θ|λ),最佳化 λ 的梯度(gradient)就是

λ(logp(θ,x)logq(θ|λ))q(θ|λ)dθ

=λ(logp(θ,x)logq(θ|λ))q(θ|λ)dθ

+λq(θ|λ)(logp(θ,x)logq(θ|λ))dθ

其中,

λ(logp(θ,x)logq(θ|λ))q(θ|λ)dθ

=Eq[λlogq(θ|λ)]=0

剩下另外一個,因為

λq(θ|λ)=q(θ|λ)λlogq(θ|λ)

就可以寫成

λlogq(θ|λ)(logp(θ,x)logq(θ|λ))q(θ|λ)dθ

=Eq[λlogq(θ|λ)(logp(θ,x)logq(θ|λ))]

這個東西是可以用Monte Carlo integration估計的,只要從 q 中抽樣就可以了。

因此說了一堆,黑箱版本的好處其實就是不需要手動計算複雜的積分(再次強調)也可以找出梯度,然後一次做最佳化就可以了。