SoarRTC (プロダクションシステムRTC)

概要

本コンポーネントはプロダクションシステムエンジンSoarを用いた汎用人工知能コンポーネントです。

本コンポーネントはSEATSATパッケージに含まれます。

プロダクションシステムとは

「プロダクションシステム」とは、人工知能を実現するための処理系の一種です。

まずはじめに、現在の人工知能研究には二つの流派があります。ひとつは「記号的AI」でもうひとつは「非記号的AI」です。「記号的AI」は明示的なモデルや記号に基づいた記述により知的システムを実現しようという流派です。プロダクションシステムはこの流派に属します。「非記号的AI」は主に統計処理や機械学習を使ってモデルや記述自体も自動で生成してしまおうという流派です。ニューラルネットワークや遺伝的アルゴリズムなどはこの流派に属する代表的な手法の一つです。

「記号的AI」は人工知能研究の初期から研究されていたため、古き良きAI(Good Old Fashioned AI: GOFAI)とも呼ばれます。

非常に初期のAIにおいては、中央に共有メモリ(黒板)を設置し、各エージェント(エキスパート)が黒板の情報を相互にアップデートし合いながら推論を進めていくシステムが開発されました。そのようなシステムは「黒板システム」と呼ばれます。

黒板システムはある程度の成功を収めたものの、各エージェント(エキスパート)が情報を書き込むルールがなかったため、あまり自由に共有メモリに情報を書き込むとシステムが破綻する弱点がありました。その弱点を克服するために、エージェントが情報を書き込んだり読み込んだりするルールを設定し、エージェント自身の記述方法を形式化したシステムが「プロダクションシステム」です。

プロダクションシステムは非常に大きな成功を収め、現在も様々な研究や応用システム開発が行われています。そのなかで最も人気がある実行系が今回紹介するSoarとACT-Rです。

プロダクションシステムは、エージェント(プロダクションルール)の記述に従ってメモリ上に格納されたデータ(事実)のアップデートを行い推論を行うことができますが、その推論の部分もシステムに標準の機能として組み込んでしまい、与えられた事実のみから推論を行うことができるようにしたシステムがprologです。

プロダクションシステムはプロダクションルールの記述によって推論を実現します。純粋に事実からの演繹を繰り返して解を得ようとするprologのようなシステムとは異なり、ルールの記述次第では人間が行っているような経験による推論や投機的な推論も実現することができます。推論の深さ浅さを自由にコントロールできることから、リアルタイム性を要求されるロボットシステムへの組み込みには非常に適しているといえます。

認知アーキテクチャSoar

Soarとは、1983年から開発されている知的に振る舞うシステムを実現するための汎用の認知・行動アーキテクチャを実現しているソフトウェアです。 このソフトウェアでは、プロダクションルール記述言語とその処理系を提供しており、チャンキングによる学習や強化学習による学習なども実現することができます。

動作確認OS

  • Linux Ubuntuバージョン10.04以上を推奨(Ubuntu Linux バージョン8.04以前での動作未確認)
  • WindowsXP SP3以上を推奨(Windows2000以前での動作未確認(Kinectを使用する場合、SDKの仕様によりWindows7以上が必要))

依存ライブラリ

  • OpenRTM-aist : OpenRTM-aist-1.0.0-RELEASE(Python)
  • Soar : Soar is a general cognitive architecture for developing systems that exhibit intelligent behavior.

データポート

本コンポーネントは、 自己拡張するRTコンポーネントXableRTC を用いて実装されています。そのため、接続するコンポーネントに応じてデータポートが自動的に生成され拡張されます。

SoarRTCは、起動時には下記のようなデータポートが生成されています。

名前 フローポート データ型 説明
inport0 InPort TimedString コールバック機能を持った入力ポート。受信可能なデータ型に「Any」が設定されています。
outport0 OutPort TimedString コールバック機能を持った入力ポート。受信可能なデータ型に「Any」が設定されています。
command OutPort TimedString コマンド出力用のデータポート

アプリケーション例

  • 体操指導ロボット「たいぞう」:強化学習による対話適応

その他の情報