黒板モデル

黒板モデルは多数の階層にまたがる処理を並行して進めるのに適している.

  • The blackboard architecture [Erman 1980] は,Speech Understanding Systemから生まれた.多数の並列プロセスのための共通データベース.SUSのコンポーネントには,Signal acquisition, Parameter extraction, Segmentation and labeling, Word spotting, Phase-island generationなどがある.HEARSAY Ⅱでは,黒板は7レベル:{PARAMETER, SEGMENT, SYLLABLE, WORD, WORD-SEQUENCE, PHRASE, DATA BASE INTERFACE}から構成され,処理が並列に進む.KSとしては,(下層から上層に向かって) SEG: PARAMETER→SEGMENT, POM: SEGMENT→SYLLABLE, MOW: SYLLABLE→WORD, WORD-SEQ: WORD→WORD-SEQUENCE, PHRASE: WORD-SEQUENCE→PHRASE, SEMANT: PHRASE→DATA BASE INTERFACE, VERIFY: SEGMENT→WORD, PHRASE→WORD, PREDICT: PHRASE→PHRASE, CONCAT: (PHRASE,WORD)→PHRASE, WORD-CTL: WORD→WORD, WORD-SEQ-CTL: WORD-SEQUENCE→WORD-SEQUENCE,STOP: PHRASE→PHRASE (停止処理を行い,最良の句仮説を選択する),RPOL: 各レベルにおいて,他のKSの仮説におかれた情報を使って,新しい仮説もしくは修正された仮説を選択する.
  • Hearsay-Ⅱはagendaを用いた黒板制御アーキテクチャを用いている.blackboardへの変更はBlackboardモニタにイベントとして通知される.Blackboardモニタは新しいイベントによってどのKSが起動されるべきかを同定し,トリガーされたKSのprecondition部を起動する.成功したKSは刺激と応答フレームを返す.blackboardモニタはそれを使ってKSI (活性化されたKSのこと)を生成し,agendaに入れる.blackboardモニタは新しいイベントに基づいて制御フォーカス(focus-of-control)も更新する.そしてagendaのなかのKSIには評価値が与えられ,その中の最も高いものが選ばれる.
  • 目標指向のblackboardアーキテクチャでは,目標blackboardとGoal Processorが組み込まれ,代わりにblackboardモニタがなくなった.
  • BB1では,control blackboardとcontrol knowledge sourcesを追加した.agendaベースのアーキテクチャの代わり.制御のしかたをControl Knowledge SourcesのなかのKSが決める.これによりtriggered KSI(始動されたKS)と実行可能なKSが区別される.schedulerは,control blackboardの現在アクティブな焦点に対応づけられたヒューリスティックな評価関数を使って,agenda上の実行可能なKSに優先度を与える.agendaマネージャは,triggerされたKSのpreconditionをチェックし,実行可能かどうかを判定する.そして評価値の最も高いものを選定し,適切なKSアクションを起動する.
  • チャンネル化,パラメータ化されたblackboardアーキテクチャ.メタコントローラが導入され,goal processorのかわりに,channel processorが導入された.channel processorは仮説のフィルタリング,目標のフィルタリング,目標のマージ,KSIのマージなどを行う.meta-controllerはチャンネルの生成,フィルタリングやマージの設定,各チャンネルに対応づけられたKSIの評価などを行う.さらに,control goal blackboardがBB1アーキテクチャに基づき,control planning processを駆動する明示的な目標の管理をする.BB1と異なり,(control KSたちを選ぶ)メタコントローラの制御ループはドメインKSを選択する(チャンネル化された,あるいはパラメータ化された)control loopからは完全に分離されている.
  • HuangさんのGECA.blackboardアーキテクチャ.標準化されたメッセージ交換のためにOpenAIRを使っている.では問題は何であったのか?順序はやや不同だが,①キャラクタアニメーションにおける言語・非言語出力の同期(CassellのBeatと共通),②音声,アニメ系列におけるあらかじめ記録されたトラックと動的に合成されたトラックの同期,③ マルチモーダル入力の融合,④仮想世界の構成要素の制御,⑤複数の言語(例えば,日本語と英語)への対応,⑥再利用性を高めるためのモジュール化,⑦分散化,OS,プログラミング言語からの独立,⑧コンポーネント間の双方向通信,⑨高いパフォーマンスと,リアルタイムアプリケーションのための時間軸上での明示的な制御,⑩ レガシーシステムの活用のための手間を減らすこと.こう書くとすごく実装に近い話のようだが,そのようなレベルを扱えるようにしておかないと,キャラクタを細かく制御できない.こうしてGECAが生まれた.GECAはl国内外でよく評価された.黄さんの論文はAAMAS 2008のlong paperとして採択.GECAの特色は,①異なるOS/プログラム言語で書かれたコンポーネントを自在に接続できること,②重い計算を要する処理は複数のCPUで実行可能,③処理レイヤを単一レベルにとどめて,多層にまたがる複雑な反応が生じないようにした,④時間情報や同期を明示的に記述できるようにした,⑤コンポーネントを差し替えるだけで多様な機能を持つエージェントを実装できるようにした,⑥コンポーネント間の依存関係が弱く,オンラインでコンポーネント入れ替えができるようにした,⑦ 複数のblackboardを持てるようになっており,並列度が高まっている.GECAでは,OpenAIRを用いてコンポーネント間の情報と制御のやりとりをサポートしている.