[カテゴリー別保管庫] フリストンの自由エネルギー原理(FEP)


2021年12月29日

「自由エネルギー原理FEPチュートリアル2021を開催しました」

2021年12月13日、14日に脳の自由エネルギー原理FEPチュートリアル・ワークショップ2021を開催しました。これは英語での発表、議論となる国際シンポジウムの部分と日本語でのチュートリアルの2パートから構成されております。

私吉田はこのイベントのオーガナイザーの一人であり、さらにチュートリアル(2.5時間*2)の講師を担当しました。そこで私がチュートリアルを準備していたとき、さらに開催後に考えたことをまとめておきたい。

[歴史的経緯]

このイベントは現在CHAINの同僚である島崎秀昭さんといっしょにやってきた一連のイベントの最新回です。

日本神経回路学会の時限研究会として「脳の理論から身体・世界へ: 行動と認識への再挑戦」を開催しました(2017年8月@京大)。このときのオーガナイザーは(当時京大、HRIの)島崎秀昭さんと(当時京大の)大羽成征さんと(当時生理研の)吉田。このときの実施報告

2018年には神経回路学会誌2018年25号3巻での特集「自由エネルギー原理入門」を島崎さんが編集して、私も田口茂さんとともに寄稿してます。このときは京大で集中討論会というのもやっていて、その様子はイントロダクション 特集「自由エネルギー原理入門」に記録されてる。

そして2019年から生理研が属するNINS自然科学研究機構の「分野融合共同研究事業」のサポートを受けるようになって、「脳の自由エネルギー原理チュートリアル・ワークショップ2019」を開催しました(島崎さんと吉田がオーガナイザー)。これは"The free energy principle for action and perception: A mathematical review." (J. Math Psychol. 2017)を書いたサセックス大学のChristopher Buckleyと、彼のラボの大学院生のAlexander Tschantz (ちょうど"Learning action-oriented models through active inference" PLoS Comput Biol. 2020をArXivに出したところだった)によるチュートリアルでした。PythonとGoogle Colabを使ったハッカソン形式になっていて、これは非常に充実していた。

でもって、今回2021年もNINS自然科学研究機構の「分野融合共同研究事業」のイベントとして、「脳の自由エネルギー原理チュートリアル・ワークショップ2021」を開催したというわけです。

[チュートリアルの構想1: 講義パート]

講義の内容については、これまでにこのブログや各所での講演などの資料が蓄積できていたので、それをまとめればなんとかなるだろうと思ってた。たとえばこれまでに作成した資料としては以下がある。

(なお、2017年あたりの資料は古くて間違っているところもあるので、上記のものを参照してほしい。あと、近いうち、今回の講義を踏まえて最新版を作成する予定です。)

とはいえ今回の講義のためには「期待自由エネルギーとPOMDP(部分観測マルコフ決定過程)」、「マルコフブランケットとNESS(非平衡定常状態)」のパートについて大幅にスライドを作る必要があった。

あと今回のチュートリアルの狙いとして「FEPの前にベイズ脳と予測符号化の説明をして、そこからの差分としてFEPを説明する」「FEPは実験的に検証可能か、という側面から、criticalな視点を保ちながら解説と議論を行う」ということを考えていた。これについては後述。

[チュートリアルの構想2: 演習パートのコードの元ネタ]

2019年のチュートリアルのときはオンサイトでハッカソンを行い、その場で与えられたprojectをグループごとに取り組んで結果を発表する、というものだったのだけど、これは機械学習の経験者にはよかったと思うけど、神経科学者や心理学者にとってはだいぶ難しかったと思う。

今回の「脳の自由エネルギー原理チュートリアル・ワークショップ2021」では「実験と検証」をテーマに挙げて国際シンポジウムを行うことにした。そこでワークショプ部分も機械学習の経験者だけでなく、もっと神経科学者や心理学者も含めてもっと間口を広げたものにしようというのが今回のチュートリアルの方針でした。そういうわけで、私吉田が日本語で講義を行い、R演習を加えたものとして開催することを考えたのでした。

演習の題材としては、以下の論文に付属しているコードでなんとかできるだろうと考えてた。

  • Rafal Bogaczの"A tutorial on the free-energy framework for modelling perception and learning." J Math Psychol. 2017
  • Christopher Buckleyらの"The free energy principle for action and perception: A mathematical review." (J. Math Psychol. 2017)
  • Ryan Smithらの"A Step-by-Step Tutorial on Active Inference and its Application to Empirical Data" PsyArXiv 2021

けっきょくChrisのコードは使わなかった。あと、"Step-by-Step Tutorial"を動かしてみたら、spm12をインストールする必要があって、最小限動くコードを作るにしては巨大すぎた。けっきょくほとんど自作する必要があることがわかった。

[チュートリアルの構想3: 演習パートの言語と環境]

演習部分をなんの言語でやるかについてはいろいろ考えるところがあった。私吉田はふだんMatlabを使っているので、Matlabでやるのが準備は楽だった。また、前述のChris BuckeyのJ. Mathematical Psychol. 2017にしろ、今回大々的に援用したBogaczのJ Math Psychol. 2017にしろ、論文に付属しているコードはMatlabなので、これを使えばいいというのもあった。

一方で、こういう公開イベントでMatlabのようなプロプライエタリ・ソフトウェアを使うのはよいことだろうか?という考えがあった。神経科学者にとってはMatlabは身近だと思うけど、逆に機械学習の人や企業の人にとってはMatlabは敷居が高い(あれアカデミック版でないとクッソ高いからね)。(まだやってないけど)後日コードをGitHubにアップロードすることを考えても、ここはR, Python, Juliaなどを使うべきではないかと考えた。

2019年のチュートリアルのときはChrisとAlecはPythonをGoogle Colab上で動かしていて、これはなかなかよかったので、Pythonにしようかとも思っていた。でもPythonは機械学習の経験者にはいいけど、神経科学者や心理学者にとってはまだ敷居が高い。(あとGoogle Colabの使い勝手の問題もある。後述。)

最終的に決め手になったのは、R言語とそのIDEであるRStudioがオンラインで動くRStudio.cloudを知ったこと、そして実際に運用したことでした。私の所属する北海道大学 人間知・脳・AI研究教育センター(CHAIN)では毎年夏と冬に「CHAINサマースクール、ウィンタースクール」を開催している。2021年1月に開催されたウィンタースクールではドイツ・コンスタンツ大学の豊川航さんに講師をやっていただいたのだけど、RStudio.cloud上でのR演習を行っていただいた。(Multi arm Bandit課題でのwisdom of crowdがテーマ。) でも豊川さんはドイツ在住なので時差のため、zoomでのリモート講義は午後からになる。そこで私が午前中に「補講」としてRStudio.cloudの動作確認や、強化学習の基礎の基礎(two arm Bandit課題とRWモデル)の資料を作成して、補講の講義も行ったというわけです(資料はこちら: CHAINウィンタースクール2020 豊川航先生R演習の前準備用資料)。これで参加者30人程度の演習を問題なく運用する経験を積むことができたので、今回のFEPチュートリアルでもRStudio.cloudを使ってみることにしたわけです。

(なお、Google Colabはログインするたびにコードをアップロードしたり、ライブラリをインストールしないといけないけど、RStudio.cloudは講師が作った環境をそのまんまコピーすることができる。この点でも優れている。しかもFreeのコースでここまでなら十分対応できる。)

[じっさいの準備状況から開催まで]

そんなこんなで、だいたいの構成は3ヶ月前にはできていたのだけど、じっさいの作業が始まったのは開催1ヶ月を切ったあたりだった。

この時点で北大に異動してからはじめてのウイルス注入実験を終えて、4週間後にさらにGRINレンズを刺入するオペが待っていた(ちゃんと成功しました)。論文書きもしているし、ヒアリングの準備とかいろいろな仕事が入っていて、週末にすら準備に取り掛かれないという絶望的な状況で時が過ぎていった。まさに「できらぁ!」「え!!」ってかんじ。

だいたいこれまでは、ブログやTwitterでチュートリアルの準備状況とか構想とかを語ったりして、そうやって対外的に語って尻に火を付けることが駆動力になったりしていたのだけど、今回はマヂで時間がなくて、危機的な状況だった。

先に演習用のコードを完成させて、そこから逆算的に講義の部分を作らないと二度手間になると気がついたので開催3週間前。上記の"A Step-by-Step Tutorial"を読み進めて、これをそのまま使うのは無理と気づいたのが2週間前。講義の基本的な構成は開催10日前に行われた東大國吉さんの大学院講義の資料を作成することでだいたい完成したけど、本格的にコードを書き出したのはその後。ひととおりコードを書いてオーガナイザーの皆さん(島崎さん、理研の磯村さん、広大の本田さん)に見てもらったのが開催1週間前。とくに理研磯村さんにはコードレビューをしていただいてすごく助けていただきました。ここで改めて御礼申し上げます。

ともあれ当日を迎えることができて、大きなトラブルもなく(「参加者の大半のコードが動かない!」みたいなことは起こらなかった)講義と演習を終えることができた。

参加者の方に事後評価のアンケートを書いてもらったのだけど(チュートリアルのwebサイトに掲載)、講義の評価はexcellentが67%、goodが32%で、fair, poorはゼロ。演習の評価はexcellentが46%、goodが53%で、fair, poorはゼロ。舞台裏はここに書いたようにドタバタだったのだけど、まあそれなりに満足してもらえたのではないかと思う。

[反省の弁、将来に向けて]

いろいろやり足りなかったことはある。またこういう機会があったとしたらそのときに改善できるようにメモしておこうと思う。

コード書きの基本的な作業はmatlabからRへの移植だったけど、Rとmatlabで行列計算をするときの流儀の違いがあって、これの検算でクッソ時間がかかった。正直Rでの行列計算には懲りたので、次回こういうことやるならJuliaにしたいなと思う。ただ、Google ColabでJuliaを動かすためにはそのつどJuliaをインストールしないといけないので、現時点ではまだ時期尚早だと思う。RStudio.cloudはほんとうに素晴らしい。

RStudioでは(2021年の)ver.1.4からvisual editing modeというのが導入されて、LaTeXで書いた数式とかがそのままRmarkdownのエディタ上で表示できる。これは素晴らしい。でも、visual editing modeはまだ新しくて不都合があるらしく、visual editing modeからnormal modeに変えるタイミングで、数式モードを開始する$$の改行が消える。これはUndoでは直せないので、ぜんぶ改行を入れ直す必要があった。この問題を解決できなかったので、けっきょく本番ではvisual editing modeを使うのは断念した。もしかしたらLaTeXのコードの書き方で対処できたのかもしれない。受講者の方から教わって解決した部分もあったので。

R markdownを使った演習だと、チャンクを実行して「はい、グラフが書けましたね、次行きましょう」みたいなかんじで、コードを理解できてなくてもなんとなく進めることができてしまう。かといって、コードを1行1行説明するような時間もない。そこでRmarkdownの説明部分とコード内のコメント文にあとで読んだときに意味がわかるように説明を加えておいた。あと、受動的にコードを実行して終わりにならないように、演習問題(例: 生成モデルの設定を変えて動かしてみよう)を各セクションごとに作った。これも時間がないので、「後で自分で試してみてください」で飛ばすことになった。このあたりは反省点。あとから振り返ってみれば、R演習だけで150分必要だった。

FEPを実際に試してみたい人のために本当に役立つものを提供するという意味では、「あなた固有の問題について、生成モデルを作って、自由エネルギー最小化を試してもらう」ところまでできればベストだったと思う。しかしそれには時間が足りなかった。そもそもそのような生成モデルを作る練習というのはFEPに限った話ではない。ベイズモデリングにおいて、たとえばRSTANで尤度を定義してMCMCして事後分布を計算するときに必要なこととほとんど重なっている。そういう意味では、将来的な展開として「FEPの講義と演習を、ベイズモデリングの概要を説明したうえで、MCMCの代わりに変分推定しているだけだよ、とまとめる」こういうやりかたもあるかなと思った。

あと、コードと講義の内容で足りていなかったのは、「学習」の扱い。今回はBogacz論文に基づいた説明のときに「priorを更新したら、収束が早くなります」みたいな話をするだけでお茶を濁した。でも学習についてちゃんと説明するなら、複数試行の結果からoutcomeについての予測誤差を計算して、生成モデルのパラメーターを更新する、というステップを踏む必要がなる。これは次の機会にこそちゃんと説明できるようになりたい。

今回のチュートリアルの狙いとして「FEPの前にベイズ脳と予測符号化の説明をして、そこからの差分としてFEPを説明する」「FEPは実験的に検証可能か、という側面から、criticalな視点を保ちながら解説と議論を行う」ということを考えていた。これは100%はできなかったし、トータル5時間でやるのは土台無理だった。そもそもFEPを考えなくても、ベイズ脳と予測符号化だけで話は一旦閉じることはできる(カルマンフィルタによるベイズ更新)。だから、ベイズ脳と予測符号化の話をきっちりやって、そのうえでFEPがなにをプラスしているのかを説明をしないと、「FEPはほんとうに新しいのか、検証可能なのか」といった議論をする準備が足りない。これも次回以降の課題。

というようなことをいろいろ考えていたという話です。それではまた。


2019年11月04日

「自由エネルギー原理入門: 正規分布を仮定した場合」を作成しました

今年も東大工学部の國吉さんに呼ばれて「脳型情報処理機械論」でオムニバス講義を一回担当します。私の回のタイトルは「Enactivisim and Free energy principle」ということで。

いろいろ資料をアップデートしないといけないのですが、とりあえず懸案だった「自由エネルギー原理で生成モデルと信念に正規分布を仮定すると予測符号化が導ける」というBogacz 2017論文についての資料を作成しました。(20220822埋め込み先をSpeakerDeckからSlideShareに変更)

まだいろいろいじりたいのだけど、次はいつになるかわからないのでとりあえずこれで公開しておきます。乞うご期待。


2019年06月22日

駒場学部講義2019「統合失調症、感覚運動随伴性、自由エネルギー原理」無事終了

東大駒場の池上高志さん(大学院総合文化研究科 広域システム科学系)から依頼を受けて、例年6月あたりに大学院のオムニバス講義を一回担当しているのだけど、今年度の講義も無事終了しました。

  • 人間情報学VI
  • 6/19(水) 13:00-16:40
  • 駒場15号館1階104講義室
  • 吉田正俊「統合失調症、感覚運動随伴性、自由エネルギー原理」

講義スライド(画像及び未発表資料の削除をしたもの)をSpeaker Deckにアップロードしました。(20220822 SlideShareに引っ越し)

併せてレポート用の講義資料ページも最終アップデートを完了しました。


さてここから口調を変える。今年度の構成は、昨年の「統合失調症 + 自由エネルギー原理」の構成を踏襲しつつも、ここ最近のFEP再勉強の成果(ブログではこのあたり)を反映させてアップデートすることを目指してた。

順番についても、前回と同様、まず具体例として「統合失調症」について説明して、そこでベイズ脳の概念についても説明した上で、、そのあとでさらに数学的な詳細を「自由エネルギー原理」パートで行うというものを計画していた。

しかし、自由エネルギー原理の説明の方は、二項分布で、階層のないベイズを元にした単純な説明をしていて、いっぽうで統合失調症の説明のときには、ガウシアンでprecisionを考慮した上で、階層性や予測符号化を明示的に出す必要があって、じつはこちらのほうが複雑だということに気がついた。そういうわけで急遽順番をひっくり返したのが今回の構成というわけ。

やってみて気づいたけど、自由エネルギー原理の数学的詳細の難しいところを後半に持っていったら聞いている方がしんどいので、今回前に持っていったのは正解だった。

来年も依頼があるようなら、そのときは「エナクティビズム入門+自由エネルギー原理」という構成で行こうと思う。というのも、こんど8月に北海道サマーインスティチュートで「エナクティビズム入門一週間コース」"Introduction to Enactivism: Moving to Know, Knowing to Move"というのをやるので、そこでの準備と成果を反映させていこうというわけ。

そんなこんなで、毎年ちょっとずつ構成を変えながらアップデートしてきていて、私の頭の中もそれに併せて徐々にアップデートさせてきた。

講義のあとは池上さんと池上研の院生の方と夕食。毎年ここで話をするのが楽しみ。今回は大泉匡史さん(この4月から東大駒場に赴任)も参加して盛り上がった。大泉さんとは意識の理論としてのFEPのあり方について大激論(下のツイートの写真)。

結論としてはエナクティブで力学系的にFEPを突き詰めていったら、IIT的なネットワーク理論と近いところに収束しそうだなという話に。あと、IITは内在主義者的かつアンチ機能主義的なスタンスを取っていて、(エナクティブな)FEPは外在主義者かつ機能主義的になっている、ということかもしれないとあとで考えた。

話しながら考えたことをメモっておくと、FEP自体よりもそれの「方向づけ原理」としての役割を持つものが何かを探すことのほうが重要そうだし、Ashbyの必要多様性の法則のほうがfundamentalだなと思った。

あと自発発火が可能な空間を決めるように遷移してpriorとして働く(Luczak)のように、背景が内容を規定する(図と地の関係)というのが私にとって重要なのだとわかった。生成モデルp(背景)が推測qの意味を決定づけるのと同じように。

あと池上さんからのコメントで出たいくつかの論点。アトラクターの近くを回っている状況と、SOCにある脳の状況は違いすぎないか。力学系的ななめらかな意思決定ではない、断絶、ジャンプこそがだいじなのではないか。そして反実仮想にそれはあるか。動物に反実仮想はないのではないか。

それにたいする私の答えは、まずFEPの反実仮想はたんにまだ起こってない未来についての推測をしているという意味であって、Pearl的な意味での反実仮想になってない。Pearl的な意味での反実仮想を捉えるなら、未来のことを考えるよりも、過去のことを考えるほうがよい。つまり「後悔」(「あのとき別の行動をしていたら、結果は違っていただろうに」)のほうがいい。これについてはFEP徹底解説のどこかで書いておいたので、我が意を得たりという感じ。

動物の反実仮想についての私からのとっさの答えは、キュウリにブチ切れるフサオマキザルは、自分がもらえたかもしれないブドウを反実仮想していると言えないか、因果推論するラットは反実仮想していると言えないか、というもの。

あとで確認してみたけど、WikipediaのCounterfactual thinkingの項目を見る限り、大きくは外してなかった模様。

Inequity aversion(キュウリもらって怒るフサオマキザル)の話は、じつはマーモセットについてもNCNP一戸さんのところでやってる。自閉症モデルではInequity aversion がないというところまでわかってる:“Inequity aversion is observed in common marmosets but not in marmoset models of autism induced by prenatal exposure to valproic acid” Behav Brain Res. 2018

因果推論するラットのほうは澤さんの論文(詳しいことは以前のブログ記事で採り上げた)に加えて、近年でより直接的な論文があるのを知った:“Factual and Counterfactual Action-Outcome Mappings Control Choice between Goal-Directed Actions in Rats” Current Biology 2015

そんなこんなでわたしもいろいろ学ぶところが多かった。


2019年06月16日

シンギュラリティサロンでの講演動画を公開しました

シンギュラリティサロンが行っている講演会はこれまでの講演者が浅田稔さん、大泉匡史さん、渡辺正峰さん、津田一郎さん、金井良太さん、とよく知った方たちで、常々わたしも見に行きたいと思っていたのですが、今回この団体の設立者である神戸大学名誉教授の松田卓也先生からお声をかけていただいて、私も講演を行ったという次第です。

まず大阪にて5/28 「シンギュラリティサロン #34」、それから東京にて6/8 「シンギュラリティサロン @東京 第31回公開講演会」、どちらもタイトルは「自由エネルギー原理と視覚的意識」でいきました。

基本的な話の流れは神経回路学会誌の解説論文「自由エネルギー原理と視覚的意識」に準拠しておりますが、ここ最近のFEP再勉強の成果(こちらのページにある資料をご覧ください)でいろいろアップデートを加えました。

このときのスライドから、著作権のある画像の差し替えや飛ばしたスライドを削るなどして編集したものをspeakerdeckにアップロードしました。下に埋め込んでおきます。(20220822 SlideShareに引っ越し)

それからあと、東京 第31回公開講演会での講演映像を参加者の方が撮影くださいましたので、そちらを元に画像の編集などを行ったものを公開します。こちらは質問部分の削除などを行って54分に切り詰めてあります。

講演の方は90分の予定のところを質問込みでオーバーしつつ100分くらいか、さらにそのあとの質問も盛り上がって会場の予約時間を使い切りました。いろいろ有益なコメントをもらったが、金井さんからFEPを意識に理論にするには、という観点でコメントしてもらったのと渡辺正峰さんと思った以上に考えが近いことがわかったのがよかった。

金井さんと話ししていて明確になったのは、FEPはIITのexclusionに対応するものを持ってないし、それを付加する必要があるのでもないということ。FEPがいろんなレベルで(ミクロ、マクロ、即時、発達、進化)多重に成立することのほうが重要で、その境界もマルコフブランケットで決めるというよりは、オートポイエーシス的にそのsensorimotor loopの動作とその内在化によって決めるべき。つまり、agentと環境とが作るsensorimotor loopおよびそれの内在化というVarelaのいう関係的なドメインを作るわけで、その境界は拡張しうるし、他者と共有される。これがFEP自体の性質としてある。でもなぜそれが一つの個人として成り立つ(ように感じられるのか-仏教的に言えば)のか、FEP自体の性質に付加して考える、いう方向性ではないかと考えた。

講演でも言ったように、FEP+現象学で考えているのは、意識の構造についての理論であり、意識の内容についての理論ではないのだけど、そこでIITを参考にしながら、意識のunityの問題になにか言えるのかとか、意識と生命が独立しうるのか(life-mind continuity)とか、何についての理論なのかということを明確にしてゆくのがこれからの方向ではないか、これが金井さんからのコメントに対するとりあえずの答え。


2019年05月06日

FEP入門 afterthoughts

FEP入門を書いたあとにいろいろ考えたことメモ。


FEP入門は「知覚と行動の統一」に絞ったけど、本当は「学習」の話を入れないと、まだ桶の中の脳から脱出できてない。知覚と行動は外界を推定しているだけなので、外界不要の間接知覚に見えてしまう。でもそんなことはなくて、生成モデルを作る段階(学習)で、外界の生成過程の結果が必須になってる。

学習を入れると、推測されるstateと学習されるパラメーターが厳密に分かれたものではなくて、速く変わるかゆっくり変わるかの違いであることもわかる。以前入れてもらっていた新学術での「スローダイナミクスがベイズ推定の事前分布になっている」はこの意味で重要。

ハーケンの秩序パラメーターも事前分布として捉えている記述があるだろうと思って調べてみた。Entropy 2016 "Information and Selforganization"が関係ありそうだがそうは書いてなかった。ハーケンらのアプローチが(フリストンのFEPを含む)ベイズ的なアプローチのalternativeであるという言い方だった。(htmlページがLeTeXレンダリングが凶悪に遅いので、PDFのほうをリンク)

そうして考えてみると、Alva Noeの感覚運動随伴性SMCが得意とするテーマが可塑性(逆さ眼鏡や開眼手術)だったことの意味もよく分かる。つまり生成モデルが完成した状態での脳の働きを見ようとすると、間接知覚的なもので充分にみえてしまうからだ。これが来歴が必須であるということの実体だと思う。

これでJakov HohwyによるFEPの間接知覚的解釈に対しては、学習を議論するべしという方針が立った。でもこれではまだAndy Clark的な隠れ認知主義者(notエナクティビスト)なので、そもそもその確率的な扱いをする際にどのようにして世界を分節してきたかという観点が必要。

Comment By @hiraiyasushi1 これって間接知覚ではそもそも学習を説明できないってことではなくて、間接知覚だと説明できない学習があるってことです?上ツイートの遅速の話は、論文で強調されてた因果的介入の話とまた別の根拠のように見えるんで、ちょっと混乱してます

Reply to @hiraiyasushi1 まず一般的な意味での「学習」は「繰り返し刺激への順応」のように生成モデルのアップデートを必要としないものもあるから、逆転させて「生成モデルのアップデート」のあるものを学習と呼ぶとして、生成モデルの一部だけをアップデートするのに外界との照合は必ずしも必要ない、しかし生成モデルとはそのような生成モデルのパーツ全ての掛け算のことを指すので、履歴として外界との照合がまったくない生成モデルはない。個別の学習が必ず外界の生成過程の結果との照合をしているわけではない。あとこれは憶測なのですが、外界との照合自体は知覚を通して行われるので、agentはそれが生成過程の結果なのか生成モデルの結果なのかは区別できないはず。これくらいが想像できるのですが、正確なところはちゃんと式を作って確認する必要があるだろうというのが今すぐに返答できるところです。

Comment By @hiraiyasushi1 ありがとうございます、まだ全部理解できてないかもしれませんが、ともかく哲学的な間接知覚説は学習できないとは考えもしないと思うので、この辺もし見えてきたら面白いと思います。もちろん生成モデルを介するのではない間接知覚説(純粋に受動的な表象説?)は別としても。


2019年05月03日

自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加

今年の生理研研究会は「認知神経科学の先端 脳の理論から身体・世界へ」と題して、自由エネルギー原理(Free-energy principle, FEP)をテーマに9/2に開催。これに先立つ8/31-9/1には「脳の自由エネルギー原理チュートリアル・ワークショップ」というタイトルでFEP入門のためのレクチャーとハンズオン。参加募集開始は連休明けの予定。もう少々お待ちください。

これらに向けてFEP入門の資料を作りました。今回が最終回です。「Sec. 0. 自由エネルギー原理を数式無しで説明する」を追加しました。

これまでの内容を全部PDFファイルにまとめたものを作ってリンクしておきました。全68ページ:EFE_secALL0517.pdf あとmatlabコードは別に分けておきました。matlabコード

今後も随時アップデートはするかと思いますが、このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。(5/17最新版にアップデート)

追記20190823: htmlからLaTeX版で作り直しているところです。とりあえず1-4章までのもの:root0823.pdf


Sec.0 自由エネルギー原理を数式無しで説明する

[0-1. 自由エネルギー原理の定義]

この文書では自由エネルギー原理とはなにか、について概念的な説明からスタートして、最終的には数式を用いた詳細な理解と批判が可能になるところまでたどり着くことを目的としている。

まず自由エネルギー原理(Free energy principle,以下FEPと呼ぶ)とはなにか。脳イメージングの解析ソフトSPMの作者として著名な、University College Londonの研究者Karl Fristonが提案している、知覚と行動と学習の統一原理だ。2005年のPhilos Trans R Soc Lond B Biol Sci.論文で最初に提案されてから、現在まで理論的にも進歩を続けている。

Friston自身の定義を見よう。自由エネルギー原理とは「いかなる自己組織化されたシステムでも、環境内で平衡状態でありつづけるためには、そのシステムの(情報的)自由エネルギーを最小化しなくてはならない」というものだ。また別の表現では「適応的なシステムが無秩序へ向かう自然的な傾向に抗して持続的に存在しつづけるために必要な条件」とある。Friston, K. (2010). The free-energy principle: a unified brain theory? Nature Reviews Neuroscience, 11(2), 127–138.

順番に言葉を追っていこう。まず「原理」というだけあって、「もしxxであるなら、yyでなければならない」という形式になっていることがわかる。ベイズ脳仮説のような「仮説」でもなければ、予測符号化理論のような「理論」とも区別した表現になっている。

「いかなる自己組織化されたシステム」とあるけれど、われわれ人間にかぎらず、様々な生物に当てはまることが想定されている。「システム」とあるので、生物でなくても成り立つけれども、たとえば氷の結晶には当てはまらないだろう。氷の結晶はシステムとして安定する境界を持っていないから。

そうすると「環境内で平衡状態でありつづける」というのは、氷の結晶が氷の結晶であり続ける話ではなくて、生命のあるものが生き続ける条件のことを言っているようだ。

そして「そのシステムの(情報的)自由エネルギー」というものが定義されるものでなければならない。(情報的)自由エネルギーというのがなんなのかはこれから順番に説明をしてゆくとして、いま知っておくべきは、そのシステムと外界との間での情報のやり取りに関わる概念なので、システムと外界との境界が必要なのだ。

ではシンプルな例でもっと具体的に表現してみよう。

[0-2. 知覚=現在の外界の状態の推定]

図0-1の例ではagentが外界に接している状態が表現されている。先程も書いたようにこの「自己組織化されたシステム」は人間や生物に限らない。そのことを示すために以降「agent」という呼び方で統一する。

EFE0_01b.png

図0-1: 知覚の例


いま使う説明では、世界自体はわれわれの現実世界とまったく同じものなのだけど、agentが世界を切り分ける能力が低いので「外界の状態」は2つしか区別できない。「照明オン」と「照明オフ」だ。Agentは照明オンかオフかについて直接アクセスすることはできない。つまり「外界の状態」はagentにとって隠れ値だ。

Agentは「外界の状態」を推測するために「感覚入力」を用いる。ここでは網膜のような光センサーがあって、照明の明るさに従って「明るい」「暗い」という2つのどちらかの値を時々刻々観測している(agentの識別能力が低いので2つの値しか区別できない)。Agentはこの観測データにだけアクセスできる。いま「感覚入力」と書いたが、「感覚sensation」と「知覚perception」を区別するためにこの言葉を使っている。たとえばわれわれが写真を見たとき、網膜の視細胞の活動のようなセンサー値が「感覚入力」だ。そしてその写真になにが写っているか知ることが「知覚」だ。

Agentは「感覚入力」を元にして、「外界の状態」がいまどうなっているかを推定する。これが「知覚」だ。たとえば「感覚入力」が「明るい」を観測したなら、「外界の状態」は「照明オン」である可能性が高いだろう。100%高いとは言えないことはわれわれは経験上知っている。「照明オン」でも「感覚入力」が「暗い」を示すこともありうるだろう(照明とセンサーの間になにか邪魔なものがあるかもしれない)。よってこの設定では、知覚とは、「外界の状態の推定」とは、あくまで確率的に表現される。「外界の状態が照明オンである確率は90%」というように。確率で表すことによって、推定がどのくらい確実かというuncertaintyも表現することができる。

でもそもそもなぜ「感覚入力」から「外界の状態」を推定できるかといえば、agentはこれまでの経験から、「外界の状態」がどのように「感覚入力」に影響を与えるか、その因果関係について学習しているからだ。外界におけるこの関係を「生成過程」と呼び、agentが学習したこの関係を「生成モデル」と呼んで区別する。「生成過程」は外界の物理法則そのものだが、「生成モデル」はそれを写し取ったモデルでしかない。ゆえにモデルは間違っている可能性がある。今の場合も3次元の世界で照明からセンサーに光が届く生成過程があるのだけど、それをひとつの光センサーしかもたないagentは生成過程を1点に投射されたものとして生成モデルを獲得している。

[0-3. 行動選択=未来の外界の状態の推定]

しかしこのような設定ではagentは「桶の中の脳」と同じで、外界の生成過程を正しく生成モデルとして維持する方法がない。ここで行動を考える必要が出てくる。行動を含めた世界設定の図を示す(図0-2)。

EFE0_02.png

図0-2: 感覚運動ループ


ここでは「外界の状態」が「感覚入力」という観測データを生み出し、「外界の状態」を推定するagentの内部状態が「行動選択」という「外界の状態」への介入を行うというループが閉じている。これを感覚運動ループと呼ぶ。

このループを使うことで、agentの「生成モデル」は外界の「生成過程」と整合的であるように維持される。たとえばいまagentは「感覚入力」が「暗い」を観測していて、「外界の状態の推定」(=知覚)として「照明オフ」の確率90%としている。これを確かめるために、「行動選択」を「スイッチオン」にして、「感覚入力」が「明るい」になれば、現在の「外界の状態」が「照明オン」であるという推定(=知覚)の根拠となったagentの「生成モデル」は正しく機能していることが確認されるので、そのまま維持すればよいということがわかる。

この「行動選択」では、これからする行動(スイッチオン)が「未来の外界の状態」を「照明オン」にして、「未来の感覚入力」が「明るい」になるという推定をしたうえで、別の行動(スイッチオフ)ではなくスイッチオンが選ばれる。つまり「行動選択は未来の外界の状態の推定」に基づいている。

さきほどの知覚の話のときには「知覚とは現在の外界の状態の推定」であると書いた。両者を合わせると、知覚も行動選択も「外界の状態の推定」をいかにうまく行うかが知覚の正確さ、行動選択の正しさを決める。このようにして知覚と行動選択とをまとめて捉えることができる、これが「自由エネルギー原理が知覚と行動選択を統一的に説明できる」ということの内実だ。

ここまで(情報的)自由エネルギーがなにかの説明はしてこなかったが、(情報的)自由エネルギーとは「外界の状態の推定」をするときにagentが(非明示的に)使っている指標だ。Agentが(情報的)自由エネルギーを減らすように(脳や身体といった)内部状態を変化させるとき、知覚は現在の外界の状態を正確に推定できるようになり、行動選択は未来の外界の状態を正確に推定するように選ばれる。

いったんまとめる。

  • 知覚: 現在の外界の状態の推定
  • 行動選択: 未来の外界の状態の推定(の帰結)

[0-4. 学習=外界の状態を推定するモデルの更新]

冒頭にFEPとは「知覚と行動と学習の統一原理」だと書いた。では「学習」はどこに関わってくるか?

さきほどの例を用いれば、いまagentは「感覚入力」が「暗い」を観測していて、「外界の状態の推定」(=知覚)として「照明オフ」の確率90%としている。これを確かめるために、「行動選択」を「スイッチオン」にすれば、「感覚入力」が「明るい」になるだろうという予測を立てて行動選択をする。この予測が正しければ、推定の根拠となったagentの「生成モデル」は正しいのでそのまま維持すればよい。しかしこの予測が裏切られたとき、つまり「スイッチオン」にしたのに「感覚入力」が「暗い」を観測した。このときが「学習」の出番だ。

予想外のことが起きたときのまず最初の対処法は、繰り返しスイッチオン、オフを繰り返して行動選択から予測のサイクルを回す方法だろう。しかしもしこの予想外が続くのであれば、「生成モデル」が間違っている、現在の状況に合わなくなったということなので、生成モデルをアップデートしなければならない。これが学習だ。

発達や老化も同じように捉えることができる。Agentは発達により明るさセンサーの特性が変わると、どういう状況でも「明るい」を観測するようになるかもしれない。このようにして発達においても生成モデルの改変が必要になる。

同じことは進化にもあてはまるだろう。気球規模の変動で新たな環境に対応しなければならなくなったagentは、新たな環境(火山噴火によって照明は常に暗く観測されるかもしれない)に合わせた新しいセンサー特性へのアップデートが必要になるだろう。

このようにしてFEPは「知覚と行動と学習」について「生成モデルを元に外界の状態の推定する」という単一の枠組みで統一的に説明することができる(と主張している)。以上をまとめるとこうなる:

  • 知覚: 現在の外界の状態の推定
  • 行動選択: 未来の外界の状態の推定(の帰結)
  • 学習: 生成モデルのアップデート

[0-6. まとめ、以降の方針]

これでFEPとはなにか、ということについて数式を用いない範囲で言えることをだいたいいうことができた。FEPのような原理が本当にあるのかはわからないけど、まずはこの理論について知ってみよう、そのうえで、知覚と行動選択と学習とを統一的に説明できる理論というものがありうるか考えてみたい、これが私のFEPに対する態度だ。

よって以下の説明でも、FEPのような原理はありうるのかという観点から、実際の神経科学的データを説明するためにFEPを使うテクニック的なところには入り込まないようにして、なるたけFEPの本質的なところだけ抜き出して理解することに注力するという方針を取る。

ところでこのFEPという考えはずいぶんキャラが立ってる。なんせ、知覚も行動も世界のことを知るためにあり、行動することで世界のことを理解できる、というのだから、これは学者的な世界観ではないだろうか? われわれは世界のこと全部わかってなくても不安ではないし、わからないなりにもなんとか生きてるし、わかったからってなんともならんことが多いよなと思うわけで。なんてことはどうでもいい。FEP人生論はここでストップ。


2019年05月02日

自由エネルギー原理入門(6/7): 「Sec. 5. 現在、過去、未来を統一的に捉えるモデル」を追加

最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。


[5. 現在、過去、未来を統一的に捉えるモデル]

[5-1. Schwöbelらのアプローチ]

Friston et al 2017の期待自由エネルギー ってぜんぜん変分推定してないよね、ってのが前のサブセクションの総評だったわけだけど、じゃあちゃんと変分推定しようよってのが、Schwöbel et al 2018とParr and Friston 2018。ここではSchwöbel et al 2018の解説を行う。

[5-2. 生成モデル と推測 の設定]

Schwöbel et. al. Neural Comput. 2018では、現在、過去、未来を統一的に捉える生成モデルを考えている。現在、過去、未来を統一的に捉えるというのはどういうことかというと、時刻 というある時間幅(これはなんらかの行動課題の1試行のようなひとかたまりの行動を想定している)のなかでagentがいま時刻 にいるという状況を考える。このときの因果グラフが図5-1だ。

EFE5_01.png

図5-1: 現在、過去、未来の生成モデル


これまでと同様に、POMDP過程を前提としているので、直前の行動のみが外界の状態に影響を及ぼしうる。なによりも最大の違いは、行動 がパラメーターではなく潜在変数になっているという点だ。変分自由エネルギー を定義するために観測データと潜在変数をリストにしてみよう:

  • 観測データ
    • 感覚入力(過去から現在まで)
  • 潜在変数
    • 外界の状態(過去から現在まで)
    • 外界の状態(未来)
    • 感覚入力(未来)
    • 行動選択(過去)
    • 行動選択(現在から未来まで)

よってこのときの生成モデル はこれまで同様、機械的に当てはめれば以下のように書ける。

また、これを推定する のほうは潜在変数だけが入る。の形を決めるパラメーター はこれまでの議論からわかるように についての推定だけを決めればあとは生成モデルを使って計算してゆくので、今回の場合、 となる。省略して と表示する。

[5-3. 変分自由エネルギー の設定]

あとはこの二つから現在、過去、未来全ての期間をひとまとめにして推定をするための変分自由エネルギー が定義できる。 が長いので で表記する。

長いけど、たんに観測値と隠れ値を分けてVFEの式に代入しているだけだから、式の定義は明確だ。あとこうして改めて式を見てみると、surprisalの中身は常に観測データであり、surprisalは を変えようがない定数であるということがわかる。(だから、暗い部屋問題など無いわけ。)

じつは式(5-3)は正確でない。Schwöbel et. al. 2018では生成モデルの方に前述の、未来の感覚入力についての事前分布(=preference) が掛け算されている。私はどうにも納得いかないけど。ともあれ論文の中での の式は以下の通りになる。

この方法がFriston et al 2017での期待自由エネルギーと比べてなにが素敵かというと、VFEに期待値を掛けるとかそういうややこしいことを言わずに、ストレートにすべての潜在変数を推定するための変分下限としての変分自由エネルギー を計算できている点。もし になるように のパラメーター をアップデートすることができれば、 はtrue posteriorを近似することができて、そのとき となる、これまでとまったく同じ。

このため、期待自由エネルギーのときにでてきたややこしい概念、counter-factualな観測データというものがここでは見えなくなっている。

[5-4. observed free energy とpredicted free energy への分解]

Schwöbel et. al. 2018ではさらにこの の式を[現在+過去]と[現在の行動計画および未来]とに分けている。彼らは前者をobserved free energy 、後者をpredicted free energy と呼んでいる(p.2539-2540)。

式(5-4)からの変形でこれが導き出せるのだと思うのだけど、当の論文には何も説明がない。私もまだ確認できてない。ともあれこれによって、これまでの論文で出てきた変分自由エネルギーや期待自由エネルギーとの対応付けができるようになった。

Observed free energy はこの文書でも、4-2-1において「過去の行動を付加した生成モデル」に対応したVFEとして式(4-3)ですでに定式化している。

後者のpredicted free energy がこれまでの期待自由エネルギー に対応するこうになっている。だからこちらにはpreferenceの項を付け加えている。

[5-5. おまけ:このモデルの含意]

おまけです。FEP入門的にはおまけだけど、ここからがワタシ的には本筋。個人的にこのモデルが面白いなと思うのは、現在、過去、未来全ての期間をひとまとめにして取り扱うというのが、まさに変分原理的な視点であるという点だ。つまり、agentはいま時刻 に生死をかけあらゆる意思決定をなしているつもりなのだけれども、いったんそれを時間の外から(スピノザの言う「永遠の相」から)眺めてやれば、与えられた状況の中で を下げる方向に進むという変分原理に従って、agentの内部状態(推測 の本体)が変動しているだけなのだ。(agent「が」内部状態を変動「させている」ではないことに注意。) あたかも光が屈折することで最短時間で進むルートを選んでいるかのように。

いっぽうで、このVFEの式をいったん過去と未来に分けてやると、とたんにcounter-factual predictionを考えないといけない内部の視点が出てくる。ここでは未来と過去は観測データの有無の違いという点で非対称性がある。このことについてこれまで使ってきた図を改変してイメージを膨らませてみよう(図5-2)。

EFE5_02.png

図5-2: 推測qの時間幅


図5-2Aでは時刻 における変分自由エネルギー の計算からすべての潜在変数が推定される。時刻 になると(図5-2B)、時刻 での感覚入力 を獲得して観測データが一つ増えたことによって、変分自由エネルギー がアップデートされ、すべての潜在変数の推定もアップデートされる。これが外側から、「永遠の相」から見たときの描写だ。

いっぽうでagentから見れば、図5-2Aでは時刻 では未来の外界の状態 についてのcounter-factualな推定を持っている(counter-factualであることを と表記しておく)。さらにagentは過去の外界の状態 についてのfactualな推定を持っている。この推定は現在の新しい感覚入力 によって時間を遡ってアップデートされること(post-diction)については3-3-3で言及した。

そして時刻 になると、未来の外界の状態 についてのcounter-factualな推定を持つようになり、かつてcounter-factualだった外界の状態についての推定 はfactualな推定 となった。このようなcounter-factualな推定とfactualな推定の違いは時刻 にいるagentにとってはそのつど行動 を決める際に初めて重要になるが、変分原理的な視点からは見えなくなっている(ように思える)。

Friston 2018 (Frontiers in Psychology)における意識の議論でFristonは、agentが変分推定をしてゆく過程でのcounter-factualなpredictionおよび過去に向けてのpostdictionの時間幅が長く深い(temporal thickness or counterfactual depth)ものに意識が宿るのだという言い方をしている。

式(5-2)でも書いたように、現在の設定でagentが推測 をアップデートさせるために動かしているものの実体とは、 つまり、過去から未来までの外界の状態 の推定 だけだ。よってFristonの言うtemporal thicknessというのはどのくらい未来と過去について推測 を持っているかということに言い換えることができる。推測 の時間推移についてフッサールの内的時間意識のスキームに乗っけて表示してみよう(図5-3)。

EFE5_03.png

図5-3: 推測qの時間幅の違うagent


図5-3Aがこれまでの説明で使っていたものだが、図5-3Bはtemporal thicknessがまったくない「今を生きる」生物だ。Fristonによれば後者は意識を持たないという話になる。しかし、大腸菌の遺伝子発現ですらも予測的な振る舞いをすることが知られていること(私のブログに言及あり)を考慮に入れると、図5-3Bのように極端な生物はいそうにない。しかし予測的な行動をすることと、counter-factual predictionをすることはイコールではない。そしてFEPがまだ充分に因果推論的な形式になっていないことを考えると、Counter-factual predictionを捉えるのにもっとうまい方法が必要になるんではないかと私は考えている。

以上でこの文書は終了です。ここまで読んでくれた方、ありがとうございます。


いちおう最後の項目までたどり着きましたが、まだあれこれ落ち穂拾いをする予定。ToDoとしては、Sec.0として「数式を使わない自由エネルギー原理の説明」を作って、Sec.2にじっさい予測誤差回路でどうやってFの最小化が可能かについての概要(Bogacz 2017の二項分布バージョン)を入れて、Sec.3の最後に行動の説明の簡略化バージョン(qの代わりにsを変えるとFが下がる)を入れて、それで終了の予定。


2019年05月01日

自由エネルギー原理入門(5/7): 「Sec.4-4-3 照明の例を用いた期待自由エネルギーGの計算」以降をアップデート

最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。


[4-4-3. 照明の例を用いた期待自由エネルギー の計算]

では以上の結果を用いて、照明の例で期待自由エネルギーEFE を計算してみよう。

実際の計算方法についてだが、式(4-12)1行目のように、VFEを計算してからそれに期待値をかけて計算することはできない。なぜなら内側の を計算するときに、すべての で足し合わせて が消えているから、外側の期待値の と対応させることができない。あくまでも式(4-12)3行目のように で期待値をとる必要がある。

まずこの期待値の部分について計算しておこう。式(4-11)に、 および 、それから観察モデルの値 を入れてやると、

これをプロットしてやると図4-9の通りとなる。

EFE4_09e.png

図4-9: 照明の例におけるq(x,s)


を0-1の間で動かすと、どこでも になっていることが確認できる。あらためて、推測 という同時確率が ひとつの関数であること、つまり、agentがここで変化させているのは外界の状態の推定 だけで、感覚入力 についての推定はそれによって一意に決まる、というモデルになっていることがわかる。(これ自体は自明なことではなく、あくまでFriston論文ではそういうモデルになっているというだけのこと。)

それでは式(4-12)に基づいて、 を計算してみよう。式(4-13)を使って、 および のすべての変数の組み合わせでの和の形に変形してやる。あと、2行目から3行目の変換で、 を使っている。生成モデルの設定より、観察モデル の部分は に依存しないので、こちらもこの段階で値を代入できる。

あとは生成モデルのうち に依存する事前分布 の値を入れれば、 ごとに決まる の関数になる。

こうして計算できた をプロットしたのが図4-10。

EFE4_10d.png

図4-10: 期待自由エネルギーGに基づく行動選択


図4-10では および を0-1の間で計算している。図4-5のときは それぞれのときに を動かして を最小化することができたが、 の場合には の両者を考慮しているのでそういうわけにはいかない。

そこでサブセクション4-4-2でも言及したように、 には、初期値である事前分布の および を採用する近似が使われている。よくみるとじつは を動かすと をさらに最小化することができるが、この件については省略。

こうしてできた の最小値( bits vs. bits)を比較して、より低い の方を行動選択として使う(図4-10)。正確にはsoftmax関数を使うことで、決定論的ではなくて確率論的により大きい方を行動選択する確率が増えるようにしてある。

これはスイッチをオフ にするほうが、照明オフ のときの観測モデル の曖昧さによる不確定性を減らすことができるから、と説明することができるだろう。さらに詳しくは、後述のepistemic valueの計算が必要となってくる。

ところで現在使っている観測モデルは と非対称性があった。これが行動選択の原因となっていた。もしこの観測モデルが と対照的であった場合について をプロットすると図4-11の通りとなる。

EFE4_11d.png

図4-11: Gに基づく行動選択


の最小値は の間でまったく同じ bitsになるので、どちらの行動を取りやすい、ということはなくなる。これも予想通りだ。

[4-4-4. 期待自由エネルギー と変分自由エネルギー の関係]

サブセクション4-4-3の頭にも書いたように、 は二つの の重み付き平均としては計算できない。このことを上記の照明の例において示しておく。

まず式(4-15)のように という二つの項に分けておく。

と、 の式は以下のように表現できる。

よって、 の重み付き平均をしただけではないことがわかる。つかもしそうだったら には に付加される情報がないので、行動選択のためにわざわざ を定義する必要はなくなるだろうから、これは理にかなっている。

(検算しておくと、式(4-17)からわかるように、観察モデルが完全に無情報なとき、つまり このときだけ の平均になっている。)

[4-4-5. epistemic value + extrinsic valueへの分解、の前に]

Neural Comput. 2017では、このEFE の式を分解してepistemic valueと extrinsic valueの輪の形に変形している。式(4-12)から式変形してゆくが、ここで生成モデルの変形として を使っている。これまで使っていた「観察モデル*事前分布」による変形をしている。つまり による変形だ。

(Epistemic valueが情報獲得を意味するならば、ここでの変形は を用いた になるはずなのだが。この件については後ほど再訪する。)

ここで私が疑問なのが、式(4-18)の2行目でSurprisal に依存しないように書かれていることだ。しかし、

となっていることを考えると、 と書くべきではないか。

論より証拠、いまの照明の例で計算してみよう。

というわけで、実例による計算から「常に に依存してない」に対する反証は出せた。よってここは本来 として計算するべきであることが確認できた。

この点については、Gershman arXiv 2019およびKatahira et. al. PsyArXiv 2019は正しい計算をしている(Gershman論文では の期待値に使っているものが違うけど)。これは些末な話ではなくて、この項をFristonのようにextrinsic valueに捉えるのか、それともKatahira et. al. 2019のようにpredicted surpriseとして捉えるのかで解釈にも大きな違いが生まれる。この点については以下のextrinsic valueの説明のところで再訪する。

なお、これは生成モデルの違いによっては説明できない。のちほど再訪する予定だけど、Katahira et. al. 2019での生成モデルはこの文書での蝶と蛾の例と同じ形で以下のようになるので、 に依存するという点については変わらない。

[4-4-6. Epistemic valueの導出]

ともあれ今はNeural Comput. 2017に準拠して、EFE からepistemic value, extrinsic valueの導出までたどり着くことを目標にしよう。式(4-18)の2行目を再掲する。

まずは式(4-18)の第1項、第2項を式変形することでepistemic valueを導出する。 の表示は省略しておく。

1行目から2行目のところで推測 がtrue posterior に充分近づけることができた、という近似を入れている。

このようにして、epistemic valueでは、 の間の距離を計算している。これは未来の感覚入力 によってどのくらい推測 が変化するか、つまりBayesian surpriseを計算したうえで、それを全ての で重み付け平均した期待値を計算している。これによって、行動 が引き起こす未来の感覚入力 のばらつきを考慮した上でBayesian surpriseを計算していることになる。

ここで式(4-22)の一番最後の形を見てもらうと、これは の間の相互情報量になっていることがわかる。

つまり、epistemic valueとは、未来の感覚入力 を観測することによって推測 をどのくらいアップデートできるか、という情報獲得の大きさを計算していることになる。だから「epistemic valueが高い行動を選択する」とは「将来的に情報獲得の大きいことが見込まれる行動を選択する」という意味になる。こう考えると、epistemic valueが高い行動を選択するというのは理にかなっている。

(ここで使われている、「推測 がtrue posterior に充分近づけることができた」という近似は、計算を可能にするための近似ではなくて、式(4-18)の第1,2項を情報獲得という解釈をするための読み替えに過ぎない。たとえばサブセクション4-4-2では、推測 を生成モデル(のうち事前分布) で近似したが、これは不可能な計算を可能にするための近似。でも今やってるのは逆。生成モデル から作ったtrue posterior を推測 で近似するというのだから。これはcounter-factualなpredictionにおいては、脳が を変化させてtrue posteriorと完全に一致させることができる、という仮定である。現在の例のように観察モデルに不確定な要素がある状況では(たぶん)これは成り立たない。)

[4-4-7. Extrinsic valueの導出]

次に、式(4-18)の2行目の第3項を変形させることでextrinsic valueを導出する。

ここで3行目から4行目のところで には依存しない( ごとに足し合わせない)ということを使ってる。

4行目から5行目のところでは と違った書き方をしているが、これはSchwöbel et. al. 2018の表記を採用している。Schwöbel et. al. 2018のp.2537にあるように「将来得られるであろう感覚入力についての事前分布(=preference) 」と「将来得られるであろう感覚入力について周辺化した期待値 」とはべつものである。Schwöbel et. al. 2018にしろ、Friston et. al. 2017にしろ、前者のpreferenceの方を採用している。

しかしこれは恣意的な読み替えのように思える。というのも、前者のpreferenceの意味であるなら、生成モデルの中に明示的にそのような事前分布を入れるべきだからだ。

ここでParr and Friston bioRxiv 2018の図1に因子グラフがあるのでそれで確認してみると、期待自由エネルギーでは、期待自由エネルギー の事前分布としてこの を入れている(bioRxiv 2018 図1A)。いっぽうで、この論文で提案されているGeneralized free energyでは、各時点の感覚入力(論文内ではobservationだが) の全てに共通の事前分布としてこの が入っている(bioRxiv 2018 図1B)。つまり、Parr and Friston 2018では、期待自由エネルギーEFEを計算する際に が生成モデルには入っていないこと、 を計算するためだけに使ったパラメーターであることをわかっている。

この文書で(そしてEFE関連の論文で)採用されている生成モデルでは、感覚入力 はそのつど から作られるので、生成モデルの式の中に感覚入力についてのprior というものはそもそも入ってない。よって、 は生成モデルから周辺化して作ったと考えるほうが自然で、事前分布=preferenceであると主張するのには根拠が無いと思う。どうしてそこまでして を入れているのかといえば、素の の式のままではextrinsic value的なものを埋め込むことができないということだろう。でもまあ正直なところ、rewardのようなextrinsic valueをこのような形で自由エネルギー原理の中に組み込むのは無理があるので、強化学習でやってるように明示的にrewardを入れるべきじゃないの?と思った。

[4-4-8. 期待自由エネルギー EFEの式の最終形]

ともあれこれで期待自由エネルギー EFEの式が完成した。式(4-18),(4-23),(4-24)を組み合わせると、最終的な期待自由エネルギーの式になる。

つまり、epistemic valueが高いこと、extrinsic valueが高いこと、の両方が期待自由エネルギー EFE を高くすることに貢献する。

[4-4-9. 照明の例を用いてepistemic valueとextrinsic valueを実感してみる]

図4-10、4-11で計算した について、それぞれのepistemic valueとextrinsic valueを計算してみよう。

まずepistemic valueを計算してみる。前述したようにepistemic valueの近似は計算のための近似ではないので、近似前の式を使って計算する。なお、true posterior は行動選択 に依存する。 のほうは近似()は使わずに の関数の形のまま計算する。

引き続き、個別の についてtrue posteriorの値を入れて、Epistemic valueを計算する。

Extrinsic valueの計算には による読み替えを使わず、式(4-18)の第3項のまま、行動選択 に依存するexactな計算をしてみよう。

引き続き、個別の について の値(式(4-20)で計算済み)を入れて、Extrinsic valueを計算する。

これでEpistemic valueとexactなExtrinsic valueをプロットできる(図4-12)。Exactな値なので、G = -Epistemic value -Extrinsic valueが成り立つ。図でも正負逆になっているので注意。つまり、それぞれ値が低いほうがvalueが高い。Epistemic valueについては前述のとおり、近似は計算結果を変えない。

EFE4_12.png

図4-12: Exactな計算によるEpistemic valueとExtrinsic value


Epistemic valueおよびextrinsic valueそれぞれが行動選択 に依存していることがわかる。Epistemic value よりもEpistemic value のほうが僅かに最小値が小さいことから、Epistemic valueがたんなる左右反転でないことがわかる。

の近似のもとでは、行動 を選択したときには 、行動 を選択したときには なので、以下のようにまとめることができる。

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の効果は 行動 によって逆転しているのだけど、両方の和の結果として、期待自由エネルギー のときのほうが低くなるので、行動選択としては を選ぶことになる。

ではつぎに、Fristonの定義に基づいて preferenceとして読み替えたときのextrinsic valueを計算してみよう。ここでpreferenceを以下のように設定する。

つまり、いま「部屋を75%の確率で明るくあってほしい(100%明るいのも良くない)」というpreferenceをこれまでの生成モデルに設定として付け加えたということになる。これは行動 には依存しない。

(こう書いて気づいたけど、行動 に依存するpreferenceがあってもいいよね?つまり、「スイッチを付けたら明るくなってほしいし、スイッチを消したら暗くなってほしい」というpreference。そしてこれが、行動の結果の予測可能性の最大化であり、FEPが前提としているものだ。つまり、明示的なpreference=ゴールがないときにもFEPはpreferenceを持っている。)

つぎに を計算してみよう。式(4-13)を で足し合わせてしまえばいい。こちらも行動 に依存しないことがわかる。あくまでも の関数であって、行動 によって が決まる。(行動 のときは となるのだった。図4-10,4-11参照。)

これでextrinsic valueを の関数として書くことができる。

これのようにしてできた-extrinsic value(preferenceバージョン)から、Friston et al 2017での定義に基づいた をプロットしてみる(図4-13)。

EFE4_13.png

図4-13: FristonのEpistemic valueとExtrinsic value


前述したように、preferenceに基づいたextrinsic valueは には依存していないので、図4-13A,Bともに同じ線になる("-Extrinsic value (preference)", 薄緑色)。そして の近似のもとでは、行動 を選択したときには 、行動 を選択したときには なので、以下のようにまとめることができる。

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


つまり、行動 (スイッチを付ける) のほうが-extrinsic valueは低くなる。これはpreferenceに合致した未来の感覚入力 をサンプルするであろう行動 がよりextrinsic valueが高い、という理屈だ。

その結果として期待自由エネルギー のときのほうが低くなるので、行動選択としては を選ぶことになる。図4-12のときは を選んでいたので、結果が逆になった。Extrinsic valueをどう定義するかが行動選択に重大な違いを生むということがわかる。

図4-13を見ていて気になるのがなんでextrinsic valueは直線であって、曲線でないかということだ。式(4-31)を見ればわかるようにextrinsic valueは の一次関数だ。この性質はpreferenceの値には依存してない。Extrinsic valueはその定義上、preference が一致するときに最大になっていてほしいのだけど、そうなってない。代わりにslopeの大きさがvalueの大きさ(utility)と比例すると解釈することになる。でもそうすると、このやり方だと複数のゴールを設定することはできない。

4-4-10. Expected free energyにかんする疑問、 の解釈と計算についての代案

Expected free energyの説明は以上だが、これで納得行っただろうか? 私はepistemic valueの導出を見ていて気づいたことがある。式(4-22)では、 が観測データ 無しでの推測を意味することになっている。しかしこれまでの例、例えば図3-2の行動無しの設定においては、観測データ を得た上での推測=approximate posteriorは と書いてきた。 ではなくて。そしてそもそも式(4-18)での の式の第1項が になっているのはこれがapproximate posteriorだったからだ。事前分布で近似できる ではなくて。つまりFriston et al 2017では、知らず知らずのうちに の読み替え(誤読)を行っていないだろうか?

ここがEFEが錯綜している原因ではないかと私は思う。それならば、はじめからapproximate posterior のことを と書くことにして、式(4-18)も式(4-32)のように表示するのが筋だろう。

そしてさらにこれの生成モデルの部分を「観察モデル*事前分布」とする変形 を用いて変形してゆくと、

元々のVFEの式でのKLDとsurprisalの足し算になっている。こちらのほうが変分自由エネルギーを最小化する過程と整合的になっていると思う。そもそも の式の第1,2項は、もともとのVFEの式ではKLDに対応していたのだから、ここを変形したら情報獲得になった、というのがおかしな話だった。

なお、ここで はそれぞれの に合わせて決めてやる必要があるので、 と表記している。つまり、counter-factualな推測 としては、すべての可能な についての の推測をしている。

それならば、生成モデルの部分を「true posterior*evidnece」とする変形 を用いて変形していけば、 に対応したものになるはずだ。やってみよう。

こちらのほうが、bayesian surpriseを元にして情報獲得を計算しているという意味で理にかなっている。そして、そもそも元のVFEの式では、agentはbayesian surpriseを最大化していない。あくまでもKLDを最小化するように推測 = approximate posteriorをアップデートするのが先で、その結果としてbayesian surpriseが となるだけだ(サブセクション1-9を参照)。だから、 がepistemic value(とextrinsic valueの和)を最大化するように行動 を選択するというのは、agentが変分推定をするという元々の考え方からすればおかしな話なのだ。

あと、Bayesian surpriseはその定義より、事前分布 からの情報獲得となっているので、 からの総獲得情報量を表すことになる。その時点での情報獲得を計算するためには、 と時間ごとにBayesian surpriseを計算したうえで、その差分として計算されることになる。(いまは生成モデルは固定なので、 であり、ただの定数。)

さてそれでは、このように解釈した をプロットしてみる(図4-14)。 についてそれぞれあるので、二次元のデータをカラー表示することにする。

EFE4_14.png

図4-14: 改良版期待自由エネルギー G


白丸が行動 および それぞれの期待自由エネルギー が最小になる場所を表している。行動 では かつ のときに最小となる。同様に行動 では かつ のときに最小となる。

これらの値は過去の行動選択の例(テーブル1)のときと似ているがやや違う。同じにならないのはサブセクション4-4-4にあるように、まったく同じ計算をしているわけではないから。

期待自由エネルギー は行動 (スイッチオン)のときよりも行動 (スイッチオフ)のときにより低くなる。よってagentは行動 (スイッチオフ)を選択する、ということになる。

0.88 0.43
0.33 0.08
G(a) 0.3082 0.2140

テーブル4: 改良版期待自由エネルギー G


同じデータについてKLD, surprisal, bayesian surprise, uncertaintyについて2次元表示をすることができる。

EFE4_15.png

図4-15: 改良版期待自由エネルギー Gでの各要素


これを見てわかるのは、 が最小になるところでKLD成分が0になるわけではないこと、一方で、 が最小になるところではBayesian surprise成分がほぼ0になること、などがある。このあたりはもう少し調べて見る価値がありそう。

そういうわけで、改良版期待自由エネルギー Gは変分推定をするという元々の考え方と合致した上でちゃんと行動選択にも使えそうだ。

結論としては、Friston et al 2017の期待自由エネルギー ってぜんぜん変分推定してないよね、ってことになる。じゃあちゃんと変分推定しようよってのが、Schwöbel et al 2018とParr and Friston 2018が行っていることだと私は解釈している。そういうわけで、次はSchwöbel et al 2018の解説に行く。


2019年04月28日

自由エネルギー原理入門(4/7): Sec.4 生成モデルに行動を含める

最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。


[4. 生成モデルの中に行動 を含める]

[4-1-1. 生成モデルの中に行動 を含める]

さてここから生成モデルの中に行動 を含めることを考える。まずは図2-3で使った因果グラフを再掲する(図4-1A)。

EFE4_01.png

図4-1: 行動を付加した生成モデル


これはいわばフルバージョンであるが、じっさいにNeural Comput. 2017でのFristonの期待自由エネルギーの式が前提としている生成モデルは図4-1Bのとおりだ。つまり、行動 が外界の状態 のみに作用しており、感覚入力 への直接的な因果はない。一方で、ここまで用いていた蝶と蛾の例では、行動 とは眼球運動だったので、目を動かしても世界は変わらず、視野だけが変わる。つまり、外界の状態 には作用せず、感覚入力 のみに対して直接的な因果がある(図4-1C)。(これはKatahira et al 2018での病気 と検査法の選択 と検査結果 においても同じ。)

[4-1-2. このセクションで用いる例: スイッチで照明をつけたら明るい]

そこでこのセクションでは、Neural Comput. 2017での生成モデル(図4-1B)に基づいた実例として、「スイッチで照明をつけたら明るい」というのを用いることにする(図4-2)。

EFE4_02b.png

図4-2: スイッチで照明をつけたら明るい


行動、外界の状態、感覚入力 はそれぞれ二つの可能な状態を持っている。 から から の関係には不確定性があり、スイッチオンでも照明がオンにならないときもあれば、照明がオンでも暗いと感じるときもある。これらの関係は以下のサブセクションごとに生成モデルによって規定される。

それではこの例に沿って、expected free energy EFE, epistemic value, extrinsic valueの式の導出までやってしまうことにする。

蝶と蛾の例はサッケードのモデルとして重要なのでまたあとで戻ってくる予定。


[4-2. 行動あり、現在の状態 と過去の行動 の推定(1)]

[4-2-1. 生成モデル と推測 の設定]

ではまず図3-2の現在の知覚の生成モデルに過去の行動 を付加することを考える。過去の行動 を潜在変数として捉えるならば、生成モデルのグラフィカルモデルによる表現は以下の通りになる(図4-3A)。

EFE4_03c.png

図4-3: 過去の行動を付加した生成モデル(1)


このとき生成モデルは以下のように書くことができる。

生成モデルは3つの因子に分解することができる(図4-3B)。 は観察データを生成する「観察モデル」()、 は状態の推移を決める「遷移モデル」 は行動 の「事前分布」、と呼ぶ。行動 の「事前分布」とは、結果となる に依存せずにどちらを選択するかのバイアスを表すから「preference」とも呼ぶ。この呼び方は後で出てくる。

のそれぞれの値をみてもらうと、不確定性のあるシステムであることがわかる。スイッチがオンでも照明がつかない確率が20%あるし()、照明がオンでも暗く感じる確率が20%ある()。照明がオフでも明るく感じる確率は5%なので()、ここに非対称性が入ってる。

また、推測 のほうは以下のように書く。直前の行動 は隠れ値なので と同じく推定してやる必要がある。

式(3-8)と同様、 は独立して動かさずに、同時に推定するため、パラメーターとしては3変数あることになる。

[4-2-2. 変分自由エネルギー の設定]

この場合の観測データは 、潜在変数は となるので、VFEの式は以下の通りになる。

となる。Surprisalの中身は となっていて、図3-2の生成モデル(現在のみ、運動なし)と変わりないことがわかる。KL距離を計算するときに の両方で総和をとるので、KL距離は のみの関数となる。

(さてあとはposteriorを計算して、 をプロットして、と行くところなのだが、ここでは省略する。)

ところで図4-3において過去の行動 を潜在変数として捉えるのは妥当だったろうか?もし生成モデルが、行動 が事前分布 から確率的に選ばれて、それの結果として外界の状態 と感覚入力 が引き起こされた、という場合なら合っている。しかし、expected free energyで想定されているのはそうではない。


[4-3. 行動あり、現在の状態 と過去の行動 の推定(2)]

[4-3-1. 生成モデル と推測 の設定]

図4-3の生成モデルはexpected free energyで用いられているものとは異なっている。Expected free energyにおいては、行動 はその時点での期待自由エネルギー を計算した結果として確定する。つまり、行動 は推定すべき潜在変数ではなくて、生成モデルの一部である事前分布 を特定するパラメーターと捉えるべきなのだ。(「パラメーターとして扱うこと」の意味については、Sec.2-4を見直してほしい。)

そこで図4-4Aで表示した因子グラフは、行動 を生成モデルのパラメーター(白四角)として表現している。

EFE4_04c.png

図4-4: 過去の行動を付加した生成モデル(2)


つまり生成モデルは以下のように書くことができる(図4-4B)。

図4-2についての生成モデルの式(4-1)と比べて、生成モデルの変数に が入ってないことがわかる。その代わりに、 がパラメーターであることを明示するために という表現をしている。

また、今回の生成モデルでは、 のそれぞれについてべつべつの生成モデルがある。つまり、事前分布 の部分を必要に応じて差し替える必要がある(図4-4B)。この点でも図4-3Bの生成モデルとは異なっている。あちらでは の部分に潜在変数 とその事前分布 が入力するので、ひとつの生成モデルの中で、 の両方を計算する必要がある。

生成モデル を特定するパラメーター(図4-4B)自体はさきほどの図4-3Bと同じものを用いているが、上記の違いによって、計算される などは異なってくる。

また、推測 のほうは以下のように書く。

形式上は図3-2とまったく同じになった。あとは を0-1で動かして推定してやればよい。

[4-3-2. 変分自由エネルギー の設定]

この場合の観測データは 、潜在変数は となるので、VFEの式は以下の通りになる。

となる。KLDの中身の は図4-3Bおよび式(4-4)からわかるように、 には依存しない。

Surprisalの中身は となっていて、式(3-3)および式(4-3)とは変わりない。しかしこれを計算するためには、 というように同時確率の周辺化が必要になるから についてそれぞれ別に作る必要がある。よって、式(4-3)でのsurprisalとは違う結果になる。つまり、行動 を潜在変数として捉えるか、パラメーターとして捉えるかは、実際のVFEの計算自体に影響を及ぼす。

にとって がパラメーターになっている、つまり別々の に対して別々の値が出てくることを示すために、それぞれの の中に表記している。こちらは生成モデル の中身の場合とは違って確率ではないので、この表現で正しい。

[4-3-3. 変分自由エネルギー の最小化]

Agentは を変えることによって を下げることができる。今の例では を0-1まで変化させることによって、すべての可能な を網羅できる。それではSec.3-2-3の図3-3と同じ要領で、スイッチと照明の例について、VFE, Surprisal, Bayesian surpriseをプロットしてみよう(図4-5,図4-6)。

EFE4_05c.png

図4-5: VFEの最小化 (a=1: スイッチオン)


EFE4_06c.png

図4-6: VFEの最小化 (a=2: スイッチオフ)


まず図4-5が、つまりスイッチオンにしたときのVFEの最小化。観測データとして (明るい)、 (暗い)のそれぞれで を最小化している。どちらも の初期状態は事前分布 で決まるから、 では からスタートしている。

図4-5Aのときは、スイッチオンしたら明るかったわけで、照明がオンであるという推測は初期状態 0.8からより高くなって0.98になった。いっぽうで図4-5Bでは、スイッチオンしたのに暗かったわけで、照明がオンであるという推測は初期状態0.8から0.45へとかなり下がってる。その気持わかるなー。

図4-6が、つまりスイッチオフにしたときのVFEの最小化。大まかには図4-5のときと左右ひっくり返した感じになっているが、生成モデルを確認してもらえばわかるように、完全に左右対称ではない。

以上をまとめてテーブルにすると以下の通りになる。

初期状態 VFE最小化 初期状態 VFE最小化
0.8 0.985 0.8 0.457
VFE 1.1219 0.6215 1.8723 1.5146
Bayesian surprise 0 0.2396 0 0.4133
初期状態 VFE最小化 初期状態 VFE最小化
0.2 0.800 0.2 0.050
VFE 3.5219 2.3219 0.5236 0.3219
Bayesian surprise 0 1.2000 0 0.1355

テーブル1: VFE最小化のまとめ


そういうわけで、やってることは図3-3とほとんど同じであることがわかる。でもこれが次のサブセクション4-4でexpected free energyを計算するときの題材になるので、この図に再訪することになる。


[4-4. 行動あり、未来の状態 と未来の感覚入力 の推定(1)]

[4-4-1. 生成モデル と推測 の設定]

ここまでくれば、現在の行動 とその直後の外界の状態 および感覚入力 についての生成モデルを作るときには、はどのようになるか想像がつくだろう。図4-4Aから、時間をずらしたものを作ってみた(図4-6A)。

EFE4_07c.png

図4-7: 現在の行動計画の因子モデルと生成モデル


これでいいかというと、ひとつ考慮しなければならないことがある。未来の感覚入力 は観測データでいいのだろうか? はまだ観測されていないのだから。

でもここで考えてほしいのだけど、もし未来の感覚入力 が潜在変数だとしたらすべてが潜在変数になってしまう。観測データがないのだから、推定のしようがない。これじゃあ部分観測マルコフ決定過程POMDPではなくて、無観測マルコフ決定過程NOMDPだよ。エスパーか!

ここで二つの方法がありうる。一つは観測データとして現在および過去の感覚入力 を使うというものだ。これはのちほど紹介するSchwöbel et. al. 2018論文およびParr and Friston 2018論文でとった方法だ。もう一つがFriston et. al. 2017論文で使われたように未来の感覚入力 を観測データとして捉える、ただしcounter-factualな観測データとして捉える、というものだ。いまは後者について説明する。

概念整理のために図4-8のように考えてみる。潜在変数と観測データに加えて、factualかcounter-factualかという軸を考慮する。未来の感覚入力 はcounter-factualな観測データだ。よってこれまでに出てきたものと扱いが異なる。いっぽうで、未来の外界の状態 のほうはcounter-factualな潜在変数だが、潜在変数についてはfactualだろうがcounter-factualだろうが推定するだけなので、扱いを変える必要がない。

EFE4_08b.png

図4-8: [潜在変数/観測データ]と[factual/counter-factual]の軸


それではあらためて、図4-7Aの因子グラフについて生成モデルを作ってみると以下のようになる(図4-7B)。

さきほども書いたように、 は事前分布 の形を決めるパラメーターだ。よって はcounter-factualな行動選択 ごとに、 と別々に定義する。観察モデル のほうは に依存しない。

また、推測 のほうは以下のように書く。潜在変数は ひとつだけだから、形式的には図3-2の現在の外界の状態を推定するのと同じ形になる。

[4-4-2. 変分自由エネルギー の設定]

この場合の観測データは 、潜在変数は となるので、VFEの式は以下の通りになる。

式(4-6)と同様に、KLDの中身は に依存しなくて、surprisalの中身は に依存する。

ここまでは図3-2の現在の外界の状態を推定するのと同じ形だが、これでは終わらない。なぜならこの式に入っている はcounter-factualな観測データなので、実際には一つには決まってないからだ。そこでこのようにして定義された をさらに ごとの期待値で足し合わせてやる必要がある。これが期待自由エネルギーEFE だ。仮にこの期待値を で表しておくと、

4行目にあるように、最終的には の中身について の両方で期待値をとることになる。(なお、2行目から3行目のところでは、 を使ってる。)

この式(4-10)がNeural Comput. 2017のp.10で定義されているFristonの期待自由エネルギーの式だ。(表記に関しては、この文書の表記法を用いているが。)

[4-4-2’. 期待値の重みについて詳しく]

では実際にこの期待値 の部分を計算するにはどうすればよいか。とくに、 は実際のところなにか? Neural Comput. 2017のp.10によれば、このように書いてある。(表記は現在の文書に合わせてる。)

そういうわけで、まず未来の外界の状態 の推定 をしておいて、それに生成モデルのうち観察モデルの部分 を掛け算してやって についての推定を作っている。

よって実際の計算では、期待値として掛けるべきものは であるとわかった。式(4-10)の 部分を加えて書き直すと、以下が期待自由エネルギー の式となる。

じつはここでFriston et al 2018ではさらにもう一段階近似を行っている。

また、Friston et. al. Cognitive Neuroscience 2015のp.192では以下の通りに書かれている。

これらは何を意味しているかというと、式(4-11)の の部分さえも現在の観測データ から作っているということだ。現在の生成モデルおよび照明の例では過去のことは考えていない。ここでは話を簡単にするために、 に加えて、遷移モデル を仮定する。これで として計算することにする。これはFriston et al 2018やKatahira et al 2018で採用されている方法。

ただしこの文書の方針は、「単純な例は用いるが近似はなるたけ用いない」というものだった。以下の照明の例では、 の近似を使わずに によって動かした計算も行う。じっさいやってみてわかったのだが、 を動かすと、 ごとに最小化することができる。


2019年04月22日

自由エネルギー原理入門(3/7): Sec.3 実例を元にvariational FEの定式化について考える

最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。


Sec.3 実例を元にvariational FEの定式化について考える

[3-1. 蝶と蛾の認識の例:世界設定]

ふたたび実例を用いてイメージしやすい形を説明をしてゆくことにしよう。私の以前のスライドで使った、蝶と蛾の認識の例を使って説明してゆく。こういう例だ。左下を見ていたら右上になにかあるので目を向けてみたら蝶がいた(図3-1A)。認識とは他の可能性を排除することだ。この場合、目を向けたら蛾がいる可能性もあったけど、そうではなかった。

この世界は図3-1Bのように単純で、感覚入力 は3通り、これらの感覚入力をサンプルする行動 は2通り、そこから推定される外界の状態 は2通りだけになっている。

EFE3_01.png

図3-1: 蝶と蛾の認識の例:世界設定



[3-2. 行動なし、現在の状態 の推定]

[3-2-1. 生成モデル と推測 の設定]

では図2-2のうち、行動 なし、時間は現在だけ、という生成モデル を考えてみよう。このときの生成モデルは因子グラフを用いて表現すると以下の通りになる(図3-2A)。

EFE3_02.png

図3-2: 行動なし、時間は現在だけ


このとき生成モデル のグラフ構造を考慮した式は以下の通り。

図3-2Bに現在の設定での生成モデルのパラメーターを表示した。事前分布 からすると、視野の中には蝶がいる確率( )が蛾がいる確率( )よりもちょっと高くなっている。また、観察モデル によると、蝶がいる場合は の感覚入力をサンプルしている可能性が一番大きい。蛾がいる場合は の感覚入力をサンプルしている可能性が一番大きい。感覚入力 のときは蝶なのか蛾なのか曖昧っぽい。でもこれについてはtrue posterior を計算してみないとわからないが。

つぎに推測 について考える。潜在変数は のみだから、推測は となる。ここから推測 の形を変えることでVFE を下げることを定式化してゆくのだけど、 の形を変えるというのは汎函数(functional)の概念が入ってきてややこしいので、 という確率分布の形を決めるパラメータ を使って表記することにする。

つまり、 としておけばもう片方の も決まるので、 の分布の形 ひとつで表現できる。この を0-1の範囲で動かしてみる。

[3-2-2. 変分自由エネルギー の設定]

では図3-2の設定の場合の の式はどう書くか。これはsec.1で用いたものと同じ構造だ。Sec.1の式(5)に、観測データ=現在の感覚入力 と潜在変数=現在の外界の状態 を当てはめてみれば、 は以下のように定義できる。

今の段階では行動 のことを考えていないので、 を変えることはできない。だから のみの関数で、Surprisalは定数だ。

[3-2-3. の最小化]

Agentは を変えることによって を下げることができる。今の例では を0-1まで変化させることによって、すべての可能な を網羅できる。それではSec.1の図1-3と同じ要領で、VFE, KLD, Surprisal, Bayesian surpriseをプロットしてみよう。(Sec.1で使ったmatlabのコードを多少改変すればこの図を作ることができる。練習問題としてやってみるとよい。)

EFE3_03b.png

図3-3: 行動なし、時間は現在だけの場合のVFEの最小化


図3-3Aは感覚入力(観察データ)が だった場合、図3-3Bは感覚入力(観察データ)が だった場合を示す。( は省略するが、どういう形になるかは想像がつくだろう。)

図3-3A,Bどちらともに、 の初期状態として を用いている。そこからそれぞれ になる値へと向かっている。感覚入力 の場合、 でKLD=0となり、VFEが最小化する(2.32 bits)。感覚入力 の場合、 でKLD=0となり、VFEが最小化する(1.32 bits)。これらはそれぞれtrue posterior を正しく推定できている。

直接計算によるtrue posteriorはそれぞれ以下の通り。

[3-2-4. の最小化ができたときの近似]

式(3-3)において となるような を見つけることができたとき、

が成り立つ。繰り返すが、 は観察データなのでこれを変えることはできない。将来的に行動によって、サンプルされる感覚入力 を変えることはできるが、そのときは もゼロでなくなってしまう。よってこの式だけから行動について考えることはできない。ではどうすればいいかというと、そこで期待自由エネルギー が出てくる。その話はまた後ほど。

変分推定はふつう近似をするために用いられるものだが、今は原理的な話をするために、推測 を好きに変えることができることにした。つまり得られるものはtrue posteriorを直接計算するのと同じだが、それを を下げるという回り道をして計算していることになる(Gershman 2019)。


[3-3. 行動なし、現在と過去の状態 の推定]

[3-3-1. 生成モデル と推測 の設定]

つぎはこの行動なしのモデルで、時間を1ステップ進めてみよう。現在は になった。このときの生成モデルの因子グラフは図3-4Aのようになる。

EFE3_04.png

図3-4: 行動なし、時間はtからt+1に進んだ


新たに観測値 が追加された(灰色丸で表示)。外界の状態 は直前の状態 から影響を受ける。これは生成モデルのうち、 の遷移モデルとして記述されている(図3-4B)。これはもし なら、 だし、もし なら、 だという、外界の状態の恒常性のモデルになっている。

(完全に単位行列にしていないのは、計算上0が入るとKL距離が無限大になったりしてややこしいからだ。本当はKL距離においては、分母が0なら分子が0になっていないといけないのだが、それは現状では守られていないので、場当たり的な処置をしている。自然は真空を嫌うらしいが、KL距離は0を嫌う。)

時点 における観測モデル は時点 における観測モデル と同じにしてある。同じ過程については時間に依存しないのが自然だろう。

よって、生成モデルは式(3-6)のとおりとなる。

推測 はあらたに も推測する必要があるので、潜在変数二つを推測することになる。

となる。ここで ではないことに注意。あらたな観測値 によって過去の状態 もアップデートすること(post-diction)を想定しているからだ。

あと、推測 のパラメーター は以下のように3つのパラメーターからなっている。

あり得る の全ての組み合わせ4通りのうち、3つのパラメーターを決めれば、合計で1になるので、残りの一つは自動的に決まる。

であることにも注意。 という表記は が独立して動かせることになってしまう。それは平均場近似 を仮定していることになるのでここではやらない。いまの説明ではなるたけexactな方法を行う。われわれが扱っているのは気体じゃないんだから、平均場近似が使える保証はなんてない。最近はFristonのグループからもグラフィカルモデルの因子間での相関を扱えるベーテ近似を使う論文が出てきている。

[3-3-2. 変分自由エネルギー の設定]

それではこのときの を定義してみよう。観測データ=過去と現在の感覚入力 と潜在変数=過去と現在の世界の状態 を当てはめてみれば、以下の通りとなる。

うわあ、なんだか凄いことになっちゃったぞ。今回はKL距離の変数部分が の同時確率になっているので、 がとりうるすべての組み合わせ(4通り)について和を取っている。( で和をとってから で和をとったりするのも、平均場近似の仮定を使っていることになるのでそれはやらない。)

[3-3-3. の最小化]

それでは蝶と蛾の例で、 に感覚入力 をサンプルして、 に感覚入力 をサンプルした場合について考えてみよう。本当はこの から の時間の間にサッカードをして、外界の状態の恒常性を保ったまま、違った感覚入力をサンプルしたことになるのだけど、行動については後ほど行う。

まず比較のために、[3-2]でモデル化したように、時点 に感覚入力 をサンプルして外界の状態 を推定したもの、そしてそれとは独立に時点 に感覚入力 をサンプルして外界の状態 を推定したものを図示してみる(図3-5)。

EFE3_05b.png

図3-5: 時間tとt+1で別々に推定


時点 での「蝶がいる」 の確率(true posterior )は0.6 だったが、時点 では「蝶がいる」 の確率(true posterior )は0.9 になった。 でよりinformativeな感覚入力 をサンプルしたことによって推定がアップデートされたわけだ。

では、今回のモデル(図3-4)で現在と過去の状態を推定するものではどうなるだろうか(図3-6)。

EFE3_06b.png

図3-6: 時間tとt+1を繋げて推定


時点 での「蝶がいる」 の確率(true posterior )が0.6であるのに対して、時点 では「蝶がいる」 の確率(true posterior )は0.92 になった。さっきよりも少々大きくなっている。情報の蓄積の効果があるということだ。

でもそれだけではない。 で感覚入力 をサンプルしたことによって時点 での「蝶がいる」 の確率(true posterior )も0.92 になった。つまり、過去にさかのぼって、当時の認識をアップデートさせたのだ。しかもその当時の推定は0.6だったのに。つまり、postdictionをモデル化することができているというわけだ。

この説明でわかるように、これはFEPの手柄ではなくて、ベイズのグラフィカルモデルを採用したことによる。グラフィカルモデルでtrue posteriorをexactに計算する方法において、このように因果グラフを から へと逆向きに情報が伝搬してゆくことを計算できる。これが確率伝搬belief propagationというものだ。

確率伝搬の過程は因子グラフで計算されたそれぞれの変数の確率が互いに影響を与えながら収束してゆく過程であり、この生成モデルの同時確率が収束する過程は自由エネルギーの最小化として表すことができる。あーそーゆーことね 完全に理解した(<-わかってない)

(追記)調べてみた。確率伝搬での自由エネルギーはベーテ自由エネルギーといって、変分自由エネルギーとはべつものだった。Fristonグループの論文ではde Vries and Friston 2017がactive inferenceの因子グラフについて議論している。そこでbelief propagationについてのベーテ自由エネルギーの最小化を、active inferenceとは別の自由エネルギーの定式化として言及している。両者の数学的な関係については何も言ってない。ベーテ自由エネルギーのほうは F = U - H と書いたうえで、Uが内部エネルギーとして意味のある形になっているので、物理的な自由エネルギーとの対応という意味では、こちらのほうが大事っぽい。

[3-3-4. の最小化ができたときの近似]

こうしてagentは をアップデートすることによって を最小化することができる。 となるような が見つかるとき、

が成り立つ。これを時刻tのときの値と比較してみよう。

式(c3)を変形して式(6)を代入すると、

となる。つまり、 でないかぎり、 が成り立つ。

図3-6の例を見直してみれば、たしかに、surprisalは時点 から で から に増えていた。単純な例ではあるけど「FEPに従うとFはどんどん小さくなる、そして最終的には完全平衡状態、つまり死に至るのだ」なんてことは無いということがわかる。時間経過に伴って観察データの数が増えてゆくので、過去の推測も加味した場合の は増えてゆく一方だ。むしろ、最適なperceptionをすることによって の増加を食い止めている、というのが実情だといえよう。なお、いまの単純なモデルでは忘却を考慮に入れてないのでsurprisalの項は増えてゆく一方だが、完全な記憶が無い場合には、surprisalの項は時間的になんらか定常状態になることが想像できる。


[3-4. 行動のモデルの一歩手前:推測 の代わりに感覚入力 を変える]

サブセクション3-3では、時刻 に感覚入力、時刻 に感覚入力 が与えられるという状況だったが、これがすでに行動のモデルの一歩手前まで来ている。図3-5で扱った、時刻 と時刻 を独立した扱うもの(post-dictionなし版)についてもう一度考えてみよう。

時刻 では感覚入力 (右上になにかあるっぽい画像)が与えられて、そのとき外界の状態の推定()は「蝶がいる」 で「蛾がいる」 だった(図3-3A)。次に時刻 では感覚入力 (右上に蝶がくっきり見える画像)が与えられて、そのとき外界の状態の推定()は「蝶がいる」 で「蛾がいる」 だった(図3-3B)。このシークエンスを時刻 から時刻 で視線を右上に動かした結果として捉えて直してみる。

式(3-3)の の式は のみの関数だった。これは感覚入力 がすでに与えられた観察データであり定数であるからだった。でも未来の感覚入力 なら行動(視線を右上に動かす)によって変えることができる。そのように考えて の式を 未来の感覚入力 の関数と捉えてみると式(3-13)のように書ける。

これで を下げるためには を変えるだけでなく、行動によって未来の を変える方策もできた。図3-7Aにあるように、時刻 では感覚入力として が与えられている状態で、 から に動かすことで になって を最小化した(1)。そこからさらに を下げるためには を固定して、 を変える方策がある。もし をサンプルした場合には(2)のように を下げることができて、さらに(3)のように まで動かすことによって を下げることができる。

EFE3_07d.png

図3-7: 感覚入力sを変えることでFを下げる


しかしagentができることは正確には を変えることではなくて現在の行動選択 (左下を固視)または (右上を固視)なので、 の両方の可能性がある。もし をサンプルした場合にはわずかではあるが は大きくなってしまう。(最終的には(4)によって を下げることはできるのだが。)

(2)でなにをやっているかもう少し説明してみよう。 になったからsurprisalを下げるような を選択すれば良いと思うかもしれないが、そうはいかない。なぜなら式(3-13)のとおり、 の関数なので、 を保ったままSurprisalを下げることはできないから。

そこで代わりに下のBayesian surprise + Uncertaintyの式を使う。Bayesian surpriseは に依存しないので、Uncertaintyが下がるように を変えてやれば、現在の をさらに低くすることができる。

このことは、 についてUncertaintyをプロットしてみるとより明確になる(図3-7B)。 を固定して、 を変えると、 ではUncertaintyが下がるが、 では上がる。Bayesian surprise(緑)は に依存しないので、 の違いはUncertaintyの違いに等しい。

以上の考察から、VFEの枠組みでは、行動選択は未来のUncertaintyの値の評価によって決まるらしいということがわかる。このことがのちほど4-4-10で議論する期待自由エネルギー の見直しという点で関わってくる。

このサブセクションでは、行動 をモデルに組み込む一歩手前の簡易的な説明を行った。行動とは感覚入力を変えることであるという直感から、VFEの式でも行動の説明ができそうだということを示した。行動についてのより正確な取り扱いは次のSec.4で行う。


2019年04月21日

自由エネルギー原理入門(2/7): Sec.2 自由エネルギー原理の前提、世界設定

最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。


Sec.2 自由エネルギー原理の前提、世界設定

[2-1. 前置き]

さてこれからがいよいよ本番、自由エネルギー原理(Free energy principle, FEP)についての説明を行ってゆく。FEPはUCLのKarl Fristonが提案している、知覚と行動と学習の統一原理だ。2005年のPhilos Trans R Soc Lond B Biol Sci.論文から始まって、現在まで理論的にも進歩を続けている。このうちの最新バージョンがFriston et. al. Cogn Neurosci. 2015で提案されるようになったものだ。

この最新バージョンでは、自由エネルギー原理FEPはこれまでに用いられてきた連続的な時間での表現とは別に、部分観測マルコフ決定過程POMDPにもとづいた離散的な時間で表現されるようになった。これによってFEPによれば、われわれagentは「現在の外界の状態を推測する際の(情報理論的)変分自由エネルギー (variational free energy VFE)を最小化するように知覚する」だけでなく「未来の外界の状態を推測する際の(情報理論的)期待自由エネルギー (expected free energy EFE)を最小化する行動を選択する」というように、我々の知覚と行動が定式化されるようになった。

この文書の以下のパートでは、この期待自由エネルギー をどのように導いているかについて、以下の論文を参考にまとめてみた。Fristonの論文では省略されているような、式の導出における前提について、なるたけ詳しくまとめてある。これだけ詳しいものはないのではないかという自負はあるが、それゆえに独自解釈になっている可能性もある。いったんこの文書を理解したならば次は原著論文の方に当たっていただきたい。

References

  • Friston et. al. Cogn Neurosci. 2015 EFEの初出。
  • Friston et. al. Neural Comput. 2017 EFEについてのスタンダードな記述。
  • Schwöbel et. al. Neural Comput. 2018 Predicted free energyの概念の提案。
  • Parr and Friston bioRxiv 2018 Generalized free energyの概念の提案。
  • Gershman arXiv 2019 VFEとEFEについての的確な整理。
  • Katahira et. al. PsyArXiv 2019 単純な例によるEFEの計算とretrospective surpriseの概念の提案。

[2-2. 自由エネルギー原理における世界設定]

この説明では、単純化した世界設定を用いるが、式変形においてはなるたけ近似は使わない(近似の導入をなるたけ遅らせる)という方針で行く。記号は私の以前のスライドにあるものを踏襲する。(マルコフ意思決定プロセスで使われるobservation とstate や機械学習で使われるobserved variable とhidden variable ではないので、置き換えて読んでほしい。)

本説明ではどのように および を計算するかだけを取り扱う。じっさいに生物が および を下げてゆく過程(微分方程式が必要な部分)についてはsec.1の最後で少々言及したが、以降は扱わない。

まず基本的な設定から説明しよう。

EFE2_01.png

図2-1: 基本的な設定


われわれagentは外界の中に存在していて、感覚入力 と行動 を通して外界とつながっている(図2-1A)。現在観察している感覚入力 は世界の状態 から因果的に引き起こされる。Agentは世界の状態 には直接アクセスすることができない。Agentは行動 によってこの を変えることができるし、 を変えて、その変化を への変化として観測することもできる。このようにして、外界のうち、agentとの相互作用に関わっている部分が「生成プロセス」だ。

[2-3. 生成モデル と推測]

Agentはこの生成プロセスを持っているのではなくて、それを経験から学習した「生成モデル」 を持っている。生成モデルは外界にある生成プロセスと同様に の間での因果関係のグラフ構造として表現される。このグラフ構造は

と条件付き確率の掛け算として書くことができる。図2-1Aにある矢印の関係ををより明確にするために、図2-1Bでは因子グラフ(factor graph)を使って黒四角で表示している。つまり生成モデルの本体とはこのような変換器 であり、中に入っている変数 はまだ特定されていない。

(このことを明示するためには と大文字 で表記して、特定された値と区別することもできる。ここでは式(1)の表記を使う。)

( は生成モデルのことを指し、一般的な確率 はべつものとして表記する。)

さらにagentは、時々刻々変化する についてその時その時の推測 を同時確率として持っている。つまり点推定ではなく、不確定性込みで確率的な表現をしている。推測 はただの同時確率であり、生成モデル のような因果的グラフ構造は持ってない。

Sec.1でも書いたように、推測 とはtrue posteriorを推定するapproximate posteriorであるので、 の中身は潜在変数が入る。よってじっさいの の変数は、生成モデルのうちなにが潜在変数であり、なにが観測データであるかによって決まる。

(POMDPなどの強化学習の文脈では、 を信念beliefと呼ぶけれど、ここでは知覚も含めるので「推定」と呼ぶことにする。)

Agentはイマココの潜在変数( のどれか)を推測するように その同時分布(=推測 )を時々刻々アップデートさせてゆく。

このようにして、脳の中で行っていること(図2-1A)を生成モデル と推測 とに分けたうえで(図2-1B)、その間で定義される変分自由エネルギー と期待自由エネルギー を最小化するように の分布の形をアップデートさせることが知覚( の推定)であり、行動選択( の推定)である、というのが自由エネルギー原理だ。ではどうやって, を定義するか。これがこの文書のメイントピックなので、これから順を追って説明してゆく。

なお、推測 だけでなく生成モデル を変えることによって自由エネルギーを下げることはできるが、ここでは考慮しない。つまり生成モデル は時間によっては変化しないものとする。本当は学習などによって変化しうるけど、話を簡単にしておきたいので。

[2-4. このモデルの含意]

脱線、というかある意味こちらが本題として、このモデルの含意、というか世界観についてコメントしておきたい。

正確を期すならば、ほんとうは外界がこのような因果グラフであるわけではない。あくまでagentが認識によって外界を切り分けて、因果で繋いだものを生成モデルとして持っているだけだ。外界はもっと多様で、その中で生成モデルとして切り分けることができたものを外界に投射し直したものが生成プロセスである、というほうが正しいだろう。人間には人間の、カエルにはカエルの生成モデルがある。

そういう目で見ると、推測 と生成モデル というのは、外界を という「対象」を切り分けてきたのが推測 であり、 を繋ぐ「プロセス」を切り分けてきたのが生成モデル である、という整理ができる(図2-1B)。つまり、推測 には因果グラフの矢印はないし、生成モデル は逆に矢印だけであって、中身の は推測 が決まるまでは空っぽだ。これは以前私が書いたブログ記事での、ベイトソン(さらにデビッド・マー)がいう「表象」と「プロセス」そのものであることがわかる。

生成モデル を関数と捉えるならば、推測 がそこに代入される変数だと言える。たとえば生成モデルが1次関数 として記述される場合には、推測 とは のことだ。では関数のパラメーター(ここでは )は何になるだろうか?それが生成モデルのそれぞれのパーツを特定する行列のことだ。(たとえば図1-1Cでの事前分布をきめる および観察モデルをきめる ) これらは学習によってゆっくりと調整されうるstateだから、生成モデルである黒四角に入力するstateとして、生成モデルから追い出すことができる。同様に、生成モデルがなんらかの確率モデルとして記述される場合であればその形を決めるハイパーパラメータがある(たとえば正規分布なら平均 と分散 についての事前分布 、そしてどの確率モデルを採用するか、たとえばガウス分布なのかそれとも別のものか、の情報)。これらも生成モデルへ入力するstateと捉えることができる。このようにして生成モデルの中からstateを呼ばれうるものをどんどん外に出してゆけば、生成モデルの実体とは、どのstateを入力して、どのようにその入力を組み合わせた演算をして、どのstateを出力するか、という矢印の結節点という「関係」だけが残る。

(この説明には図が必要。)

以上のことからも、agentが内部に外界を構成する(弱い意味での表象)をする際には、推測 と生成モデル の両方が、リアルタイムで必要であるということがわかる。つまり、推測 とはイマココのstateについての推測であり、生成モデル とはイマココのprocessについての推測であるのだ。 これは神経回路学会誌の「自由エネルギー原理と視覚的意識」で書いた議論を補強するだろう。

以上。それでは話を本題に戻す。

[2-5. この文章の最終目標: 現在、過去、未来を統一的に捉えた説明]

図2-1に示した生成モデルには時間が入っていなかった。生物の知覚と行動をモデル化するためには時間を考慮した生成モデルが必要だろう。そこで図2-2には現在、過去、未来を入れた最小限の生成モデルを考えてみる。(それでも複雑なので、ここでは因子グラフではなくて、因果グラフで表示してある。)

EFE2_02.png

図2-2: 時間を考慮した生成モデル


話を簡単にするために、現在、過去、未来 の3つの時点だけを考える。部分観測マルコフ決定過程POMDPを仮定しているので、離散的な時間で、直前の状態のみから現在の状態が決まる。そして現在及び過去の感覚入力 だけが観察データで(灰色丸で表示)、あとはみな潜在変数(白丸で表示)として推定する必要がある。

現在観察している感覚入力 に基づいてその原因となる外界の状態 は直前の状態 と以前の行動 から決まる。つまり自分のstateというものを持っている。それに対して感覚入力 はそのときの外界の状態 と直前の行動 によってそのつど因果的に決まる。つまり感覚入力 は自分のstateを持っていない。(なんだか仏教の知覚感を模しているかのようだ。)

この文書の最終目的は、このような現在、過去、未来を統一的に扱う自由エネルギー原理の式を導出することだ。たとえばそれはSchwöbel et. al.のNeural Comput. 2018で扱われている。でもいきなりでは難しいので、次のセクション3では、この生成モデルのうち、部分部分を切り取ったうえで、それぞれどのようにモデル化してゆくかを順番に見ていくことにする。


2019年04月20日

自由エネルギー原理入門(1/7): 変分自由エネルギー VFEの定義

今年の生理研研究会は「認知神経科学の先端 脳の理論から身体・世界へ」と題して、自由エネルギー原理(Free-energy principle, FEP)をテーマに9/2に開催。これに先立つ8/31-9/1には「脳の自由エネルギー原理チュートリアル・ワークショップ」というタイトルでFEP入門のためのレクチャーとハンズオン。

これらに向けてFEP入門の資料を作りました。今日はその第1回。「Sec.1 変分自由エネルギー VFE の定義、基礎」です。これから数日かけて連続してポストして、最終版はPDFでアップロードします。これを使って予習してみてください。

参加募集開始は連休明けの予定。もう少々お待ちください。

最新版のPDFファイルが最後のエントリ:「自由エネルギー原理入門(7/7): 「Sec.0 自由エネルギー原理を数式無しで説明する」を追加」にあります。このPDFファイルを最新版としますので、これから読む方にはPDFファイルでの閲覧をオススメします。


[Sec.1 変分自由エネルギー VFE の定義、基礎]

このセクションでは、変分自由エネルギー VFE について、教科書的な定義と基礎についてまとめてみた。ちゃんとした説明のためには「パターン認識と機械学習(PRML)」の10章とかの機械学習の教科書を読んでみてほしい。

だいたい知っている人のためにまとめておくとこのとおり:以降のセクションを読むために理解していほしいことはたった二つだ。(a) 変分推定を使うためには、問題となっている状況の生成モデルがどういう構造になっているかを因果グラフ、因子グラフを用いてきっちり決めてやる必要がある。(b) そのうえで、変分自由エネルギー を定義するためには、なにが観測データで、なにが潜在変数を理解して、あとはそれは式(5)に代入すれば一意に決まる。

[1-1. ベイズ推定とは]

そもそも変分自由エネルギー variational free energy VFE とはなにかというと、変分推定を行うときに使われる値だ。変分推定というのはある種間接的な推定法なので、それの前にもっと直接的な推定(ベイズ推定)について説明する。ベイズ推定というのは確率論的な推定法だ。

まず問題設定はこうだ。観測データ ( :窓ガラスが濡れている or :窓ガラスが濡れていない)と 潜在変数 ( :外は雨が降っている or :外は雨が降っていない) がある。いま窓ガラスが濡れている、を観測した()。このとき外が雨が降っている確率 を推定したい。これだけだと問題の解きようがないから、潜在変数 (雨が降っているかどうか)という原因が観測データ (窓ガラスが濡れているかどうか)という結果を引き起こすときの関係を、これまでの経験から、両者の同時確率 として持っている。この同時確率のことを生成モデル と表記する。

EFEc01.png

図1-1: 窓ガラスYから降雨Zを推測する


このときの潜在変数 と観測データ の因果関係を有向グラフで表したのが図1-1Aの因果グラフ。両者をつなぐ関係が生成モデル となっている。生成モデルは同時確率なので、具体的な例としては図1-1Cのような2x2の行列で表すことができる。同時確率なので、4つのセルの確率を全部足すと1になる。

しかし図1-1Aでは生成モデル および に対する関係がよくわからないので、それを明示したのが図1-1Bの因子グラフ。このような表現にすると、生成モデル は の事前分布である から を生成する観測モデル に分けることができる。こうすると図1-1Cにあるように、生成モデルの意味もわかりやすい。事前分布 からわかるように、そもそも雨が降る確率は低い。また、観測モデル からわかるように、雨が降ってなくても()、窓ガラスが濡れている可能性はある()。

いま知りたいのはある のときの の確率分布 だから、ベイズの法則が使える。

このようにして、生成モデル から事後分布(以下true posteriorと呼ぶ) を計算するのがベイズ推定だった。

(なお。以下のすべての説明で、総和の記号 のみで説明できる状況の話だけをする。積分記号 は出てこない。つか積分記号嫌い。)

[1-2. 変分推定とは]

しかし、式(1)は分母で全ての可能な潜在変数 で足し算をするという作業が入っている。そんな事できないときもあるし、現実的な場面での応用では生成モデル は変数が多くて計算量的に難しいという事情もある。そこで使われる近似的方法が変分推定だ。

True posterior を直接計算する代わりに、それを近似する確率分布として推測 というものを設定する。(どちらも全ての で和を取れば1になるようになってる。) 推測 の分布の形を変えて、true posterior に一致させることができれば、true posterior を計算できたのと同じことだ。

このために、推測 とtrue posterior というふたつの確率分布の近似度を計算する指標としてカルバック・ライブラー距離 (以下KL距離, KLDと略する)というのを使う。

はすでに観察されて確定している値で、 で総和をとっているから、KL距離は の分布の形だけによって決まる定数だ。もし推測 とtrue posterior が完全一致していたらKL距離は0になる。それ以外は>0となってる。(距離とはいうけど逆向きは同じ距離ではないので、式変形で の中身は交換したりとかはできない。)

[1-3. KL距離の最小化]

しかしこのKL距離が直接計算できるならいいのだが、それができるなら直接true posteriorを計算すればいいだけ。しかしKL距離を式変形すると、式(3)のようになる。(式変形では を使っている。)

左辺は観測データ が生成モデル のもとでどのくらいの確率であり得るかというevidence のlogをとったものなので、log evidence (周辺対数尤度)と呼ぶ。なお、 はただの観測データ の出現確率 では無いことに注意。いまある生成モデルに基づいてのデータの出現確率だから、尤度likelihoodなのだ。このことを明示するためにこの生成モデルに という名前をつけて、 と表示することもあるがここではやらない。そのかわり、生成モデル とただの確率 を分けて表示している。

でもって、このlog evidneceというやつはlogの中身が確率だから、かならず負の値を取る。(実際に観測されたデータだから、 にはならない。) そして右辺の第2項はKLD だから、第1項はlog evidenceよりも必ず小さい。

よって、この第1項はlog evidneceの下限になっている。そこでこの第1項はEvidence lower bound, ELBOと呼ばれる。そして変分自由エネルギー とは と単に符号逆転させただけのものだ。(ELBOはlog evidneceよりも小さいのだから、必ず負の値だ。ということは変分自由エネルギー はかならず正の値。)

[1-4. ちょっと脇道]

ちょっと脇道。といいつつここからが面白い。以上のことからわかるのは、以下のリストが全部同じことだという点だ。
  • (1) ベイズ推定をする
  • (2) true posteriorを計算する
  • (3) 推測 をtrue posteriorに一致させる
  • (4) KL距離を0にする
  • (5) ELBOを最大化する
  • (6) 変分自由エネルギー を最小化する
  • (7) 周辺対数尤度 を最大化する

ただし、生物が扱うような複雑な状況においては、これらすべてを完全に実現することはできない。よって、どこかで近似が入ってくることになる。

自由エネルギー原理についての議論で、どれが目的でどれが結果か、どれがなにを近似しているのか、といった問題を理解するためには、この関係について考えればいい。

たとえば暗い部屋問題というのがある。自由エネルギー原理では (6) を最小化することが生物の目的だというが、それだったら、(7’) 一番ありうる観測データをサンプルすればいいのだから、暗い部屋にじっとしていればいいじゃん、という議論。でもこれは(7)の解釈が間違っている。(7)は生成モデルの元での尤度なのだから、暗い部屋という観測データの出現確率が高い生成モデルをあらかじめ獲得していない限り、これは成り立たない。(だから、冬眠する動物は暗い部屋を選ぶ。我々だって夜は暗い部屋を選ぶ。)

それよりは、ネット言論がタコツボ化することについて当てはめる方がまだ尤もらしいだろう。つまり、我々は自分の持論(=世界についての生成モデル)を持っていて、それをより補強するデータばかり観測しようとする。だからネット言論ではみな自分が聞きたい意見ばかり集めるようになって、分断はより強調されていく。これは自由エネルギー原理から説明できる。なんだってー!

あと、ベイズ脳と自由エネルギー原理の関係についてもどちらが原因でどちらが結果かは自明でない。議論A: 「(1) われわれ生物はベイズ的に情報処理をしているんだ、というのが先にあって、そのための近似法として (6) 自由エネルギー最小化 をするように脳と身体を進化せさせてきた」という議論もあれば、議論B: 「(なんらかの生物学的拘束条件から) (6) われわれ生物は自由エネルギー最小化をするようになっていて、その結果として (1) 行動や知覚でベイズ推定をしているように見えている」ということかもしれない。Friston自身は(6)を自由エネルギー「原理」と呼んだうえで、(1) をベイズ脳「仮説」と呼んでいるので、後者の議論に基づいていると考えるのが筋が通っていると私は思うのだが、Fristonの発言自体はそのつど言ってることがブレているように思う。

[1-5. 変分自由エネルギーとは]

そういうわけで、変分自由エネルギー variational free energy VFE は式(5)のとおりに定義される。

(ここまで観測データに具体例での を使ってきたが、ここからは一般性を出すために、 を使う。しかしこれまでのことからわかるように、 はすでに確定した一つのデータで、 とりうる値を全部並べた変数になっている。おなじ変数みたいに見えて別ものなのだ。慣れた人にとっては当たり前だろうけど、私はこれが馴染むまで相当時間がかかった。)

(ここでは期待値の記号として を使っている。下付き文字の期待値で重み付けして、その期待値の変数 で和をとる。たとえば というふうに。)

ここで第2項は(sensory) surprisalと呼んでいる。この値はlog evidenceの符号逆転で、必ず正の値になっている。得られた観測データが現在の生成モデルに基づいて予想外であれば、 はより小さくなるので、surprisalは大きくなる。Surprisalはシャノンのself informationとも呼ばれる。これをsurpriseと呼ぶこともあるが、次に出てくるBayesian surpriseとの区別のために、この文書ではsurprisalという言葉で統一させてもらう。

[1-6. 実例で変分自由エネルギーの最小化を見てみる]

それでは、図1-1に出した例を使って、推測 を変化させながら変分自由エネルギー の最小化をシミュレーションしてみよう。まず、先に正解をカンニングしてしまうと、図1-1の生成モデル からtrue posteriorを直接計算して、

となる。よって、 (窓ガラスが濡れている)のとき、 (雨が降っている)の確率は53%程度だ。事前分布 であったことを考えると、窓ガラスが濡れている、という観察はinformativeであったことがわかる。

では を変化させてみよう。ここで の形を変えると言ったが、実のところ、 が決まれば、 も決まる。そこでパラメーター の範囲で動かして を計算してプロットしてやる。すると図1-2のとおりになった。

EFEc03b.png

図1-2: 変分自由エネルギーVFEの最小化


の初期状態は事前分布 と等しいと考えてやれば、 からスタートするのが妥当だろう。このとき、

となっている。ここから が小さくなる方に を動かしていくと、

となる。 が最小化された状態では、 となっている。この は直接true posteriorを計算した結果の と同じになっていることが確認できた。

そういうわけで、変分自由エネルギーを最小化することで、true posteriorを近似できるということが確認できた。自由エネルギー原理では、脳はこのようなやり方で観察データ(感覚入力)から潜在変数(外界の状態)を推定していると考える。以降のセクションでは、より知覚や行動に似せた状況での生成モデルを構築して、どのように が計算されるかを見てゆく。

なお、図1-2を見れば想像がつくように、もし の曲線がlocal minimumを持っていたら、そこで停まってしまって、正しいtrue posteriorが計算できないであろうことも想像がつく。そして、もっと複雑な生成モデルではそのようなことはいかにも起こりそうだ。

[1-7. このセクションで言いたかったこと]

長々と書いてきたが、以降のセクションを読むために理解していほしいことはたった二つだ。(a) 変分推定を使うためには、問題となっている状況の生成モデルがどういう構造になっているかを因果グラフ、因子グラフを用いてきっちり決めてやる必要がある。(b) そのうえで、変分自由エネルギー を定義するためには、なにが観測データで、なにが潜在変数を理解して、あとはそれは式(5)に代入すれば一意に決まる。

ではこのセクションのおさらいを兼ねて、新しい生成モデルでこの二つの作業をやってみよう。図1-3Aではさきほどの図1-1の状況にひとつだけ要素が加わっている。図1-1Aでは、観測データ 「窓ガラスが濡れているか」、潜在変数 「雨が降っているか」の二つの要素だけがあった。図1-3Aではこれに加えて、潜在変数 として「スプリンクラーが作動しているかどうか」がある。この図ではスプリンクラーの動作は雨が降るかどうかとは無関係にしてある。(もし、雨が降ったときはスプリンクラーは動かさない、という因果関係を設定した場合には、 から への矢印も必要になる。)

EFEc02.png

図1-3: 窓ガラスYから降雨Zとスプリンクラーの動作Yを推測する


このような関係を因子グラフにすると図1-3Bになる。観察モデル は二つの入力を受けて一つの出力を出すように変わった。ゆえに、雨が降っているかいないか とスプリンクラーが動作しているかいないか の4通りの組み合わせ )について、窓ガラスが濡れているかどうか の確率を知っている、これが観察モデル だ(図1-3C)。

するとこのときのVFE を計算するためには、観察データ と潜在変数 を式(5)の中に入れてやればいい。

その結果が式(9)だ。つまり、式(5)で だったところが、 になっているだけ。つまり、複数の変数は同時確率としてカンマつけて並べておけばいい。


お勧めエントリ

  • 細胞外電極はなにを見ているか(1) 20080727 (2) リニューアル版 20081107
  • 総説 長期記憶の脳内メカニズム 20100909
  • 駒場講義2013 「意識の科学的研究 - 盲視を起点に」20130626
  • 駒場講義2012レジメ 意識と注意の脳内メカニズム(1) 注意 20121010 (2) 意識 20121011
  • 視覚、注意、言語で3*2の背側、腹側経路説 20140119
  • 脳科学辞典の項目書いた 「盲視」 20130407
  • 脳科学辞典の項目書いた 「気づき」 20130228
  • 脳科学辞典の項目書いた 「サリエンシー」 20121224
  • 脳科学辞典の項目書いた 「マイクロサッケード」 20121227
  • 盲視でおこる「なにかあるかんじ」 20110126
  • DKL色空間についてまとめ 20090113
  • 科学基礎論学会 秋の研究例会 ワークショップ「意識の神経科学と神経現象学」レジメ 20131102
  • ギャラガー&ザハヴィ『現象学的な心』合評会レジメ 20130628
  • Marrのrepresentationとprocessをベイトソン流に解釈する (1) 20100317 (2) 20100317
  • 半側空間無視と同名半盲とは区別できるか?(1) 20080220 (2) 半側空間無視の原因部位は? 20080221
  • MarrのVisionの最初と最後だけを読む 20071213

月別過去ログ