Free EnergyによるAttention Control
落合、都築チーム

WBAIハッカソン報告

我々のやりたいことは何か？
Fristonの”Free Energy Principle”をANNとして実装する
Free Energy Principle by Friston

Artificial Neural Network
implement

”Free Energy Principle” とは何か？
環境中でのエージェントの学習、行動を決めるための枠組み
エージェントは，自身のFree Energy を最小化するよう内部状態と，行動を決定する

𝐹 𝑥, 𝜇 = −𝐸𝑞(𝑧|𝑥) log 𝑝𝜃 𝑥 𝑧 + 𝐷𝐾𝐿 [𝑞(𝑧|𝑥)||𝑝𝜃 𝑧 ]精度

複雑度

Internal state
𝜇 = arg min 𝐹(𝑥, 𝜇)𝜇

予測誤差を最小化するよう内部パラメータを学習（通常の生成モデル学習）

Internal state
𝜇 = arg min 𝐹(𝑥, 𝜇)𝜇Action(Attention)𝑎 = arg min 𝐹(𝑥, 𝜇)𝑎

予測誤差を最小化するよう内部パラメータを学習（通常の生成モデル学習）
予測誤差を最小化する行動を生成

予測＝注目(Active Inference)

”Free Energy Principle” の何が嬉しいか？
強化学習と比べて恣意的な報酬の作り込みがない広い範囲の現象に適用できる．

Fristonによる実装
行列計算（線形モデル）による解析的な実験

Fristonによる実装の問題点と改良案
単純な問題(Toy problem)にしか適用できない．
ANNで実装大規模かつ複雑な問題に適用できる

実装方針Free Energy Principle = Variational Autoencoder• Variational Autoencoder(VAE)は変分ベイズをニューラルネットで表現したもの• 変分ベイズではFree Energyを最小化している• Free Energyを内部パラメータ調節で最小化するNetwork＝Variational Autoencoder• ハッカソン：Active InferenceをVAEに追加• Active Inference=Free Energyを最小化する動きを生成することActive Inference Networkt=0
𝐼

𝑎t=1
𝐼

𝑎
Probabilistic

layer=0𝑎Action𝑥FC𝑥′𝑥FC𝑥′𝑧

Hidden state

𝑒𝑛𝑧

𝑑𝑒𝑒𝑛𝑧

𝑑𝑒𝑥

State(Bottom up)𝑥′State(expect)

𝑥𝑎FC

layer=1
𝑒𝑛𝑧

𝑥𝑥′
𝑑𝑒𝑎FC

𝑒𝑛𝑧

FC Action Network𝑥′𝑑𝑒𝑒𝑛 Encoder Network
𝑑𝑒 Decoder Network

Active Inference Networkのイメージ
layer3

ゴム紐
layer2In Brainlayer1layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1

layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1layer0Worldsensor

Active Inference Networkのイメージ
layer3layer2In Brainlayer1layer0Worldsensor

Active Inference Network

ハッカソン作成範囲

t=0
𝐼

𝑎

t=1
𝐼

𝑎
Probabilistic

layer=0𝑎Action

𝑥

FC

𝑥′

𝑥

FC𝑥′

𝑧

Hidden state

𝑒𝑛𝑧

𝑑𝑒𝑒𝑛𝑧

𝑑𝑒𝑥

State(Bottom up)𝑥′State(expect)𝑥𝑎
FClayer=1𝑒𝑛𝑧𝑥𝑥′𝑑𝑒𝑎FC𝑒𝑛𝑧

FC Action Network𝑥′𝑑𝑒𝑒𝑛 Encoder Network
𝑑𝑒 Decoder Network

Active Inference Network
Variational Autoencoder
t=0𝐼

𝑎t=1𝐼

𝑎
Probabilistic

layer=0𝑎Action𝑥FC𝑥′𝑥FC𝑥′𝑧

Hidden state

𝑒𝑛𝑧

𝑑𝑒𝑒𝑛𝑧

𝑑𝑒𝑥

State(Bottom up)𝑥′State(expect)

𝑥

𝑎
FC

layer=1
𝑒𝑛𝑧

𝑥𝑥′
𝑑𝑒𝑎FC

𝑒𝑛𝑧

FC Action Network𝑥′
𝑑𝑒𝑒𝑛 Encoder Network
𝑑𝑒 Decoder Network

Active Inference Network
Action

t=0
𝐼

𝑎t=1
𝐼

𝑎
Probabilistic

layer=0𝑎Action

𝑥

FC𝑥′𝑥

FC𝑥′𝑧

Hidden state

𝑒𝑛𝑧

𝑑𝑒𝑒𝑛𝑧

𝑑𝑒𝑥

State(Bottom up)𝑥′State(expect)𝑥𝑎
FClayer=1
𝑒𝑛

𝑧

𝑥𝑥′
𝑑𝑒𝑎FC

𝑒𝑛𝑧

FC Action Network𝑥′
𝑑𝑒𝑒𝑛 Encoder Network
𝑑𝑒 Decoder Network

WBAIハッカソンで何をやったか？
FEPを用いて，視線移動課題を解くエージェントを実装
環境

エージェント

ピクセル単位の移動

着目領域
𝑎dx = -1 or 1, dy=-1 or 1

𝐼

移動
𝑥FC𝑥′

𝑒𝑛𝑧𝑑𝑒

画像
MNIST画像を並べた空間(トーラス状に回り込み)

VAE+行動生成器

Step 0～100
予測画像

軌跡

スタート

Step 4000～4100
予測画像

軌跡

スタート

Step 4000～4100
予測画像

軌跡

スタート

Step 8000～8100
予測画像

軌跡

スタート

Step 8000～8100
予測画像

軌跡

スタート

Step 12000～12100
予測画像

軌跡

スタート

Step 16000～16100
予測画像

軌跡

スタート

Step 20000～20100
予測画像

軌跡

スタート

loss

Epoch(1Epoch = 100Step)LSTMを追加：Step 16000～16100
予測画像

軌跡

スタート

LSTMを追加：Step 16000～16100
予測画像

軌跡

スタート

LSTMを追加：Step 16000～16100
予測画像

軌跡

スタート

WBAIハッカソンでの結果学習が進むと，視線移動が停止した
スタート

Step 0～100

Step 16000～16100

学習ハッカソンの結果と課題①生物のモデルとして静止し続けるのは不自然②タスクの設計が，性能評価に適していない

What’s Next?

探索行動を取らせたい追加実験（ハッカソン終了後）

目標：探索行動を取らせたい

方針：Epistemic Value

Epistemic Value
In𝑃(𝑢|𝛾)
ො= 𝛾 ∙ 𝐐(𝜋)= 𝛾 ∙ 𝐐𝒕+𝟏 𝜋 + ⋯ + 𝐐𝑻 𝜋
𝐐𝜏 (𝜋)= 𝐸𝑄(𝑜𝑡 |𝜋) In𝑃 𝑜𝑡 𝑚

行動 𝑢ො の選択確率は𝐐𝜏 (𝜋) の時間総和+ 𝐸𝑄(𝑜𝑡 |𝜋) D 𝑄 𝑠𝑡 𝑜𝑡 , 𝜋 ||𝑄(𝑠𝑡 |𝜋)Extrinsic Value

Epistemic Value

予想（期待）している観測

隠れ状態の曖昧さ減少量“Active inference and epistemic value”, Kerl Friston, et.al

Epistemic Valueの近似
Epistemic Value
𝐸𝑄(𝑜𝑡 |𝜋) D 𝑄 𝑠𝑡 𝑜𝑡 , 𝜋 ||𝑄(𝑠𝑡 |𝜋)
サンプル１つで近似
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝜋 ||𝑄(𝑠𝑡 |𝜋)
方策 𝜋 を直前の行動で近似
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 )Epistemic ValueをいかにANNで実装するか？

マルチモーダルVAE

マルチモーダルVAE
隠れ変数（分布）𝑠𝑠

ニューラルネット
観測変数（分布）

𝑜𝑜1𝑜2

VAE

Multimodal VAE

マルチモーダルVAE(単純に可視層を分割)𝑠
学習（バックプロパゲーション）𝑜1𝑜2

ラベル

MNIST

0 0 1 0 0 0 0 0 0 0“深層生成モデルを用いたマルチモーダル学習”, 鈴木雅大

マルチモーダルVAE(単純に可視層を分割)
𝑠𝑜1𝑜2

ラベル
0 1 0 0 0 0 0 0 0 0“深層生成モデルを用いたマルチモーダル学習”, 鈴木雅大

マルチモーダルVAE
KLダイバージェンス
を近づけるKLダイバージェンス
を近づける

𝑠𝑠𝑠
学習（バックプロパゲーション）

𝑜1𝑜2

ラベル

MNIST
“深層生成モデルを用いたマルチモーダル学習”, 鈴木雅大

マルチモーダルVAE
𝑠𝑜1𝑜2

ラベル

MNIST

0 1 0 0 0 0 0 0 0 0“深層生成モデルを用いたマルチモーダル学習”, 鈴木雅大

マルチモーダルVAE(Epistemic Value用)
KLダイバージェンス
を近づけるKLダイバージェンス
を近づける

𝑠𝑠𝑠

𝑜1

𝑜2

𝑜𝑡 , 𝑎𝑡𝑜𝑡+1𝑜𝑡:現在の観測値:現在の行動𝑎𝑡𝑜𝑡+1 :次時刻の観測値

マルチモーダルVAE(Epistemic Value用)
𝑠𝑠𝑠𝑜1

𝑜2𝑜𝑡 , 𝑎𝑡𝑜𝑡+1

𝑄 𝑠𝑡 𝑎𝑡−1 , 𝑜𝑡−1

マルチモーダルVAE(Epistemic Value用)𝑠𝑠𝑠

𝑄 𝑠𝑡 𝑎𝑡−1 , 𝑜𝑡−1
𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1

𝑜1𝑜2

𝑜𝑡 , 𝑎𝑡𝑜𝑡+1

マルチモーダルVAE(Epistemic Value用)
𝑄 𝑠𝑡 𝑎𝑡−1 , 𝑜𝑡−1
𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1
Epistemic Value の近似値
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 )課題設定(論文の条件)
US(Unconditioned Stimulus)

CS(Conditioned Stimulus)

T字迷路

context“Active inference and epistemic value”, Kerl Friston, et.al課題設定(論文の条件)“Active inference and epistemic value”, Kerl Friston, et.al課題設定(今回の条件)
USUSCSCS• 位置情報の代わりに画像を入力• 報酬は左右どちらかの通路にある• CSを先に観測する必要がある

context“Active inference and epistemic value”, Kerl Friston, et.al課題設定(今回の条件)

1

2

3

4

隣接する状態でのみ変化“Active inference and epistemic value”, Kerl Friston, et.al実験方法
1. ランダムにアクションを取り 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 をサンプリ
ング
2. マルチモーダルVAEにサンプルを学習
3. 学習済みのマルチモーダルVAEの隠れ層を使いEpistemic Valueを計算

Epistemic Value １：上向きから左向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 0.501

Epistemic Value １：上向きから左向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 0.501
𝑄 𝑜𝑡 𝑠𝑡Epistemic Value 1：上向きから左向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 0.501
𝑄 𝑜𝑡 𝑠𝑡𝑄 𝑜𝑡 𝑠𝑡Epistemic Value 1：左向きから下向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 7.262

Epistemic Value 2：左向きから下向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 7.262
𝑄 𝑜𝑡 𝑠𝑡Epistemic Value 2：左向きから下向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 3.319
𝑄 𝑜𝑡 𝑠𝑡𝑄 𝑜𝑡 𝑠𝑡Epistemic Value 3：左向きから下向き
D 𝑄 𝑠𝑡 𝑜𝑡 , 𝑎𝑡−1 , 𝑜𝑡−1 ||𝑄(𝑠𝑡 |𝑎𝑡−1 , 𝑜𝑡−1 ) = 3.319
𝑄 𝑜𝑡 𝑠𝑡𝑄 𝑜𝑡 𝑠𝑡まとめ• Active InferenceをANNで実装（ハッカソン）• Epistemic ValueをANNで実装（追加実験）• 環境の中で観測する価値の高い場所で高い値を取ることを確認• 今後の発展• Extrinsic Valueの実装• 記憶を持ったモデルによるEpistemic Valueの計算

質問用

学習の工夫• アクションは3次元のone hotベクトル。そのまま使うと観測値（28*28次元）と次元の差がありすぎて無視される→100倍にカサ増し（同じベクトルの反復）して使用