Active inferenceで忘れるやつ
0. P と Q
- P(·) = 生成モデル(エージェントが仮定する「世界の確率」。真の確率分布ではないかもしれないが、頭の中で作られている。学習により獲得、もしくは行動により修正していかなければならない。)
- Q(·) = 信念 / 近似事後(観測後の「いまこうだと思う」気持ち。そもそも気持ちだから確率分布である必要もないが、Active inferenceでは確率として扱っていると思う。多分。行動しながら気持ちは変わる。)
つまり、Acive inferenceでは、脳内で獲得した世界の知識と、その時の気持ちを計算しているのか?
確率分布
確率変数
- 隠れ状態: $s_t$
- 観測: $o_t$
- 行動: $a_t$
- 方策(行動列): $π = (a_t, a_{t+1}, …)$ (方策と読んでいるが、行動列。つまり強化学習のプランニング。確率分布ではない!!)
生成モデルの確率(P側)
- 尤度(観測モデル): $A$
- $P(o_t | s_t)$
- 遷移(状態モデル): $B$
- $P(s_{t+1} | s_t, a_t)$
- 初期状態事前信念: $D$
- $P(s_1)$
- 方策事前信念: $E$
- $P(π)$
- 選好(望ましい観測、好み): $C$
A,B,D,E は基本 P側。C は表現が流派で揺れるので注意。
推論で得る信念(Q側)
- 状態の信念(周辺事後): $q(s_t)$
- 方策の信念: $q(π)$
- 将来予測(方策条件つき): $q(s_{t+k} | π)$, $q(o_{t+k} | π)$
学習(モデルパラメタへの信念)
- ディリクレ濃度(疑似カウント):
- $pA$ : A のパラメタ事後(Dirichlet)
- $pB$ : B のパラメタ事後(Dirichlet)
- 推論に使う期待値:
- $E[A]$, $E[B]$(正規化した期待)
- $E[ln A]$, $E[ln B]$(VFE/情報利得で頻出)
A(カテゴリカル)と pA(ディリクレ)は別物。B と pB も同様。
大抵の実装ではAとBはカテゴリカル分布で、pAとpBはディリクレ分布。これらは共役関係にある。$p(\theta | x) \propto p(x | \theta) p(\theta)$-> $Dir(\theta | x) = Cat(x \mid \theta) Dir(\theta)$
2. 目的関数:F と G の役割
変分自由エネルギー(perception)
-
F:いまの観測o_tを説明するようにq(s_t)を更新する目的関数 - 感覚的には「いま何が起きているか」を決める
期待自由エネルギー(planning / policy selection)
-
G(π):方策πごとの将来評価(好み + 不確実性低減など) - 感覚的には「これから何をするべきか」を決める
3. 典型ワークフロー(1ステップ)
-
予測事前(前時刻の信念と B から)
p(s_t) ≈ Σ_{s_{t-1}} P(s_t|s_{t-1}, a_{t-1}) q(s_{t-1})- 初期は
Dが出発点
- 状態推論:$o_t$ を見て $q(s_t)$ 更新(F 最小化)
- 方策推論:$G(π)$ を計算して $q(π)$ 更新
- 行動:$q(π)$ から $a_t$ を選ぶ(サンプル or 周辺化)
- 学習(任意):$pA, pB$ を更新 → $E[A], E[B]$ が変わる
学習するのは、p(世界のモデル)のパラメタ。信念の変化は学習ではなくエージェントの気持ちの変化。
4. 混乱しやすい対比まとめ
「prior」が2種類ある
- モデルの事前: $D = P(s_1)$ / $E = P(π)$
- 推論上の予測事前: $p(s_t)$(直前信念と B から作る)
$C$ は「確率分布」とは限らない
- $C$ を
log P*(o)として持つ流派もあれば、単なる utility として持つ流派もある
precision(温度)記号の衝突に注意
-
γ(gamma): 方策選択の精度(softmax の鋭さ)として使われがち - 一方で、ガンマ分布/ディリクレの記号
γ, β, αが別用途で出てきて衝突しやすい- 「softmax温度か? 分布パラメタか?」で必ず判定
- γはガンマ分布をしていて、ガンマ分布のパラメタのαとβは、$\alpha = 1$で固定し、βを更新する。
- 太字と細字のγのパラメタβが出てくるが、太字はベクトルではなくposteriorのパラメタ。