如何通俗的理解spike and slab prior?


首先聲明我不是Bayesian。以下是個人理解。

spike and slab lasso是基於Bayesian lasso (Park and Casella, 2008)的。Bayesian lasso中回歸係數的先驗是Laplace distribution。這個解釋實際上在第一篇lasso paper里就有提到,Bayesian lasso把這個想法用MCMC實現了。我的理解是Laplace prior並不能很好的對sparse signal建模,所以Bayesian lasso更像是生搬硬套了frequentist lasso。spike and slab lasso是對sparse signal的一種先驗模型,更符合我們的預期,所以posterior的性質也更好。


spike slab,據我所知,可以用來選變數,想法非常巧妙,但非常容易理解。

spike,slab指的是什麼?是回歸模型裡面參數的prior distribution的形狀,這裡提到了prior distribution,意味著什麼?是Bayesian回歸才有參數的prior distribution,通常非bayesian的回歸都是假設參數是未知常數,去估計這些未知常數。

舉個具體例子吧:

做一個bayesian linear regression,比如裡面有3個變數,x1,x2,x3,每個變數有一個係數,w1,w2,w3,那模型可以寫為:

y=w1x1+w2x2+w3x3+error

可以假設error是正太分布,如果非bayesian回歸,直接就可以去估計w1,w2和w3的值了。

現在在bayesian框架下,繼續來做假設吧,假設w1,w2,w3各自的prior distribution獨立同分布,比如都是正太分布(0,5),然後就可以計算w1,w2,w3的posterior distribution了,到這裡也結束了,w的prior distribution形狀是slab的,那spike呢?

spike到現在還沒出現,也沒什麼問題,那問題是什麼?

問題是怎麼選變數?

非bayesian回歸選變數/特徵的辦法太多了,那現在到了bayesian里,有一個非常巧妙的辦法就是修改一下模型:

y=w1gamma1x1+w2gamma2x2+w3gamma3x3+error

上面的模型和基本的bayesian不同之處就是引入了新的參數,gamma1,gamma2,gamma3,並且假設這三個gamma的prior distribution獨立。如果我們假設gamma的prior distribution都是bernoulli分布會怎樣?

benoulli分布是什麼形狀的?spike!!!

如果我們做mcmc更新w和gamma,比如做10000次update,會得到10000個w和10000個gamma,這10000個gamma都是0或者1,我們可以把gamma1畫出來,做一個trace plot,如果得到的gamma1的trace像是下圖,說明什麼?

很顯然,多數情況下gamma1都是0,很少情況gamma1=1。

為什麼多數情況gamma1是0,因為x1不是一個有用的回歸變數,那麼就可以考慮不用這個變數做回歸了。

理論上的東西可以找論文看一看,這裡只是舉個例子。

deep neural network裡面對神經元dropout,和這個有些相似,但是dropout是假設gamma的真實分布已知了,指定多少就是多少,不會在訓練中變化,在bayesian回歸里我們是在學習gamma的posterior distribution。

歡迎大家指正!


mixture Laplace prior能很好的對sparse signal建模。mixture spike and slab prior 已經發表了不少文章。在機器學習,大數據,遺傳學中已發表了不少文章,建模效果很好,變數選擇和參數估計都不錯。


推薦閱讀:

機器AI學習需要什麼數學基礎,學習這些數學需要會哪些基礎數學?
有誰能講解下《Going deeper with convolutions》這篇論文?
壓縮感知和矩陣分解的異同?
Factor graph 模型的前提知識有哪些?
如果想去南大周志華教授那裡讀研,應該如何準備呢?

TAG:機器學習 | 統計 | 回歸分析 | 特徵工程 |