« 自由エネルギー原理入門(4/7): Sec.4 生成モデルに行動を含める | 最新のページに戻る | 自由エネルギー原理入門(6/7): 「Sec. 5. 現在、過去、未来を統一的に捉えるモデル」を追加 »
■ 自由エネルギー原理入門(5/7): 「Sec.4-4-3 照明の例を用いた期待自由エネルギーGの計算」以降をアップデート
最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。
[4-4-3. 照明の例を用いた期待自由エネルギー G の計算]
では以上の結果を用いて、照明の例で期待自由エネルギーEFE G を計算してみよう。
実際の計算方法についてだが、式(4-12)1行目のように、VFEを計算してからそれに期待値をかけて計算することはできない。なぜなら内側の F を計算するときに、すべての xt+1 で足し合わせて xt+1 が消えているから、外側の期待値の xt+1 と対応させることができない。あくまでも式(4-12)3行目のように q(xt+1,st+1) で期待値をとる必要がある。
まずこの期待値の部分について計算しておこう。式(4-11)に、q(xt+1=1|ϕxt+1)=ϕxt+1 および q(xt+1=2|ϕxt+1)=1−ϕxt+1 、それから観察モデルの値 p(st+1|xt+1)=[0.80.20.050.95] を入れてやると、
q(xt+1,st+1|ϕxt+1)=p(st+1|xt+1)q(xt+1|ϕxt+1)q(xt+1=1,st+1=1|ϕxt+1)=p(st+1=1|xt+1=1)ϕxt+1q(xt+1=1,st+1=2|ϕxt+1)=p(st+1=2|xt+1=1)ϕxt+1q(xt+1=2,st+1=1|ϕxt+1)=p(st+1=1|xt+1=2)(1−ϕxt+1)q(xt+1=2,st+1=2|ϕxt+1)=p(st+1=2|xt+1=2)(1−ϕxt+1)これをプロットしてやると図4-9の通りとなる。

図4-9: 照明の例におけるq(x,s)
ϕxt+1 を0-1の間で動かすと、どこでも ∑s∑xq(x,s)=1 になっていることが確認できる。あらためて、推測 q(x,s) という同時確率が ϕxt+1 ひとつの関数であること、つまり、agentがここで変化させているのは外界の状態の推定 q(x) だけで、感覚入力 s についての推定はそれによって一意に決まる、というモデルになっていることがわかる。(これ自体は自明なことではなく、あくまでFriston論文ではそういうモデルになっているというだけのこと。)
それでは式(4-12)に基づいて、G を計算してみよう。式(4-13)を使って、x=1,2 および s=1,2 のすべての変数の組み合わせでの和の形に変形してやる。あと、2行目から3行目の変換で、pat(xt+1,st+1)=p(st+1|xt+1)pat(xt+1) を使っている。生成モデルの設定より、観察モデル p(st+1|xt+1) の部分は a に依存しないので、こちらもこの段階で値を代入できる。
G(ϕxt+1,at)=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|ϕxt+1)−lnpat(xt+1,st+1)]=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|ϕxt+1)−lnp(st+1|xt+1)−lnpat(xt+1)]=q(xt+1=1,st+1=1|ϕxt+1)[lnq(xt+1=1|ϕxt+1)−lnp(st+1=1|xt+1=1)−lnpat(xt+1=1)]+q(xt+1=1,st+1=2|ϕxt+1)[lnq(xt+1=1|ϕxt+1)−lnp(st+1=2|xt+1=1)−lnpat(xt+1=1)]+q(xt+1=2,st+1=1|ϕxt+1)[lnq(xt+1=2|ϕxt+1)−lnp(st+1=1|xt+1=2)−lnpat(xt+1=2)]+q(xt+1=2,st+1=2|ϕxt+1)[lnq(xt+1=2|ϕxt+1)−lnp(st+1=2|xt+1=2)−lnpat(xt+1=2)]=0.8∗ϕxt+1[lnϕxt+1−ln0.8−lnpat(xt+1=1)]+0.2∗ϕxt+1[lnϕxt+1−ln0.2−lnpat(xt+1=1)]+0.05∗(1−ϕxt+1)[ln(1−ϕxt+1)−ln0.05−lnpat(xt+1=2)]+0.95∗(1−ϕxt+1)[ln(1−ϕxt+1)−ln0.95−lnpat(xt+1=2)]あとは生成モデルのうち a に依存する事前分布 pat(xt+1) の値を入れれば、G は a ごとに決まる ϕxt+1 の関数になる。
G(ϕxt+1,at=1)=0.8∗ϕxt+1[lnϕxt+1−ln0.8−ln0.8]+0.2∗ϕxt+1[lnϕxt+1−ln0.2−ln0.8]+0.05∗(1−ϕxt+1)[ln(1−ϕxt+1)−ln0.05−ln0.2]+0.95∗(1−ϕxt+1)[ln(1−ϕxt+1)−ln0.95−ln0.2]G(ϕxt+1,at=2)=0.8∗ϕxt+1[lnϕxt+1−ln0.8−ln0.2]+0.2∗ϕxt+1[lnϕxt+1−ln0.2−ln0.2]+0.05∗(1−ϕxt+1)[ln(1−ϕxt+1)−ln0.05−ln0.8]+0.95∗(1−ϕxt+1)[ln(1−ϕxt+1)−ln0.95−ln0.8]こうして計算できた G(a,ϕxt) をプロットしたのが図4-10。

図4-10: 期待自由エネルギーGに基づく行動選択
図4-10では G(a=1) および G(a=2) を ϕxt を0-1の間で計算している。図4-5のときは s=1,s=2 それぞれのときに ϕxt を動かして VFE を最小化することができたが、G の場合には s=1,s=2 の両者を考慮しているのでそういうわけにはいかない。
そこでサブセクション4-4-2でも言及したように、ϕxt には、初期値である事前分布の pat=1(xt+1=1)=0.8 および pat=2(xt+1)=0.2 を採用する近似が使われている。よくみるとじつは ϕxt を動かすと G をさらに最小化することができるが、この件については省略。
こうしてできた G(a) の最小値(0.6348 bits vs. 0.3735 bits)を比較して、より低い a=2 の方を行動選択として使う(図4-10)。正確にはsoftmax関数を使うことで、決定論的ではなくて確率論的により大きい方を行動選択する確率が増えるようにしてある。
これはスイッチをオフ a=2 にするほうが、照明オフ x=2 のときの観測モデル p(st+1|xt+1) の曖昧さによる不確定性を減らすことができるから、と説明することができるだろう。さらに詳しくは、後述のepistemic valueの計算が必要となってくる。
ところで現在使っている観測モデルは p(st+1|xt+1)=[0.80.20.050.95] と非対称性があった。これが行動選択の原因となっていた。もしこの観測モデルが [0.80.20.20.8] と対照的であった場合について G(a) をプロットすると図4-11の通りとなる。

図4-11: Gに基づく行動選択
G(a) の最小値は a=1,2 の間でまったく同じ 0.7219 bitsになるので、どちらの行動を取りやすい、ということはなくなる。これも予想通りだ。
[4-4-4. 期待自由エネルギー EFE=G と変分自由エネルギー VFE=F の関係]
サブセクション4-4-3の頭にも書いたように、G は二つの VFE の重み付き平均としては計算できない。このことを上記の照明の例において示しておく。
まず式(4-15)のように F(st+1) をF′(xt+1,st+1)=F′xs という二つの項に分けておく。
F(ϕxt+1,st+1=1,at)=q(xt+1=1|ϕxt+1)[lnq(xt+1=1|ϕxt+1)−lnpat(xt+1=1,st+1=1)]+q(xt+1=2|ϕxt+1)[lnq(xt+1=2|ϕxt+1)−lnpat(xt+1=2,st+1=1)]=F′11+F′21F(ϕxt+1,st+1=2,at)=q(xt+1=1|ϕxt+1)[lnq(xt+1=1|ϕxt+1)−lnpat(xt+1=2,st+1=1)]+q(xt+1=2|ϕxt+1)[lnq(xt+1=2|ϕxt+1)−lnpat(xt+1=2,st+1=2)]=F′12+F′22と、G の式は以下のように表現できる。
G(ϕxt+1,at)=p(st+1=1|xt+1=1)F′11+p(st+1=2|xt+1=1)F′21+p(st+1=1|xt+1=2)F′12+p(st+1=2|xt+1=2)F′22よって、G はF の重み付き平均をしただけではないことがわかる。つかもしそうだったら G には F に付加される情報がないので、行動選択のためにわざわざ G を定義する必要はなくなるだろうから、これは理にかなっている。
(検算しておくと、式(4-17)からわかるように、観察モデルが完全に無情報なとき、つまり p(st+1|xt+1)=[0.50.50.50.5] このときだけ G は F(s=1) と F(s=2) の平均になっている。)
[4-4-5. epistemic value + extrinsic valueへの分解、の前に]
Neural Comput. 2017では、このEFE G の式を分解してepistemic valueと extrinsic valueの輪の形に変形している。式(4-12)から式変形してゆくが、ここで生成モデルの変形として p(xt+1,st+1)=p(xt+1|st+1)p(st+1) を使っている。これまで使っていた「観察モデル*事前分布」による変形をしている。つまり F=DKL+Surprisal による変形だ。
(Epistemic valueが情報獲得を意味するならば、ここでの変形は p(xt+1,st+1)=p(st+1|xt+1)p(xt+1) を用いた F=Bayesian surprise+Uncertainty になるはずなのだが。この件については後ほど再訪する。)
G(ϕxt+1,at)=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|ϕxt+1)−lnpat(xt+1,st+1)]=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|ϕxt+1)−lnpat(xt+1|st+1)−lnp(st+1)]ここで私が疑問なのが、式(4-18)の2行目でSurprisal lnp(st+1) は at に依存しないように書かれていることだ。しかし、
p(st+1)=∑xt+1pat(xt+1,st+1)=∑xt+1p(st+1|xt+1)pat(xt+1)となっていることを考えると、p(st+1) は pat(st+1) と書くべきではないか。
論より証拠、いまの照明の例で計算してみよう。
pat=1(st+1=[12])=∑xt+1pat=1(xt+1,st+1)=∑xt+1p(st+1|xt+1)pat=1(xt+1)=p(st+1|xt+1=1)pat=1(xt+1=1)+p(st+1|xt+1=2)pat=1(xt+1=2)=[0.80.2]∗0.8+[0.050.95]∗0.2=[0.650.35]pat=2(st+1=[12])=∑xt+1pat=2(xt+1,st+1)=∑xt+1p(st+1|xt+1)pat=2(xt+1)=p(st+1|xt+1=1)pat=2(xt+1=1)+p(st+1|xt+1=2)pat=2(xt+1=2)=[0.80.2]∗0.2+[0.050.95]∗0.8=[0.200.80]というわけで、実例による計算から「常に at に依存してない」に対する反証は出せた。よってここは本来 pat(st+1) として計算するべきであることが確認できた。
この点については、Gershman arXiv 2019およびKatahira et. al. PsyArXiv 2019は正しい計算をしている(Gershman論文では G の期待値に使っているものが違うけど)。これは些末な話ではなくて、この項をFristonのようにextrinsic valueに捉えるのか、それともKatahira et. al. 2019のようにpredicted surpriseとして捉えるのかで解釈にも大きな違いが生まれる。この点については以下のextrinsic valueの説明のところで再訪する。
なお、これは生成モデルの違いによっては説明できない。のちほど再訪する予定だけど、Katahira et. al. 2019での生成モデルはこの文書での蝶と蛾の例と同じ形で以下のようになるので、pat(st+1) が at に依存するという点については変わらない。
p(st+1)=∑xt+1pat(xt+1,st+1)=∑xt+1pat(st+1|xt+1)p(xt+1)[4-4-6. Epistemic valueの導出]
ともあれ今はNeural Comput. 2017に準拠して、EFE G からepistemic value, extrinsic valueの導出までたどり着くことを目標にしよう。式(4-18)の2行目を再掲する。
G(ϕxt+1,at)=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|ϕxt+1)−lnpat(xt+1|st+1)−lnp(st+1)]まずは式(4-18)の第1項、第2項を式変形することでepistemic valueを導出する。ϕxt+1 の表示は省略しておく。
Eq(xt+1,st+1)[lnq(xt+1)−lnpat(xt+1|st+1)]≈Eq(xt+1,st+1)[lnq(xt+1)−lnq(xt+1|st+1)]=Eq(st+1)q(xt+1|st+1)[lnq(xt+1)−lnq(xt+1|st+1)]=Eq(st+1)[Eq(xt+1|st+1)[lnq(xt+1)−lnq(xt+1|st+1)]]=−Eq(st+1)[Eq(xt+1|st+1)[lnq(xt+1|st+1)−lnq(xt+1)]]=−Eq(st+1)DKL[q(xt+1|st+1)‖q(xt+1)]=−Epistemic value(at)1行目から2行目のところで推測 q(xt+1|st+1) がtrue posterior pat(xt+1|st+1) に充分近づけることができた、という近似を入れている。
このようにして、epistemic valueでは、q(xt+1|st+1) と q(xt+1) の間の距離を計算している。これは未来の感覚入力 st+1 によってどのくらい推測 q が変化するか、つまりBayesian surpriseを計算したうえで、それを全ての st+1 で重み付け平均した期待値を計算している。これによって、行動at が引き起こす未来の感覚入力 st+1 のばらつきを考慮した上でBayesian surpriseを計算していることになる。
ここで式(4-22)の一番最後の形を見てもらうと、これは q(xt+1|st+1) と q(xt+1) の間の相互情報量になっていることがわかる。
Epistemic value(at)=Eq(st+1)[DKL[q(xt+1|st+1)‖q(xt+1)]=DKL[q(xt+1|st+1)‖q(xt+1)q(st+1)]=MI(q(xt+1|st+1);q(xt+1))つまり、epistemic valueとは、未来の感覚入力st+1 を観測することによって推測 q(xt+1) をどのくらいアップデートできるか、という情報獲得の大きさを計算していることになる。だから「epistemic valueが高い行動を選択する」とは「将来的に情報獲得の大きいことが見込まれる行動を選択する」という意味になる。こう考えると、epistemic valueが高い行動を選択するというのは理にかなっている。
(ここで使われている、「推測 q(xt+1|st+1) がtrue posterior pat(xt+1|st+1) に充分近づけることができた」という近似は、計算を可能にするための近似ではなくて、式(4-18)の第1,2項を情報獲得という解釈をするための読み替えに過ぎない。たとえばサブセクション4-4-2では、推測 q(xt+1) を生成モデル(のうち事前分布) p(x) で近似したが、これは不可能な計算を可能にするための近似。でも今やってるのは逆。生成モデルp から作ったtrue posterior を推測 q で近似するというのだから。これはcounter-factualなpredictionにおいては、脳が q を変化させてtrue posteriorと完全に一致させることができる、という仮定である。現在の例のように観察モデルに不確定な要素がある状況では(たぶん)これは成り立たない。)
[4-4-7. Extrinsic valueの導出]
次に、式(4-18)の2行目の第3項を変形させることでextrinsic valueを導出する。
Eq(xt+1,st+1)[−lnp(st+1)]=Eq(st+1)q(xt+1|st+1)[−lnp(st+1)]=Eq(st+1)[Eq(xt+1|st+1)[−lnp(st+1)]]=−Eq(st+1)[lnp(st+1)]=−Eq(st+1)[lnˉp(st+1)]=−Extrinsic value(at)ここで3行目から4行目のところで p(st+1) が q(xt+1|st+1) には依存しない(xt+1 ごとに足し合わせない)ということを使ってる。
4行目から5行目のところでは p(st+1) を ˉp(st+1) と違った書き方をしているが、これはSchwöbel et. al. 2018の表記を採用している。Schwöbel et. al. 2018のp.2537にあるように「将来得られるであろう感覚入力についての事前分布(=preference) ˉp(st+1) 」と「将来得られるであろう感覚入力について周辺化した期待値 p(st+1)=∑xt+1p(xt+1,st+1)」とはべつものである。Schwöbel et. al. 2018にしろ、Friston et. al. 2017にしろ、前者のpreferenceの方を採用している。
しかしこれは恣意的な読み替えのように思える。というのも、前者のpreferenceの意味であるなら、生成モデルの中に明示的にそのような事前分布を入れるべきだからだ。
ここでParr and Friston bioRxiv 2018の図1に因子グラフがあるのでそれで確認してみると、期待自由エネルギーでは、期待自由エネルギー G の事前分布としてこの ˉp(st+1) を入れている(bioRxiv 2018 図1A)。いっぽうで、この論文で提案されているGeneralized free energyでは、各時点の感覚入力(論文内ではobservationだが) st−1,st,st+1,... の全てに共通の事前分布としてこの ˉp(st+1) が入っている(bioRxiv 2018 図1B)。つまり、Parr and Friston 2018では、期待自由エネルギーEFEを計算する際に ˉp(st+1) が生成モデルには入っていないこと、G を計算するためだけに使ったパラメーターであることをわかっている。
この文書で(そしてEFE関連の論文で)採用されている生成モデルでは、感覚入力 s はそのつどx から作られるので、生成モデルの式の中に感覚入力についてのprior p(s) というものはそもそも入ってない。よって、p(st+1) は生成モデルから周辺化して作ったと考えるほうが自然で、事前分布=preferenceであると主張するのには根拠が無いと思う。どうしてそこまでして ˉp(st+1) を入れているのかといえば、素のG の式のままではextrinsic value的なものを埋め込むことができないということだろう。でもまあ正直なところ、rewardのようなextrinsic valueをこのような形で自由エネルギー原理の中に組み込むのは無理があるので、強化学習でやってるように明示的にrewardを入れるべきじゃないの?と思った。
[4-4-8. 期待自由エネルギー EFEの式の最終形]
ともあれこれで期待自由エネルギー EFEの式が完成した。式(4-18),(4-23),(4-24)を組み合わせると、最終的な期待自由エネルギーの式になる。
G(at)=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|ϕxt+1)−lnpat(xt+1,st+1)]≈−Eq(st+1|ϕxt+1)[DKL[q(xt+1|st+1)‖q(xt+1)]⏟Epistemic value(at)−Eq(st+1|ϕxt+1)[lnˉp(st+1)]⏟Extrinsic value(at)つまり、epistemic valueが高いこと、extrinsic valueが高いこと、の両方が期待自由エネルギー EFE G を高くすることに貢献する。
[4-4-9. 照明の例を用いてepistemic valueとextrinsic valueを実感してみる]
図4-10、4-11で計算したG(a=1)、G(a=2) について、それぞれのepistemic valueとextrinsic valueを計算してみよう。
まずepistemic valueを計算してみる。前述したようにepistemic valueの近似は計算のための近似ではないので、近似前の式を使って計算する。なお、true posterior pat(xt+1|st+1) は行動選択 at に依存する。q(xt+1|ϕxt+1) のほうは近似(=p(x))は使わずに ϕxt+1 の関数の形のまま計算する。
Epistemic value(at)=Eq(xt+1,st+1|ϕxt+1)[lnpat(xt+1|st+1)−lnq(xt+1|ϕxt+1)]=q(xt+1=1,st+1=1|ϕxt+1)[lnpat(xt+1=1|st+1=1)−lnq(xt+1=1|ϕxt+1)]+q(xt+1=1,st+1=2|ϕxt+1)[lnpat(xt+1=1|st+1=2)−lnq(xt+1=1|ϕxt+1)]+q(xt+1=2,st+1=1|ϕxt+1)[lnpat(xt+1=2|st+1=1)−lnq(xt+1=2|ϕxt+1)]+q(xt+1=2,st+1=2|ϕxt+1)[lnpat(xt+1=2|st+1=2)−lnq(xt+1=2|ϕxt+1)]=p(st+1=1|xt+1=1)ϕxt+1[lnpat(xt+1=1|st+1=1)−lnϕxt+1]+p(st+1=2|xt+1=1)ϕxt+1[lnpat(xt+1=1|st+1=2)−lnϕxt+1]+p(st+1=1|xt+1=2)(1−ϕxt+1)[lnpat(xt+1=2|st+1=1)−ln(1−ϕxt+1)]+p(st+1=2|xt+1=2)(1−ϕxt+1)[lnpat(xt+1=2|st+1=2)−ln(1−ϕxt+1)]=0.8∗ϕxt+1[lnpat(xt+1=1|st+1=1)−lnϕxt+1]+0.2∗ϕxt+1[lnpat(xt+1=1|st+1=2)−lnϕxt+1]+0.05∗(1−ϕxt+1)[lnpat(xt+1=2|st+1=1)−ln(1−ϕxt+1)]+0.95∗(1−ϕxt+1)[lnpat(xt+1=2|st+1=2)−ln(1−ϕxt+1)]引き続き、個別の at についてtrue posteriorの値を入れて、Epistemic valueを計算する。
Epistemic value(at=1)=0.8∗ϕxt+1[ln0.9846−lnϕxt+1]+0.2∗ϕxt+1[ln0.4571−lnϕxt+1]+0.05∗(1−ϕxt+1)[ln0.0153−ln(1−ϕxt+1)]+0.95∗(1−ϕxt+1)[ln0.5428−ln(1−ϕxt+1)]Epistemic value(at=2)=0.8∗ϕxt+1[ln0.8−lnϕxt+1]+0.2∗ϕxt+1[ln0.05−lnϕxt+1]+0.05∗(1−ϕxt+1)[ln0.2−ln(1−ϕxt+1)]+0.95∗(1−ϕxt+1)[ln0.95−ln(1−ϕxt+1)]Extrinsic valueの計算には ˉp(st+1) による読み替えを使わず、式(4-18)の第3項のまま、行動選択 at に依存するexactな計算をしてみよう。
=Extrinsic value(at)=Eq(st+1|ϕxt+1)[lnpat(st+1)]=∑st+1q(st+1|ϕxt+1)lnpat(st+1)=q(st+1=1|ϕxt+1)lnpat(st+1=1)+q(st+1=2|ϕxt+1)lnpat(st+1=2)=ϕxt+1lnpat(st+1=1)+(1−ϕxt+1)lnpat(st+1=2)引き続き、個別の at について pat(st+1) の値(式(4-20)で計算済み)を入れて、Extrinsic valueを計算する。
=Extrinsic value(at=1)=ϕxt+1lnpat=1(st+1=1)+(1−ϕxt+1)lnpat=1(st+1=2)=ϕxt+1ln0.65+(1−ϕxt+1)ln0.35=Extrinsic value(at=2)=ϕxt+1lnpat=2(st+1=1)+(1−ϕxt+1)lnpat=2(st+1=2)=ϕxt+1ln0.20+(1−ϕxt+1)ln0.80これでEpistemic valueとexactなExtrinsic valueをプロットできる(図4-12)。Exactな値なので、G = -Epistemic value -Extrinsic valueが成り立つ。図でも正負逆になっているので注意。つまり、それぞれ値が低いほうがvalueが高い。Epistemic valueについては前述のとおり、近似は計算結果を変えない。

図4-12: Exactな計算によるEpistemic valueとExtrinsic value
Epistemic valueおよびextrinsic valueそれぞれが行動選択 at に依存していることがわかる。Epistemic value (at=1) よりもEpistemic value (at=2) のほうが僅かに最小値が小さいことから、Epistemic valueがたんなる左右反転でないことがわかる。
q(xt+1)=p(x) の近似のもとでは、行動 at=1 を選択したときには ϕxt+1=0.8 、行動 at=2 を選択したときには ϕxt+1=0.2 なので、以下のようにまとめることができる。
— | a=1 | a=2 |
---|---|---|
ϕxt | 0.8 | 0.2 |
-Epistemic value | 0.2992 | 0.3484 |
-Extrinsic value | 0.9341 | 0.7219 |
G(a) | 0.6348 | 0.3735 |
テーブル2: Exactな計算によるEpistemic valueとExtrinsic value
つまり、epistemic valueとextrinsic valueの効果は 行動 at によって逆転しているのだけど、両方の和の結果として、期待自由エネルギー G は a=2 のときのほうが低くなるので、行動選択としては a=2 を選ぶことになる。
ではつぎに、Fristonの定義に基づいて preferenceとして読み替えたときのextrinsic valueを計算してみよう。ここでpreferenceを以下のように設定する。
ˉp(s=[12])=[0.750.25]つまり、いま「部屋を75%の確率で明るくあってほしい(100%明るいのも良くない)」というpreferenceをこれまでの生成モデルに設定として付け加えたということになる。これは行動 a には依存しない。
(こう書いて気づいたけど、行動 a に依存するpreferenceがあってもいいよね?つまり、「スイッチを付けたら明るくなってほしいし、スイッチを消したら暗くなってほしい」というpreference。そしてこれが、行動の結果の予測可能性の最大化であり、FEPが前提としているものだ。つまり、明示的なpreference=ゴールがないときにもFEPはpreferenceを持っている。)
つぎに q(st+1) を計算してみよう。式(4-13)を xt+1 で足し合わせてしまえばいい。こちらも行動a に依存しないことがわかる。あくまでも q(st+1) は ϕxt+1 の関数であって、行動a によって ϕxt+1 が決まる。(行動a=1 のときは ϕxt+1=0.8 となるのだった。図4-10,4-11参照。)
q(st+1|ϕxt+1)=∑xt+1q(xt+1,st+1|ϕxt+1)=∑xt+1p(st+1|xt+1)q(xt+1|ϕxt+1)q(st+1=1|ϕxt+1)=p(st+1=1|xt+1=1)ϕxt+1+p(st+1=1|xt+1=2)(1−ϕxt+1)=0.8∗ϕxt+1+0.05(1−ϕxt+1)=0.75∗ϕxt+1+0.05q(st+1=2|ϕxt+1)=p(st+1=2|xt+1=1)ϕxt+1+p(st+1=2|xt+1=2)(1−ϕxt+1)=0.2∗ϕxt+1+0.95(1−ϕxt+1)=−0.75∗ϕxt+1+0.95これでextrinsic valueを ϕxt+1 の関数として書くことができる。
Extrinsic value(ϕxt+1)=∑st+1q(st+1|ϕxt+1)lnˉp(st+1)=q(st+1=1|ϕxt+1)lnˉp(st+1=1)+q(st+1=2|ϕxt+1)lnˉp(st+1=2)=q(st+1=1|ϕxt+1)ln0.75+q(st+1=2|ϕxt+1)ln0.25=(0.75∗ϕxt+1+0.05)ln0.75+(−0.75∗ϕxt+1+0.95)ln0.25これのようにしてできた-extrinsic value(preferenceバージョン)から、Friston et al 2017での定義に基づいた G(a)=−epistemic value−extrinsic value をプロットしてみる(図4-13)。

図4-13: FristonのEpistemic valueとExtrinsic value
前述したように、preferenceに基づいたextrinsic valueは at には依存していないので、図4-13A,Bともに同じ線になる("-Extrinsic value (preference)", 薄緑色)。そして q(xt+1)=p(x) の近似のもとでは、行動 at=1 を選択したときには ϕxt+1=0.8 、行動 at=2 を選択したときには ϕxt+1=0.2 なので、以下のようにまとめることができる。
— | a=1 | a=2 |
---|---|---|
ϕxt | 0.8 | 0.2 |
-Epistemic value | 0.2992 | 0.3484 |
-Extrinsic value | 0.9698 | 1.6830 |
G(a) | 0.6705 | 1.3346 |
テーブル3: FristonのEpistemic valueとExtrinsic value
つまり、行動 at=1 (スイッチを付ける) のほうが-extrinsic valueは低くなる。これはpreferenceに合致した未来の感覚入力 s をサンプルするであろう行動 a1 がよりextrinsic valueが高い、という理屈だ。
その結果として期待自由エネルギー G は a=1 のときのほうが低くなるので、行動選択としては a=1 を選ぶことになる。図4-12のときは a=2 を選んでいたので、結果が逆になった。Extrinsic valueをどう定義するかが行動選択に重大な違いを生むということがわかる。
図4-13を見ていて気になるのがなんでextrinsic valueは直線であって、曲線でないかということだ。式(4-31)を見ればわかるようにextrinsic valueは ϕxt+1 の一次関数だ。この性質はpreferenceの値には依存してない。Extrinsic valueはその定義上、preference ˉp と q(st+1) が一致するときに最大になっていてほしいのだけど、そうなってない。代わりにslopeの大きさがvalueの大きさ(utility)と比例すると解釈することになる。でもそうすると、このやり方だと複数のゴールを設定することはできない。
4-4-10. Expected free energyにかんする疑問、G の解釈と計算についての代案
Expected free energyの説明は以上だが、これで納得行っただろうか? 私はepistemic valueの導出を見ていて気づいたことがある。式(4-22)では、q(xt+1) が観測データ st+1 無しでの推測を意味することになっている。しかしこれまでの例、例えば図3-2の行動無しの設定においては、観測データ st+1 を得た上での推測=approximate posteriorは q(xt+1) と書いてきた。q(xt+1|st+1) ではなくて。そしてそもそも式(4-18)での G の式の第1項が lnq(xt+1) になっているのはこれがapproximate posteriorだったからだ。事前分布で近似できる q(xt+1)=q(xt)=p(x) ではなくて。つまりFriston et al 2017では、知らず知らずのうちに q(xt+1) の読み替え(誤読)を行っていないだろうか?
ここがEFEが錯綜している原因ではないかと私は思う。それならば、はじめからapproximate posterior のことを q(xt+1|st+1) と書くことにして、式(4-18)も式(4-32)のように表示するのが筋だろう。
G(ϕxt+1,at)=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|st+1,ϕxt+1)−lnpat(xt+1,st+1)]そしてさらにこれの生成モデルの部分を「観察モデル*事前分布」とする変形 p(xt+1,st+1)=p(xt+1|st+1)p(st+1) を用いて変形してゆくと、
G(ϕxt+1(st+1),at)=Eq(xt+1,st+1|ϕxt+1(st+1))[lnq(xt+1|st+1,ϕxt+1(st+1))−lnpat(xt+1|st+1)−lnpat(st+1)]=Eq(st+1|ϕxt+1(st+1))Eq(xt+1|st+1,ϕxt+1(st+1))[lnq(xt+1|st+1,ϕxt+1(st+1))−lnpat(xt+1|st+1)−lnpat(st+1)]=Eq(st+1|ϕxt+1(st+1))[Eq(xt+1|st+1,ϕxt+1(st+1))[lnq(xt+1|st+1,ϕxt+1(st+1))−lnpat(xt+1|st+1)]−Eq(xt+1|st+1,ϕxt+1(st+1))[lnpat(st+1)]]=Eq(st+1|ϕxt+1(st+1))[DKL[q(xt+1|st+1,ϕxt+1(st+1))‖pat(xt+1|st+1)]−lnpat(st+1)]=Eq(st+1|ϕxt+1(st+1))DKL[q(xt+1|st+1,ϕxt+1(st+1))‖pat(xt+1|st+1)]⏟KLD−Eq(st+1|ϕxt+1(st+1))lnpat(st+1)⏟Surprisal元々のVFEの式でのKLDとsurprisalの足し算になっている。こちらのほうが変分自由エネルギーを最小化する過程と整合的になっていると思う。そもそも G の式の第1,2項は、もともとのVFEの式ではKLDに対応していたのだから、ここを変形したら情報獲得になった、というのがおかしな話だった。
なお、ここで ϕxt+1 はそれぞれのst+1 に合わせて決めてやる必要があるので、ϕxt+1(st+1) と表記している。つまり、counter-factualな推測q としては、すべての可能な st+1) についての xt+1) の推測をしている。
それならば、生成モデルの部分を「true posterior*evidnece」とする変形 p(xt+1,st+1)=p(st+1|xt+1)p(xt+1) を用いて変形していけば、F=Bayesian surprise+Uncertainty に対応したものになるはずだ。やってみよう。
G(ϕxt+1,at)=Eq(xt+1,st+1|ϕxt+1)[lnq(xt+1|st+1,ϕxt+1)−lnpat(xt+1)−lnpat(st+1|xt+1)]=Eq(st+1|ϕxt+1)Eq(xt+1|st+1,ϕxt+1)[lnq(xt+1|st+1,ϕxt+1)−lnpat(xt+1)−lnpat(st+1|xt+1)]=Eq(st+1|ϕxt+1)[Eq(xt+1|st+1,ϕxt+1)[lnq(xt+1|st+1,ϕxt+1)−lnpat(xt+1)]−Eq(xt+1|st+1,ϕxt+1)[lnpat(st+1|xt+1)]]=Eq(st+1|ϕxt+1)[DKL[q(xt+1|st+1,ϕxt+1)‖pat(xt+1)]−Eq(xt+1|st+1,ϕxt+1)lnpat(st+1|xt+1)]=Eq(st+1|ϕxt+1)DKL[q(xt+1|st+1,ϕxt+1)‖pat(xt+1)]⏟Bayesian Surprise(at,st+1,ϕxt+1)+Eq(st+1|ϕxt+1)[−Eq(xt+1|st+1,ϕxt+1)lnpat(st+1|xt+1)]⏟Uncertaintyこちらのほうが、bayesian surpriseを元にして情報獲得を計算しているという意味で理にかなっている。そして、そもそも元のVFEの式では、agentはbayesian surpriseを最大化していない。あくまでもKLDを最小化するように推測 q = approximate posteriorをアップデートするのが先で、その結果としてbayesian surpriseが >0 となるだけだ(サブセクション1-9を参照)。だから、G がepistemic value(とextrinsic valueの和)を最大化するように行動a を選択するというのは、agentが変分推定をするという元々の考え方からすればおかしな話なのだ。
あと、Bayesian surpriseはその定義より、事前分布 pat(xt+1) からの情報獲得となっているので、t=0 からの総獲得情報量を表すことになる。その時点での情報獲得を計算するためには、t−1,t,t+1 と時間ごとにBayesian surpriseを計算したうえで、その差分として計算されることになる。(いまは生成モデルは固定なので、 pat−2(xt−1)=pat−1(xt)=pat(xt+1) であり、ただの定数。)
さてそれでは、このように解釈した G(a) をプロットしてみる(図4-14)。ϕxt+1(st+1) はs=1,2 についてそれぞれあるので、二次元のデータをカラー表示することにする。

図4-14: 改良版期待自由エネルギー G
白丸が行動a=1 および a=2 それぞれの期待自由エネルギー G が最小になる場所を表している。行動a=1 では ϕxt+1(st+1=1)=q(xt+1|st+1=1)=0.88 かつ ϕxt+1(st+1=2)=q(xt+1|st+1=2)=0.33 のときに最小となる。同様に行動a=2 では ϕxt+1(st+1=1)=q(xt+1|st+1=1)=0.43 かつ ϕxt+1(st+1=2)=q(xt+1|st+1=2)=0.08 のときに最小となる。
これらの値は過去の行動選択の例(テーブル1)のときと似ているがやや違う。同じにならないのはサブセクション4-4-4にあるように、まったく同じ計算をしているわけではないから。
期待自由エネルギー G は行動a=1 (スイッチオン)のときよりも行動a=2 (スイッチオフ)のときにより低くなる。よってagentは行動a=2 (スイッチオフ)を選択する、ということになる。
— | a=1 | a=2 |
---|---|---|
ϕxt+1(st+1=1) | 0.88 | 0.43 |
ϕxt+1(st+1=2) | 0.33 | 0.08 |
G(a) | 0.3082 | 0.2140 |
テーブル4: 改良版期待自由エネルギー G
同じデータについてKLD, surprisal, bayesian surprise, uncertaintyについて2次元表示をすることができる。

図4-15: 改良版期待自由エネルギー Gでの各要素
これを見てわかるのは、G が最小になるところでKLD成分が0になるわけではないこと、一方で、G が最小になるところではBayesian surprise成分がほぼ0になること、などがある。このあたりはもう少し調べて見る価値がありそう。
そういうわけで、改良版期待自由エネルギー Gは変分推定をするという元々の考え方と合致した上でちゃんと行動選択にも使えそうだ。
結論としては、Friston et al 2017の期待自由エネルギー G ってぜんぜん変分推定してないよね、ってことになる。じゃあちゃんと変分推定しようよってのが、Schwöbel et al 2018とParr and Friston 2018が行っていることだと私は解釈している。そういうわけで、次はSchwöbel et al 2018の解説に行く。
- / ツイートする
- / 投稿日: 2019年05月01日
- / カテゴリー: [フリストンの自由エネルギー原理(FEP)] [生理研研究会2019「脳の理論から身体・世界へ」FEP特集]
- / Edit(管理者用)