プログラム合成対象言語 Pro5Lang における知識表現形式
第27回 人工知能学会 汎用人工知能研究会(SIG-AGI)
一杉裕志,高橋直人,竹内泉（産総研）,佐野崇（東洋大学）,中田秀基(順天堂大学)
2024-08-08

1

私の研究の中期的目標[一杉+ 第18回 汎用人工知能研究会(SIG-AGI), 2021]• 実世界を極力単純化した環境で脳型AGIのデモを動かす
今日の話• 中核技術• プログラム合成対象言語 Pro5Lang[一杉+ 第20回 汎用人工知能研究会, 2022]• 再帰的強化学習 RGoal[Ichisugi+ 2019]• 大脳皮質モデル BESOM[Ichisugi 2007]

脳型AGIアーキテクチャの全体像については、今日の発表内容でほぼ固まった（今後は？）

2

本研究の背景と概要• プログラム合成はＡＧＩ実現に向けた有望なアプローチの１つ• 自分自身の経験から報酬を最大化するプログラムを自律的に合成• プログラム合成の性能は合成対象言語の言語仕様に左右される• これまで主に合成対象言語 Pro5Lang の制御構造について設計してきたが、データ構造の表現方法に関する考察は不十分であった• 本研究では、ヒトの脳にヒントを得て、高い表現力とプログラム合成のしやすさを兼ね備えた知識表現形式の設計• 現状の大規模言語モデル(LLM)の問題点についても考察

3

計算効率・汎化性能

性能を上げるには特殊な作り込みが必要• ノーフリーランチ定理

あり得るすべてのタスク[David H.Wolpert and William G. Macready 1995]• 「工学者や最適化の専門家にとって、この定理は（中略）領域を限定して特殊な最適化ルーチンを作成すべきであることを示している。」「ノーフリーランチ定理 - Wikipedia」

人間が行うタスク・ 物体の操作・ 推論・行動計画
・ 対話「人間が行うタスク」とは何かを分析し、作り込みを行うことが大事（ただし多くのAGI研究者はそういうアプローチをとっていない）

他者の心理社会のルール

汎用人工知能(AGI)は社会のルール、他者の心理、数学や自然科学の法則などに関する複雑な知識も表現・処理できる必要がある

数学や自然科学の法則「かわいいフリー素材集 いらすとや」
https://www.irasutoya.com/

5合成対象言語 Pro5Lang• 機械語と論理型言語の特徴を合わせ持った手続き型言語• 機械語に似た特徴：• 固定長のデータ、固定長の命令• 少数のレジスタと大容量のメモリ• 論理型言語に似た特徴：• パターンマッチングによる行動ルール選択• （学習が理想的に進めば）正しい推論をする• 論理型言語 Prolog との違い：

プロトタイプ版 Pro5Lang のプログラム例（シンボルのベクトルに変換されて処理される）• Pro5Lang の基盤は数理論理学ではなく強化学習• 確率、価値• 矛盾を許容、間違った推論を許容、値 <unknown> を許容、例外を許容• 非決定論的動作 (Cf. MCTS モンテカルロ木探索)

6知識表現形式の設計に参考にした過去の技術• 状況理論・状況意味論• 自然演繹
• その他• 記号AIにおける状況計算• RDF (Resource Description Framework)• 認知科学における状況モデル• 数理論理学における可能世界意味論• Lisp, Prolog, Java などのプログラミング言語など

7

状況理論・状況意味論 [Barwise and Perry 1983]「きのう走っているのを私が見た男が、ドアにいる」

話者が話している状況

きのうの状況

同一人物を同じシンボルで表現[Devlin 2006] p.128

数理論理学における自然演繹• 自然演繹： Gentzen と Jaśkowski が独立に開発(1934)• 人間が行う証明のように、恣意的で一時的な仮定の導入が可能• 間接証明（対偶の証明、背理法など）、場合分けなど

参考：「Natural deduction - Wikipedia」
https://en.wikipedia.org/wiki/Natural_deduction「Natural Deduction | Internet Encyclopedia of Philosophy」
https://iep.utm.edu/natural-deduction/

証明の例

9

シークエント計算 [Gentzen 1936]• シークエント「仮定の集合 ├ 結論」に対して推論規則を適用• 単純だが表現力の高い強力な枠組み• 「仮定の集合」は状況意味論「状況」に近い「Natural Deduction | Internet Encyclopedia of Philosophy」
https://iep.utm.edu/natural-deduction/

10

Lisp におけるシンボルとポインタ(a . ((b . 3) . (c . d)))a3・ cons cell は固定長（長さ２）のデータ構造
・ ポインタは cons cell やシンボルなどを参照
・ 実装によっては整数は cons cell に直接埋め込まれる

bcd

これだけで複雑なデータ構造が表現可能
11

RDF (Resource Description Framework)• インターネット上のメタデータを表現するために定義された知識表現形式• 三つ組み（主語、述語、目的語）が基本単位• ノードは、シンボルではなく URI で表現「Resource Description Framework - Wikipedia」
https://ja.wikipedia.org/wiki/Resource_Description_Framework

12Pro5Lang の知識表現形式

13

Pro5Lang のメモリ構成
a レジスタe レジスタ

状態 s

知識要素

連想記憶装置

サブゴール g

サブゴールのスタック...
...

・ レジスタの値、連想記憶装置の値はすべて「知識要素」と呼ぶ固定長ベクトル・ (s, g) の値によって行動ルールを選択し実行
・ 推論結果は a レジスタに入れると同時に、自動的に連想記憶装置に追加
14

情報処理の基本単位：知識要素(Knowledge element)a レジスタe レジスタ

知識要素 EID
（命題）

接続詞

節１

節２

節

動詞

主語

物体１ 物体２

状況

節３

場所

時間

極性

感覚イメージ

１つの知識要素は複文程度の情報を表現できる
注：
EID 、感覚イメージは未実装
節には「様相」のスロットを追加予定

15

極性(Polarity)• 極性(Polarity)は値 true
表すか false で、節の内容が否定文か肯定文かを• 「きのう学校にネコがいた」(Actual, Cat, exists, …. School, Yesterday, true)• 「きのう学校にネコがいなかった」(Actual, Cat, exists, …. School, Yesterday, false)• 極性に "+" を指定することでサブゴールに whether を表現できる• 「きのう学校にネコがいたかどうか」を推論するサブルーチン呼び出し：
call(<..., _, Simple, Actual, Cat, exists, …. School, Yesterday, +, …>)

16

状況• Pro5Lang の「状況」は、知識要素（命題）の中の節の真偽値を決めるために必要な情報• 「火星人が地球を攻めてきた」• 現実世界では 偽• 小説「宇宙戦争」の中では 真• ラジオドラマ「宇宙戦争」を信じた人の心の中では 真• 参考：状況意味論 [Barwise and Perry 1983] [Devlin 2006]

での用語：• 状況 situations• インフォン infonσ• 命題 propositions ⊨σ(s supports σ と読む)

17

状況の継承• 状況に継承関係を持たせる利点：• 記憶域の節約• 強化学習のサンプル効率の向上• 知識の部分的変更が容易• 状況 s を ss が継承するとき、デフォルトでは、s がサポートするσを ss もサポートする
Inherit(s,ss),s ⊨ σ ├ ss ⊨ σ• Pro5Lang では継承の処理の方法に３種類ある
1. プログラムで明示的に処理する方法
2. 行動ルールの変数を使う方法
3. 状況を表す特徴ベクトルのパターンを使う方法（未実装）18シンボルとポインタ• 過去のAI関連技術を見る限り、複雑な情報を表現するためにシンボルとポインタのようなものは不可欠に思える• 問題点：神経科学的に妥当なポインタの実現方法は？

• 「ネコ」とか「走る」などの抽象概念は、ニューラルネットワークで大量のデータから学習可能• 問題点：「いま目の前にあるコップ」のような一時的な概念を表すシンボルは？

「かわいいフリー素材集 いらすとや」
https://www.irasutoya.com/

19脳における記憶の固定化
即時記憶： 大脳皮質のニューロン発火↓ 瞬時

近時記憶： 海馬シナプス
大脳皮質↓ 数週間から数年
遠隔記憶： 大脳皮質シナプス

海馬
記憶場所が２回変わる。
→ 皮質や海馬のニューロンの「アドレス」をポインタとして使うとは考えにくい

20

知識要素ID (EID) は知識要素の中身を圧縮したもの
EID
圧縮
記号表現

知識要素
EID

記号表現

感覚イメージ

感覚イメージ・ 大脳皮質のオートエンコーダーで圧縮することを想定
・ EIDは
C 言語におけるポインタ
ハッシュ表におけるハッシュ値
自然言語処理における embedding
記号AIにおけるシンボル
21

シンボル ＝ EID ＝ ポインタ
知識要素 EID
（命題）

接続詞

節１節２

節

動詞

主語

物体１ 物体２

状況

節３

場所

時間

極性

感覚イメージ「白い犬が黒い猫を追いかけた」

連想記憶装置ID1-

白い犬を見た --ID2-

黒い猫を見た -

-

ID3
...

--

22

抽象概念を wild card を使った特徴ベクトルで表現可能(足、毛、キバ、たてがみ、大きさ)
けもの =(４本、あり、 ＊、 ＊、 ＊)猛獣 =(４本、あり、あり、 ＊、 大)ライオン = (４本、あり、あり、あり、 大)
牛= (４本、あり、なし、なし、 大)「猛獣は肉を食べる」という宣言的知識を持っているとき、
recall(「ライオンは <＋> を食べる」)というクエリで「ライオンは肉を食べる」という命題が想起できる。

EID に関して起こり得る問題• ＩＤの衝突• 見た目で区別付かない２つの物体や人物の区別、よく似た２つのエピソードの区別など• ＩＤの変化• 知識が増えることによって対象の概念の特徴ベクトルが変化する場合など• ＩＤの統合• 異なる概念だと思っていたものが実は同一のものであると知ったときなど• ＩＤの分離• 同じものだと信じていたものが別のものだとわかったときなど

すべて経験で獲得した Pro5Lang プログラムが対処する！
（RGoal の性質により、のちのち役立つように脳内の知識を整理するようなプログラムが自律的に獲得されるはず。）
24

例：見た目が同じコップ• 同じ特徴の物体が複数ある時にはのちのち情報処理が混乱することを予見し、対策を講じるはず• 具体的には、「自分の右側にあるコップ」とか「水が半分になったコップ」のように、あとで判別可能な特徴を能動的に付与し、異なる感覚イメージを持たせることで、圧縮した特徴ベクトルも異なるものにできるはず「かわいいフリー素材集 いらすとや」
https://www.irasutoya.com/

25

テストプログラムの実装• 命題に「状況」を導入した結果、仮想的状況における知識と、現実の状況における知識の両方を用いた推論が可能になるはず• Pro5Lang のプロトタイプ実装の上で、簡単なテスト用タスクを解くプログラムを手で書いて動作確認• 背理法による証明の例• 場合分けによる証明の例

26

背理法による証明の例• 弟が「おかしを食べてない」と言っているが、実際には食べたことを証明したい。
• ゴミ箱におかしのゴミがあるのを見たとする。
• 「おかしを食べてないならばゴミはない」という知識があるものとする。
• 「もしおかしを食べてないならゴミがないはずだが、ゴミを見たので矛盾する。だから実際は食べたはずだ。」「嬉しそうにチョコレートを持っている人のイラスト（男性） | かわいいフリー素材集 いらすとや」
https://www.irasutoya.com/2016/12/blog-post_40.html

27

28

状況の継承処理

29

場合分けによる証明の例• あした学校にいく必要があることを証明したい。
• あした雨なら映画観賞会がある。
• 映画観賞会があるなら学校に行く必要がある。
• あした雨でないなら運動会がある。
• 運動会があるなら学校に行く必要がある。

「バトンを渡す人のイラスト（運動会） | かわいいフリー素材集 いらすとや」https://www.irasutoya.com/2016/03/blog-post_823.html「映画館のイラスト | かわいいフリー素材集 いらすとや」https://www.irasutoya.com/2013/07/blog-post_7666.html

30

31

Pro5Lang プログラムと LLM の動作の類似点
Pro5Lang プログラム

LLM

各ステップの動作

新たな命題を推論

次のトークンを推論プログラムの実体学習で獲得した行動ルール集合

パラメタの値

メモリへの書き込み

推論結果の追加

推論結果の追加

メモリの読み出し

クエリによる検索

self-attention による検索

連想記憶装置

対話履歴

レジスタ

トークン

連想記憶装置内の命題から新たな命題を推論推論した命題を連想記憶装置に追加

対話履歴からトークンを推論

メモリの読み書きに制約があるため解の探索空間が狭く
プログラム合成が容易推論したトークンを対話履歴に追加

32

知識表現方法の観点から見た現状の LLM の問題点
• 現状の LLM は対話履歴の形でしか「プログラムの内部状態」を持てない→• 知識の抽象化が不十分なので、知識の追加と検索が非効率的かつ不正確• トークン列で表現できない感覚イメージなどを直接表現できない• 現状の LLM はプログラムとデータの表現が全く違う（プログラム＝パラメタの値、 データ＝トークン列）→ Lisp 言語の eval や Prolog 言語の assert を使った「自己書き換えコード」のようなことがやりにくい

これらの問題が、ヒトレベルの知能への到達の障害になるのではないか？
33

まとめと今後• プログラム合成対象言語 Pro5Lang の知識表現形式を提案• ヒトの脳内における知識表現方法の１つの仮説でもある• 情報処理の基本単位は知識要素という固定長ベクトル• 状況を導入、背理法と場合分けを用いた推論を、テストプログラムで動作確認• シンボルやポインタは EID （知識要素 ID）で実現可能（未実装）• Pro5Lang を中核技術とする脳型 AGI アーキテクチャの全体像が、これでほぼ固まった• Pro5Lang と LLM との類似点と相違点について考察• 現状の LLM のままのヒトレベルの到達は非現実的に思える
34

以上

35