私はRstanを使用しています。スタンがどのように振る舞い、それが私たちに何を伝えるのか?
Stanでは、変分モードとサンプリングモードで動作させることができます。変則モードははるかに高速です。私の質問は、変則的なスタンの行動が我々のモデルについての手がかりを与えることができるかどうかです。
変モードは、行動のいくつかの種類があり、彼らは何かが我々のモデルと権利はないことと、おそらくその何かがあるにも何の手がかりを与える可能性があるのだろうか。例:
η適応中にエラーが発生する可能性があります。
我々は通常、任意の反復の前に、時折後の反復の間に、勾配上昇中のエラーを取得することができます。
私たちは、勾配上昇の発散を得ることができます - すなわちデルタELBOは爆発を意味します。
我々はデルタELBOは、初期1.0以上/中央値の増加を意味するが、その後収束するまで減少することができます。私たちは、デルタELBOを持ってい
が1.0から/中央値の減少を意味するが、より多くのまたはより少ない反復を取ります。
デルタELBOの平均値または中央値または両方が収束する(つまり、0.01未満になる)ことができます。
私は経験則を考えています。サンプリング時の例として、合理的なサイズのデータセットとかなり単純なモデルがありますが、サンプリングに時間がかかりすぎる場合、私の最初の考えは私の前任者をチェックすることです。私はこの種の振る舞いを私がデフォルト(平らで不適切な先生)に任命したときに見てきましたが、これはサンプラーをサンプル空間の信じられない部分から守るためにかなりあいまいなものを置くことで修正されることがよくあります。
誰かが、meanfieldモードのための経験則や洞察力を持っています。それは、それ自体でもサンプリングに関連するのでしょうか?
ありがとう、非常に洞察力がある!だからMCMCが遅くて、何千もの行のデータが(唯一の)10であるとすれば、VBは実際に私たちに何も買わないかもしれません。また、私は間違いだったmeanfieldに予防措置を講じていませんでした。 – Wayne
このStanプログラムのように、相関のない通常の後部を持っていれば、treedepthが3になるように見えます: '' {{parameters {vector [100] theta; }モデル{target + = normal_lpdf(theta | 0,1); } ''。だから、壁の時間は '(勾配を評価する時間)x(2^3 - 1)x反復'のようなものです。 MCMCが長い時間を要する場合、それはほとんどの場合treedepthが10に近く、壁の時間が ''(勾配を評価する時間)x(2^10-1)x iterations'であるからです。 Meanfieldは、時間計算の線形項が飛躍の多項式の階数を支配するときのフリーランチです。 –