脳の自律的プログラム合成機構のモデルに向けて：
２層ベイジアンネットによる
記号処理命令の獲得・実行機構
第15回 汎用人工知能研究会
2020-08-29

1

私の研究の中期的目標• ヒトの脳の前頭前野周辺の計算論的モデルの構築• 「前頭前野はヒトをヒトたらしめ，思考や創造性 を担う脳の最高中枢であると考えられている。」 「前頭前野 - 脳科学辞典」

http://bsd.neuroinf.jp/wiki/%E5%89%8D%E9%A 0%AD%E5%89%8D%E9%87%8E• 作業仮説：前頭前野は強化学習を用いたプログラム合成・実
行システム
運動野
前頭前野

言語野

視覚野

大脳皮質

基底核

扁桃体

海馬

小脳
2

目指しているもの「お客さんにお茶を出しておいて。」
しかし、お茶を入れる複雑な手順を人手でプログラムすることは不可能「手伝ってくれたらあとでご褒美あげるね。」
報酬を目的とした
自律的なプログラムの獲得

3

関連研究
• 記号ＡＩと強化学習の融合の試み：– RRL (Relational Reinforcement Learning), Dzeroski et al. 2001
• 強化学習と帰納論理プログラミングの融合• 行動価値関数を論理決定木に圧縮– DNC(Differentiable Neural Computers), DeepMind 2016
• NN でプログラムを表現、強化学習等で学習• 強化学習・プログラム合成によるＡＧＩの理論：– AIXI, Hutter 2000
– UCAI, Katayama 2018
• 我々のアプローチの特徴：– 神経科学、認知科学の知見との整合性を重視– ベイジアンネットを用いる
4

階層型強化学習RGoal を用いた記号推論の実現手法[一杉 et al.第12回 汎用人工知能研究会 2019]• 行動価値関数における「状態」を命題の集合で表現• 「行動」は「状態」（ワーキングメモリ）を更新• 命題の集合を固定長のベクトルで表現

P(a,b) ∧ Q(c) → R
P(a,b) → Q(c)P(a,b)
prolog による記述：
exist(yesterday, snack).
exist(yesterday, chocolate).
notEat(brother, chocolate).
exist(today,X) :- exist(yesterday,X), notEat(brother,X).
canEat(X) :- exist(today, X).
?- canEat(X).
X = chocolate.

: (P a b Q c O R O O)
: (P a b O O O Q c O)
: (O O O O O O P a b)
RGoal の行動価値関数による表現
Q((__,__,__,__,__,__,__,__,__), (__,__,__,__,__,__,__,__,__), Fail)
Q((__,__,__,__,__,__,__,__,__), (O,O,O,O,O,O,Exist,Yesterday,Snack), Set(O,O,O,O,O,O,Exist,Yesterday,Snack))
Q((__,__,__,__,__,__,__,__,__), (O,O,O,O,O,O,Exist,Yesterday,Chocolate), Set(O,O,O,O,O,O,Exist,Yesterday,Chocolate))Q((__,__,__,__,__,__,__,__,__), (O,O,O,O,O,O,NotEat,Brother,Chocolate), Set(O,O,O,O,O,O,NotEat,Brother,Chocolate))Q((__,__,__,__,__,__,__,__,__), (O,O,O,O,O,O,Exist,Today,x), Call(Exist,Yesterday,x,O,O,O,O,O,O))
Q((Exist,Yesterday,x,O,O,O,O,O,O), (O,O,O,O,O,O,Exist,Today,x), Call(Exist,Yesterday,x,NotEat,Brother,x,O,O,O))
Q((Exist,Yesterday,x,NotEat,Brother,x,O,O,O), (O,O,O,O,O,O,Exist,Today,x), Set(O,O,O,O,O,O,Exist,Today,x))
Q((__,__,__,__,__,__,__,__,__), (Exist,Yesterday,x,O,O,O,O,O,O), Call(O,O,O,O,O,O,Exist,Yesterday,x))
Q((O,O,O,O,O,O,Exist,Yesterday,x), (Exist,Yesterday,x,O,O,O,O,O,O), Set(Exist,Yesterday,x,O,O,O,O,O,O))
Q((Exist,Yesterday,x,O,O,O,O,O,O), (Exist,Yesterday,x,NotEat,Brother,x,O,O,O), Call(O,O,O,O,O,O,NotEat,Brother,x))
Q((O,O,O,O,O,O,NotEat,Brother,x), (Exist,Yesterday,x,NotEat,Brother,x,O,O,O),
Set(Exist,Yesterday,x,NotEat,Brother,x,O,O,O))
Q((__,__,__,__,__,__,__,__,__), (O,O,O,O,O,O,CanEat,x,O), Call(O,O,O,O,O,O,Exist,Today,x))
Q((O,O,O,O,O,O,Exist,Today,x), (O,O,O,O,O,O,CanEat,x,O), Set(O,O,O,O,O,O,CanEat,x,O))

5

パターンを用いた行動価値テーブルの圧縮[一杉 et al.第10回 汎用人工知能研究会 2018]
Y 0

1

2

3

4

パターン

値

2.0 1.0 1.0 3.0 1.0

(3,3)

4.0

1

1.0 2.0 1.0 3.0 1.0

(X,3)

3.0

2

1.0 1.0 2.0 3.0 1.0

(X,X)

2.0

3

1.0 1.0 1.0 4.0 1.0

(X,Y)

1.0

4

1.0 1.0 1.0 3.0 2.0

X0

テーブルのインデックスの代わりにパターンを用いることで、サイズ 5 x 5 = 25 のテーブルがサイズ 4 に圧縮
・ ルールの順序には意味はないものとする。
・ マッチするルールが複数ある場合、最も特殊なパターンをもつルールの方を選択する。
・ 「最も特殊なパターン」とは、用いる変数の種類が最も少ないパターンと定義。
6

前頭前野におけるパターンマッチ

前頭前野外側部で動作順序をパターンで抽象化した動作カテゴリとして表現

Keisetsu Shima, Masaki Isoda, Hajime Mushiake and Jun Tanji,
Categorization of behavioural sequences in the prefrontal cortex,
Nature, 445, 315-318, 2007.

参考： 虫明 元 「前頭葉のしくみ―からだ・心・社会をつなぐネットワーク― 」
共立出版, 2019.

7言語野におけるパターンマッチ• 理論言語学における文法記述の枠組みの多くが単一化文法– 単一化文法：単一化を使って構文解析を進めていく文法枠組
みの総称– 単一化(unification)はパターンマッチの一般化

自然言語の性質を表現する道具として洗練され到達した１つの結果が単一化文法であるという事実は、脳の言語野で何らかの形で単一化が行われていることを強く示唆している。
8

ヒト前頭前野が獲得する「プログラム」のイメージ
行動ルール：スパースな整数値ベクトルのパターン、
状態行動対を抽象化したもの(_,_,_,29,_,_,_,_,_,X,_,X,_,_,...)(_,_,_,48,_,_,_,_,_,X,_,X,_,_,...)
プログラム：(_,_,_,62,_,_,_,_,_,X,_,X,_,_,...)
１００万個程度の...
行動ルールの集合(29,_,X,_,_,_,Y,_,_,_,12,_,_,Y,...)
参照・更新(0,0,0,29,0,0,0,0,94,0,0,0,0,0,0,0,...)
ワーキングメモリ：
１００万次元程度のスパースな整数値ベクトル
9大脳皮質とベイジアンネットの類似点– トップダウンとボトムアップの非対称の接続– 局所的かつ非同期な情報のやり取りだけで動作– 値が非負– 情報が正規化される– ヘブ則学習– 文脈や事前知識に依存した認識– ベイズに基づく動作
一杉裕志, 解説：大脳皮質とベイジアンネット、
日本ロボット学会誌 Vol.29 No.5, pp.412--415, 2011.
Daniel J. Felleman and David C. Van Essen
Distributed Hierarchical Processing in the Primate Cerebral Cortex
Cerebral Cortex 1991 1: 1-47

10

ベイジアンネット[Pearl 1988]とは• 脳の「直感・連想記憶」と似た働きをする。
• 確率変数の間の因果関係をグラフで効率的に表す
知識表現の技術。
雲が出ている
スプリンクラーが動くP(芝生 | スプリンクラー,雨)Node = 確率変数
Edge = 因果関係

雨が降る

P(雨|雲)

P(S=yes)
0.2

芝生が
ぬれる

S
no
no
yes
yes

R
no
yes
no
yes

P(R=yes)
0.02
P(W=yes|S,R)
0.12
0.8
0.9
0.98

R P(C=yes|R)
no 0.3yes 0.995

11

ベイジアンネットでパターンを使った
情報圧縮は可能か？
• 前提：– ヒトの大脳皮質はパターンを使って情報を圧縮する能力を持っているらしい。
– 大脳皮質はおそらくベイジアンネットである。

• ベイジアンネットを使ってデータからのパター
ン獲得・パターンマッチができるはず。
→ 今回、実装して動作確認した。
・ 強化学習を用いたプログラム合成の重要な要素技術
・ 記号ＡＩと統計的機械学習の橋渡し

提案手法

13

条件付確率モデル
・ 𝑈𝑈, 𝐷𝐷 はそれぞれ上の層・下の層のノードのインデックスの集合で
𝑐𝑐, 𝑢𝑢 ∈ 𝑈𝑈, 𝑑𝑑 ∈ 𝐷𝐷
・ 𝑥𝑥𝑐𝑐𝑐𝑐 , 𝑥𝑥𝑢𝑢𝑢𝑢 , 𝑥𝑥𝑑𝑑𝑑𝑑 はそれぞれ変数
𝑋𝑋𝑐𝑐 , 𝑋𝑋𝑢𝑢 , 𝑋𝑋𝑑𝑑 の値のone hot vector 表
現・ 𝑤𝑤𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 は、𝑋𝑋𝑐𝑐 のユニット 𝑖𝑖 が 𝑋𝑋𝑢𝑢 と𝑋𝑋𝑑𝑑 の間の結合を制御する重み
・ 𝑤𝑤𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢 は、𝑋𝑋𝑢𝑢 のユニット 𝑗𝑗 と、 𝑋𝑋𝑑𝑑のユニット 𝑘𝑘 の間の重み

𝑃𝑃 𝑋𝑋𝑑𝑑 = 𝑑𝑑𝑘𝑘 𝑋𝑋𝑢𝑢 = 𝑢𝑢𝑗𝑗 , … = 𝑥𝑥𝑑𝑑𝑑𝑑

ノード 𝑋𝑋𝑐𝑐 のユニット 𝑖𝑖 の
出力 𝑥𝑥𝑐𝑐𝑐𝑐...

𝑢𝑢 ∈ 𝑈𝑈, 𝑑𝑑 ∈ 𝐷𝐷, 𝑘𝑘 ≠ 0 に対して 𝑔𝑔𝑢𝑢𝑢𝑢 , 𝑠𝑠𝑑𝑑𝑑𝑑 , 𝑥𝑥𝑑𝑑𝑑𝑑 を次のように定義：
𝑔𝑔𝑢𝑢𝑢𝑢 = Π𝑐𝑐∈𝑈𝑈 Π𝑖𝑖≠0 1 − 𝑤𝑤𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑥𝑥𝑐𝑐𝑐𝑐
𝑠𝑠𝑑𝑑𝑑𝑑 = Σ𝑢𝑢∈𝑈𝑈 Σ𝑗𝑗≠0 𝑤𝑤𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢 𝑔𝑔𝑢𝑢𝑢𝑢 𝑥𝑥𝑢𝑢𝑢𝑢
𝑥𝑥𝑑𝑑𝑑𝑑 = 𝑠𝑠𝑑𝑑𝑑𝑑 / max(1, Σ𝑖𝑖≠0 𝑠𝑠𝑑𝑑𝑑𝑑 )𝑥𝑥𝑑𝑑0 を次のように定義：
𝑥𝑥𝑑𝑑0 = 1 − Σ𝑘𝑘≠0 𝑥𝑥𝑑𝑑𝑑𝑑

ノード 𝑋𝑋𝑢𝑢 のユニット 𝑗𝑗 の出力 𝑥𝑥𝑢𝑢𝑢𝑢

...

...

...

𝑤𝑤𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐...

𝑤𝑤𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢

ノード 𝑋𝑋𝑑𝑑 のユニット 𝑘𝑘 の出力 𝑥𝑥𝑑𝑑𝑑𝑑
14

ゲート
制御ノード
Open

U

Close

U

制御ノードの値がOpen なら U と Ｘ が結合、Close なら切断

ゲート
X

X

・ あくまでベイジアンネットなので、 出力（下流の値）から入力（上流の値）の推定もできる。

15

パターンマッチを行うベイジアンネット[X, 1, 2]=>0.1[X, X, 2]=>0.2[1, X, Y]=>1
...

変数ノード

パターンノード

注：パターンノードは値０を取らないものとするパターン 𝑝𝑝 の価値を
𝑟𝑟𝑝𝑝 とすると
𝑃𝑃 𝑉𝑉 = 1 𝑃𝑃 = 𝑝𝑝
= 𝑟𝑟𝑝𝑝

P

V

価値ノード

I1

X

Y

Z

I2

I3

I4

変数ノードの「発火」がスパースになるように事前分布を設定入力ノード
接続されている変数ノードと入力ノードは同じ値になるように重みを設定

16

下の層の値を生成する例[X,2,X,3]
X=1

Y=0

Z=0

生成
I1=1

I2=2

I3=1

I4=3

パターンノードが変数ノードと入力ノードの間の結合を制御17

パターンマッチの例[X,2,X,3]
X=1

Y=0

Z=0

推論
I1=1

I2=2

I3=1

I4=3

オートエンコーダーの形をしている。
→ 原理的に、下の層にデータを与えればパターンを教師なし学習可能（今回は未実装、教師あり学習のみ実装）

18

最も特殊なパターンの選択
最も価値の高いパターンの選択
パターンノードPパターン 𝑝𝑝 の価値を
𝑟𝑟𝑝𝑝 とすると
𝑃𝑃 𝑉𝑉 = 1 𝑃𝑃 = 𝑝𝑝
= 𝑟𝑟𝑝𝑝

価値の高いパター V
ンが優先的に選択される
価値ノード

変数ノードの
「発火」は
スパース

変数ノード

I1

X

Y

Z

I2

I3

I4

使う変数が少ない
パターンが優先的に選択される

入力ノード
19

実行例

20

パターンの定義からベイジアンネットを生成
Julia で実装した DSL (domain
specific language) でパターンを定義
pat = defPattern(:[[X, 1, 2]=>1[X, X, 2]=>1[1, X, Y]=>1], uNodes=2)

提案手法では重みの役割が決まっているのでパターンの定義から機械的にベイジアンネットを生成できる。

結合の重みテーブル
変数 X と入力の間の変数 Y と入力の間のw_ciud = [
結合の制御
結合の制御
[
[[0.0, 0.0, 0.0, 0.0, ], [0.0, 1.0, 1.0, 0.0, ], [1.0, 1.0, 1.0, 0.0, ], ],[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 1.0, 0.0, ], [1.0, 1.0, 1.0, 0.0, ], ],[[0.0, 0.0, 0.0, 0.0, ], [1.0, 0.0, 1.0, 0.0, ], [1.0, 1.0, 0.0, 0.0, ], ],],[[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], ],[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], ],[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], ],],[[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], ],[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], ],[[0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, 0.0, ], ],],]w_ujdk = [[[[0.0, 0.0, 0.0, ], [1.0, 0.0, 0.0, ], [0.0, 1.0, 0.0, ], [1.0, ], ],パターンノードと[[0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, ], [0.0, 1.0, 0.0, ], [1.0, ], ],入力ノードの間の結合[[1.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, ], [0.0, 0.0, 0.0, ], [1.0, ], ],],[[[1.0, 0.0, 0.0, ], [1.0, 0.0, 0.0, ], [1.0, 0.0, 0.0, ], [0.0, ], ],変数 X と[[0.0, 1.0, 0.0, ], [0.0, 1.0, 0.0, ], [0.0, 1.0, 0.0, ], [0.0, ], ],入力ノードの間の結合[[0.0, 0.0, 1.0, ], [0.0, 0.0, 1.0, ], [0.0, 0.0, 1.0, ], [0.0, ], ],],[[[1.0, 0.0, 0.0, ], [1.0, 0.0, 0.0, ], [1.0, 0.0, 0.0, ], [0.0, ], ],変数 Y と[[0.0, 1.0, 0.0, ], [0.0, 1.0, 0.0, ], [0.0, 1.0, 0.0, ], [0.0, ], ],入力ノードの間の結合[[0.0, 0.0, 1.0, ], [0.0, 0.0, 1.0, ], [0.0, 0.0, 1.0, ], [0.0, ], ],],]21

パターンマッチの実行例
ネットワークが保持するパターンと価値：[X, 1, 2]=>0.2[X, X, 2]=>0.1[X, Y, 2]=>1
与える入力：[1,1,2]同時確率の高い順にソートした結果：
P="[X, 1, 2] => 0.2", X=1, Y=0 : JP=0.000200
P="[X, X, 2] => 0.1", X=1, Y=0 : JP=0.000100
P="[X, Y, 2] => 1", X=1, Y=1 : JP=0.000037...
最も特殊なパターンのうち最も価値の高いパターンが選択されている。
22

直観に反する振る舞いをする例• 提案手法では、いくつか直観に反する振る舞いをする場合がある：– 価値の差が大きいとき– 値０が入力とパターンに含まれているとき– ワイルドカードが含まれているとき• プログラム合成システムに用いるうえでは問題は生じないと
現時点では考えている。今後、要検証。

23

人工データを使った教師あり学習の手順
可能な値の組み合わせのリストを生成 → 訓練データ
パターンの記述ベイジアンネットを生成[1, X, X]=>1[X, 2, X]=>1[X, X, 3]=>1

同じ構造を持ったネットワークを構築
パラメタの初期値はランダム(1,1,1,1,1)(1,2,1,2,2)(1,3,1,3,3)(1,0,1,0,0)(2,1,1,2,1)(2,2,2,2,2)(2,3,3,2,3)(2,0,0,2,3)(3,1,1,1,3)(3,2,2,2,3)(3,3,3,3,3)(3,0,0,0,3)
目的関数：負の対数尤度
モメンタム法で1000エポック学習

24

学習結果
訓練データを生成した
ベイジアンネットの条件付確率表上の層の値を与えたときの下の層の各ノードの条件付確率の表

学習後のベイジアンネットの条件付確率表Source network CPT:
[1, 0, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 1, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 1, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 0, 1]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ]Target network CPT:
[1, 0, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 1, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 1, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 0, 1]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ]安定して全く同一の条件付確率表が得られた。
25

訓練データを間引いた場合の学習結果
１２個の訓練データのうち４個を間引いて学習(1,1,1,1,1)(1,2,1,2,2)(1,3,1,3,3)(1,0,1,0,0)(2,1,1,2,1)(2,2,2,2,2)(2,3,3,2,3)(2,0,0,2,3)(3,1,1,1,3)(3,2,2,2,3)(3,3,3,3,3)(3,0,0,0,3)

Source network CPT:
[1, 0, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 1, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 1, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 0, 1]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ]Target network CPT:
[1, 0, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 1, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 1, 0]->[0.9, 0.0, 0.0, 0.1, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1, 0, 0, 0][0, 0, 0, 1]->[1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 0.9, 0.0, 0.1, ][0.0, 1.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 1, 0, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 0.0, 1.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][1, 0, 0, 0]->[1.0, 0.0, 0.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 1, 0, 0]->[0.0, 1.0, 0.0, 0.0, ][0.0, 1.0, 0.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 1, 0]->[0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ][0, 0, 1, 0][0, 0, 0, 1]->[0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 0.0, 1.0, ][0.0, 0.0, 1.0, 0.0, ][1.0, 0.0, 0.0, 0.0, ]安定してほぼ同一の条件付確率表が得られた。
26

訓練データを間引いた学習の意味• (1,1,1) と (1,2,2) という２つの経験のみからパターン (1,X,X) という一般化された知識を獲得している。
→ 未経験のデータ (1,3,3) にも対処可能に。
• ニューラルネットワークのような値の「滑らかさ」を前提とした汎化とは違う種類の汎化。
– 帰納論理プログラミングに近い、記号ＡＩならではの強力な汎化能力。
– 帰納論理プログラミングと違い、勾配法で逐次的に学習。

• 提案手法は、経験から汎用性の高い知識を自律的に獲得する知的エージェントの実現に役立つと考えられる。

27

まとめと今後• ２層ベイジアンネットを用いて整数値ベクトル対するパターン獲得・パター
ンマッチを行う手法を提案• 間引かれた訓練データだけから一般化された知識を獲得• 今後の課題：– パターンの教師なし学習• 適切な正則化項を設定、ＥＭアルゴリズムで学習– ネットワークの大規模化• 大規模化可能な確率伝搬アルゴリズムの開発– ＡＧＩのためのプログラム合成システムとして必要な機能の追加• 動的記憶域のように動作する連想記憶機構• 自然言語と知識の間の相互変換• 高階述語を用いたメタプログラミング– 同じ目的を持つ研究者を増やす• 脳型ＡＧＩアーキテクチャの最小構成モデルのデモにより、ＡＧＩ実現が現実的であることを示すことが最優先課題

28