平成10年度 委託研究ソフトウェアの提案 |
研究代表者: | 佐藤泰介 教授 |
東京工業大学大学院 情報理工学研究科 |
| 氏名 | 所属 |
研究代表者 | 佐藤 泰介 | 東工大情報理工学研究科 |
研究協力者 | 亀谷 由隆 | 同研究科(D2) |
研究協力者 | 上田 展 久 | 同研究科(D1) |
研究協力者 | 石丸 浩 | 同研究科(B4) |
デバッガを実装する事による PRISMプログラミングの効率化を図る。デバッガの実装の必要性については以下の通り。
学習機構内蔵型プログラミングシステム PRISMは論理プログラミングをベースに計算と学習をプログラムの意味論レベルで融合したプログラミングシステムであり、 汎用の統計的-記号処理モデルを提供する。 通常の論理プログラミングも勿論可能であるが背景知識をホーン節として書き情報の不確定性をファクトの確率分布として表現する事により不確実な知識を表現し、利用し、且つ学習する事が出来る。
例えば演繹データベースに適用すれば学習機構を備えた確率的演繹データベースになる。またベイジアンネットに適用した場合は命題論理に限定されない一階論理の表現力と(再帰を通じて潜在的に)無限大のベイジアンネットを表現する能力を手に入れることが出来る。さらにHMMのような確率的オートマタに適用した場合は、 正則言語に止まらないより広い言語クラスの表現と学習を可能にする。一方学習結果に応じ振舞いを変える点に着目すればでエージェントなど複雑多様なモデルの実現にも役立つ事が期待される。
しかしながら PRISM は実行モードと学習モードの二つを持ち、実行モードは更に3つのサブモードを持つなど、通常のプログラミングシステムにより実行系が複雑である。実際ソースプロラムはそのまま実行されるのではなく、 PRISMコンパイラにより学習用の Prolog プログラムと実行用の Prolog プログラムの2つのプログラムに変換されてから、それぞれ実行される。
一方 PRISMにはデバッガがなく、今の所プログラムのデバッグにはソースコードを慎重に読み返し、 虫の原因を想定し、 ソースコードを変更した後、PRISM コンパイラに掛けて実行する以外になく、虫の原因を探す手間が大きい。従って規模の大きいPRISM プログラムを開発するためには、是非ともデバッガの開発・装備が必要不可欠になる。デバッガの内容としては、従来のステッパーに加えて、プログラムの確率的性質に関する情報を表示出来るようにする予定である。
現在 PRISM の日本語マニュアルはページにして60ページ程である。 この日本語マニュアルを英訳する事により、 英語の読者にも例題を参照すれば、 PRISMプログラミングのアイデアと書き方が分かるようにしたい。
PRISM は不確実且つ複雑な現象のモデル化言語として、 従来標準的表現法であったベイジアンネットワークをはるかに越えた記述能力を持つ。ベイジアンネットワークは論理で言えば命題変数間の同時確率分布を表すに過ぎないが、 PRISM は述語論理の枠組で、 (可算無限個の) 命題間の同時確率分布を表現出来る。 一方ベイジアンネットワークは例えばマイクロソフトがトラブルシューティングシステムとして一部実用化し始めたとされるように、 不確実な情報を扱う次世代のキーテクノロジとして人々の関心を引き付け始めている。このような現状を考えると、 PRISM マニュアルの英語化により、 広くPRISM の英語世界への普及が期待できる。
PRISMプログラムは論理と確率の2つの側面を持ち、 従ってデバッグは、従来の論理プログラムのデバッグとプログラムが満たすべき統計的性質のデバッグの2種類に分かれる。
PRISMの実行モードは3つある。 通常の実行モードであるサンプリング実行は基礎分布に応じた最小モデルの実現値を求める事に相当する。サンプリング実行では同じゴール(グラウンドアトム)に対して実行するたびに異なる結果(実現値、成功/失敗で表される)を返すが、独立に多数繰り返した時の分布が丁度プログラムが意味する分布となる。 次の確率モードでは答と共に正しさの確率を付けてを返す。ゴールに対し成功した時は例えば確率 0.7など値を付けて返す。これはサンプリング実行を多数独立に行なえば平均して100回の内70回成功するという意味である。最後はや答のゴールその正しさの確率を計算する式を付けて返す数式モードである。式は基礎確率を持つアトムの連言の選言となる。これと基礎分布を組合せ答のゴールの確率を計算できる。
PRISM に実行モードのデバッガを備える事により、中間のPRISMコンパイラによるソースコードの変換のし直しを省略し、 原因の発生した地点で停止させ、原因となったソースコードを点検出来るようになる。また例えばゴールの確率を表示させる事で、プログラムが満たす事を想定した確率的性質の検証が容易になる。
一方マニュアルの英語化により、 国外にもPRISM使用者を作りだせれば、より広いコミュニティの中で本ソフトウエアを育成/流通するように出来るだけでなく、次世代AI技術の中核となる複雑性・不確実性を扱う技術の発展に寄与できる。
www-admin@icot.or.jp