如果有問題,我正在使用Rstan。斯坦如何表現以及告訴我們的提示?
斯坦讓我們運行在變化模式和採樣模式下,變化模式更快。我的問題是,變種斯坦的行爲是否可以給出我們模型的任何線索。
變分模式有幾種行爲,我不知道他們是否會提供一些線索,說明我們的模型中有些東西是不正確的,甚至可能是什麼東西。例如:
我們可以在eta自適應過程中得到一個錯誤。
在梯度上升過程中,通常在任何迭代之前,偶爾會在後面的迭代過程中出現錯誤。
我們可以得到梯度上升的發散 - 即ΔELBO平均值爆炸。
我們可以使德爾塔ELBO平均值/中值增加到初始值1.0以上,但是直到收斂爲止。
我們已經從1.0增加了ELBO平均值/中值減少,但是需要更多或更少的迭代。
我們可以使德爾塔ELBO的平均值或中值或兩者收斂(即低於0.01)。
我在考慮經驗法則。作爲抽樣的例子,如果我有一個合理大小的數據集和一個相當簡單的模型,但抽樣時間不合理,我的第一個想法是檢查我的先驗。當我將前輩留在默認的(平坦,不適當的先驗)時,我已經看到了這種行爲,並且往往這是通過在事物上放置一個相當模糊的事情來固定樣本空間不合理的部分。
任何人都有關於平均場模式的經驗法則或見解 - 無論是在其自身的權利以及它如何與抽樣相關?
謝謝,非常有見識!所以如果MCMC看起來很慢,而且我們只說了成千上萬行數據,那麼VB可能不會真的給我們買東西。另外,我並沒有對平均場地採取預防措施,這是一個錯誤。 – Wayne
詳細說明,如果你確實有一個不相關的正常後驗,看起來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只是免費的午餐。 –