自由エネルギー原理について調査中

機械学習について調査している中で脳のしくみについての仮説を知った。
自由エネルギー原理である。

## 自由エネルギー原理とは

>「自由エネルギー原理」とはKarl Friston氏によって提唱された認識・行動についての適応理論であり、環境に対する予測可能性を上げるという原理によって、認識だけでなく行動も生成されるとする仮説に従った脳の理論です。

引用元 http://www.nips.ac.jp/~myoshi/nins_tutorial2019/

## この理論に深く興味を覚えている理由：

- 能動的推論
    - 生き物による知覚が受動的なものではないということをきちんと定式化している。
    - どのように感覚器の元になる外部の隠れ状態を感覚器の信号から推測する仕組みを脳がどのように作り上げることができるのかを説明しうる。
    - 多くの深層学習のように推論predict()と学習fit()が別個の枠組みになっているのではなく、一つの神経回路の中の動作として記述されている。
- 運動も知覚も同じ枠組みで説明できること。 
    - 生物が新規の機能を実現するために新規の器官を発明することはほぼほぼない。
    - 既存の器官に対して新しい使い方をすることで、新しい機能を実現するのがほとんどだ。**使い回しだ**。
    - そう考えれば、知覚と運動が神経回路網という**同じ土台**を使っていながら、その原理が違っていることの方が不自然だ。運動も知覚と同じ枠組みで説明されることはとてももっともらしい。
- 運動における「逆モデル」を必要としない。
    - 目的の動作を実現させるために、各関節の動きを制御するように、各筋肉をどのように伸縮させるべきかを、コップをつかむという動作の中で、明示的に上位のレイヤーで指示を与えるというのは、 考えにくいのだ。
    - ロボットの分野では、﻿[逆動力学](https://www.jsme.or.jp/jsme-medwiki/14:1002751)とか、逆運動学とか呼ばれるアプローチだ。
    - [MATLAB および Simulink による逆運動学 (IK) アルゴリズムの設計](https://jp.mathworks.com/discovery/inverse-kinematics.html)
    - [逆運動学のアルゴリズム](https://jp.mathworks.com/help/robotics/ug/inverse-kinematics-algorithms.html) に書かれているような手法をロボットの分野は実現している。

- 運動を実現するときに、局所的な情報を元に制御を可能にしている。
    - 自由エネルギー原理で提案する感覚信号の予測値という値というのは、感覚信号と比較しやすいものだし、比較して自然なものだ。
    - 神経という存在を考えたときに、同時に多数の量をglobal変数のように参照できるというのは考えにくい。
    - ある感覚器にとっての1kgの力の感覚値が、別の感覚器での1kgの感覚値が、神経回路網の中で予め同じ値として表現されていると仮定するのは不自然なことだ。特別な理由がなければ、ある感覚器と別な感覚器で同じ値になるように校正されるプロセスはないだろう。
    - だから、global変数として、3つ以上の多数の力の絶対値を入力として計算するような計算式を用いて次の動きのための制御情報を計算する制御方式は、自然の神経回路での運動の制御方式には考えにくいと思っている。

- 今までにある情報理論・従来からの神経回路網の理論（例：[ヘッブの法則](https://ja.wikipedia.org/wiki/%E3%83%98%E3%83%83%E3%83%96%E3%81%AE%E6%B3%95%E5%89%87)) などからつじつまのあうものであること。
    - 情報分野でのエントロピー理論などや、従来からの神経回路網の理論に対して、この自由エネルギー原理が自然な拡張になっているように見えること。

- この理論が、計算可能な理論であること。
    - 知覚の形成・運動の分野について、計算して示すことができる理論であること。

これらの理由から、自由エネルギー原理について関心を持っている。


slideshare [よくわかるフリストンの自由エネルギー原理](https://www.slideshare.net/masatoshiyoshida/ss-79082197)

このスライドの中で、興味を覚えた部分：
　人の視覚で解像度が高い領域は中心窩に限られている。そのため、視覚の入力として入っている情報は実際には、周辺部でぼやけた画像になっている。ぼんやり見えている蝶か蛾かはっきりしない領域に視線を向ける。視線を向けることで蝶であることが判明する過程を自由エネルギー原理の仕組みで解説している。

slideshare [感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and Free Energy Principle)](https://www.slideshare.net/masatoshiyoshida/slideshare3-85265433)

## どうやって隠れ状態を推測するのか
ある感覚値が得られたときに、その感覚値を引き起こした隠れ状態を推測することによって、外界を理解してている。
人工的な画像認識システムの表現に直すと、ある画像が得られたときに、その画像を生じさせた対象物・光源・配置などの隠れ状態を推測している。
以下は、人工的なシステムに限って話を進めてみる。
画像から隠れ状態を推定し、その隠れ状態から予測画像を作って元画像との差を評価する。
そういう流れがある。深層学習に詳しい人は、これに似たものを知っているはずだ。
Autoencoderである。元画像にCNNを実施して、パラメータを減らした後に、そのパラメータから画像の復元を行い、元画像との差分が小さくなるように訓練する。それがAutoencoderだ。

AutoEnoderで抽出したパラメータが、隠れ状態との何らかの関係をもっていると解釈すれば、両者は対応がつくものになる。
 
書籍の中では「なぜ逆光学で隠れ状態を推論できるのか、なぜ予測値が算出できるのか」がわかりにくかったが、Autoencoderが関係していると考えれば、理解しやすくなる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/4fbb493f-17cd-417b-555a-86022e8b4783.png" width="320">


![Screenshot from 2023-05-08 17-02-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/cdf38f98-e8f3-e284-661d-e424718b9c38.png)


乾　敏郎 著 , 阪口　豊 著[「自由エネルギー原理入門知覚・行動・コミュニケーションの計算理論」](https://www.iwanami.co.jp/book/b593229.html)

乾　敏郎 著 , 阪口　豊 著[脳の大統一理論 自由エネルギー原理とはなにか](https://www.iwanami.co.jp/book/b548871.html)

[『能動的推論　　心、脳、行動の自由エネルギー原理』トーマス・パー 著、ジョバンニ・ペッツーロ 著、カール・フリストン 著、乾　敏郎 訳](https://www.minervashobo.co.jp/book/b607093.html)

Youtube
<iframe width="560" height="315" src="https://www.youtube.com/embed/NIu_dJGyIQI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>



- [シンギュラリティサロン講演記録「自由エネルギー原理と視覚的意識」2019-06-08](https://www.youtube.com/watch?v=VPHZDYps4Gk)
54 分ある長めの動画です。
眼の中心窩付近だけが分解能を高い人の視覚で、どのように見ていてるのかを
どのように能動的推論をしている解説しているものです。


関連記事
以下の方々も自由エネルギー原理に関する記事を書いています。私の記事より、しっかり書かれていますので、ご参考ください。

qiita [強化学習のための「自由エネルギー原理」概論](
https://qiita.com/NayuSato/items/2f54c75e7459c25c9528)
qiita [機械学習と🧠脳科学]
(https://qiita.com/mossan_hoshi/items/29391605eee23753c3f0)