羽生結弦,日本天才花式滑冰選手 圖片來源http://abcnews.go.com/Sports/photos/tough-straight-face-midair-22463006/image-22525718 |
貝氏統計推論中,有些Posterior實在太複雜太難算,用sampling (如MCMC)抽一大堆貌似合理的樣本來進行參數推論是經常使用的替代方式。然而sampling也有既存的問題,比如說常常讓運算速度不夠快,或是完全來自隨機以致收斂性等表現難以掌握等等。總之,學界開始尋找其他逼近(approximation)的方法在某些場合下取代MCMC。
Variational Bayes算是最紅的,許多貝氏建模的文章都會提供相對應的演算細節。
大致上的概念是這樣的,我們感興趣的東西是p(θ|x),並且
p(θ|x)∝p(θ)p(x|θ)
找一個替代品q(θ),並且讓這個替代品和posterior很像很像,換句話說就是努力把
KL[q(θ),p(θ|x)]
變得很小很小(沒錯,Kullback-leibler divergence這個
然後,因為我們有好多個parameter要推論,mean field assumption會是一個把情況變得簡單的假設,也就是所有的參數都是獨立的。也就是
q(θ)=∏iq(θi)
把這個該變小的Kullback-leibler divergence寫開
KL[q(θ),p(θ|x)]=∫q(θ)logq(θ)p(θ|x)dθ
=∫q(θ)logq(θ)p(x)p(θ,x)dθ
=∫q(θ)logq(θ)p(θ,x)dθ−∫q(θ)logp(x)dθ
=∫q(θ)logq(θ)p(θ,x)dθ−logp(x)
由於對logp(x)已經使不上力(和θ無關),所以接下來專心解決∫q(θ)logq(θ)p(θ,x)dθ,並解我們知道∫q(θ)logq(θ)p(θ,x)dθ和KL[q(θ),p(θ|x)]成正比,所以要盡量把他變小
接下來引入mean field assumption
∫q(θ)logq(θ)p(θ,x)dθ=∫∏iq(θi)log∏iq(θi)p(θ,x)dθ
=∫∏iq(θi)(∑ilogq(θi)−logp(θ,x))
=∫q(θj)∏i≠jq(θi)(∑ilogq(θi)−logp(θ,x))dθ
=∫q(θj)∏i≠jq(θi)(logq(θj)−logp(θ,x))dθ −∫q(θj)∏i≠jq(θi)(∑i≠jlogq(θi))dθ
=∫q(θj)(logq(θj)−∫∏i≠jq(θi)logp(θ,x)dθi≠j)dθj+c
=∫q(θj)(logq(θj)−Eq(θi≠j)[log(θ,x))])dθj+c
=∫q(θj)loglogq(θj)exp(Eq(θi≠j)[log(θ,x))])dθj+c
=KL[q(θj),exp(Eq(θi≠j)[log(θ,x))])]+c
KL[q(θj),exp(Eq(θi≠j)[log(θ,x))])]最小就是讓∫q(θ)logq(θ)p(θ,x)dθ最小,也就是讓KL[q(θ),p(θ|x)]最小,目標就完成啦!!!!!!! 哈哈哈哈~~~~~(已瘋)
而可以把KL[q(θj),exp(Eq(θi≠j)[log(θ,x))])]變得最小的q(θj)不就是exp(Eq(θi≠j)[log(θ,x))])本人嗎?
真是可喜可賀!!!
因此Variational Bayes演算法就大功告成了
q∗(θj)=1Zexp(Eq(θi≠j)[log(θ,x))])
或者寫成
logq∗=Eq(θi≠j)[log(θ,x))]−logZ
逐個迭代q(θj)直到收斂為止