2017-01-16 14 views
0

如果有問題,我正在使用Rstan。斯坦如何表現以及告訴我們的提示?

斯坦讓我們運行在變化模式和採樣模式下,變化模式更快。我的問題是,變種斯坦的行爲是否可以給出我們模型的任何線索。

變分模式有幾種行爲,我不知道他們是否會提供一些線索,說明我們的模型中有些東西是不正確的,甚至可能是什麼東西。例如:

  1. 我們可以在eta自適應過程中得到一個錯誤。

  2. 在梯度上升過程中,通常在任何迭代之前,偶爾會在後面的迭代過程中出現錯誤。

  3. 我們可以得到梯度上升的發散 - 即ΔELBO平均值爆炸。

  4. 我們可以使德爾塔ELBO平均值/中值增加到初始值1.0以上,但是直到收斂爲止。

  5. 我們已經從1.0增加了ELBO平均值/中值減少,但是需要更多或更少的迭代。

  6. 我們可以使德爾塔ELBO的平均值或中值或兩者收斂(即低於0.01)。

我在考慮經驗法則。作爲抽樣的例子,如果我有一個合理大小的數據集和一個相當簡單的模型,但抽樣時間不合理,我的第一個想法是檢查我的先驗。當我將前輩留在默認的(平坦,不適當的先驗)時,我已經看到了這種行爲,並且往往這是通過在事物上放置一個相當模糊的事情來固定樣本空間不合理的部分。

任何人都有關於平均場模式的經驗法則或見解 - 無論是在其自身的權利以及它如何與抽樣相關?

回答

3

我認爲我們可以說MCMC的診斷比變分貝葉斯更遠。 Stan中的VB算法試圖找到無約束空間中參數後驗分佈的最接近的多元正態分佈。這可能會失敗,因爲最接近後驗分佈的多元正態分佈實際上不是由迭代算法找到的,也可能是因爲無約束空間中的後驗分佈不能很好地與多元正態分佈近似。一個經驗法則是你應該多次運行VB。在我看來,第二個經驗法則是,斯坦將從大致多變量正態分佈的後驗分佈中非常有效地抽樣。所以,如果MCMC很慢,要麼有數百萬個數據點,要麼後驗分佈不是近似多元正態(或兩者)。 VB在前一種情況下可能更可取,但在後一種情況下不太可能如此。

我們已經評估了VB在示例模型集合上的優勢。與恢復參數相比(使用後驗均值和標準偏差來構建VB​​估計值的Z值),生成好的預測似乎更好。對於沒有比例參數的模型,它似乎做得更好。

特別是使用平均場變量---試圖找到最接近的不相關多變量正態分佈到後驗---幾乎需要您做大量的重新參數化,以使參數在後驗分佈中較少相關。這就是爲什麼rstanarm建議爲平均場(以及其他估計算法)指定QR = TRUE參數的一個原因,該算法通過用QR分解正交化預測變量,然後在獲得抽點後反轉變換來減少係數中的後驗相關性。

+0

謝謝,非常有見識!所以如果MCMC看起來很慢,而且我們只說了成千上萬行數據,那麼VB可能不會真的給我們買東西。另外,我並沒有對平均場地採取預防措施,這是一個錯誤。 – Wayne

+0

詳細說明,如果你確實有一個不相關的正常後驗,看起來treedepth會是3,就像這個Stan程序一樣:''parameters {vector [100] theta; } model {target + = normal_lpdf(theta | 0,1); }''。所以,牆的時間就像'(評估梯度的時間)x(2^3 - 1)x迭代'。當MCMC需要很長時間時,幾乎總是因爲treedepth接近10,並且壁時間是'(評估梯度的時間)x(2^10 - 1)x次迭代「。當時間計算中的線性項支配跳躍步的多項式數時,Meanfield只是免費的午餐。 –

相關問題