JP4687732B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP4687732B2
JP4687732B2 JP2008064995A JP2008064995A JP4687732B2 JP 4687732 B2 JP4687732 B2 JP 4687732B2 JP 2008064995 A JP2008064995 A JP 2008064995A JP 2008064995 A JP2008064995 A JP 2008064995A JP 4687732 B2 JP4687732 B2 JP 4687732B2
Authority
JP
Japan
Prior art keywords
state
hmm
node
modal
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008064995A
Other languages
English (en)
Other versions
JP2009223445A (ja
Inventor
献太 河本
浩太郎 佐部
活樹 南野
洋貴 鈴木
健一 日台
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008064995A priority Critical patent/JP4687732B2/ja
Priority to US12/381,499 priority patent/US8290885B2/en
Publication of JP2009223445A publication Critical patent/JP2009223445A/ja
Application granted granted Critical
Publication of JP4687732B2 publication Critical patent/JP4687732B2/ja
Priority to US13/927,708 priority patent/USRE46186E1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Manipulator (AREA)

Description

本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、事象間の因果関係を、事象の集合を超えて推定することができるようにした情報処理装置、情報処理方法、およびプログラムに関する。
因果推定に関連する研究は大きく2つに分けられる。1つ目は、連続空間内で、ある結果が変数に大きな影響を与える原因変数(次元)、あるいはその変数の範囲を特定しようとするものである。2つ目は、離散事象間の相互関係の中から因果関係を見つけ出そうとするものである。事象には、状態と、ある状態から他の状態への遷移が含まれる。
前者のアプローチとしては、候補変数のみによる目的変数の予測器を構成し、その予測誤差を評価尺度として最適な原因変数を特定し、原因変数による目的変数の制御器を構成するようなアプローチが多く見られる。
この課題として、予測誤差の最適な評価方法が必ずしも自明でない点、決定論的なアプローチとなり、確率的な事象の取り扱いが困難である点などが挙げられる。また、次元数が多い場合は探索次元が爆発してしまうという難しさもあるが、これは必ずしもこの方法に特有のものではない。
一方、後者のアプローチとしては、ベイジアンネットなどのグラフィカルモデルで精力的に研究されているアプローチがある。例えば、(1)関係事象の絞り込み、(2)事象間の有向グラフ構造の決定、(3)有向グラフ構造のもとでの確率分布パラメータの推定、の手順の処理が行われることが多い。各ステップの実現には、事前知識の導入やヒューリスティクスの利用を含め、数多くの手法が提案されている。現実的には、モデルの次元などの複雑さに対して、利用できるデータ数が少ない場合が多く、そのような場合、学習の安定性が課題になる。
因果関係の利用(Exploitation)と因果関係の探索(Exploration)の間のトレードオフについて述べる。
因果関係の学習に利用できるデータは、(1)事前に与えられ、変更できないもの、(2)自らが能動的にサンプリングした結果として得られるもの、の2種類に分類される。
例えば、未知環境で、ロボットなどのエージェントが自律的に行動する場合に得られるデータは上記(2)に相当する。このとき、得られるデータの質はエージェントの行動戦略に大きく依存する。
優秀な行動戦略のもとで良質なデータが得られた場合は、精度の高い因果関係を推定することができ、それを利用してさらに適切な振る舞いをすることで、より質の高いデータを得る、というポジティブスパイラルが発生する。これに対し、不適当な行動戦略のもとでは、質が低く情報量の少ないデータしか得られないため、十分な因果関係を推定することができず、いつまで経っても、不適切な行動をとってしまうことから脱却できないことある。
それでは、エージェントの行動戦略はどのように定めたらよいのだろうか。このときに直面するジレンマの1つが、因果関係の利用と探索の間のトレードオフと呼ばれるものである。
これは、ある方法(行動)ばかりに固執していると、一見、不適そうであっても実はもっとうまくいく方法であるのにそれを見逃してしまい、結果として得られたはずの利得を失ってしまうことがある一方で、あまり良くないように見える方法ばかり試すというのは明らかに準最適であり、本来得られたはずの利得を確実に失ってしまうことになるというものである。現時点で最も良いと判断される方法が本当に最適な方法かは現時点では分からないということに起因している。
このトレードオフを解決するための方法として、ε-greedy、softmax法など、いくつかのヒューリスティクスが提案されている。これらの方法により得られる結果は偶然性に強く影響されがちであり、またパラメータにセンシティブであるため、対象とする課題に応じたパラメータチューニングが必要になる。
「強化学習」Richard S.Sutton, Andrew G. Barto. 三上貞芳 皆川雅章訳 森北出版
ところで、きわめて多数の離散事象間に存在する因果関係を安定的に精度よく抽出することができれば、因果関係を用いて目的事象を達成することができ、好ましい。
関連する事象の数が多い場合、事象あたりの平均的なデータサンプル数が少なくなりがちなので、精度のよい因果関係を抽出するにはそのようなことに対処する必要がある。また、時間的に変動する因果関係を安定的に精度よく抽出することができれば、目的事象を達成するための適切な行動を時間に応じて決定することができ、好ましい。
本発明はこのような状況に鑑みてなされたものであり、事象間の因果関係を、事象の集合を超えて推定することができるようにするものである。
本発明の一側面の情報処理装置は、モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習を行いHMMを生成する複数の生成手段と、前記生成手段により生成されたそれぞれのHMMの状態を表す状態ベクトルの時系列を記録する記録手段と、前記記録手段に記録された前記状態ベクトルの時系列に基づいて、前記生成手段により生成されたHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードを検出する検出手段と、前記検出手段による検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率を、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出し、それぞれのHMMの状態間の因果関係を算出した前記条件付確率により表すようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係を推定する推定手段とを備える。
前記推定手段には、時間の経過に応じて1未満の値を前記第1の回数と前記第2の回数に乗算することによって、前記第1の回数と前記第2の回数をそれぞれ所定の減衰率で減衰させることができる。
前記推定手段には、算出した前記条件付確率と前記第2の回数と、前記条件付確率の推定誤差の初期値として与えられる確率とによって求まる前記条件付確率の誤差の分だけ確率を修正した確率を最終的な前記条件付確率として算出させることができる。
本発明の一側面の情報処理方法は、CPUを備える情報処理装置の情報処理方法において、モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習を行い複数のHMMを前記CPUが生成し、生成したそれぞれのHMMの状態を表す状態ベクトルの時系列を前記CPUが記録手段に記録させ、前記記録手段に記録された前記状態ベクトルの時系列に基づいて、生成したHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードを前記CPUが検出し、検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率を、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出し、それぞれのHMMの状態間の因果関係を算出した前記条件付確率により表すようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係を前記CPUが推定するステップを含む。
本発明の一側面のプログラムは、モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習を行い複数のHMMを生成し、生成したそれぞれのHMMの状態を表す状態ベクトルの時系列を記録手段に記録させ、前記記録手段に記録された前記状態ベクトルの時系列に基づいて、生成したHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードを検出し、検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率を、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出し、それぞれのHMMの状態間の因果関係を算出した前記条件付確率により表すようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係を推定するステップを含む処理をコンピュータに実行させる。
本発明の一側面においては、モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習が行われて複数のHMMが生成され、生成されたそれぞれのHMMの状態を表す状態ベクトルの時系列が記録手段に記録される。また、前記記録手段に記録された前記状態ベクトルの時系列に基づいて、生成されたHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードが検出され、検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率が、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出され、それぞれのHMMの状態間の因果関係が算出された前記条件付確率により表されるようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係が推定される。
なお、情報処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
本発明の一側面によれば、事象間の因果関係を、事象の集合を超えて推定することができる。
初めに、図1,2を参照して、本発明が適用される処理の概要を説明する。
本発明の目的のひとつは次の通りである。即ち、対象とするシステムまたはエージェントが、観測するセンサ信号(以下、観測信号と称する)と、自ら取ったアクション信号に基づいて、外環境のモデルを自動的に構築することが目的のひとつである。また、当該目的を実現するとともに、内部知覚されたモデル上の任意の状態を実現するための知的な行動を自在に生成することも目的のひとつである。
なお、「エージェント」とは、一般に、環境の状態を知覚(例えば、センシング)し、その知覚した内容に基づいて、行動を選択することができる自律的主体のことを指す。ただし、以下の動作主体としては、エージェントではなく、システムを用いて説明する。
また、外環境のモデル化自体は特に限定されない。ただし、本実施の形態では、外環境のモデル化として、隠れマルコフモデル(Hidden Markov Model。以下、HMMと称する)を採用することにする。
例えば、図1Aに示されるように、観測信号からアクション信号を得るモデルをつくるとする。
この場合、図1Bに示されるように、先ず、システムは、観測信号だけからHMMを構築する。
次に、図2Aに示されるように、システムは、構築されたHMMの各状態遷移(以下、遷移と適宜略称する)と、自身が取った行動(アクション信号)との関係を解析する。これにより、各遷移に必要なセンサ信号とアクション信号との関係がコントローラとして学習される。
そして、図2Bに示されるように、目標状態(図2Bの例では状態F)が与えられたときには、システムは、現状態(図2Bの例では状態A)から目標状態までの遷移系列(図2Bの例では太線矢印の遷移系列)を求める。なお、かかる遷移系列を、以下、経路と適宜称する。また、このような経路を求めることを、以下、プランニングすると称する。プランニング後、システムは、経路に含まれる各遷移に必要なコントローラを呼び出すことで、任意の状態を実現することが可能になる。
以上、本発明が適用される処理の概要について説明した。次に、本発明の実施の形態について説明する。
図3は、本発明が適用される情報処理システム(以下、単に、図3のシステムと称する)の一実施の形態の機能的構成例を示す機能ブロック図である。
図3のシステムは、センサ部21、モデル化部22、生得コントローラ23、行動制御部24、およびアクション部25から構成されている。
センサ部21は、エージェントがおかれている環境の所定の物理量を観測し、その観測結果を観測信号としてモデル化部22に提供する。
モデル化部22は、学習部31、HMM格納部32、認識部33、およびプランニング部34から構成されている。
学習部31は、センサ部21の観測信号を利用してHMMを構築し(図1B参照)、HMM格納部32に格納する。
認識部33は、後述するアクション部25が行動する時、HMM格納部32に格納されたHMMと、センサ部21の観測信号系列とを用いて、現在の状態(現状)までの各遷移を推定する。認識部33の推定結果は、行動制御部24に提供される。
プランニング部34は、HMM格納部32に格納されたHMMを用いて、現在の状態から目標の状態に向かっての最適な経路をプランニング(算出)し、行動制御部24に提供する(図2B参照)。なお、目標の状態とは、行動制御部24に目標として与えられた状態を言い、行動制御部24からモデル化部22に提供される。
生得コントローラ23は、後述する行動制御部24の学習部41の学習用に、所定の生得ルールに基づいて各種コマンドを発行し、学習部41とアクション部25に提供する。
行動制御部24は、学習部41、コントローラテーブル格納部42、コントローラ格納部43、および実行管理部44から構成されている。
学習部41は、生得コントローラ23からのコマンドに従ったアクション部25の行動結果に基づいて認識部33により認識された各遷移と、生得コントローラ23からのコマンドとを用いて、遷移毎にコントローラを学習する(図2A参照)。そして、学習部41は、各コントローラをコントローラ格納部43に格納する。また、学習部41は、各コントローラと遷移との関係をコントローラテーブル格納部42に格納する。なお、コントローラの詳細については、後述する。
実行管理部44は、プランニング部34から提供された経路に沿ってアクション部25が行動するように、即ち、経路内の各遷移を実現するように、アクション部25に対するコマンドを生成し、アクション部25に提供する。このコマンドは、コントローラテーブル格納部42とコントローラ格納部43とに格納されている情報に基づいて逆生成される。なお、実行管理部44の処理の詳細については、後述する。
以下、図3のシステムのさらなる詳細について、タスクとして単振子タスクが与えられた場合を例として用いて説明していく。
即ち、図3のシステムの目的として、例えば図4に示されるように、単振子51の観測角度θを観測信号として取り込み、発生トルクτを制御信号(アクション信号)として単振子51を自在に制御する、という目的を採用する。ただし、単振子51の質量や摩擦係数など物理的なパラメータはわからないとする。このような課題設定がなされた単振子タスクは、強化学習の課題として良く採用されている。
なお、従来の単振子タスクにおける課題設定では、システムの状態をユニークに記述できるように、角度θに加えて、さらに角速度ωの2つの変数が観測信号として与えられる。また、目的として、単振り子51が振り上がること、即ち角度θが180°になることが与えられる。さらにまた、その目的を達成するための目的関数、例えば、角度θが180°になったら報酬をあたえるとか、角度θが180°に近づくほど高い値を出すなどの目的関数が設計されて与えられる。
これに対して、図3のシステムの目的のひとつは、この単振子タスクに因らず様々なタスクを自律的に解決できるエージェントを実現することである。よって、図3のシステムに対して、状態の一部である角度θしか観測できないという制限を敢えて課しているのである。また、図3のシステムの目的のひとつは、目的関数を与えるのではなく、任意の内部状態を実現することである。よって、図3のシステムは、振り上げというタスクに依存する目的関数は必要としない。
図5は、図3のシステムが単振子タスクを達成するための処理(以下、単振子タスクの制御処理と適宜称する)の一例を説明するフローチャートである。
ステップS1において、図3のシステムは、HMMの学習処理を実行する。
ステップS2において、図3のシステムは、認識処理を実行する。
ステップS3において、図3のシステムは、コントローラ学習処理を実行する。
ステップS4において、図3のシステムは、プランニング処理を実行する。
ステップS5において、図3のシステムは、行動制御処理を実行する。
以下、これらのステップS1乃至S5の各処理の詳細について、その順番で個別に説明していく。
はじめに、ステップS1におけるHMMの学習処理について説明する。
初期状態では、アクション部25は、ランダムに生成された制御信号τ、または、予め生得的に埋め込まれたパターンに適度な摂動が加えられた制御信号τを出力していく。なお、かかる制御信号τは、例えば生得コントローラ23により与えられるコマンドに基づいてアクション部25により生成される。
この間にセンサ部21から出力される観測信号θの時系列(以下、時系列観測信号と称する)が、学習部31の図示せぬメモリ上に蓄えられる。例えば図6の信号52が、時系列観測信号の一例である。ある程度の時系列観測信号がメモリに蓄えられたタイミングで、学習部31は、これらの観測時系列信号を学習することでHMMを構築し、HMM格納部32に格納する。
以上の一連の処理がHMMの学習処理である。
HMMの学習処理では、一般的に、Baum-Welchアルゴリズムが用いられる。かかるアルゴルズムに適用可能なHMMの一例が、図7乃至図10に示されている。
ただし、何の制約もなく、図7に示されるような全結合型のHMMを学習させると、パラメータの初期値によってはローカルミニマムに収束してしまい、HMMの学習が困難になるという問題点がある。
そこで、本実施の形態では、自然界の現象の殆どはスモールワールドネットワークのようなスパースな結合によって表現可能であるという仮説を採用する。即ち、本実施の形態では、スパースな結合に制約したBaum-Welchアルゴリズムを採用することにする。具体的には、本実施の形態では、スパースな結合のHMMの一例である図9と図10のHMMのうちの何れかのHMMを採用するとする。ここで、図9A,BのHMMとは、2次元近傍拘束HMMである。図10AのHMMとは、3次元グリッド制約によるHMMである。図10BのHMMとは、2次元ランダム配置制約によるHMMである。図10CのHMMとは、スモールワールドネットワークによるHMMである。
上述した単振子タスクにおいて、484ノードの2次元近傍構造HMMを初期構造として与えて、時系列観測信を学習させた結果の表示例が図11に示されている。
図11の横軸は、観測信号である単振子51の角度θを示している。図11の縦軸は、単振子51の角速度ωを示している。また、図11において、丸印がノード(状態)を示し、2つの丸印の間の実線が2ノード間の結合(遷移)を表している。即ち、図11の表示例では、図3のシステム(エージェント)が知覚したノードの時の環境の真実の状態(θ,ω)の平均値をもとに、(θ,ω)空間上に各ノードが丸印としてプロットされ、それらのノード間の結合のうち、遷移確率が0.01以上の結合だけが実線として表示されている。
図11の表示例より、各ノードは近傍の数個のノードとしか接続していないことがわかる。このことは、図3のシステムが、(θ,ω)空間において連続的に変化していることに相当していることを意味している。そして、このような場合には、スパースな結合により、図3のシステムの挙動を記述できることを意味している。
なお、唯一の例外として、単振子51が1回転した時にθ=-πからπへの変化が不連続になっている。この不連続の変化についての学習がなされていることは、図11の表示例において、図11中左右の端と端のノードが結合されていることからもわかる。
また、図11の表示例からは、観測信号は角度θしか観測されていないにも関わらず、同じ角度θに関しても異なるノードが割り当てられていることがわかる。このことは、角速度ωによって、同じ角度θでも図3のシステムの挙動が変わることを表現できていることを示している。
以上、ステップS1におけるHMMの学習処理について説明した。次に、ステップS2における認識処理について説明する。
認識処理とは、ステップS1におけるHMMの学習処理によって構築されたHMMを用いて、図3のシステムの現在の状態を推定する処理である。この認識処理は、認識部33によって実行される。
認識処理の結果は、後述するステップS3のコントローラ学習処理に利用される。また、ステップS2の処理とは別個に、後述するステップS5の行動制御処理の一処理として、認識処理が実行される(図14のステップS61参照)。
この認識処理で鍵となる情報が、過去から現在までの観測信号列である。また、HMMの状態推定にはViterbi Algorithmが広く用いられている。そこで、本実施の形態では、50ステップ前の状態を不定とする。即ち各ノードの確率が等しいとする。次に、この50ステップ前の状態を初期状態とし、50ステップ分の観測結果が与えられたものとする。そして、Viterbi Algorithmにより各ステップでの状態を確定していくことで、最後の50ステップ目の状態、即ち現在の状態を推定する、といった認識処理が実行されるとする。
具体的には例えば本実施の形態では、図12のフローチャートに従って、認識処理が実行されるとする。
なお、以下、ノードiからノードjへの遷移確率を、aijまたはAijと記述する。初期状態確率をπiと記述する。時刻tの観測値(観測信号のレベル)をo(t)と記述する。ノードiでの観測値o(t)の尤度を、観測尤度と称し、また、bi(o(t))と記述する。また、現在時刻をTと記述する。
ステップS21において、認識部33は、時刻t=0にセットする。
ステップS22において、認識部33は、初期状態確率πiに観測尤度b(O(0))を掛けて各ノードに設定する。
ステップS23において、認識部33は、時刻tの状態確率に遷移確率Aijと観測尤度b(O(t+1))を掛けて、遷移先のノードjにおいて最大となる確率をノードjの状態確率に更新する。
ステップS24において、認識部33は、その時の遷移元のノードiを記憶テーブルに記憶する。なお、記憶テーブルの構築場所は特に限定されない。本実施の形態では例えば、認識部33内部に記憶テーブルが構築されるとする。
ステップS25において、認識部33は、時刻t=t+1とする。
ステップS26において、認識部33は、時刻tが現在時刻Tとなったか否かを判定する。
時刻tが現在時刻Tの前の時刻である場合、ステップS26においてNOであると判定されて、処理はステップS23に戻されそれ以降の処理が繰り返される。
即ち、時刻t=0乃至Tのそれぞれについて、ステップS23乃至S26のループ処理が繰り返される。そして、時刻tが現在時刻Tになると、ステップS26においてYESであると判定されて、処理はステップS27に進む。
ステップS27において、認識部33は、時刻tの状態確率の中で最大のノードを選択し、時刻tの確定ノードとする。即ち、ステップS26の処理でYESであると判定された直後のステップS27の処理では、時刻t=Tであるので、現在時刻Tの確定ノードが得られることになる。
ステップS28において、認識部33は、ステップS27の処理で選択したノードjの遷移元となったノードiを記憶テーブルから出して、時刻t-1のノードとする。
ステップS29において、認識部33は、時刻t=t-1とする。
ステップS30において、認識部33は、時刻t=0であるか否かを判定する。
時刻tが0よりも後の時刻である場合、ステップS30においてNOであると判定されて、処理はステップS27に戻されそれ以降の処理が繰り返される。
即ち、時刻t=T乃至0のそれぞれについて、ステップS27乃至S30のループ処理が繰り返される。そして、時刻tが0になると、ステップS30においてYESであると判定されて、認識処理は終了となる。
以上、ステップS2における認識処理について説明した。次に、ステップS3におけるコントローラ学習処理について説明する。
ステップS2における認識処理が実行されると、各時刻における状態を示すノードiが決定されるとともに、そのノードiから次時刻の状態を示すノードjへの遷移確率Aijが決定される。なお、以下、遷移確率Aijを、遷移エッジAijと適宜称する。なお、認識処理の説明では遷移確率aijといったように小文字のaを使用していたのに対して、ここでは遷移確率Aij(遷移エッジAij)といったように大文字のAを使用している点留意する。この点は、後述するアクションa(t)における小文字のaとの混同を防止するためである。
図3のシステムは、ステップS1のHMMの学習処理時には、上述の如く、何らかのランダムもしくは生得行動を取っている。そこで、その生得行動の間のうちの状態iに図3のシステムが取った行動をアクションa(t)と称する。ただし、アクションa(t)はアクションaと適宜略記する。この場合、アクションaによって遷移エッジAijが発生するという因果モデルが成立する。
そこで、行動制御部24の学習部41は、発生した各遷移エッジAijに対してその時の観測値o(t)(以下、観測値oと略記する)とアクションaとをサンプルする。この場合、時系列観測信号が長時間の信号であれば、その間、遷移エッジAijが何度も発生することになる。そこで、学習部41は、サンプルされた観測値oとアクションaとを用いて、1つの遷移エッジAijに対して、a=Fij(o)という写像を学習する。この関数写像Fij( )の学習手法としては、例えばニューラルネットワークのようなものを採用することができる。最もシンプルな例として、関数写像Fij( )を、観測値oに因らずにアクションaの平均値を出力するようなものとする、といった学習手法を採用することもできる。
このような関数写像Fij( )が、アクション部25に実行させるコントローラとして、コントローラ格納部43に格納される。
そして、コントローラの学習結果、即ち、各遷移エッジAij毎に、対応するコントローラ(関数写像Fij( ))が何であるのかを示す情報がテーブル形式でコントローラテーブル格納部42に格納される。なお、以下、かかるテーブルを、コントローラテーブルと称する。
ここで、本実施の形態では、各コントローラ(関数写像Fij( ))に対して、それを一意に特定する識別子(ID)が付与されているとする。この場合、所定遷移エッジAijに対応付けられたコントローラ(関数写像Fij( ))が何であるのかを示す情報として、そのコントローラのIDを採用することできる。そこで、本実施の形態では、各遷移エッジAij毎に、対応するコントローラ(関数写像Fij( ))のIDがコントローラテーブル42に格納されるとする。また、コントローラ格納部43においては、各コントローラ(関数写像Fij( ))が、そのIDと紐づけられて格納されているとする。なお、IDの使用方法の一例については、図14のステップS70の説明内で言及することにする。
以上、ステップS3におけるコントローラ学習処理として、状態の遷移毎に、アクションを出力するコントローラをそれぞれ割り当てるための学習を行う処理を例に説明した。ただし、本発明が適用されるコントローラ学習処理として、上述の例の他、例えば次のような処理も採用できる。即ち、遷移先状態毎に、アクションを出力するコントローラをそれぞれ割り当てるための学習を行う処理を例も採用できる。
次に、ステップS4におけるプランニング処理について説明する。
ステップS3におけるコントローラ学習処理が終了した段階で、図3のシステムは、学習を終えて、自身がHMMにより形成した内部状態において任意の目標を設定して、その目標達成を実現するための行動を取ることができるようになる。
そこで、プランニング部34は、目標達成を実現するための計画(プランニング)を立てる。このような計画を立てる処理が、ステップS4におけるプランニング処理である。
即ち、プランニング部34は、外部から指定されるかもしくは内発的に得られる目標を、ゴールとして設定する。なお、図3のシステムでは、目標は、実行管理部44から提供される。なお、以下、ゴールの状態を示すノードをゴールノードgと称する。この場合、プランニング部34は、ゴールノードgと、現在の状態を示すノードi(以下、現在状態ノードiと称する)が分かった時点で、この2つのノードを結ぶ経路をHMM上で探索する。このような現在状態ノードiからゴールノードgまでの経路を探索する処理が、ステップS4におけるプランニング処理である。
ここで、経路探索のアルゴリズムは様々存在し、何れのアルゴリズムも採用してもよい。ただし、本実施の形態では、図13のフローチャートに示されるように、Viterbi Algorithmを応用したアルゴリズムが採用されているとする。即ち、図13は、プランニング処理の一例を説明するフローチャートである。
ステップS41において、プランニング部34は、現在状態ノードiの状態確率を1.0として、それ以外のノードの状態確率を0にする。また、プランニング部34は、時刻t=0にセットする。
ステップS42において、プランニング部34は、遷移確率Aijのうち、閾値(ここでは0.01)以上のものを0.9として、その他のものを0とする。
ステップS43において、プランニング部34は、時刻tの状態確率に遷移確率Aijを掛けて、遷移先のノードjにおいて最大となる確率をノードjの状態確率に更新する。
ステップS44において、プランニング部34は、その時の遷移元のノードiを記憶テーブルに記憶する。なお、記憶テーブルの構築場所は特に限定されない。本実施の形態では例えば、プランニング部34内部に記憶テーブルが構築されるとする。
ステップS45において、プラニング部34は、目標となるゴールノードgの状態確率が0を超えたか否かを判定する。
目標となるゴールノードgの状態確率が0の場合、目標にまだ到達していないとして、ステップS45においてNOであると判定されて、処理はステップS46に進む。
ステップS46において、プラニング部34は、ステップS43乃至S47のループ処理をN回繰り返したか否かを判定する。
N回繰り返した場合とは、N回繰り返しても目標にいまだ到達していない場合を意味する。よって、そのような場合、即ち、ステップS46においてYESであると判定された場合、プランニング部34がプランニングをあきらめたとして、プランニング処理は終了となる。
これに対して、まだN回繰り返されていない場合、ステップS46においてNOであると判定されて、処理はステップS47に進む。ステップS47において、プランニング部34は、時刻t=t+1とする。その後、処理はステップS43に戻され、それ以降の処理が繰り返される。
このようにして、ステップS43乃至S47のループ処理が何回か繰り返された結果、目標となるゴールノードgの状態確率が0を超えた場合、目標に到達したとして、ステップS45においてYESであると判定されて、処理はステップS48に進む。
プランニング部34は、ステップS48において、ゴールノードgを選択し、ステップS49において、g=jとする。
ステップS50において、プランニング部34は、選択したノードjの遷移元となったノードiを記憶テーブルから出して時刻t-1のノードとする。
ステップS51において、プランニング部34は、時刻t=t-1とする。
ステップS52において、プランニング部34は、時刻t=0であるか否かを判定する。
時刻tが0よりも後の時刻である場合、ステップS52においてNOであると判定されて、処理はステップS53に進む。ステップS53において、プランニング部34は、j=iとする。その後、処理はステップS50に戻されそれ以降の処理が繰り返される。
即ち、時刻t=0にまるまで、ステップS50乃至S53のループ処理が繰り返される。そして、時刻tが0になると、ステップS52においてYESであると判定されて、プランニング処理は終了となる。このときにできたノード列、即ち、現在状態ノードiからゴールノードgまでのノード列が経路として確定される。
以上、ステップS4におけるプランニング処理について説明した。次に、ステップS5における行動制御処理について説明する。
図14は、行動制御部24による行動制御処理の一例、即ち、ステップS4の処理で算出された経路(ノード列)に基づいて行動制御部24が行動制御を行う場合の処理の一例を説明するフローチャートである。
ステップS61において、行動制御部24の実行管理部44は、HMMの認識処理を行い、全体ノードの中で最も状態確率が高いノードを、ノードi_maxに選ぶ。
なお、HMMの認識処理として、本実施の形態では、上述した図12の例のフローチャートに従った処理が実行されるとする。また、HMMの認識処理の動作主体は、ここでは説明の便宜上実行管理部44としたが、実際には認識部33である。即ち、正確には、認識部33がHMMの認識処理を行い、実行管理部44が、その処理結果に基づいてノードi_maxを選ぶ。
ステップS62において、実行管理部44は、経路上のノードのうち、前回のノードi_pathmaxからゴールノードの間で最も状態確率が高いものを、今回のノードi_pathmaxに選ぶ。
ステップS63において、実行管理部44は、状態確率P(i_max)とP(i_pathmax)との割合が閾値以下(例えば0.7以下)であるか否かを判定する。ここで、状態確率P(i_max)とは、ノードi_maxの状態確率を示す。また、状態確率P(i_pathmax)とは、ノードi_pathmax の状態確率を示す。
状態確率P(i_max)とP(i_pathmax)との割合が閾値以下の場合、現在の図3のシステムの行動が経路から外れているとして、ステップS63においてYESであると判定されて、行動制御処理は終了となる。
これに対して、状態確率P(i_max)とP(i_pathmax)との割合が閾値を超えている場合、現在の図3のシステムの行動はまだ経路自体から外れていないとして、ステップS63においてNOであると判定されて、処理はステップS64に進む。
ステップS64において、実行管理部44は、同じノードi_pathmaxに止まっているか否か、即ち、今回のステップS62の処理で選択されたノードi_pathmaxと、前回のステップS62の処理で選択されたノードi_pathmaxとが同一であるか否かを判定する。
同じノードi_pathmaxに止まっていない場合、経路に沿って移動しているとみなされるので、ステップS64においてNOであると判定されて、処理はステップS68に進む。なお、ステップS68以降の処理については後述する。
これに対して、同じノードi_pathmaxに止まっている場合、経路に沿って移動していない可能性があるので、ステップS64においてYESであると判定されて、処理はステップS65に進む。
ステップS65において、実行管理部44は、経路上の次のノードi_nextの状態確率が、前回の状態確率より上昇しているか否かを判定する。
上昇していなければ、経路に沿って遷移していないとして、実行管理部44は、ステップS65においてNOであると判定し、ステップS66において、ノードi_pathmaxをノードi_nextにする。その後、処理はステップS68に進む。なお、ステップS68以降の処理については後述する。
これに対して、上昇している場合、ステップS65においてYESであると判定され、処理はステップS67に進む。
ステップS67において、実行管理部44は、同じノードにN回(例えば,50回)以上止まっているか否かを判定する。
同じノードにN回以上止まっていない場合、ステップS67において、NOであると判定されて、処理はステップS68に進む。なお、ステップS68以降の処理については後述する。
これに対して、同じノードにN回以上止まっている場合、実行管理部44は、ステップS67においてYESであると判定し、ステップS66において、ノードi_pathmaxをノードi_nextにする。即ち、同じノードにN回以上止まっている場合、強制的に経路が進んだとみなすのである。その後、処理はステップS68に進む。
ステップS68において、実行管理部44は、既にゴールノード上にあるか否かを判定する。
既にゴールノード上にあると認識されている場合、ステップS68においてYESであると判定され、目標にたどり着いたとして、行動制御処理が終了となる。
これに対して、まだゴールノード上にないと認識されている場合、ステップS68においてNOであると判定され、処理はステップS69に進む。
ステップS69において、実行管理部44は、経路上の次のノードへ遷移するための遷移エッジAijを定める。
ステップS70において、実行管理部44は、遷移エッジAijに割り当てられたコントローラ(関数写像Fij( ))を呼び出し、アクション部25は、現在の観測値oをコントローラに与えることで、取るべきアクションaを求める。
なお、より正確にいえば、本実施の形態では、遷移エッジAijに割り当てられたコントローラ(関数写像Fij( ))のIDがコントローラテーブル格納部42から読み出される。また、そのIDで特定されるコントローラ(関数写像Fij( ))が、コントローラ格納部43から読み出される。そして、このコントローラである関数写像Fij( )に対して、現在の観測値oが入力された結果得られる出力が、アクションaとなる。
このアクションaは、コマンドとしてアクション部25に提供される。そこで、ステップS71において、アクション部25は、コマンドaを実行する。
その後、処理はステップS61に戻され、それ以降の処理が繰り返される。
なお、ステップS68の処理でYESであると判定されて、行動制御処理が終了した場合、実行管理部44は、そのときのノードi_maxが本当にゴールノードであるのか否かを再度判定してもよい。この再判定の結果が、ゴールノードであるという結果の場合、図5の単振子タスクの制御処理全体を終了とする。これに対して、再判定の結果が、ゴールノードではないという結果の場合、図3のシステムは、処理をステップS4に戻し、同一のゴールノードで再度プランニング処理を実行して新経路を作成した後で、ステップS5の行動制御処理をやり直す。
以上、単振子タスクを達成可能な図3のシステムについて説明した。ただし、図3のシステムでは、後述するマルチモーダルタスクを達成できない。これに対して、マルチモーダルタスクの達成が可能なシステムの機能的構成例が図15に示されている。即ち、図15は、本発明が適用される情報処理システム(以下、単に、図15のシステムと称する)の一実施の形態であって、図3のシステムとは異なるの機能的構成例を示す機能ブロック図である。
図15のシステムは、センサ部61、3種類のモデル化部62A乃至62C、因果部63、行動制御部64、およびアクション部65から構成されている。
センサ部61は、いわゆるマルチモーダルセンサとして構成されている。
ここで、マルチモーダルセンサについて、簡単に説明する。
従来のヒューマンインタフェースをより発展させた概念のひとつとして、マルチモーダルインタフェースという概念が存在する。マルチモーダルインタフェースの類語として、例えばマルチメディアインタフェースという言葉が存在する。マルチメディアインタフェースは、単に複数のメディア(音、映像、触覚など)を用いたインタフェースを表わすのに対し、それぞれのメディアがいろいろな形態で使われ、情報伝達を行っている場合に、マルチモーダルインタフェースと称される。
例えば、マルチモーダルインタフェースの例として、発声、動作、あるいは視線といった事象をモーダルとし、これらのモーダルを協調させたり、同時に使ったり、複数種類のメッセージを組み合わせて、人間が本来伝えようとしている、あるいは自然に伝わるメッセージを理解しようというインタフェースが存在する。
即ち、マルチモーダルセンサとは、このようなマルチモーダルインタフェースを実現するためのセンサであって、複数のモーダル(事象)のそれぞれについて、対応する物理量を検知可能なセンサをいう。
例えば図15の例では、センサ部61は、3つのモーダル毎に、エージェントがおかれている環境の所定物理量、即ち、当該モーダルに対応する物理量を観測し、その観測結果を観測信号としてモデル化部62A,62B,62Cに提供する。
モデル化部62A,62B,62Cの各単体は、図3のモデル化部22と基本的に同様の機能と構成を有している。即ち、モデル化部62Aについていえば、学習部71A乃至プランニング部74Aのそれぞれは、図3の学習部31乃至プランニング部34のそれぞれと基本的に同様の機能と構成を有している。なお、図示はしないが、モデル化部62Bには、図3の学習部31乃至プランニング部34のそれぞれと基本的に同様の機能と構成を有している学習部71B乃至プランニング部74Bが設けられている。また、モデル化部62Cには、図3の学習部31乃至プランニング部34のそれぞれと基本的に同様の機能と構成を有している学習部71C乃至プランニング部74Cが設けられている。
よって、センサ61の3つのモーダル毎の観測信号をそれぞれ用いて学習された結果構築される各HMM、即ち、3つのモーダルのHMMが、HMM格納部72A乃至72Cにそれぞれ格納されることになる。ここで、モデル化部62A乃至62Cのそれぞれの対象とするモーダルを、モーダルA乃至Cと称することにする。この場合、HMM格納部72A乃至72Cのそれぞれには、モーダルA乃至Cの各HMMが格納されることになる。
なお、当然ながら、モーダルは3つに限定されず、2つ以上であればよい。ただし、その場合、モデル化部62Aに対応するモデル化部がモーダルの個数分だけ存在する。
因果部63は、因果学習部75、因果テーブル格納部76、および因果推定部77から構成されている
因果学習部75は、モーダルK(KはA乃至Cのうちの何れか)のHMMの構造に基づいて認識部73Kで認識されたノード遷移と、別モーダルL(Lは、K以外のA乃至Cのうちの何れか)のHMMの状態の関係とを学習する。その学習結果は、因果テーブル格納部76に格納される。なお、因果学習部75の処理の詳細は後述する。
行動制御部64は、実行管理部78およびコントローラ部79から構成されている。コントローラ部79は、コントローラテーブル格納部80とコントローラ格納部81とから構成されている。コントローラテーブル格納部80とコントローラ格納部81は、図3のコントローラテーブル格納部42とコントローラ格納部43と基本的に同様の機能と構成を有している。
実行管理部78は、目標が与えられると、その目標に該当するモーダルKを判断し、モデル化部62Kに提供する。モデル化部62Kのプランニング部74Kは、この目標に従って経路をプランニングし、実行管理部78に提供する。そこで、実行管理部78は、この経路に沿って図15のシステム(エージェント)が行動するように、アクション部65を制御する。即ち、実行管理部78は、先ず、経路を実現するために遷移の原因となっている原因ノードを因果推定部77に問い合わせる。因果推定部77は、その原因ノードと原因モーダルを推定して、実行管理部78に提供する。なお、原因ノードや原因モーダルについては後述する。実行管理部78は、原因モーダルがコントローラであれば、コントローラ部79に問い合わせて、そのコントローラに対応するコマンドを出力する。また、実行管理部78は、原因ノードが別のモーダルLのHMM上のノードであれば、それを目標としてプランニング部74Lに経路を問い合わせることを再帰的に行う。なお、以上の実行管理部78の一連の処理の詳細については、後述する。
アクション部65は、行動制御部64からのコマンドに従って、所定の行動を取る。
以下、図15のシステムについて、タスクとしてマルチモーダルタスクが与えられた場合を例として、さらに詳細な説明を行っていく。
具体的には例えば、次のようなマルチモーダルタスクが与えられているとする。即ち、図16に示されるように、丸い形状の移動型のロボット85が、壁86で囲まれた領域内を自由に移動することができるようにすることを目的とする。なお、点87は、そこに光源があることを示している。
本出願人は、このような図16に示される移動ロボット85の移動を、シミュレータによる実験として行った。即ち、図16は、シミュレータの外観を示す図である。なお、今回採用された図16のシミュレータの原型は、「Olivier Michel. Khepera Simulator Package version 2.0: Freeware mobile robot simulator written at the University of Nice Sophia--Antipolis by Olivier Michel. Downloadable from the World Wide Web at http://wwwi3s.unice.fr/~om/khep-sim.html」という文献に開示されている。
ここで、原型と記載した理由は、今回採用されたシミュレータとは、上述の文献に開示されたシミュレータそのものではなく、それに対して、図17に示されるような観測信号とアクションを組み込んだシミュレータであるからである。
即ち、ロボット85には、センサ部61として、図16や図17に示されるように、壁86までの距離を検知する距離センサ61A、および光の明るさを検知する光センサ61Bに加えて、エネルギーセンサ61Cも搭載されている。また、ロボット85は、左右の車輪を駆動することで移動することができるとされている。
なお、距離センサ61A、光センサ61B、およびエネルギーセンサ61Cの図16における配置位置は、実施の配置位置とは必ずしも一致しない点留意すべきである。
図17に示されるように、距離センサ61Aは、ロボット85の周囲の24方向に取り付けられたものとして、24方向毎に壁86までの距離に応じた各値を観測信号として出力する。即ち、図17において、1乃至24の各番号の棒グラフが、24方向の観測信号の信号強度(瞬間値)をそれぞれ表している。
光センサ61Bは、ロボット85の周囲24方向(距離センサ61Aと同一方向)に取り付けられたものとして、24方向毎に光の明るさに応じた各値を観測信号として出力する。ただし、光は拡散するという特徴がある点を考慮して、観測信号の各値は、1つの方向の値だけではなく、周辺のセンサからの影響も及ぶような値となるようになされている。即ち、図17において、25乃至48の各番号の棒グラフが、24方向の観測信号の信号強度(瞬間値)をそれぞれ表している。
エネルギーセンサ61Cは、次のように定義されたエネルギーを観測し、その観測値を観測信号として出力する。即ち、エネルギーとは、移動量に比例して消費され、光を浴びた量に比例して補充されるものをいう。図17において、49の番号の棒グラフが、観測信号の信号強度(瞬間値)を表している。
アクション(行動)としては、即ち、アクション部65に与えるコマンドとしては、移動量のコマンドが採用されている。具体的には、図16のシミュレータ上の横軸と縦軸に沿って移動するための(Δx, Δy)というコマンド(以下、移動コマンドと称する)が採用されている。ここで、△xとは、x軸(図16中水平方向)の移動コマンドである。また、△yとは、y軸(図16中垂直方向)の移動コマンドである。
以上の内容をまとめると、ロボット85は、24次元の距離センサ61A、24次元の光センサ61B、1次元のエネルギーセンサ61Cを用いた検知機能を有しており、また、2次元の移動コマンドの入出力機能を有している。そして、ロボット85は、図15のシステムにより制御されるエージェントである。よって、ロボット85は、これらの各機能を発揮することで、内部状態を自己組織化し、内部状態を任意に制御できることを目標とする。
以上説明したようなマルチモーダルタスクを達成するための図15のシステムの処理の流れの概略は、図5の単振子タスクの制御処理と類似している。そこで、以下、図5の単振子タスクの制御処理とは異なる点についてのみ説明していく。
まず、図15のシステムは、図5の単振子タスクの制御処理のステップS1の処理と同様に、HMMの学習処理を実行する。ただし、図15のシステムが実行するHMMの学習処理は、図5の学習処理とは異なり、次のような処理となる。
即ち、図15のシステム(ロボット85たるエージェント)は、ランダムもしくは単純な生得ルール(例えば、ある方向に進んで、壁86にぶつかったら方向を変えるなどのルール)に基づいて行動を取る。なお、生得ルールに基づく行動を行う場合、図15のシステムにも、図3の生得コントローラ23が設けられるとする。
図5の単振子タスクの制御処理では、時系列観測信号(角度θの時系列信号)が唯一の観測情報としてHMMの学習が処理行われた。
これに対して、図15のシステムにおいては、センサ部61のモダリティーが既知である。即ち、ロボット85は、24次元の距離センサ61A、24次元の光センサ61B、1次元のエネルギーセンサ61Cからなる検知機能を有している。そこで、距離センサ61Aの観測信号(距離)、光センサ61Bの観測信号(光)、エネルギーセンサ61Cの観測信号(エネルギー)という3種類の観測信号毎に、それぞれHMMの学習処理が行われる。なお、1つの観測信号についてのHMMの学習処理単体は、図5の単振子タスクの制御処理におけるHMMの学習処理と基本的に同様である。
即ち、図15の例では、モデル化部62Aが、距離のHMMを構築してHMM格納部72Aに格納する。モデル化部62Bが、光のHMMを構築してHMM格納部72Bに格納する。モデル化部62Cが、エネルギーのHMMを構築してHMM格納部72Cに格納する。
モデル化部62AによるHMMの学習処理結果の表示例、即ち、400ノードの2次元近傍構造HMMを初期構造として与えて、距離センサ61Aの観測信号(距離)の時系列を学習させた結果の表示例が図18Aに示されている。
モデル化部62BによるHMMの学習処理結果の表示例、即ち、100ノードの2次元近傍構造HMMを初期構造として与えて、距離センサ61Bの観測信号(光)の時系列を学習させた結果の表示例が図18Bに示されている。
モデル化部62Cの学習結果の表示例、即ち、100ノードの2次元近傍構造HMMを初期構造として与えて、距離センサ61Cの観測信号(エネルギー)の時系列を学習させた結果の表示例が図18Cに示されている。
図18Aにおいては、各ノードが認識された時のロボット85の存在した平均位置に、ノード(白抜き丸印)がプロットされている。ただし、横軸が水平方向xの距離を示し、縦軸が垂直方向yの距離を示している。
図18Bにおいては、各ノードが認識された時のロボット85の存在した平均位置に、ノード(白抜き丸印)がプロットされている。ただし、横軸が水平方向xの距離を示し、縦軸が垂直方向yの距離を示している。また、中心位置、即ち、座標(0,0)が、光源である点87の位置を示している。ただし、座標(0,0)とは、特定の1つの点87の位置を意味するのではなく、図16の3つの点87のうちの何れかの位置という意味である。
図18Cについては、エネルギーの値(縦軸)と、ロボット87の存在した平均位置に最も近い光(光源である点87)までの距離(横軸)との空間上に、ノード(白抜き丸印)がプロットされている。
図18Aの距離のHMMは、距離センサ61Aは壁86をセンシングしていることから、迷路の構成のトポロジカルネットワークとして表現されていることが分かる。
図18Bの光のHMMについては、光源(各点87)を中心に放射状にネットワークが形成されていることがわかる。
図18CのエネルギーのHMMについては、エネルギーが上下するだけなので、一本の鎖のようなネットワークになっていることがわかる。そして、図18のプロットの仕方が、光までの距離(各点87までの距離)を横軸とするプロットの仕方であることから、光に近いときはエネルギーが上昇する方向に状態遷移が形成されている一方、光から遠い時にはエネルギーが減少するほうに状態遷移の方向が決まっているようなネットワーク、即ち、いわゆるハシゴ型ネットワークのようなものが形成されていることがわかる。
なお、対象となっているマルチモーダルタスクを、距離のHMMとアクション(コマンド)だけで考え、任意の状態に制御することを行うと、図19に示されるようになる。即ち、単振子タスクと同じ考え方で行動制御処理が実現できることになる。換言すると、この場合、図15のシステムは、図5のステップS2乃至S5を実行すればよい。
ただし、マルチモーダルタスクの課題設定では、図18A乃至Cの各HMMの状態遷移とアクション(行動)との間に直接的な相関があるとは限らない。このために状態遷移を起こした時のアクション(行動)をそのまま学習するだけでは、このようなマルチモーダルタスクの課題を解くことができない。
例えば、図18CのエネルギーのHMMの遷移は、図16のシミュレータ上での光源(各点87)とロボット85との距離関係で決まってくる。よって、図18CのエネルギーのHMMの遷移は、ロボット85がある瞬間にどの方向へ移動したのかという移動アクションとは全く関係がない。ところが、図18Cの距離のHMMが表現する迷路内での位置のような内部状態は、ロボット85の移動アクションと、遷移するノードとの間に高い関連性が存在する。
そこで、図15のシステムには、このような場合でもエージェント(ロボット85)が自律的に内部状態と行動の関係を見出して制御できるような機能を実現すべく、因果部63が設けられているのである。
即ち、因果部63は、このマルチモーダルタスクの目標を到達すべく、図5のステップS2,S3の代わりに、次のような処理を実行できる。
即ち、各時間ステップにおいて、図18A乃至Cの各HMMにおける認識結果によって、現在認識されているノードがひとつ確定される。なお、単体のHMMにおける認識結果としては、例えば、単体のHMMについての図12の認識処理の結果を採用できる。
この確定されたノードに加えて、その時刻に取ったアクション(行動)も離散化することで、ひとつのモーダルとして取り扱うことができる。以下、かかるモーダルを、アクションモーダルと称する。また、アクションモーダルの状態を、アクション状態と称する。
ここで、アクション状態を含めた時刻tのHMMの状態を、Sk,i(t)と記述する。kは、モーダル番号を示しており、k=0がアクションモーダルを示ている。また、iがモーダル内の状態を表すインデックスであるとする。
また、式(1)に示されるような確率的因果モデルを仮定する。
Figure 0004687732
・・・(1)
式(1)は、とあるモーダルの次状態は、現状態と、とある他のモーダルの状態Sm,lとに依存すること示している。
ここで、この「とあるモーダル」を原因モーダルと称し、原因モーダルにおける現在状態ノードを原因ノードと称するとする。すると、式(1)は、原因モーダルがアクションモーダルそのものであった場合、時刻tに取った行動(アクション)に応じて現在状態ノード(原因ノード)から遷移するノードが変わるという単純な行動結果モデルを示していることになる。
また、以下、各モーダルのノード遷移について、原因モーダルと原因ノードを発見することを因果推定と称する。因果推定の詳細な説明は後述するため、ここでは因果推定の概略を述べるに留める。
即ち、因果推定とは、とあるモードにおいて遷移が発生した時に、その時に認識されていた他のモーダルの状態をカウントし、高い頻度でその遷移と同時に生起している状態を割り出すことをいう。これにより、各遷移に対して、対応する原因モーダルと原因ノードとを発見することが可能になる。即ち、因果学習部75は、このような因果推定を各遷移毎に行うことで、遷移毎に対応する原因モーダルと原因ノードとを発見していく。遷移毎の原因モーダルと原因ノードとは、因果テーブル格納部76にテーブルとして格納されていく。なお、以下、かかるテーブルを因果テーブルと称する。
図20と図21を参照して、因果推定の概略についてさらに述べる。
図20は、図16のシミュレータにおける移動ロボット85の移動をタスクとした場合であって、距離のみの1モーダルの場合における図15のシステムの処理を示している。なお、説明の便宜上、図20(後述する図21、および図24)においては、ロボット85(エージェント)のアクション(行動)は、E(東)、W(西)、S(南)、およびN(北)の4方向への移動アクションのみが採用されているとする。
この場合、図15のシステムは、次のようなステップS81A乃至S84Aを実行する。即ち、ステップS81Aとは、距離のHMMの構造学習による内部状態の自己組織化という処理である。ステップS82Aとは、各状態遷移を起こすアクションを推定する、即ち、カウントするという処理である。ステップS83Aは、経路を生成するという処理である。ステップS84Aは、アクションの実行処理である。
これに対して、図21は、図20と同一タスクであるが、モーダルとしては、距離に加えてエネルギーも存在する場合における図15のシステムの処理を示している。即ち、上述したように、図15のシステムは、ステップS81Bにおいて、各モーダル独立にHMMを獲得する。図21の例では、距離のHMMと、エネルギーのHMMが獲得される。次に、図15のシステムは、ステップS82Bにおいて、図21に示されるような「(拡張)原因状態−結果遷移モデル」を生成する。即ち、図15のシステムは、アクションも状態のひとつとして(アクション状態として)、各モーダルの遷移を起こす原因状態を探す(カウントする)。例えば、図21に示されるように、距離のHMM上における特定の遷移では、いつも北(N)のアクション状態であった場合、そのアクション状態がカウントされる。また、例えば、エネルギーのHMMにおいて、エネルギーが増えるのはいつもfoodのある場所であった場合、距離のHMMにおけるfoodの状態がカウントされる。
このようにして、因果テーブルが因果テーブル格納部76に格納されると、その段階で、図15のシステムは、学習を終えて、自身が形成した内部状態において任意の目標を設定して、その目標達成を実現するための行動を取ることができるようになる。
そこで、図15のシステムは、目標達成を実現するための計画(プランニング)を立てる。このような計画を立てる処理がプランニング処理である。ただし、ここでいうプランニング処理は、図5の単振子タスクの制御処理のステップS4において実行されるプランニング処理とは異なる。そこで、以下、マルチモーダルタスクで行われるプランニング処理を、特に、多段プランニング処理と称する。
そして、図15のシステムは、多段プランニング処理の結果に従って、行動制御処理を実行する。ただし、ここでいう行動制御処理は、図5の単振子タスクの制御処理のステップS5において実行される行動制御処理とは異なる。そこで、以下、マルチモーダルタスクで行われる行動制御処理を、特に、多段行動制御処理と称する。
以下、マルチモーダルのHMMに関しても、任意の状態を目標として制御できること、即ち多段行動制御処理ができることを示す。
多段プランニング処理では、モデル化部62K(KはA乃至Cのうちのいずれか)のプランニング部74Kが、単振子タスクの場合と同様に、外部から指定されるかもしくは内発的に得られる目標を、ゴールとして設定する。ただし、ゴールとしては、所定モーダルにおける所定状態(ノード)が設定される。即ち、ゴールモーダルと、ゴール状態が設定される。
その後、モデル化部62Kは、例えば図13のフローチャートに従ったプランニング処理を実行する。これにより、モーダルK内の現在状態ノード(開始ノード)からゴールノードまでの経路が生成される。
例えば、エネルギーのモーダルCについてプランニング部74Cがプランニング処理を実行した場合、図22の右側の図のような経路が設定される。
これにより、行動制御部64は、次のような多段行動制御処理を実行することができるようになる。
即ち、行動制御部64の実行管理部78は、開始ノードからゴールノードまでの経路上の各遷移に割り当てられた原因モーダルと原因ノードとを、因果部63の因果推定部77から取得する。即ち、因果推定部77は、実行管理部78から所定遷移の通知を受けると、その所定遷移に割り当てられた原因モーダルと原因ノードとを因果テーブル格納部76から検索して抽出し、実行管理部78に提供する。
ここで、取得された原因モーダルがアクションモーダルである場合は、実行管理部78は、原因ノードに対応するコマンドをコントローラ部79から取得してアクション部65に提供することができる。よって、この場合、実行管理部78は、図14のフローチャートに従った行動制御処理を実行すればよい。
これに対して、原因モーダルがアクションモーダルでない場合、その原因モーダルの現在状態を原因ノードまで遷移させることが必要になる。例えば図22の例では、原因モーダルは光のモーダルBとされており、図22の左側の図に示されるように、現在状態を現在状態ノードから原因ノードまで遷移させることが必要になる。そこで、原因モーダルがモーダルL(LはA乃至Cのうちのいずれか)の場合には、実行管理部78は、その原因モーダルLのモデル化部62Lに対してプランニング処理を依頼する。モデル化部62Lのプランニング部74Lは、現在状態ノードから原因ノードまでのプランニング処理を実行し、その実行結果、即ち、経路を実行管理部78に通知する。例えば図22の例では、光のモーダルBのモデル化部62Bのプランニング部74Bは、図22の左側の図に示されるように、現在状態ノードから原因ノードまでのプランニング処理を実行し、その実行結果、即ち、経路を実行管理部78に通知する。
実行管理部78は、通知された経路上の各遷移に割り当てられた原因モーダルと原因ノードとを、因果部63の因果推定部77から取得する。
実行管理部78は、このようにして、原因モーダルと原因ノードとを再帰的に呼び出していく。そして、実行管理部78は、エージェントが直接出力できるアクションモーダルに辿り着いた段階で、その時刻でのアクション(コマンド)を決定して、アクション部65に提供する。
その後、実行管理部78は、このような行動制御処理の手順を経て、原因ノードに辿り着いた段階で、もとのモーダルに戻りそのモーダルで行動制御処理を実行する。つまり、図22の例では、図22の左側の図の原因ノード、即ち、原因モーダルである光のモーダルBのHMM上の原因ノードに辿り着いた段階で、点線に示されるように、図22の右側の図のエネルギーのモーダルCに戻り、そのHMM上の現在状態ノードの遷移が発生する。そして、最終的に最初に与えたゴールノード(図22の例では、右側の図のエネルギーのHMM上のゴールノード)まで到達することができた段階で、目標達成となる。
なお、原因モーダルや原因ノードが1つではなく、多くの実世界の問題のように複数存在するケースがある。例えば、図16の例では、迷路上に複数の光源(3つの点87)が存在するので、そのうちのどの光源が原因となっても構わない。また、光周辺であれば、エネルギーは十分に得られるので、その近傍のノードならどれが原因となっても構わない。このような場合、原因ノードに対してプランを立てるときに最初に辿り着く経路を選択することで、妥当な原因ノードと、その経路を選ぶことができる。具体的には、図15のシステムは、まず原因モーダルを1つ選ぶ。次に、図15のシステムは、その原因モーダルの中で、候補となる原因ノード全てをゴールノードとして、現在状態ノードからの経路をプランニングする。このプランニングは、基本的に図13のプランニング処理の実行により実現される。ただし、ステップS45のゴールノードの到着判定処理では、全てのゴールノードに対して判定が行われる。この手法によれば、最初に到着したゴールノードとその経路の選択が可能になる。
さらに、具体的なタスク例を交えて詳しく説明する。
まず、図19に示されるように、距離のHMM上のある状態をゴールノードとして指定した場合には、このエージェント(図15のシステム)にとっては図16のシミュレータ上の特定の場所に行くことを意味している可能性が高い。その場合、場所の変化はエージェントのアクションを原因としている可能性がかなり高い。従って、図19に示されるような経路のもと、各遷移が、ノードの方向に対応した移動アクションと対応づけられる。即ち、遷移の因果をアクションに帰着させることができる。
次に、図23に示されるように、光のHMM上の、とある光源(図16の例では点87)の近くの状態をゴールとした場合に、図15のシステムが、経路探索(プランニング処理)を行うと、現在状態ノードが光の近くで明るさが感知されていれば、どの方向に行けば光の明るさが変わるか分かるので周囲のノードへの遷移は、距離のHMMと同様にアクションと結びついている。しかし、現在位置が光の見えない状態だとすると、エージェントであるロボット85にとって、どの方向に移動すれば光が見えるのかは分からない。
仮に、光のHMM上で経路が作成されたところ、光のS(南)側からアプローチして光に近づいくような経路ができたとする。図16のシミュレータ上には3つの光源(点87)がおいてあるために、ロボット85にとって見えない場所から光のS(南)側に来れらる場所としては、3カ所の場所が可能性として存在することになる。因果推定がうまく行われていれば、光のHMM上で、ロボット85にとって見えないノードから、光源(図16の例では3つの点87のうちの何れか)のS(南)端側のノードへの遷移は、距離のHMM上における3つの光源(図16の例では3つの点87)の南端のノードのそれぞれと高い相関を持っている。そこで、図15のシステムは、上述のように原因ノードとしてこれらの各南端側のノードをそれぞれ設定して、距離のHMMについてプランニング処理を実行し、制御処理を実行することで、光のHMMにおいて遷移が発生する。なお、このようにゴールノードが複数存在する場合にプランニング処理を実行する場合、図15のシステムは、図13のステップS45において、複数のゴールノードについて到達条件を調べるだけで、最初に到達できる経路を算出することができる。
これにより、エージェントたるロボット85は、まず距離のHMM上で光の外縁までの経路を求めて最も近くの光源(図16の例では点87)に向けて移動し、さらにその光源の放射内に入ったときには、光のHMM内の遷移で目標とする光との相対位置へ移動することができるようになる。
次に、エネルギーのHMMの状態を任意に制御することを考える。エネルギーのHMMについては、どの遷移に関してもアクションと直接関係しない。因果推定がうまくいっているとすると、エネルギーが上昇する方向の遷移は、光のHMMの表現する光源(図16の例では点87)の近傍ノードと、距離のHMMにおいて表現されている光源(図16の例では点87)の位置の近傍のノードとの因果が高い。さらに光源は3つあるので、距離のHMM上では因果が3つに分散するのに対して、光のHMMではどの光に対しても同じ表現になっているので、光HMM上のノードに対して因果が高い。
従って、例えば上述した図21の因果推定がなされている場合、図24に示されるような処理が実行可能である。即ち、ステップS81Cにおいて、エネルギーを上げるような目標が与えられる。すると、図15のシステムは、ステップS82Cにおいて、まずエネルギーのHMMでエネルギーが順次上昇していく経路を生成する。
図15のシステムは、このエネルギーのHMM上での遷移の因果に基づいて、光のHMM上で光源(図16の例では点87)に近づく経路を生成する。必要であれば、図15のシステムは、エージェントたるロボット85にとって光源(図16の例では点87)の見えない所でも、距離のHMMの表現を使って最寄りの光源(図16の例では点87)に近づくような経路を生成する。換言すると、次のようなステップS83C,S84Cの処理が実行される。即ち、ステップS83Cとは、(遷移を起こすために)原因状態を実現する処理である。ステップS84Cとは、経路を作成するという処理でる。
図15のシステムは、この経路に基づいて、遠くから光に近づいて、エネルギーが目標の状態になるまで、そこにとどまるという行動をすることができる。換言すると、次のようなステップS85C,S86Cの処理が実行される。即ち、ステップS85Cとは、原因状態を実現する処理である。ステップS86Cとは、即実行可能という準備処理である。なお、反対に、どうようにエネルギーを下げるかという課題が設定された場合、光源(図16の例では点87)から離れてそこに止まるような行動を出せばよい。
以上説明したように、図15のシステムは、独立するモーダル(事象)毎の状態遷移とその経路制御という問題に落とし込み、かつモーダル間の因果関係を割り出し、再帰的に制御することができる。その結果、複雑な行動制御の問題をタスクに対する前提知識に頼らずに取り扱うことができるようになる。
ところで、上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることができる。
この場合、上述したシステムの少なくとも一部として、例えば、図25に示されるパーソナルコンピュータを用いて構成してもよい。
図25において、CPU(Central Processing Unit)91は、ROM(Read Only Memory92に記録されているプログラム、または記憶部98からRAM(Random Access Memory)93にロードされたプログラムに従って各種の処理を実行する。RAM93にはまた、CPU91が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU91、ROM92、およびRAM93は、バス94を介して相互に接続されている。このバス94にはまた、入出力インタフェース95も接続されている。
入出力インタフェース95には、キーボード、マウスなどよりなる入力部96、ディスプレイなどよりなる出力部97、ハードディスクなどより構成される記憶部98、および、モデム、ターミナルアダプタなどより構成される通信部99が接続されている。通信部99は、インターネットを含むネットワークを介して他の装置(図示せず)との間で行う通信を制御する。
入出力インタフェース95にはまた、必要に応じてドライブ100が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア101が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部98にインストールされる。
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
このようなプログラムを含む記録媒体は、図25に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア(パッケージメディア)101により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM92や、記憶部98に含まれるハードディスクなどで構成される。
図26は、本発明を適用したデータ処理装置の一実施の形態の構成例の概要を説明する図である。
図26において、データ処理装置は、状態と状態遷移とを有する状態遷移モデルを記憶している。データ処理装置は、状態遷移モデルによって、モデル化対象をモデル化するための学習を行う学習装置、すなわち、モデル化対象から観測されるセンサ信号に基づき、モデル化対象の確率統計的な動特性を与える状態遷移モデルを学習する学習装置の1種であり、上述の学習部31に適用することができる。
モデル化対象からは、そのモデル化対象をセンシングすることにより得られるセンサ信号が、例えば、時系列に観測される。
データ処理装置は、モデル化対象から観測されるセンサ信号を用い、状態遷移モデルの学習、すなわち、ここでは、状態遷移モデルのパラメータの推定と、構造の決定とを行う。
ここで、状態遷移モデルとしては、例えば、HMMや、ベイジアンネットワーク、POMDP(Partially Observable Markov Decision Process)等を採用することができる。以下では、状態遷移モデルとして、例えば、HMMを採用することとする。
図27は、HMMの例を示している。
HMMは、状態と状態間遷移とを有する状態遷移モデルである。
図27は、3状態のHMMの例を示している。
図27において(以降の図においても同様)、丸印は、状態を表し、矢印は、状態遷移を表す。
また、図27において、si(図27では、i=1,2,3)は、状態を表し、aijは、状態siから状態sjへの状態遷移確率を表す。さらに、bj(x)は、状態sjへの状態遷移時に、観測値xが観測される出力確率密度関数を表し、πiは、状態siが初期状態である初期確率を表す。
なお、出力確率密度関数bj(x)としては、例えば、混合正規確率分布等が用いられる。
ここで、HMM(連続HMM)は、状態遷移確率aij、出力確率密度関数bj(x)、及び初期確率πiによって定義される。これらの状態遷移確率aij、出力確率密度関数bj(x)、及び初期確率πiを、HMMのパラメータλ={aij,bj(x),πi,i=1,2,・・・,N,j=1,2,・・・,N}という。Nは、HMMの状態数を表す。
HMMのパラメータλを推定する方法としては、前述したように、Baum-Welchの再推定法が広く利用されている。Baum-Welchの再推定法は、EMアルゴリズム(EM(Expectation-Maximization) algorithm)に基づくパラメータの推定方法である。
Baum-Welchの再推定法によれば、観測される時系列データx=x1,x2,・・・,xTに基づき、その時系列データが観測(生起)される確率である生起確率から求まる尤度を最大化するように、HMMのパラメータλの推定が行われる。
ここで、xtは、時刻tに観測される信号(サンプル値)を表し、Tは、時系列データの長さ(サンプル数)を表す。
なお、Baum-Welchの再推定法は、尤度最大化に基づくパラメータ推定方法ではあるが、最適性を保証するものではなく、HMMの構造やパラメータλの初期値によっては、局所解に収束することがある。HMMやBaum-Welchの再推定法の詳細については、例えば、Laurence Rabiner, Biing-Hwang Juang 共著、「音声認識の基礎(上・下)」、NTTアドバンステクノロジ株式会社(以下、文献Aともいう)等に記載されている。
HMMは、音声認識で広く利用されているが、音声認識で利用されるHMMでは、状態の数や状態遷移の仕方等は、一般に、あらかじめ決定される。
図28は、音声認識で利用されるHMMの例を示している。
図28のHMMは、left-to-right型と呼ばれる。
図28では、状態数は3になっており、状態遷移は、自己遷移(状態siから状態siへの状態遷移)と、左から右隣の状態への状態遷移とのみを許す構造に制約されている。
図28のHMMのように、状態遷移に制約があるHMMに対して、図27に示した、状態遷移に制約がないHMM、すなわち、任意の状態siから任意の状態sjへの状態遷移が可能なHMMは、エルゴディック(Ergodic)HMMと呼ばれる。
エルゴディックHMMは、構造としては最も自由度の高いHMMであるが、状態数が多くなると、パラメータλの推定が困難となる。
例えば、エルゴディックHMMの状態数が、1000である場合、状態遷移の数は、100万(=1000×1000)となる。
したがって、この場合、パラメータλのうちの、例えば、状態遷移確率aijについては、100万個の状態遷移確率aijを推定することが必要となる。
モデル化対象によっては、必要となる状態遷移は、限られた状態遷移で十分であるかもしれないが、どのように状態遷移に対して制約をかければ良いかが事前に分からない場合には、このような膨大な数のパラメータλを適切に推定することは非常に難しい。また、適切な状態数も事前に分からず、HMMの構造を決定するための情報も事前に分からない場合には、適切なパラメータλを求めることは、さらに難しくなる。
図26のデータ処理装置は、HMMの構造、すなわち、HMMの状態の数、及び状態遷移に関して、制約を事前に与えなくても、モデル化対象に適切なHMMの構造を決定するとともに、そのHMMのパラメータλを推定する学習を行う。
図29は、図26のデータ処理装置の構成例を示すブロック図である。
図29において、データ処理装置は、時系列データ入力部111、データ調整部112、パラメータ推定部113、評価部114、モデル記憶部115、初期構造設定部116、及び、構造調整部117を有する。
時系列データ入力部111には、モデル化対象から観測されるセンサ信号が入力される。時系列データ入力部111は、モデル化対象から観測されるセンサ信号に基づき、モデル化対象から観測される時系列データ(以下、観測時系列データともいう)x=x1,x2,・・・,xTを、データ調整部112に出力する。
すなわち、時系列データ入力部111は、例えば、モデル化対象から観測される、時系列のセンサ信号を、そのまま、観測時系列データxとして、データ調整部112に供給する。
なお、時系列データ入力部111は、評価部114からの要求にも応じて、観測時系列データxを、データ調整部112に供給する。
データ調整部112は、後述するモデル記憶部115に記憶されたHMMの学習の進行に応じて、HMMの学習に用いられる時系列データ、つまり、時系列データ入力部111から供給される観測時系列データxを調整し、調整後の時系列データ(以下、調整後時系列データともいう)x'=x1',x2',・・・,xT''を出力する。
すなわち、データ調整部112は、時系列データ入力部111からの観測時系列データx=x1,x2,・・・,xTに対して、例えば、ダウンサンプリングの処理(ダウンサンプリング処理)を施し、そのダウンサンプリング処理によって得られる調整後時系列データx'=x1',x2',・・・,xT''を出力する。
例えば、観測時系列データxが1000Hzでサンプリングされた時系列データである場合に、データ調整部112は、ダウンサンプリング処理によって、1000Hzでサンプリングされた観測時系列データxを、100Hzでサンプリングされた調整後時系列データx'に変換する。
ここで、ダウンサンプリング処理によれば、観測時系列データxに含まれる高周波成分が取り除かれ、調整後時系列データx'は、観測時系列データxのマクロな特徴、つまり、観測時系列データxの低周波成分のみを含む時系列データとなる。
このような、観測時系列データxのマクロな特徴のみを含む調整後時系列データx'を用いて、モデル記憶部115に記憶された状態遷移モデルであるHMMの学習を行うことにより、HMMでは、観測時系列データxのマクロな特徴が獲得される。
データ調整部112において、観測時系列データxを、どのように調整するか、すなわち、いまの場合には、観測時系列データxを、どのようなサンプリング周波数の調整後時系列データx'に変換するかは、観測時系列データxの特徴を適切に獲得する学習を行う上で、重要な問題となる。
上述したように、データ調整部112は、HMMの学習の進行に応じて、観測時系列データxを調整するが、その調整は、HMMの学習が進行するにつれて、調整後時系列データx'が、観測時系列データxのマクロな特徴のみを含む時系列データから、ミクロな特徴、つまり、観測時系列データxの高周波成分をも含む時系列データになるように行われる。
例えば、データ調整部112は、HMMの学習が進行するにつれて、調整後時系列データx'のサンプリング周波数を、小さい値から、徐々に大に変更していく。
具体的には、例えば、データ調整部112は、学習の初期では、調整後時系列データx'のサンプリング周波数を10Hzとし、その後、学習が進行するにつれて、調整後時系列データx'のサンプリング周波数を、50Hz, 100Hz, 500Hz, 1000Hzに、順次変更する。
この場合、HMMは、学習の初期には、観測時系列データxのマクロな特徴を獲得し、その後、学習が進行するにつれて、観測時系列データxのミクロな特徴をも獲得していく。
なお、データ調整部112に対しては、評価部114から、学習の進行の状況を表す進行状況情報が供給される。データ調整部112は、評価部114からの進行状況情報に基づき、学習の進行の状況を認識し、調整後時系列データx'のサンプリング周波数を変更する。
また、データ調整部112において、学習の進行に応じて、観測時系列データxを、そのマクロな特徴を含む調整後時系列データx'から、ミクロな特徴を含む調整後時系列データx'に調整していく処理としては、ダウンサンプリング処理(観測時系列データxを、時間方向に間引く処理)の他、フィルタバンク処理を採用することができる。
データ調整部112において、フィルタバンク処理を採用する場合においては、観測時系列データxが、所定の分割数のフィルタバンクを用いてフィルタリングされることで、その所定の分割数の周波数成分に分割される。そして、その所定の分割数の周波数成分が、調整後時系列データx'として出力される。
この場合、データ調整部112では、学習が進行するにつれて、フィルタバンクの分割数が、徐々に大に変更される。
なお、データ調整部112は、上述のように、観測時系列データxを調整し、調整後時系列データx'=x1',x2',・・・,xT''を出力するが、T'は、調整後時系列データx'の長さを表す。
データ調整部112が観測時系列データxを調整して出力する調整後時系列データx'は、パラメータ推定部113、及び、構造調整部117に供給される。
パラメータ推定部113は、データ調整部112からの調整後時系列データx'を用い、モデル記憶部115に記憶されたHMMのパラメータλを推定する。
すなわち、パラメータ推定部113は、データ調整部112からの調整後時系列データx'を用い、例えば、Baum-Welchの再推定法によって、モデル記憶部115に記憶されたHMMのパラメータλの推定を行う。
パラメータ推定部113は、HMMのパラメータλの推定によって得られる新たなパラメータλを、モデル記憶部115に供給し、上書きの形で記憶させる。
なお、パラメータ推定部113は、HMMのパラメータλの推定にあたり、パラメータλの初期値として、モデル記憶部115に記憶された値を用いる。
ここで、パラメータ推定部113において、新たなパラメータλを推定する処理を行うことを、学習回数の1回とカウントすることとする。
パラメータ推定部113は、新たなパラメータλを推定する処理を行うたびに、学習回数を1だけインクリメントし、その学習回数を、評価部114に供給する。
さらに、パラメータ推定部113は、新たなパラメータλによって定義されるHMMから、データ調整部112からの調整後時系列データx'が観測される尤度を求め、評価部114に供給する。
なお、パラメータ推定部113が評価部114に供給する尤度は、調整後時系列データx'ではなく、観測時系列データxを用いて求めることもできる。
評価部114は、パラメータ推定部113からの尤度、及び学習回数に基づき、学習が行われたHMM、つまり、パラメータ推定部113でパラメータλが推定されたHMMを評価し、そのHMMの評価の結果に基づいて、HMMの学習を終了するか否かを判定する。
すなわち、評価部114は、例えば、パラメータ推定部113からの学習回数が所定の回数に到達するまでは、HMMによる観測時系列データxの特徴(時系列パターン)の獲得が不十分であると評価し、HMMの学習を続行すると判定する。
そして、評価部114は、パラメータ推定部113からの学習回数が所定の回数に到達した場合には、HMMによる観測時系列データxの特徴の獲得が十分であると評価し、HMMの学習を終了すると判定する。
また、評価部114は、例えば、パラメータ推定部113からの尤度が所定の値に到達するまでは、HMMによる観測時系列データxの特徴(時系列パターン)の獲得が不十分であると評価し、HMMの学習を続行すると判定する。
そして、評価部114は、パラメータ推定部113からの尤度が所定の値に到達した場合には、HMMによる観測時系列データxの特徴の獲得が十分であると評価し、HMMの学習を終了すると判定する。
評価部114は、HMMの学習を続行すると判定した場合、時系列データ入力部111、データ調整部112、及び、構造調整部117に対して、所定の処理を行うことを要求する。
すなわち、評価部114は、時系列データ入力部111に対して、観測時系列データの供給を行うことを要求する。
さらに、評価部114は、データ調整部112に対して、学習回数や尤度を、学習の進行の状況を表す進行状況情報として供給することで、学習の進行に応じたダウンサンプリング処理を行うことを要求する。
また、評価部114は、学習の進行に応じて、モデル記憶部115に記憶されたHMMの構造の調整を、構造調整部117に要求する。
モデル記憶部115は、状態遷移モデルである、例えば、HMMを記憶する。
すなわち、モデル記憶部115は、パラメータ推定部113からHMMの新たなパラメータが供給されると、その新たなパラメータによって、記憶値(記憶しているHMMのパラメータ)を更新する(上書きする)。
また、モデル記憶部115は、HMMの学習が開始される前に、初期構造設定部116によって初期化されるHMMの構造(初期構造)、すなわち、HMMの状態数と状態遷移に関する制約に基づいて決定されるHMMのパラメータの初期値を記憶する。
ここで、パラメータ推定部113によるHMMのパラメータの推定は、初期構造設定部116で決定される初期値から行われる。
また、モデル記憶部115に記憶されたHMMの構造は、学習の進行に応じて、構造調整部117によって調整されるが、モデル記憶部115の記憶値の更新は、構造調整部117によるHMMの構造の調整によって得られるHMMのパラメータによっても行われる。
初期構造設定部116は、HMMの学習が開始される前に、HMMの構造を初期化し、その初期化された構造(初期構造)のHMMのパラメータ(初期パラメータ)を設定する。
すなわち、初期構造設定部116は、HMMの初期構造、つまり、HMMの状態数と状態遷移を設定する。
ここで、初期構造としてのHMMの状態数と状態遷移には、所定の制約をかけることができる。
例えば、初期構造設定部116は、所定の制約としての所定の数以下に、HMMの状態数を設定する。
具体的には、例えば、初期構造設定部116は、HMMの状態数を、16や100等の、それほど多くない数に設定する。
さらに、初期構造設定部116は、初期構造として設定した状態数の状態を、1次元以上のL次元空間に(Lは、正の整数)、適当に配置する。
例えば、初期構造として設定した状態数が16であり、その16個の状態を、2次元空間に配置する場合には、初期構造設定部116は、16個の状態を、2次元空間に、例えば、格子状に配置する。
その後、初期構造設定部116は、2次元空間に配置した16個の状態に対して、状態遷移、すなわち、自己遷移と、他の状態への状態遷移とを設定する。
状態に対して設定する状態遷移には、例えば、スパース(Sparse)な構造であること等の所定の制約をかけることができる。
ここで、スパースな構造とは、任意の状態から任意の状態への状態遷移が可能なエルゴディックHMMのような密な状態遷移ではなく、ある状態から状態遷移することができる状態が非常に限定されている構造である。
なお、ここでは、スパースな構造であっても、他の状態への状態遷移は、少なくとも1つ存在し、また、自己遷移は存在することとする。
初期構造設定部116は、例えば、上述したように、所定の制約をかけることで、HMMの構造を、スパースな構造に初期化すること等によって、初期構造を得ると、その初期構造のHMMに、初期パラメータ、つまり、状態遷移確率aij、出力確率密度関数bj(x)、及び、初期確率πiの初期値を設定する。
すなわち、初期構造設定部116は、例えば、各状態に対して、その状態から可能な(有効な)状態遷移の状態遷移確率aijを一様な値(可能な状態遷移の数がM個であるとすると、1/M)に設定し、できない状態遷移、つまり、スパースな状態遷移として設定された状態遷移以外の状態遷移の状態遷移確率aijを0に設定する。
また、出力確率密度関数bj(x)として、例えば、正規分布を利用する場合には、初期構造設定部116は、時系列データ入力部111で得られる観測時系列データx=x1,x2,・・・,xTの平均値μと分散σ2を、次式に従って求め、その平均値μと分散σ2で定義される正規分布を、各状態sjの出力確率密度関数bj(x)に設定する。
μ=(1/T)Σxt
σ2=(1/T)Σ(xt-μ)2
ここで、上述の式において、Σは、時刻tを、1から、観測時系列データxの長さTに代えてのサメーション(総和)を意味する。
さらに、初期構造設定部116は、各状態siの初期確率πiを一様な値に設定する。すなわち、初期構造のHMMの状態数をN個とすると、初期構造設定部116は、そのN個の状態siそれぞれの初期確率πiを、1/Nに設定する。
初期構造設定部116において、初期構造と初期パラメータλ={aij,bj(x),πi,i=1,2,・・・,N,j=1,2,・・・,N}が設定されたHMMは、モデル記憶部115に供給されて記憶される。モデル記憶部115に記憶されたHMMの(初期)構造と(初期)パラメータλは、学習によって更新されていく。
構造調整部117は、評価部114からの要求に応じ、データ調整部112からの調整後時系列データx'を用いて、モデル記憶部115に記憶されたHMMの構造を調整する。なお、構造調整部117で行われるHMMの構造の調整には、その構造の調整に応じて必要となるHMMのパラメータの調整も含まれる。
構造調整部117で行われるHMMの構造の調整の種類としては、状態の分割、状態のマージ、状態の追加、状態遷移の追加、状態の削除、及び、状態遷移の削除の6種類があり、その詳細については後述する。
次に、図30を参照して、図29の初期構造設定部116の処理について、さらに説明する。
初期構造設定部116では、HMMの初期構造として、エルゴディックな構造を設定することもできるし、所定の制約をかけることで、スパースな構造を設定することもできる。
図30は、スパースな初期構造(状態遷移)のHMMを示している。
ここで、図30では(以降の図でも同様)、丸印は、状態を表し、矢印は、状態遷移を表す。さらに、図30(以降の図でも同様)において、2つの状態を結ぶ双方向の矢印は、その2つの状態の一方から他方への状態遷移と、他方から一方への状態遷移とを表す。また、図30(以降の図でも同様)において、各状態は、自己遷移が可能であり、その自己遷移を表す矢印の図示は、省略されている。
図30では、16個の状態が、2次元空間上に格子状に配置されている。すなわち、図30では、横方向に、4個の状態が配置され、縦方向にも、4個の状態が配置されている。
いま、横方向に隣接する状態どうしの距離、及び、縦方向に隣接する状態どうしの距離を、いずれも1とすると、図30Aは、距離が1以下の状態への状態遷移は可能とし、他の状態への状態遷移はできないという制約をかけた構造のHMMを示している。
また、図30Bは、距離が√2以下の状態への状態遷移は可能とし、他の状態への状態遷移はできないという制約をかけた構造のHMMを示している。
なお、スパースな初期構造の設定の方法は、以上のように、L次元空間上に配置された状態に対して、状態どうしの距離に応じて、近傍に位置する状態への状態遷移(自己遷移を含む)のみを可能とする制約をかける方法に限定されるものではない。
すなわち、スパースな初期構造の設定の方法としては、その他、例えば、ある状態に注目したときに、その状態について、すべての状態の中から、ランダムな数だけの状態を、ランダムに選択し、そのランダムに選択された状態への状態遷移(自己遷移を含む)だけに、状態遷移を制約する方法等を採用することが可能である。
また、スパースな初期構造の設定の方法として、図10に示されるようなHMMの構造を採用することも可能である。図10AのHMMは、3次元グリッド制約によるHMMを示している。図10BのHMMは、2次元ランダム配置制約によるHMMを示している。図10CのHMMは、スモールワールドネットワークによるHMMを示している。
次に、図31を参照して、構造調整部117がHMMの構造の調整として行う状態の分割について説明する。
なお、上述したように、図中、丸印は、状態を表すが、以下では、数字iが付された丸印を、状態siと記載する。
図31Aは、状態の分割が行われる前のHMMを示している。
図31Aでは、HMMは、6個の状態s1,s2,s3,s4,s5,s6を有し、状態s1とs2との間、状態s1とs4との間、状態s2とs3との間、状態s2とs5との間、状態s3とs6との間、状態s4とs5との間、及び、状態s5とs6との間のそれぞれの双方向の状態遷移と、自己遷移とが可能となっている。
図31Bは、図31AのHMMを対象として、状態の分割が行われた後のHMMを示している。
状態の分割は、HMMの規模を拡大するために行われる。
図31Bでは、図31AのHMMの状態s1ないしs6のうちの、例えば、状態s5が分割されている。
状態s5の分割は、分割の対象の状態s5と同一の状態遷移が可能で、かつ、状態s5との間でも双方向の状態遷移が可能な新たな状態s7を追加することによって行われる。
図31Aでは、状態s5は、状態s2,s4,s6のそれぞれとの間の状態遷移、及び、自己遷移が可能であるから、構造調整部117は、新たな状態s7について、状態s5と同様に、状態s2,s4,s6のそれぞれとの間の状態遷移、及び、自己遷移を、有効な(可能な)状態遷移として設定する。
さらに、構造調整部117は、新たな状態s7について、状態s5との間の状態遷移も、有効な状態遷移として設定する。
また、構造調整部117は、状態の分割では、例えば、分割の対象の状態s5のパラメータを、いわば引き継ぐ形で、新たな状態s7のパラメータを設定する。
すなわち、構造調整部117は、新たな状態s7の初期確率π7を、分割の対象の状態s5の初期確率π5に設定するとともに(π75)、新たな状態s7の出力確率密度関数b7(x)を、分割の対象の状態s5の出力確率密度関数b5(x)に設定する(b7(x)=b5(x))。
さらに、構造調整部117は、状態si(図31では、i=1,2,3,4,6)から新たな状態s7への状態遷移の状態遷移確率ai7を、状態siから分割の対象の状態s5への状態遷移確率ai5に設定する(ai7=ai5)。
また、構造調整部117は、新たな状態s7から状態siへの状態遷移の状態遷移確率a7iを、分割の対象の状態s5から状態siへの状態遷移確率a5iに設定する(a7i=a5i)。
そして、構造調整部117は、分割の対象の状態s5から新たな状態s7への状態遷移の状態遷移確率a57と、新たな状態s7から分割の対象の状態s5への状態遷移の状態遷移確率a75とを、適当な値、すなわち、例えば、a57=a75=0.5等に設定する。
さらに、構造調整部117は、状態の分割後のHMMの必要なパラメータについて、正規化処理を施し、状態の分割の処理を終了する。
すなわち、構造調整部117は、状態の分割後のHMMの初期確率πiと、状態遷移確率aijとに、次式を満足するような正規化処理を施す。
Σπj=1
Σaij=1 (i=1,2,・・・,N)
ここで、上述の式において、Σは、状態を表す変数jを、1から、状態の分割後のHMMの状態数Nに代えてのサメーションを意味する。図31では、状態の分割後のHMMの状態数Nは、7である。
なお、上述の式を満足する正規化処理の方法としては、例えば、正規化処理前の初期確率πjの総和Σπj12+・・・+πNで、正規化処理前の初期確率πjを除算する方法がある。状態遷移確率aijの正規化処理についても、同様である。
また、状態の分割において、分割の対象とする状態は、1つの状態に限定されるものではない。
すなわち、分割の対象とする状態としては、状態の分割前のHMMのN個の状態s1ないしsNの中から、例えば、ランダムに、1以上N個以下の所定数nの状態を選択することができる。
また、分割の対象とする状態としては、状態の分割前のHMMのN個の状態s1ないしsNの中から、例えば、出力確率密度関数bj(x)を定義する分散σ2が大きい上位n個の状態、つまり、状態から観測される観測値に、比較的大きなばらつきがある上位n個の状態を選択することができる。
ここで、分割の対象とする状態の数nは、ランダムに設定することもできるし、固定値に設定することもできる。いずれにしても、状態の分割によって、HMMの構造は、状態数が、分割前の状態数から、n個だけ増加した構造に更新される。
次に、図32を参照して、構造調整部117がHMMの構造の調整として行う状態のマージについて説明する。
図32Aは、状態のマージが行われる前のHMMを示しており、上述の図31Aの場合と同一のHMMである。
図32Bは、図32AのHMMを対象として、状態のマージが行われた後のHMMを示している。
状態のマージ(merge)は、冗長に割り当てられた状態を縮退させるために行われる。
図32Bでは、図32AのHMMの状態s1ないしs6のうちの、例えば、状態s5を、マージ対象として、そのマージ対象の状態s5が、被マージ対象の状態s6にマージされている。
状態s5の、状態s6へのマージは、マージ対象の状態s5と、被マージ対象の状態s6との間の状態遷移を削除するとともに、マージ対象の状態s5が、マージ対象の状態s5、及び、被マージ対象の状態s6を除く他の状態との間に有する状態遷移(以下、固有の状態遷移ともいう)を、被マージ対象の状態s6が、いわば引き継ぐ形で、マージ対象の状態s5を削除することによって行われる。
したがって、構造調整部117は、マージ対象の状態s5と、被マージ対象の状態s6との間の状態遷移を削除する(無効にする)。
さらに、図32Aでは、状態s5が有する固有の状態遷移は、状態s2,s4のそれぞれとの間の状態遷移であるから、構造調整部117は、被マージ対象の状態s6と、状態s2,s4のそれぞれとの間の状態遷移を、有効な状態遷移として追加(設定)する。
そして、構造調整部117は、マージ対象の状態s5を削除する。
さらに、構造調整部117は、状態のマージでは、例えば、被マージ対象の状態s6の状態遷移のうちの、マージ対象の状態s5から引き継いだ状態遷移については、マージ対象の状態s5の状態遷移確率ai5及びa5jを引き継ぐ形で、状態遷移確率ai6及びa6jを設定する。
すなわち、図32では、被マージ対象の状態s6がマージ対象の状態s5から引き継いだ状態遷移は、状態s2,s4のそれぞれとの間の状態遷移であるから、構造調整部117は、被マージ対象の状態s6から状態s2への状態遷移の状態遷移確率a62を、マージ対象の状態s5から状態s2への状態遷移の状態遷移確率a52に設定する(a62=a52)。
さらに、構造調整部117は、状態s2から被マージ対象の状態s6への状態遷移の状態遷移確率a26を、状態s2からマージ対象の状態s5への状態遷移の状態遷移確率a25に設定する(a26=a25)。
同様に、構造調整部117は、被マージ対象の状態s6から状態s4への状態遷移の状態遷移確率a64を、マージ対象の状態s5から状態s4への状態遷移の状態遷移確率a54に設定する(a64=a54)。
さらに、構造調整部117は、状態s4から被マージ対象の状態s6への状態遷移の状態遷移確率a46を、状態s4からマージ対象の状態s5への状態遷移の状態遷移確率a45に設定する(a46=a45)。
そして、構造調整部117は、状態のマージ後のHMMの必要なパラメータについて、正規化処理を施し、状態のマージの処理を終了する。
すなわち、構造調整部117は、状態のマージ後のHMMの初期確率πi、及び、状態遷移確率aijに、状態の分割の場合と同様の正規化処理を施す。
なお、状態のマージにおいて、マージ対象とする状態と、被マージ対象とする状態とのセット(以下、マージセットともいう)は、1セットに限定されるものではない。
すなわち、マージセットとする状態の組(ペア)としては、状態のマージ前のHMMのN個の状態s1ないしsNにおける、双方向の状態遷移が可能な状態の組の中から、例えば、状態どうしの相関が大きい上位n(nは、1以上の値)個の状態の組を選択することができる。
なお、マージセットとする状態の組の数nは、ランダムに設定することもできるし、固定値に設定することもできる。いずれにしても、状態のマージによって、HMMの構造は、状態数が、マージ前の状態数から、n個だけ減少した構造に更新される。
ここで、マージセットとする状態の組を選択するときに用いられる状態どうしの相関について説明する。
状態どうしの相関とは、他の状態への状態遷移(自己遷移を含む)、及び、他の状態からの状態遷移、並びに、状態から観測される観測値が似ている程度を表し、例えば、以下のようにして求められる。
すなわち、図29で説明したように、構造調整部117には、パラメータ推定部113でのHMMのパラメータの推定に用いられる調整後時系列データx'が、データ調整部112から供給される。
構造調整部117は、データ調整部112からの調整後時系列データx'を用いて、モデル記憶部115に記憶されたHMMの状態どうしの相関を求める。
すなわち、構造調整部117は、モデル記憶部115に記憶されたHMMに対して、フォワードバックワードアルゴリズム(Forward-Backward algorithm)を適用し、データ調整部112からの調整後時系列データx'=x1',x2',・・・,xT''の各時刻tに、状態siにいる確率(時刻tのときの状態が、状態siである確率)である前向き後ろ向き確率pi(t)を求める。
ここで、フォワードバックワードアルゴリズムとは、各状態siに至る確率を、時間方向に前向きに伝搬することで求められる前向き確率αi(t)と、後ろ向きに伝搬することで求められる後ろ向き確率βi(t)とを統合した確率値を計算するアルゴリズムである。
フォワードバックワードアルゴリズムについては、上述の文献Aに記載されている。
構造調整部117は、モデル記憶部115に記憶されたHMMについて、調整後時系列データx'のうちのデータx1',x2',・・・,xt'を観測して、時刻tに、状態siにいる前向き確率αi(t)を求める。また、構造調整部117は、モデル記憶部115に記憶されたHMMについて、時刻tに、状態siにいて、その後、調整後時系列データx'のうちのデータxt',xt+1',・・・,xT''を観測する(時刻t以降に、データxt',xt+1',・・・,xT''が観測される場合に、時刻tに、状態siにいる)後ろ向き確率βi(t)を求める。
そして、構造調整部117は、前向き確率αi(t)と後ろ向き確率βi(t)とを用いて、時刻tに、状態siにいる前向き後ろ向き確率pi(t)を求める。
構造調整部117は、調整後時系列データx'の時刻t=1,2,・・・,T'のそれぞれにおいて、各状態siにいる前向き後ろ向き確率pi(t)を求める。
ここで、ある状態siの前向き後ろ向き確率pi(1),pi(2),・・・,pi(T')は、長さがT'の時系列データであり、この時系列データを、pi(=pi(1),pi(2),・・・,pi(T'))とも表す。
いま、ある状態siと、他の状態sjの相関を、pi*pjと表すこととすると、構造調整部117は、ある状態siと他の状態sjとの相関pi*pjを、例えば、状態siの前向き後ろ向き確率pi=pi(1),pi(2),・・・,pi(T')と、状態sjの前向き後ろ向き確率pj=pj(1),pj(2),・・・,pj(T')とを用い、次式に従って求める。
pi*pj=Σpi(t)pj(t)
ここで、上述の式において、Σは、時刻tを、1から、調整後時系列データx'の長さT'に代えてのサメーションを意味する。
状態siとsjとの相関pi*pjは、状態siの前向き後ろ向き確率piと、状態sjの前向き後ろ向き確率pjとの時間変化のパターンが類似している場合、つまり、状態siとsjのうちの一方の他に、他方が存在することが冗長である場合に高くなる。
この場合、状態siとsjとの間に、双方向の状態遷移が存在すると、状態siとsjとの組は、マージセットとして選択される。そして、冗長な状態si及びsjのうちの一方をマージ対象とするとともに、他方を被マージ対象として、マージ対象の状態が、被マージ対象の状態にマージされる。
なお、構造調整部117では、モデル記憶部115に記憶されたHMMの状態どうしの相関を、調整後時系列データx'ではなく、観測時系列データxを用いて求めることも可能である。
また、マージセットとして選択される2つの状態のうちのいずれを、マージ対象、又は被マージ対象とするかは、例えば、ランダムに選択することができる。
次に、図33を参照して、構造調整部117がHMMの構造の調整として行う状態の追加について説明する。
図33Aは、状態の追加が行われる前のHMMを示しており、上述の図31Aの場合と同一のHMMである。
図33Bは、図33AのHMMを対象として、状態の追加が行われた後のHMMを示している。
状態の追加は、図31で説明した状態の分割と同様に、HMMの規模を拡大するために行われる。
図33Bでは、図33AのHMMの状態s1ないしs6のうちの、例えば、状態s5を、状態を追加する対象として、その状態s5に対して、新たな状態s7が追加されている。
状態の追加は、自己遷移と、状態を追加する対象の状態s5との間での双方向の状態遷移とが可能な新たな状態s7を追加することによって行われる。
したがって、構造調整部117は、新たな状態s7について、自己遷移、及び、状態s5との間の状態遷移を、有効な状態遷移として設定する。
また、構造調整部117は、状態の追加では、例えば、状態を追加する対象の状態s5のパラメータを、いわば引き継ぐ形で、新たな状態s7のパラメータを設定する。
すなわち、構造調整部117は、新たな状態s7の初期確率π7を、追加の対象の状態s5の初期確率π5に設定するとともに(π75)、新たな状態s7の出力確率密度関数b7(x)を、追加の対象の状態s5の出力確率密度関数b5(x)に設定する(b7(x)=b5(x))。
さらに、構造調整部117は、状態を追加する対象の状態s5から新たな状態s7への状態遷移の状態遷移確率a57と、新たな状態s7から状態を追加する対象の状態s5への状態遷移の状態遷移確率a75とを、適当な値、すなわち、例えば、a57=a75=0.5等に設定する。
さらに、構造調整部117は、状態の追加後のHMMの必要なパラメータについて、正規化処理を施し、状態の追加の処理を終了する。
すなわち、構造調整部117は、状態の追加後のHMMの初期確率πi、及び、状態遷移確率aijに、状態の分割の場合と同様の正規化処理を施す。
なお、状態の追加において、状態を追加する対象とする状態は、1つの状態に限定されるものではない。
すなわち、状態を追加する対象とする状態としては、状態の追加前のHMMのN個の状態s1ないしsNの中から、例えば、ランダムに、1以上N個以下の任意の数nの状態を選択することができる。
また、状態を追加する対象とする状態としては、状態の追加前のHMMのN個の状態s1ないしsNの中から、例えば、出力確率密度関数bj(x)を定義する分散σ2が大きい上位n個の状態、つまり、状態から観測される観測値に、比較的大きなばらつきがある上位n個の状態を選択することができる。
ここで、状態を追加する対象とする状態の数nは、ランダムに設定することもできるし、固定値に設定することもできる。いずれにしても、状態の追加によって、HMMの構造は、状態数が、追加前の状態数から、n個だけ増加した構造に更新される。
なお、状態の追加と、図31で説明した状態の分割とは、HMMの状態数が増加する点で共通する。但し、状態の追加は、新たな状態が、状態を追加する対象の状態の状態遷移を引き継がない点で、新たな状態が、分割の対象の状態の状態遷移を引き継ぐ状態の分割と相違する。
したがって、状態遷移については、図31の状態の分割後のHMMでは、新たな状態は、分割の対象の状態との間の状態遷移の他、分割の対象の状態が有するその他の状態遷移による影響を、直接的に受けるが、状態の追加後のHMMでは、新たな状態は、状態を追加する対象の状態との間の状態遷移だけによる影響を、直接的に受ける。
その結果、状態の追加では、新たな状態の独立性が、状態の分割の場合に比較して高くなる。
次に、図34を参照して、構造調整部117がHMMの構造の調整として行う状態遷移の追加について説明する。
図34Aは、状態遷移の追加が行われる前のHMMを示しており、上述の図31Aの場合と同一のHMMである。
図34Bは、図34AのHMMを対象として、状態遷移の追加が行われた後のHMMを示している。
状態遷移の追加は、モデル記憶部115に記憶されたHMMの構造において、モデル化対象を適切に表現するのに、状態遷移が足りない問題を解消するために行われる。特に、初期構造設定部116において、HMMの初期構造として、スパースな状態遷移が設定される場合には、モデル化対象の適切な表現に必要な状態遷移を追加することが重要となる。
図34Bでは、図34AのHMMの状態s1ないしs6のうちの、例えば、状態s4及びs6を、状態遷移の追加対象として、その状態遷移の追加対象である状態s4とs6との間に、双方向の状態遷移が追加されている。
状態遷移の追加では、構造調整部117は、状態遷移の追加対象である状態s4とs6との間に、有効な状態遷移を設定する。さらに、構造調整部117は、状態遷移の追加対象である状態s4及びs6のうちの一方である、例えば、状態s4から、他方である、例えば、状態s6への状態遷移確率a46と、他方の状態s6から一方の状態s4への状態遷移確率a64とを、適当な値、すなわち、例えば、a46=a64=0.5等に設定する。
そして、構造調整部117は、状態遷移の追加後のHMMの必要なパラメータについて、正規化処理を施し、状態遷移の追加の処理を終了する。
すなわち、構造調整部117は、状態遷移の追加後のHMMの状態遷移確率aijに、状態の分割の場合と同様の正規化処理を施す。
なお、状態遷移の追加において、状態遷移の追加対象とする2つの状態のセット(以下、追加対象セットともいう)は、1セットに限定されるものではない。
すなわち、追加対象セットとする状態の組としては、状態遷移の追加前のHMMのN個の状態s1ないしsNにおける、双方向の状態遷移が可能でない状態の組の中から、例えば、状態どうしの相関が大きい上位n(nは、1以上の値)個の状態の組を選択することができる。
以上のように、双方向の状態遷移が可能でない状態のうちの、相関が大きい状態の組を、追加対象セットとして選択する場合には、例えば、状態遷移がない(直接的な状態遷移ができない)2つの状態のうちの、一方が、他方にとって冗長な存在となったときに、その2つの状態が、状態遷移によって、有機的に接続されることになる。
なお、追加対象セットとする状態の組の数nは、ランダムに設定することもできるし、固定値に設定することもできる。いずれにしても、状態遷移の追加によって、HMMの構造は、状態数は変化しないが、状態遷移がn個だけ増加した、少し複雑な構造に更新される。
次に、図35を参照して、構造調整部117がHMMの構造の調整として行う状態の削除について説明する。
図35Aは、状態の削除が行われる前のHMMを示している。
図35Aでは、HMMは、9個の状態s1,s2,s3,s4,s5,s6,s7,s8,s9を有し、状態s1とs2との間、状態s1とs4との間、状態s2とs3との間、状態s2とs5との間、状態s3とs6との間、状態s4とs5との間、状態s4とs7との間、状態s5とs6との間、状態s5とs8との間、状態s6とs9との間、状態s7とs8との間、及び、状態s8とs9との間のそれぞれの双方向の状態遷移と、自己遷移とが可能となっている。
図35Bは、図35AのHMMを対象として、状態の削除が行われた後のHMMを示している。
状態の削除は、HMMにおいて、モデル化対象を適切に表現するのに不要な状態を削除するために行われる。
図35Bでは、図35AのHMMの状態s1ないしs9のうちの、例えば、状態s5が削除されている。
状態の削除は、削除の対象の状態s5と、その状態s5から可能な状態遷移(状態s5への状態遷移を含む)とを削除することによって行われる。
図35Aでは、状態s5は、状態s2,s4,s6,s8のそれぞれとの間の状態遷移、及び、自己遷移が可能であるから、構造調整部117は、削除の対象の状態s5について、その状態s5、並びに、その状態s5と、状態s2,s4,s6,s5のそれぞれとの間の状態遷移、及び、状態s5の自己遷移を削除する。
さらに、構造調整部117は、状態の削除後のHMMの必要なパラメータについて、正規化処理を施し、状態の削除の処理を終了する。
すなわち、構造調整部117は、状態の削除後のHMMの初期確率πiと、状態遷移確率aijとに、状態の分割の場合と同様の正規化処理を施す。
なお、構造調整部117は、削除の対象とする状態を、例えば、次のように選択する。
すなわち、図29で説明したように、構造調整部117には、パラメータ推定部113でのHMMのパラメータの推定に用いられる調整後時系列データx'が、データ調整部112から供給される。
構造調整部117は、モデル記憶部115に記憶されたHMMに対して、ビタビ法を適用し、データ調整部112からの調整後時系列データx'=x1',x2',・・・,xT''が観測される尤度を最も大にする状態遷移の過程(状態の系列)(パス)(以下、最尤パスともいう)を求める。
ここで、ビタビ法とは、各状態siを始点とする状態遷移のパスの中で、時刻tに、状態siから状態sjに状態遷移する状態遷移確率aijと、その状態遷移において、調整後時系列データx'=x1',x2',・・・,xT''のうちの時刻tのサンプル値x'tが観測される確率(出力確率密度関数bj(x)から求められる出力確率)とを、調整後時系列データx'の長さT'に亘って累積した値(生起確率)を最大にするパス(最尤パス)を決定するアルゴリズムである。
ビタビ法については、上述の文献Aに記載されている。
構造調整部117は、調整後時系列データx'について、最尤パスとしての状態の系列s1',s2',・・・,sT''を決定すると、HMMの状態の中で、最尤パスを構成しない状態(最尤パスに含まれない状態)を検出する。
最尤パスを構成しない状態は、調整後時系列データx'=x1',x2',・・・,xT''の特徴(時系列パターン)を表現するのに、必ずしも必要ではない状態とみなすことができるので、構造調整部117は、最尤パスを構成しない状態を、削除の対象とする状態として選択する。
例えば、図35Aの、状態s1ないしs9を有するHMMにおいて、長さT'が16の調整後時系列データx'について、状態の系列s1,s2,s3,s6,s9,s8,s7,s4,s1,s4,s7,s8,s9,s6,s3,s2,s1が、最尤パスとして決定された場合には、構造調整部117は、HMMを構成する状態s1ないしs9のうちの、最尤パスを構成しない状態s5を、削除の対象とする状態として選択する。
そして、上述したように、構造調整部117は、削除の対象として選択した状態s5の削除を行い、これにより、図35Aに示したHMMが図35Bに示したHMMとされる構造の調整が行われる。
なお、構造調整部117では、図31ないし図35で説明した状態の分割、状態のマージ、状態の追加、状態遷移の追加、及び、状態の削除の他、状態遷移の削除も、HMMの構造の調整として行われる。
状態遷移の削除は、状態の削除と同様に行われる。
すなわち、構造調整部117は、上述したように、調整後時系列データx'について、最尤パスとしての状態の系列s1',s2',・・・,sT''を決定し、最尤パスを構成しない状態遷移を、削除の対象とする状態遷移として選択する。
さらに、構造調整部117は、削除の対象とする状態遷移として選択した状態遷移を削除し、状態遷移の削除後のHMMの状態遷移確率aijに、状態の分割の場合と同様の正規化処理を施して、状態遷移の削除の処理を終了する。
次に、図36は、図29のデータ処理装置の処理(学習処理)を説明するフローチャートである。
時系列データ入力部111に対して、モデル化対象からのセンサ信号が供給されると、時系列データ入力部111は、例えば、モデル化対象から観測されるセンサ信号を、そのまま、観測時系列データxとする。
ここで、観測時系列データxは、上述したように、時系列データ入力部111から、データ調整部112に供給される他、初期構造設定部116にも供給され、初期構造設定部116において、上述したように、出力確率密度関数bj(x)の設定に用いられる。
また、初期構造設定部116は、ステップS111において、HMMの初期化を行う。
すなわち、初期構造設定部116は、HMMの構造を、初期構造に初期化し、その初期構造のHMMのパラメータ(初期パラメータ)を設定する。
具体的には、初期構造設定部116は、HMMの初期構造として、HMMの状態数を設定し、その状態数のHMMに、スパースな状態遷移を設定する。
さらに、初期構造設定部116は、初期構造のHMMに、初期パラメータとしての状態遷移確率aij、出力確率密度関数bj(x)、及び、初期確率πiの初期値を設定する。
以上のように、初期構造設定部116において、初期構造と初期パラメータλ={aij,bj(x),πi,i=1,2,・・・,N,j=1,2,・・・,N}が設定されたHMMは、モデル記憶部115に供給されて記憶される。
その後、処理は、ステップS111からステップS112に進み、時系列データ入力部111は、観測時系列データxを、データ調整部112に供給して、処理は、ステップS113に進む。
ステップS113では、データ調整部112が、時系列データ入力部111からの観測時系列データxの調整を、図29で説明したようにして行うことで、調整後時系列データx'を得て、パラメータ推定部113に供給し、処理は、ステップS114に進む。
なお、調整後時系列データx'は、データ調整部112からパラメータ推定部113に供給される他、構造調整部117にも供給される。
ステップS114では、パラメータ推定部113が、モデル記憶部115に記憶されたHMMのパラメータを初期値とし、データ調整部112からの調整後時系列データx'を用いて、HMMの新たなパラメータを、Baum-Welchの再推定法によって推定する。
さらに、パラメータ推定部113は、HMMの新たなパラメータを、モデル記憶部115に供給し、上書きの形で記憶させる。
また、パラメータ推定部113は、図36の学習処理の開始時に0にリセットされる学習回数を1だけインクリメントし、その学習回数を、評価部114に供給する。
さらに、パラメータ推定部113は、新たなパラメータλによって定義されるHMMから、調整後時系列データx'が観測される尤度を求め、評価部114に供給し、処理は、ステップS114からステップS115に進む。
ステップS115では、評価部114は、パラメータ推定部113からの尤度や学習回数に基づき、学習が行われたHMM、つまり、パラメータ推定部113でパラメータλが推定されたHMMを評価し、そのHMMの評価の結果に基づいて、HMMの学習を終了するか否かを判定する。
ステップS115において、HMMの学習を終了しないと判定された場合、評価部114は、所定の処理を行うことを、時系列データ入力部111、データ調整部112、及び、構造調整部117に要求して、処理は、ステップS116に進む。
ステップS116では、構造調整部117が、評価部114からの要求に応じ、データ調整部112からの調整後時系列データx'を用いて、モデル記憶部115に記憶されたHMMの構造を調整する処理を行い、処理は、ステップS112に戻る。
ステップS112では、時系列データ入力部111は、評価部114からの要求に応じ、観測時系列データxを、データ調整部112に供給して、処理は、ステップS113に進む。
ステップS113では、データ調整部112が、評価部114からの要求に応じ、時系列データ入力部111からの観測時系列データxの調整を、図29で説明したようにして行うことで、調整後時系列データx'を得て、以下、上述した処理が繰り返される。
すなわち、パラメータ推定部113が、HMMのパラメータの推定を行い、構造調整部117が、その推定後のパラメータで定義されるHMMの構造の調整を行うことが繰り返される。
また、データ調整部112では、例えば、図29で説明したように、観測時系列データxを対象としたダウンサンプリング処理を行うことで、調整後時系列データx'を得る。そして、ダウンサンプリング処理では、HMMの学習が進行するにつれて、調整後時系列データx'のサンプリング周波数が、小さい値から、徐々に大に変更される。
一方、ステップS115において、HMMの学習を終了すると判定された場合、学習処理は終了する。
以上のように、図29のデータ処理装置では、HMMの構造を、スパースな構造に初期化し、その後、学習の進行に応じて、学習に用いられる観測時系列データxを調整して、調整後時系列データx'を出力し、調整後時系列データx'を用い、HMMのパラメータを推定し、HMMの構造を調整することが繰り返される。
その結果、複雑なモデル化対象であっても、そのモデル化対象を適切にモデル化するHMMを得ることができる。
すなわち、複雑なモデル化対象のモデル化には、一般に、状態数、及び状態遷移の数が多いHMMが必要となるが、状態数、及び状態遷移の数が多い大規模なHMMを、最初から用いて、そのHMMのパラメータを正しく推定することは難しい。
図29のデータ処理装置では、HMMの構造を、スパースな構造に初期化すること、学習の進行に応じて、観測時系列データxを調整すること、及び、HMMの構造を調整することによって、複雑なモデル化対象を適切に表現するHMMが、大規模なHMMであっても、そのような大規模なHMMのパラメータを正しく推定する(正しいと推測されるパラメータを推定する)ことができる。
さらに、図29のデータ処理装置では、モデル化対象が未知の対象であり、HMMの初期構造や、パラメータの初期値(初期パラメータ)をあらかじめ決定(予測)することができない場合であっても、そのモデル化対象を適切に表現するHMM(適切な構造であり、かつ、適切なパラメータのHMM)を求めることができる。
次に、図37は、図36のステップS116において、構造調整部117が行う処理の詳細を説明するフローチャートである。
構造調整部117は、ステップS121において、モデル記憶部115に記憶されたHMMに対して、図31で説明した状態の分割を行い、処理は、ステップS122に進む。
ステップS122では、構造調整部117は、データ調整部112から供給される調整後時系列データx'を用い、状態の分割後のHMMを構成する状態どうしの相関を求めて、処理は、ステップS123に進む。
ステップS123では、構造調整部117は、ステップS122で求めた相関に基づき、状態の分割後のHMMに対して、図32で説明した状態のマージを行い、処理は、ステップS124に進む。
ステップS124では、構造調整部117は、ステップS122で求めた相関に基づき、状態のマージ後のHMMに対して、図34で説明した状態遷移の追加を行い、処理は、ステップS125に進む。
ステップS125では、構造調整部117は、状態遷移の追加後のHMMに対して、図33で説明した状態の追加を行い、処理は、ステップS126に進む。
ステップS126では、構造調整部117は、状態の追加後のHMMを用い、データ調整部112からの調整後時系列データx'について、最尤パスを求めて、処理は、ステップS127に進む。
ステップS127では、構造調整部117は、最尤パスを構成しない状態、及び、状態遷移を検出する。さらに、ステップS127では、構造調整部117は、図35で説明したように、最尤パスを構成しない状態、及び状態遷移の削除を行う。
そして、構造調整部117は、状態、及び状態遷移の削除後のHMMのパラメータによって、モデル記憶部115の記憶値を更新し、処理はリターンする。
以上のように、構造調整部117では、モデル記憶部115に記憶されたHMMについて、状態の分割、状態のマージ、状態の追加、状態遷移の追加、状態の削除、及び、状態遷移の削除という6種類の構造の調整を行う。
ここで、図36及び図37では、評価部114は、学習回数が1回増加するごとに、構造調整部117に対して、構造の調整を要求する。
したがって、構造調整部117では、学習回数が1回増加するごとに、HMMの構造の調整が行われるが、HMMの構造の調整は、学習回数の1回の増加以外の学習の進行に応じて行うことが可能である。
すなわち、評価部114は、学習回数や尤度を、学習の進行の状況を表す進行状況情報として、データ調整部112に供給するが、この進行状況情報は、構造調整部117にも供給することができる。
この場合、構造調整部117は、評価部114からの進行状況情報に応じて、HMMの構造の調整を行う。
すなわち、構造調整部117には、例えば、進行状況情報としての学習回数が、前回の構造の調整時の回数から、所定の複数回数だけ増加した値になったときに、構造の調整を行わせることができる。
また、構造調整部117には、例えば、進行状況情報としての尤度が、前回の構造の調整時の値から低下したときや、尤度が増加する割合が、所定値以下になったとき等に、構造の調整を行わせることができる。
なお、構造調整部117によるHMMの構造の調整は、HMMの構造が、モデル化対象を表現する最適な構造に収束することを保証するものではない。
しかしながら、構造調整部117によるHMMの構造の調整によれば、モデル化対象を表現するのにあった方が適切であると推測される状態や、状態遷移が追加される一方で、モデル化対象を表現するのに必要ないと推測される状態や、状態遷移が削除されることで、複雑なモデル化対象であっても、そのモデル化対象を適切にモデル化する大規模なHMMを得ることができる。
なお、図37では、状態の分割、状態のマージ、状態遷移の追加、状態の追加、状態の削除、状態遷移の削除の順番で、構造の調整を行うこととしたが、構造の調整を行う順番は、これに限定されるものではない。
次に、図38ないし図40を参照して、図29のデータ処理装置について行ったシミュレーションについて説明する。
なお、シミュレーションでは、観測時系列データxとして、2次元空間をランダムに移動するロボットの移動軌跡の座標(x,y)のシーケンスを用いた。
また、ロボットが移動可能な2次元空間の座標(x,y)の範囲は、式-100<x<+100、及び、式-100<y<+100で表される範囲のうちの、次式の範囲で示される4つのブロック#1,#2,#3、及び#4の領域を除く範囲とした。
ブロック#1:-70<x<-20,-70<y<-20
ブロック#2:-70<x<-20,+20<y<+70
ブロック#3:+20<x<+70,-70<y<-20
ブロック#4:+20<x<+70,+20<y<+70
ロボットは、原点(0,0)をスタートの位置とし、ランダムに微小な移動量(Δx,Δy)を逐次決定しながら、移動可能な範囲で、10000ステップ(回)だけ移動させた。
図38は、ロボットの移動軌跡を示している。
すなわち、図38Aは、スタートの位置(原点)から、200ステップだけ移動するまでの移動軌跡を示しており、図38Bは、スタートの位置から、10000ステップだけ移動するまでの移動軌跡を示している。
図38では、黒丸が、微小な移動量(Δx,Δy)だけ移動した後の座標を表している。また、図38では、その黒丸を、時刻順に、直線で結ぶことによって、移動軌跡が示されている。
図38によれば、ロボットが、移動可能な範囲の全体を、ランダムに移動していることが分かる。
シミュレーションでは、以上のような10000ステップ分の座標(x,y)のシーケンスを、観測時系列データxとして用いたが、ロボットが移動可能な範囲、及び、観測時系列データxが2次元空間の座標(x,y)であることは、未知とした。
すなわち、シミュレーションでは、観測時系列データxである座標(x,y)(移動軌跡)が観測されるロボットに関する情報は、事前に与えられず、2次元の観測時系列データxが観測されることだけが、事前に分かっていることとした。
また、シミュレーションでは、初期構造のHMMとして、図30Aに示した16状態を有するHMMを採用し、HMMの各状態sjの出力確率密度関数bj(x)としては、正規分布を採用した。
なお、シミュレーションでは、学習回数が36回になった段階で、HMMの学習を終了した。
また、シミュレーションでは、上述したように、10000ステップ分の座標(x,y)のシーケンスである観測時系列データ、つまり、10000サンプルからなる観測時系列データを、学習に用いたが、36回の学習のうちの1回目の学習では、10000サンプルからなる観測時系列データに対して、サンプリング周波数が元の1/10になるように、ダウンサンプリング処理を行い、その結果得られる、1000サンプルからなる調整後時系列データを、HMMのパラメータの推定等に用いた。
その後は、学習回数が3回だけ増加するごとに、サンプリング周波数が元の1/9,1/8,1/7,・・・,1/1となるように、調整後時系列データのサンプリング周波数を、徐々に大きくした。この場合、学習回数が28回目以上となると、調整後時系列データは、観測時系列データそのものとなる。
図39は、学習の結果得られたHMMを示している。
すなわち、図39Aは、学習が開始されてから間もない時点(学習初期)のHMMを示しており、図39Bは、学習がある程度進行した時点(学習中期)のHMMを示している。さらに、図39Cは、十分な学習回数の学習を行った後(学習終了後)のHMMを示している。
なお、図39において、黒丸は、HMMの状態sjの出力確率密度関数bj()の平均ベクトルが指す座標(x,y)を表し、状態sjに相当する。
また、図39では、状態siから状態sjへの状態遷移の状態遷移確率aijが0より大である場合(状態siから状態sjへの状態遷移が有効な状態遷移である場合)、状態siに相当する黒丸と、状態sjに相当する黒丸とを、直線(線分)で結んである。したがって、図39において、黒丸どうしを接続する直線は、(有効な)状態遷移に相当する。
なお、図39において、状態遷移の方向を表す矢印の図示は、省略してある。
図39では、状態が、移動可能な範囲において、万遍なく配置され、さらに、いわば、単一(一定)の移動の仕方で移動可能な2つの位置(座標)に相当する状態どうしの間に、状態遷移が存在する。したがって、2次元空間の移動可能な範囲を移動する移動の仕方の特性(特徴)を適切に表現するHMMを得ることができていることが分かる。
図40は、学習の結果得られたHMMから、調整後時系列データについて求められた対数尤度(尤度の対数値)を示している。
図40によれば、学習回数が増加するにつれ、HMMから求められる対数尤度が向上していく傾向があることが分かる。
すなわち、図40によれば、学習が進むにつれて、移動軌跡の特徴を適切に表現するHMMが得られることが分かる。
以上のように、図29のデータ処理装置では、初期構造設定部116によって与えられるスパースな状態遷移によって構成される粗いHMMから学習を開始し、構造調整部117によって学習の進行に応じて徐々にHMMが詳細化される。これと平行して、データ調整部112によって、観測時系列データのマクロな特徴から学習を開始し、学習の進行に応じて徐々にミクロな特徴を含むような学習へと調整が行われる。
以上のような、初期構造設定部116によるHMMのスパースな初期構造の設定、構造調整部117によるHMMの構造の調整、及び、データ調整部112による観測時系列データの調整の機能が働くことで、従来は扱うことが困難であった大規模なHMMの構造の決定とパラメータの推定を行うことが可能となる。
なお、図29のデータ処理装置は、システム(システムとは、1つの装置、又は、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない)の同定、制御、人工知能などに利用される状態遷移モデルの学習に適用することができる。特に、自律ロボット等の自律エージェントその他が、環境や、自身の状態を認知(認識)し、その認知の結果に対応した行動をとる認知行動を行うための学習等に適用することができる。また、図29のデータ処理装置は、交通、金融、情報などの社会システムや、物理現象や化学反応などを対象とした物理システム・化学システム、さらには、生物に関連する生物システムなどを対象としたネットワークの学習に適用することができる。
また、上述の場合には、初期構造設定部116において、HMMの構造を、スパースな構造に初期化することとしたが、初期構造設定部116では、その他、例えば、HMMの構造を、エルゴディックな構造等に初期化すること等が可能である。
さらに、上述の場合には、データ調整部112において、学習の進行に応じて、観測時系列データを調整することとしたが、観測時系列データの調整は、行わないようにすることができる。この場合、図29のデータ処理装置において、データ調整部112は、設ける必要がない。
また、構造調整部117による構造の調整は、例えば、尤度そのものや、尤度の変化の割り合いに応じて、行うか、又は行わないかを決定することが可能である。
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図41は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク155やROM153に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体161に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体161は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体161からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部158で受信し、内蔵するハードディスク155にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)152を内蔵している。CPU152には、バス151を介して、入出力インタフェース160が接続されており、CPU152は、入出力インタフェース160を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部157が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)153に格納されているプログラムを実行する。あるいは、また、CPU152は、ハードディスク155に格納されているプログラム、衛星若しくはネットワークから転送され、通信部158で受信されてハードディスク155にインストールされたプログラム、またはドライブ159に装着されたリムーバブル記録媒体161から読み出されてハードディスク155にインストールされたプログラムを、RAM(Random Access Memory)154にロードして実行する。これにより、CPU152は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU152は、その処理結果を、必要に応じて、例えば、入出力インタフェース160を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部156から出力、あるいは、通信部158から送信、さらには、ハードディスク155に記録等させる。
図42は、情報処理装置の機能構成例を示す図である。
図42に示される情報処理装置には、因果知覚に関する構成と、因果関係に基づいてロボット(エージェント)の行動を決定する構成が含まれる。因果知覚に関する構成は図15の因果部63の構成に相当し、因果関係に基づいてロボットの行動を決定する構成は図15の行動制御部64の構成に相当する。
図42に示されるように、情報処理装置は、因果学習処理部201、因果推定処理部202、因果候補リスト記憶部203、因果候補リスト整理処理部204、および行動決定部205から構成される。
因果学習処理部201は、上述したようにして生成された距離HMM、光HMM、エネルギーHMMなどの複数のモーダルのHMMを取得し、因果学習を行う。因果学習処理部201は、因果学習を行うことによって得られたデータを因果推定処理部202に出力する。
HMMのノード(状態)は同一のHMM内では必ず1つだけが発火するため、その事象は互いに排反、かつ網羅的(MECE: Mutually Exclusive and Collectively Exhaustive)な事象の集合である。従って、あるHMMにおけるノード遷移を、単数または複数の別のHMMのノード発火に因果付けるということが可能になる。例えば、N種類のHMMのそれぞれの発火ノードの時間変化が記録されており、これが因果学習に用いられる。
因果推定処理部202は、因果学習処理部201から供給されたデータを用いて因果推定を行う。因果推定処理部202は、因果推定を行うことによって得られた因果関係を表すリストを因果候補リスト記憶部203に記憶させる。
事象間の因果関係は後述するように条件付確率によって表されるが、その条件付確率を求めるために用いられるデータを取得することを因果学習という。また、因果学習によって取得されたデータを用いて条件付確率を求め、因果関係を推定することを因果推定という。因果知覚は、因果推定によって事象間の因果関係が知覚されている状態を表す。
因果候補リスト整理処理部204は、因果候補リスト記憶部203に記憶されている因果候補リストを適宜整理する。
行動決定部205は、目標値が与えられたとき、因果候補リスト記憶部203に記憶されている因果候補リストを参照して行動を決定する。行動決定部205により決定された行動を表すコマンドに基づいてロボットの行動が制御される。
なお、因果推定処理部202においては、基本的に、次のようにして因果推定が行われる。それぞれの内容については後に詳述する。
すなわち、ある事象a1の因果推定をするにあたり、起こりうるすべての事象が、少なくともロボットの経験の範囲内で、事象a1を含む互いに排反かつ網羅的な事象a1,a2,a3,・・・よりなる集合Aと、それ以外の事象の集合である集合Bに分類される。
因果関係は、これまでに事象akと同時に生起したことがあるすべての事象bに対して求められる条件付確率P(T:ak→a1|ak,b)によって表される。T:ak→a1は事象akから事象a1への遷移を表す。以下、適宜、T:ak→a1を単にTと表す。
条件付確率P(T|ak,b)は下式によって表されるので、N(T,ak,b)とN(ak,b)の値から条件付確率が求められる。
P(T|ak,b)=P(T,ak,b)/P(ak,b)≒N(T,ak,b)/N(ak,b)
N(T,ak,b)は、事象akと事象bが同時に生起し、次の時刻に、事象a1が生起した回数を表す。N(ak,b)は、事象akと事象bが同時に生起した回数を表す。
このようにして求められた条件付確率には誤差があり、その大きさは√N(T,ak,b)に反比例すると期待される。よって、N(T,ak,b)を適切な範囲の値に保つように、粒度を変えるなどして事象bを制御すれば誤差を小さくすることができる。
具体的には、ロボットの経験数が少ない場合は、事象bの表現の仕方として例えば「明るいとき」などの大雑把な表現を用いる。また、経験数が増加するにつれて、「明るいとき」に含まれる、「照度が700から800ルクスのとき」、「明るい光が後方から差してきたとき」、「警告音とともに明るく照らし出されたとき」等の、より細かい粒度の表現を用いるようにすることで経験数に応じた誤差を小さく保ちながら、より細やかな制御や因果推定を行うことができる。
因果関係が時間的に変動する場合、事象の同時生起回数N(T,ak,b)、N(ak,b)を時間減衰させることで、条件付確率を因果関係の時間的な変動に追従させることができる。
例えば、過去に1000回(N(ak,b)=1000)試行して500回(N(T,ak,b)=500)成功しており、P(T|ak,b)=500/1000=0.5だったとする。また、いま10回試行して8回成功したとする。時間減衰がない場合、いま試行した10回を含めるとP(T|ak,b)=508/1010=0.503なので、過去に試行した場合に較べて10回中8回という高い確率で成功したとしてもP(T|ak,b)の値にほとんど影響がない。
これに対し、時間減衰がある場合、分子・分母に減衰率がかけられて評価を受けることになるので、減衰率を0.1とすると、過去の試行によって求められたP(T|ak,b)はP(T|ak,b)=50/100=0.5の状態になる。この状態に対して最新の試行結果を反映させると、P(T|ak,b)=58/110=0.527になる。仮に、過去の試行がもっと古く、さらに減衰しているとすると例えばP(T|ak,b)=5/10=0.5の状態になり、この状態に対して最新の試行結果を反映させると、P(T|ak,b)=13/20=0.65になる。
すなわち、P(T|ak,b)に対して、最近の試行結果への追従性を持たせることができる(P(T|ak,b)の値が最近の試行結果に大きな影響を受けるようにすることができる)。同時生起回数N(T,ak,b)、N(ak,b)を同じ減衰率で減衰させることにより、最近の試行結果が存在しない場合でも過去の経験に基づく確率推定値をそのまま利用可能である。また、前記推定誤差の計算に影響を与えるN(T,ak,b)の値が時間経過に伴い小さくなるため、その推定誤差は次第に大きくなり、過去の経験は最近の経験と比較して不確定であるという性質を自動的に表現することができる。
ところで、条件付確率P(T|ak,b)は、モデル当てはめの観点から見れば観測T:ak→a1(事象akから事象a1への遷移T)のもとで、「(ak,b)ならT:ak→a1が生起する」というモデルの尤度を与える式である。
一方、これを事後確率として、(ak,b)が同時生起した場合に遷移T:ak→a1の生起する確率と見ることもでき、これにより、遷移Tを生起させるための制御に条件付確率P(T|ak,b)を利用することができる。具体的には、すべての事象bのうちで、P(T|ak,b)が最大となる事象bを事象akとともに達成できれば遷移Tが生起する確率が一番高くなるので、遷移Tを生起させるためには、そのような事象bを探して行動決定すればよいことになる。
この行動決定の方法の欠点は、経験のばらつきによる推定誤差の影響を受けやすいことである。例えば、10回中5回成功した事象と、1000回中501回成功した事象のどちらを実行すべきであるのかを考える。前者の事象は、本当は成功率が0.55なのに、たまたまこの10回の試行では5回しか成功しなかったため、成功率が0.5のように見えているだけかもしれない。あと1回試してみれば6/11=0.545になるかもしれないし、5/11=0.455になるかもしれない。このような状況下では、P(T|ak,b)が最大になるような事象bを単純に選ぶのではうまくいかず、この点に欠点があるといえる。その理由は、たまたま最初の方だけ運の悪かった選択肢が圧倒的に不利となり、二度と回復するチャンスがないからである。
そこで、このような欠点を解消するため、これまでの試行数、および、現時点での条件付確率を用いて誤差の期待値を求め、その期待値の分だけ楽観的に考えて、すなわち、期待値の分だけ条件付確率を上げて行動決定に用いるようにする。これは、上述した例でいえば、前者の事象において次の1回で成功したときに得られる成功率は6/11=0.545であり、後者の事象において次の1回で成功したときに得られる成功率の502/1001=0.501より高くなるので、前者を選択するという考え方に近い。この結果、前者の試行数が増え、推定誤差も小さくなるので行動決定の精度の改善にもつながる。
図43のフローチャートを参照して、図42の情報処理装置により行われる因果知覚に関する処理について説明する。
ステップS201において、因果学習処理部201は、複数のモーダルのHMMを取得し、因果学習を行う。因果学習処理部201は、因果学習を行うことによって得られたデータを因果推定処理部202に出力する。
ステップS202において、因果推定処理部202は、因果学習処理部201から供給されたデータを用いて因果推定を行う。因果推定処理部202は、因果推定を行うことによって得られた因果関係を表す因果候補リストを因果候補リスト記憶部203に記憶させる。
ステップS203において、因果候補リスト整理処理部204は、因果候補リスト記憶部203に記憶されている因果候補リストを整理し、処理を終了させる。
以下、各処理について順に説明する。
以下においては、対象とするモーダルとして全部でM個のモーダルがあり、i(i=1,2,・・・,M)番目のモーダルはnm個の状態を持つものとする。また、適宜、i番目のモーダルの状態j(j=1,2,・・・,nm)をSi jと表記する。例えば、S2 5は2番目のモーダルが状態5であることを表す。時刻tにおけるシステム全体の状態は、M次元の状態ベクトルSt=(S1 j1,S2 j2,・・・,SM jM)によって表される。
状態ベクトル中、各次元の要素がどのモーダルの状態番号を示すのかが明らかな場合は、説明を簡単にするため、状態番号を要素とする状態ベクトルでシステムの状態を表す。例えば、モーダル1,2,3の状態がそれぞれ5,7,11である場合、モーダル1,2,3を含むシステム全体の状態ベクトルはS=(S1 5,S2 7,S3 11)=(5,7,11)で表される。また、例えばモーダル2と3に注目しているとき、状態ベクトルはS(2,3)=(S2 7,S3 11)=(7,11)で表される。
図44はモーダルの例を示す図である。
図44の例においては、モーダル1乃至3の3つのモーダルが示されている。Mの値は3になる。例えば、モーダル1はエネルギーHMMに、モーダル2は光HMMに、モーダル3は距離HMMにそれぞれ相当する。Si jはそれぞれHMMのノードに相当する。
はじめに、因果学習処理部201により行われる因果学習について説明する。
時刻t=0において、すべてのカウンタの値として0が設定され、初期化される。因果学習においては事象生起カウンタと遷移生起カウンタの2つのカウンタが用いられる。以下においてはt≧1とする。
また、すべてのカウンタの値は、所定の時間が経過する毎に、γ=0.999などのあらかじめ定められた減衰率γに従って減衰する。
時刻tにおけるシステム全体の状態Stと1時刻前の時刻の状態St-1が比較され、状態の変化があったモーダルがリストアップされる。
L=1,2,・・・,min(M-1,MaxCombi)のそれぞれのLの値に注目して以下の処理が行われる。MaxCombiは、考慮するモーダルの組み合わせの複雑さを規定するパラメータであり、任意の自然数を設定することが可能である。min(M-1,MaxCombi)は、M-1とMaxCombiのうちの小さい方の値を表す。
M個のモーダルの中からL+1個のモーダルを選び出したときのMCL+1通りのモーダルの組み合わせのうちの任意の1つの組み合わせをcM(L+1;)で表す。また、時刻t-1における、その任意の1つの組み合わせの各モーダルの状態を表す状態ベクトルをScM(L+1;) t-1で表す。
それぞれの組み合わせのcM(L+1;)について、ScM(L+1;) t-1に対応する事象生起カウンタが1だけカウントアップされる。事象生起カウンタは、対応する状態ベクトルにより表される事象が生起した回数を数えるカウンタである。
状態が変化したモーダルをモーダルiとすると、それぞれのモーダルiに注目して以下の処理が行われる。
モーダルi以外の、M-1個のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせをcM(L;i)で表す。また、時刻t-1における、その任意の1つの組み合わせの各モーダルの状態を表す状態ベクトルをScM(L;i) t-1で表す。
それぞれの組み合わせのcM(L;i)について、ScM(L;i) t-1と、モーダルiの状態遷移Ti t-1=(Si k(t-1)→Si k(t))との組である(ScM(L;i) t-1|Ti)に対応する遷移生起カウンタが1だけカウントアップされる。遷移生起カウンタは、対応する状態ベクトルにより表される事象が、因果関係を求めようとする状態遷移が生起した直前のタイミングで生起した回数を数えるカウンタである。
因果学習の具体例について説明する。
ここでは、図45に示されるように、モーダル1の状態数は状態1,2(S1 1,S1 2)の2であり、モーダル2の状態数は状態1,2,3,4(S2 1,S2 2,S2 3,S2 4)の4であり、モーダル3の状態数は状態1,2,3(S3 1,S3 2,S3 3)の3であるものとする。
また、システムの状態は、図46に示されるようにして時間変化したものとする。
図46には、t=0乃至t=5の間に観測されたモーダル1乃至3のそれぞれの状態を表す状態ベクトルが示されている。t=0における状態を表す左端の状態ベクトルの上の1はモーダル1の状態が状態1であることを表し、中央の1はモーダル2の状態が状態1であることを表す。下の1はモーダル3の状態が状態1であることを表す。
図47A乃至Dは、事象生起カウンタの例を示す図である。
Lの値を1または2とすると、3個のモーダルの中からL+1個のモーダルを選び出したときのMCL+1通りのモーダルの組み合わせは、左側に示されるように{1,2}、{1,3}、{2,3}、{1,2,3}になる。{1,2}、{1,3}、{2,3}、{1,2,3}のそれぞれのモーダルの組み合わせが上述したcM(L+1;)に相当する。
{1,2}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は、注目する組み合わせに含まれないモーダル3の要素を「−」で表すと、図47Aに示されるように、[1 1 −]、[1 2 −]、[1 3 −]、[1 4 −]、[2 1 −]、[2 2 −]、[2 3 −]、[2 4 −]の8になる。ここでは、要素を横に並べて状態ベクトルを示している。
同様に、とりうる状態ベクトルの数は注目する組み合わせに含まれるモーダルの状態の数を乗算した数になるから、{1,3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図47Bに示されるように6になる。また、{2,3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図47Cに示されるように12になり、{1,2,3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図47Dに示されるように24になる。
それぞれの状態ベクトルに対応して事象生起カウンタが用意されるから、この例の場合、合計50個の事象生起カウンタが用意されることになる。
図48A乃至Cは、モーダル1のそれぞれの状態遷移に対応して用意される遷移生起カウンタの例を示す図である。
図48A乃至Cに示される遷移生起カウンタが、図49に示されるように、例えば、モーダル1の状態1と2間の双方向の状態遷移に対応して用意される。
Lの値を1または2とすると、モーダル1以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせは、図48A乃至Cの左側に示されるように{2}、{3}、{2,3}になる。それぞれのモーダルの組み合わせが上述したcM(L;i)に相当する。
{2}のモーダルの組み合わせに注目したとき、モーダルの組み合わせから除かれるモーダル1の要素を「*」、注目する組み合わせに含まれていないモーダル3の要素を「−」で表すと、とりうる状態ベクトルの数は、図48Aに示されるように、[* 1 −]、[* 2 −]、[* 3 −]、[* 4 −]の4になる。
同様に、{3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図48Bに示されるように3になる。また、{2,3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図48Cに示されるように12になる。
この例の場合、モーダル1のそれぞれの状態遷移に対応して、合計19個の遷移生起カウンタが用意されることになる。
図50A乃至Cは、モーダル2のそれぞれの状態遷移に対応して用意される遷移生起カウンタの例を示す図である。
図50A乃至Cに示される遷移生起カウンタが、図51に示されるように、モーダル2の状態1と2間、状態2と3間、状態3と4間、状態4と1間、状態1と3間、状態2と4間の双方向の状態遷移に対応して用意される。
Lの値を1または2とすると、モーダル2以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせは、図50A乃至Cの左側に示されるように{1}、{3}、{1,3}になる。
{1}のモーダルの組み合わせに注目したとき、モーダルの組み合わせから除かれるモーダル2の要素を「*」、注目する組み合わせに含まれていないモーダル3の要素を「−」で表すと、とりうる状態ベクトルの数は、図50Aに示されるように、[1 * −]、[2 * −]の2になる。
同様に、{3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図50Bに示されるように3になる。また、{1,3}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図50Cに示されるように6になる。
この例の場合、モーダル2のそれぞれの状態遷移に対応して、合計11個の遷移生起カウンタが用意されることになる。
図52A乃至Cは、モーダル3のそれぞれの状態遷移に対応して用意される遷移生起カウンタの例を示す図である。
図52A乃至Cに示される遷移生起カウンタが、図53に示されるように、モーダル3の状態1と2間、状態2と3間、状態3と1間の双方向の状態遷移に対応して用意される。
Lの値を1または2とすると、モーダル3以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせは、図52A乃至Cの左側に示されるように{1}、{2}、{1,2}になる。
{1}のモーダルの組み合わせに注目したとき、モーダルの組み合わせから除かれるモーダル3の要素を「*」、注目する組み合わせに含まれていないモーダル2の要素を「−」で表すと、とりうる状態ベクトルの数は、図52Aに示されるように、[1 − *]、[2 − *]の2になる。
同様に、{2}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図52Bに示されるように4になる。また、{1,2}のモーダルの組み合わせに注目したとき、とりうる状態ベクトルの数は図52Cに示されるように8になる。
この例の場合、モーダル3のそれぞれの状態遷移に対応して、合計14個の遷移生起カウンタが用意されることになる。
このように、遷移生起カウンタは、あるモーダルのそれぞれの状態遷移と、他のモーダルの状態の全ての組み合わせとを対応させる形で用意される。
このような事象生起カウンタ、遷移生起カウンタが用意された状態で、t=1になり、システムの状態が図46に示されるように[1 1 1]から[1 2 1]に遷移したとき、t=1における状態と、直前の時刻であるt=0における状態が比較され、状態の変化があったモーダルであるモーダル2がリストアップされる。
また、事象生起カウンタのカウントアップが行われる。
ここでは、MCL+1通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1,2}、{1,3}、{2,3}、{1,2,3}がそれぞれ注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する事象生起カウンタが1だけカウントアップされる。注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルが、上述したScM(L+1;) t-1に相当する。
{1,2}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル1,2の状態はそれぞれ1であるから、図47Aに示される8個の状態ベクトルのうちの[1 1 −]に対応する事象生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル1,3の状態はそれぞれ1であるから、図47Bに示される6個の状態ベクトルのうちの[1 − 1]に対応する事象生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル2,3の状態はそれぞれ1であるから、図47Cに示される12個の状態ベクトルのうちの[− 1 1]に対応する事象生起カウンタが1だけカウントアップされる。
{1,2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル1,2,3の状態はそれぞれ1であるから、図47Dに示される24個の状態ベクトルのうちの[1 1 1]に対応する事象生起カウンタが1だけカウントアップされる。
このように、システムの状態が[1 1 1]から[1 2 1]に遷移したとき、図54Aに示されるように、[1 1 −]、[1 − 1]、[− 1 1]、[1 1 1]に対応する事象生起カウンタが1だけカウントアップされる。
さらに、遷移生起カウンタのカウントアップが行われる。
まず、状態が遷移したモーダル2以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1}、{3}、{1,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルと、モーダル2の状態遷移(1→2)との組が求められる。
求められる組は、モーダル2の状態遷移(1→2)と対応付けられている、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルを表す。図50を参照して説明したように、モーダル2の各状態遷移に対しては、状態ベクトルが対応付けられている。この、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルが上述したScM(L;i) t-1に相当し、組が、(ScM(L;i) t-1|Ti)に相当する。
また、モーダル2の状態遷移(1→2)と対応付けられている、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する遷移生起カウンタ(図50A乃至C)が1だけカウントアップされる。
{1}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル1の状態は1であるから、図50Aに示される、モーダル2の状態遷移(1→2)と対応付けられている2個の遷移生起カウンタのうち、[1 * −]に対応する遷移生起カウンタが1だけカウントアップされる。
{3}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル3の状態は1であるから、図50Bに示される、モーダル2の状態遷移(1→2)と対応付けられている3個の遷移生起カウンタのうち、[− * 1]に対応する遷移生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=0におけるモーダル1,3の状態はそれぞれ1であるから、図50Cに示される、モーダル2の状態遷移(1→2)と対応付けられている6個の遷移生起カウンタのうち、[1 * 1]に対応する遷移生起カウンタが1だけカウントアップされる。
このように、システムの状態が[1 1 1]から[1 2 1]に遷移したとき、図54Bに示されるように、モーダル2の状態遷移(1→2)と対応付けられている、[1 * −]、[− * 1]、[1 * 1]に対応する遷移生起カウンタが1だけカウントアップされる。
同様に、t=2になったとき、t=2における状態と、直前の時刻であるt=1における状態が比較され、状態に変化のあったモーダルがなかったものとして判断される。図46に示されるように、t=2におけるシステムの状態はt=1におけるシステムの状態と同じ[1 2 1]である。
また、事象生起カウンタのカウントアップが行われる。
3個のモーダルの中からL+1個のモーダルを選び出したときのMCL+1通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1,2}、{1,3}、{2,3}、{1,2,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する事象生起カウンタが1だけカウントアップされる。
{1,2}のモーダルの組み合わせに注目したとき、1時刻前のt=1におけるモーダル1の状態は1、モーダル2の状態は2であるから、図47Aに示される8個の状態ベクトルのうちの[1 2 −]に対応する事象生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=1におけるモーダル1,3の状態はそれぞれ1であるから、図47Bに示される6個の状態ベクトルのうちの[1 − 1]に対応する事象生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=1におけるモーダル2の状態は2、モーダル3の状態は1であるから、図47Cに示される12個の状態ベクトルのうちの[− 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
{1,2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=1におけるモーダル1の状態は1、モーダル2の状態は2、モーダル3の状態は1であるから、図47Dに示される24個の状態ベクトルのうちの[1 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
このように、システムの状態が[1 2 1]のままであるとき、図55に示されるように、[1 2 −]、[1 − 1]、[− 2 1]、[1 2 1]の事象生起カウンタが1だけカウントアップされる。
t=3になり、システムの状態が図46に示されるように[1 2 1]から[2 2 1]に遷移したとき、t=3における状態と、直前の時刻であるt=2における状態が比較され、状態の変化があったモーダルであるモーダル1がリストアップされる。
また、事象生起カウンタのカウントアップが行われる。
3個のモーダルの中からL+1個のモーダルを選び出したときのMCL+1通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1,2}、{1,3}、{2,3}、{1,2,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する事象生起カウンタが1だけカウントアップされる。
{1,2}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル1の状態は1、モーダル2の状態は2であるから、図47Aに示される8個の状態ベクトルのうちの[1 2 −]に対応する事象生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル1,3の状態はそれぞれ1であるから、図47Bに示される6個の状態ベクトルのうちの[1 − 1]に対応する事象生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル2の状態は2、モーダル3の状態は1であるから、図47Cに示される12個の状態ベクトルのうちの[− 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
{1,2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル1の状態は1、モーダル2の状態は2、モーダル3の状態は1であるから、図47Dに示される24個の状態ベクトルのうちの[1 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
このように、システムの状態が[1 2 1]から[2 2 1]に遷移したとき、図56Aに示されるように、[1 2 −]、[1 − 1]、[− 2 1]、[1 2 1]の事象生起カウンタが1だけカウントアップされる。
さらに、遷移生起カウンタのカウントアップが行われる。
まず、状態が遷移したモーダル1以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{2}、{3}、{2,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルと、モーダル1の状態遷移(1→2)との組が求められる。
また、モーダル1の状態遷移(1→2)と対応付けられている、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する遷移生起カウンタ(図48A乃至C)が1だけカウントアップされる。
{2}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル2の状態は2であるから、図48Aに示される、モーダル1の状態遷移(1→2)と対応付けられている4個の遷移生起カウンタのうち、[* 2 −]に対応する遷移生起カウンタが1だけカウントアップされる。
{3}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル3の状態は1であるから、図48Bに示される、モーダル1の状態遷移(1→2)と対応付けられている3個の遷移生起カウンタのうち、[* − 1]に対応する遷移生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=2におけるモーダル2の状態は2、モーダル3の状態は1であるから、図48Cに示される、モーダル1の状態遷移(1→2)と対応付けられている12個の遷移生起カウンタのうち、[* 2 1]に対応する遷移生起カウンタが1だけカウントアップされる。
このように、システムの状態が[1 2 1]から[2 2 1]に遷移したとき、図56Bに示されるように、モーダル1の状態遷移(1→2)と対応付けられている、[* 2 −]、[* − 1]、[* 2 1]に対応する遷移生起カウンタが1だけカウントアップされる。
t=4になり、システムの状態が図46に示されるように[2 2 1]から[2 4 3]に遷移したとき、t=4における状態と、直前の時刻であるt=3における状態が比較され、状態の変化があったモーダルであるモーダル2とモーダル3がリストアップされる。
また、事象生起カウンタのカウントアップが行われる。
3個のモーダルの中からL+1個のモーダルを選び出したときのMCL+1通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1,2}、{1,3}、{2,3}、{1,2,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する事象生起カウンタが1だけカウントアップされる。
{1,2}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1,2の状態はそれぞれ2であるから、図47Aに示される8個の状態ベクトルのうちの[2 2 −]に対応する事象生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1の状態は2、モーダル3の状態は1であるから、図47Bに示される6個の状態ベクトルのうちの[2 − 1]に対応する事象生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル2の状態は2、モーダル3の状態は1であるから、図47Cに示される12個の状態ベクトルのうちの[− 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
{1,2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1の状態は2、モーダル2の状態は2、モーダル3の状態は1であるから、図47Dに示される24個の状態ベクトルのうちの[2 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
このように、システムの状態が[2 2 1]から[2 4 3]に遷移したとき、図57Aに示されるように、[2 2 −]、[2 − 1]、[− 2 1]、[2 2 1]に対応する事象生起カウンタが1だけカウントアップされる。
さらに、遷移生起カウンタのカウントアップが行われる。2つのモーダルがリストアップされている場合、それぞれのモーダルを対象として同じ処理が繰り返される。
まず、状態が遷移したモーダル2以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1}、{3}、{1,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルと、モーダル2の状態遷移(2→4)との組が求められる。
また、モーダル2の状態遷移(2→4)と対応付けられている、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する遷移生起カウンタ(図50A乃至C)が1だけカウントアップされる。
{1}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1の状態は2であるから、図50Aに示される、モーダル2の状態遷移(2→4)と対応付けられている2個の遷移生起カウンタのうち、[2 * −]に対応する遷移生起カウンタが1だけカウントアップされる。
{3}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル3の状態は1であるから、図50Bに示される、モーダル2の状態遷移(2→4)と対応付けられている3個の遷移生起カウンタのうち、[− * 1]に対応する遷移生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1の状態は2、モーダル3の状態は1であるから、図50Cに示される、モーダル2の状態遷移(2→4)と対応付けられている6個の遷移生起カウンタのうち、[2 * 1]に対応する遷移生起カウンタが1だけカウントアップされる。
次に、状態が遷移したモーダル3以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1}、{2}、{1,2}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルと、モーダル3の状態遷移(1→3)との組が求められる。
また、モーダル3の状態遷移(1→3)と対応付けられている、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する遷移生起カウンタ(図52A乃至C)が1だけカウントアップされる。
{1}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1の状態は2であるから、図52Aに示される、モーダル3の状態遷移(1→3)と対応付けられている2個の遷移生起カウンタのうち、[2 * −]に対応する遷移生起カウンタが1だけカウントアップされる。
{2}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル2の状態は2であるから、図52Bに示される、モーダル3の状態遷移(1→3)と対応付けられている4個の遷移生起カウンタのうち、[* 2 −]に対応する遷移生起カウンタが1だけカウントアップされる。
{1,2}のモーダルの組み合わせに注目したとき、1時刻前のt=3におけるモーダル1,2の状態はそれぞれ2であるから、図52Cに示される、モーダル3の状態遷移(1→3)と対応付けられている8個の遷移生起カウンタのうち、[2 2 −]に対応する遷移生起カウンタが1だけカウントアップされる。
このように、システムの状態が[2 2 1]から[2 4 3]に遷移したとき、図57Bの左側に示されるように、モーダル2の状態遷移(2→4)については、モーダル2の状態遷移(2→4)と対応付けられている、[2 * −]、[− * 1]、[2 * 1]に対応する遷移生起カウンタが1だけカウントアップされる。また、図57Bの右側に示されるように、モーダル3の状態遷移(1→3)については、モーダル3の状態遷移(1→3)と対応付けられている、[2 − *]、[− 2 *]、[2 2 −]に対応する遷移生起カウンタが1だけカウントアップされる。
t=5になり、システムの状態が図46に示されるように[2 4 3]から[3 4 3]に遷移したとき、t=5における状態と、直前の時刻であるt=4における状態が比較され、状態の変化があったモーダルであるモーダル1がリストアップされる。
また、事象生起カウンタのカウントアップが行われる。
3個のモーダルの中からL+1個のモーダルを選び出したときのMCL+1通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{1,2}、{1,3}、{2,3}、{1,2,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する事象生起カウンタが1だけカウントアップされる。
{1,2}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル1の状態は2、モーダル2の状態は4であるから、図47Aに示される8個の状態ベクトルのうちの[2 4 −]に対応する事象生起カウンタが1だけカウントアップされる。
{1,3}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル1の状態は2、モーダル3の状態は3であるから、図47Bに示される6個の状態ベクトルのうちの[2 − 3]に対応する事象生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル2の状態は4、モーダル3の状態は3であるから、図47Cに示される12個の状態ベクトルのうちの[− 4 3]に対応する事象生起カウンタが1だけカウントアップされる。
{1,2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル1の状態は2、モーダル2の状態は4、モーダル3の状態は3であるから、図47Dに示される24個の状態ベクトルのうちの[2 4 3]に対応する事象生起カウンタが1だけカウントアップされる。
このように、システムの状態が[2 4 3]から[3 4 3]に遷移したとき、図58Aに示されるように、[2 4 −]、[2 − 3]、[− 4 3]、[2 4 3]に対応する事象生起カウンタが1だけカウントアップされる。
さらに、遷移生起カウンタのカウントアップが行われる。
まず、状態が遷移したモーダル1以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせである{2}、{3}、{2,3}のそれぞれが注目され、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルと、モーダル1の状態遷移(2→3)との組が求められる。
また、モーダル1の状態遷移(2→3)と対応付けられている、注目する組み合わせに含まれるモーダルの1時刻前の状態を表す状態ベクトルに対応する遷移生起カウンタ(図48A乃至C)が1だけカウントアップされる。
{2}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル2の状態は4であるから、図48Aに示される、モーダル1の状態遷移(2→3)と対応付けられている4個の遷移生起カウンタのうち、[* 4 −]に対応する遷移生起カウンタが1だけカウントアップされる。
{3}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル3の状態は3であるから、図48Bに示される、モーダル1の状態遷移(2→3)と対応付けられている3個の遷移生起カウンタのうち、[* − 3]に対応する遷移生起カウンタが1だけカウントアップされる。
{2,3}のモーダルの組み合わせに注目したとき、1時刻前のt=4におけるモーダル2の状態は4、モーダル3の状態は3であるから、図48Cに示される、モーダル1の状態遷移(2→3)と対応付けられている12個の遷移生起カウンタのうち、[* 4 3]に対応する遷移生起カウンタが1だけカウントアップされる。
このように、システムの状態が[2 4 3]から[3 4 3]に遷移したとき、図58Bに示されるように、モーダル1の状態遷移(2→3)と対応付けられている、[* 4 −]、[* − 3]、[* 4 3]に対応する遷移生起カウンタが1だけカウントアップされる。
因果学習は以上の処理が繰り返されることによって進められる。因果学習によって得られた事象生起カウンタの値と、遷移生起カウンタの値を表す情報は因果学習処理部201から因果推定処理部202に供給され、因果推定に用いられる。
次に、因果推定処理部202により行われる因果推定について説明する。
モーダルiにおける状態遷移Ti=(Si k→Si k′)の因果関係を推定する場合、L=1,2,・・・,min(M-1,MaxCombi)のそれぞれのLの値に注目して以下の処理が行われる。
モーダルi以外の、M-1個のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせをcM(L;i)で表す。また、cM(L;i)に対応する状態ベクトルパターンをScM(L;i)で表す。
状態ベクトルパターンScM(L;i)のうちのそれぞれの状態ベクトルをScM(L;i) jで表すとすると、それぞれの状態ベクトルScM(L;i) jに対して、状態遷移Tiの条件付確率P(Ti|ScM(L;i) j)が求められる。
具体的には、状態ベクトルScM(L;i) jの要素としてモーダルiの遷移元の状態であるSi kが補われることによって状態ベクトル(Si k,ScM(L;i) j)が生成され、生成された状態ベクトル(Si k,ScM(L;i) j)に対応する事象生起カウンタの値NSが取得される。
状態ベクトル(Si k,ScM(L;i) j)に対応する事象生起カウンタの値NSが0である場合、状態ベクトルScM(L;i) jに対する状態遷移Tiの条件付確率P(Ti|ScM(L;i) j)はσ0として設定される。σ0は最低確率を与える、0以上1以下の固定値である。
一方、状態ベクトル(Si k,ScM(L;i) j)に対応する事象生起カウンタの値NSが1以上である場合、(Ti,ScM(L;i) j)に対応する遷移生起カウンタの値NTが取得される。(Ti,ScM(L;i) j)は、状態遷移Tiに対応付けられている状態ベクトルScM(L;i) jを表す。
遷移生起カウンタの値NTを事象生起カウンタの値NSで割ることによって、暫定確率値p0=NT/NSが求められる。
暫定確率値p0と事象生起カウンタの値NSを用いて値σが下式(2)で表されるとすると、状態ベクトルScM(L;i) jに対する状態遷移Tiの条件付確率P(Ti|ScM(L;i) j)は下式(3)によって表される。式(3)において、minは、1とp0+σのうちの小さい方の値を条件付確率Pとすることを表す。
Figure 0004687732
Figure 0004687732
値σを暫定確率値p0に加算することは、経験に基づく確率の推定誤差を楽観的に考えて得られた値を最終的な条件付確率Pにすることを表す。
なお、これ以外にも、下式(4)に従って、条件付確率Pを0.5に向けて修正することも可能である。また、p+ασを条件付確率Pとするような修正も可能である。
Figure 0004687732
いま対象にしている状態遷移という事象は、生起するかしないかの2値を持つ事象であるので、生起確率pのベルヌーイ試行によってモデル化することができる。例えばN(X)回のサンプルから得られた生起確率p=N(X,T)/N(X)は、期待値√p(1-p)/N(X)の推定誤差をもつと考えられるため、これと同様にして求められる値σの分だけ確率を上げたものが、最終的な条件付確率Pとして求められる。ただし、P=0またはP=1においては推定誤差が0になるので、実用上、ある適当なパラメータσ0を用いて推定誤差としての値σの計算が行われる。
閾値以上の条件付確率P(Ti|ScM(L;i) j)が求められた場合、対象になっている状態ベクトルScM(L;i) jが、条件付確率P(Ti|ScM(L;i) j)とともに因果候補リストに登録される。因果候補リストは、状態遷移Tiと因果関係のある状態ベクトルScM(L;i) jのリストであり、状態遷移Ti毎に、条件付確率P(Ti|ScM(L;i) j)の高い順に状態ベクトルScM(L;i) jが対応付けられる。状態ベクトルScM(L;i) jにより表される状態が、状態遷移Tiの因果候補になる。
因果推定の具体例について説明する。
ここでは、モーダル2の状態遷移(1→2)と因果関係のある状態ベクトルを推定する場合について説明する。
モーダル2の状態遷移(1→2)と因果関係のある状態ベクトルは、モーダル1とモーダル3の両方の状態を表す状態ベクトルか、モーダル1とモーダル3のうちの一方の状態を表す状態ベクトルである。従って、Lの値を1または2とし、モーダル2以外のモーダルの中からL個のモーダルを選び出したときのM-1CL通りのモーダルの組み合わせのうちの任意の1つの組み合わせを考えると、その組み合わせは{1}、{3}、{1,3}になる。それぞれのモーダルの組み合わせが上述したcM(L;i)に相当する。
また、図59A乃至Cに示されるように、{1}に対応する2個の状態ベクトルのパターン、{3}に対応する3個の状態ベクトルのパターン、{1,3}に対応する6個の状態ベクトルのパターンが、それぞれ、cM(L;i)に対応する上述した状態ベクトルパターンScM(L;i)に相当する。図59A乃至Cに示される状態ベクトルは、図50A乃至Cに示されるものと同じである。
例えば、{1}に対応する[1 * −]と[2 * −]の2個の状態ベクトルのパターンのうち、[1 * −]または[2 * −]が、上述した状態ベクトルScM(L;i) jに相当する。図59A乃至Cに示される11個のそれぞれの状態ベクトルScM(L;i) jを対象として以降の処理が行われ、モーダル2の状態遷移(1→2)との因果関係を表す条件付確率が求められる。
例えば、図59A乃至Cに示される11個の状態ベクトルのうち、図60Aに示される[1 * −]と[1 * 1]のそれぞれの状態ベクトルに対するモーダル2の状態遷移(1→2)の条件付確率を求める場合について説明する。
[1 * −]に注目すると、図60Bの左側に示されるように、[1 * −]の要素として、モーダル2の遷移元の状態である1が補われることによって[1 1 −]が生成される。[1 1 −]が上述した(Si k,ScM(L;i) j)に相当する。
[1 1 −]に対応する事象生起カウンタの値NS(図47)が取得される。値NSは、モーダル1の状態1とモーダル2の状態1が同時に生起した回数を表し、因果学習によって取得されている。
[1 1 −]に対応する事象生起カウンタの値NSが取得された後、モーダル2の状態遷移(1→2)と対応付けて用意されている、[1 * −]に対応する遷移生起カウンタの値NT(図60Cの左側、図50A)が取得される。遷移生起カウンタの値NTは、モーダル2の状態遷移(1→2)が生起する1時刻前に、モーダル1の状態1とモーダル2の状態1が同時に生起した回数を表し、因果学習によって取得されている。
事象生起カウンタの値NSと遷移生起カウンタの値NTに基づいて、[1 * −]に対する、モーダル2の状態遷移(1→2)の条件付確率が求められる。すなわち、事象生起カウンタの値NSが0であるときには条件付確率としてσ0が求められ、事象生起カウンタの値NSが1以上であるときには上式(3)に従って条件付確率が求められる。
同様に、[1 * 1]に注目すると、図60Bの右側に示されるように、[1 * 1]の要素として、モーダル2の遷移元の状態である1が補われることによって[1 1 1]が生成される。
[1 1 1]に対応する事象生起カウンタの値NSと、モーダル2の状態遷移(1→2)と対応付けて用意されている、[1 * 1](図60Cの右側、図50C)に対応する遷移生起カウンタの値NTが取得される。
事象生起カウンタの値NSと遷移生起カウンタの値NTに基づいて、[1 * 1]に対する、モーダル2の状態遷移(1→2)の条件付確率が求められる。
以上のようにして求められた条件付確率が、適宜、状態ベクトルと対応付けて因果候補リストに登録され、因果候補リスト記憶部203に記憶される。
次に、因果候補リスト整理処理部204により行われる因果候補リストの整理について説明する。
因果候補リストの整理は、因果候補リストに登録された状態ベクトルをマージすることであり、上述した、N(T,ak,b)を適切な範囲の値に保つように、粒度を変えるなどして事象bを制御することに相当する。因果候補リストの整理は所定のタイミングで行われる。
L個のモーダルにおける、ある特定の状態の組として定義される状態ベクトルScM(L;) kを考える。
マージの可否は、状態ベクトルScM(L;) kと、上記L個のモーダルに含まれないある1つのモーダルであるモーダルiの特定の状態Si jを状態ベクトルScM(L;) kに対して追加した状態ベクトル(ScM(L;) k,Si j)との間で判断される。この状態ベクトルScM(L;) kと状態ベクトル(ScM(L;) k,Si j)は、それぞれ、同じ状態遷移の条件付確率と対応付けて因果候補リストに登録されている状態ベクトルである。
状態ベクトル(ScM(L;) k,Si j)は状態ベクトルScM(L;) kにSi jを追加したものであるから、概念的には、状態ベクトルScM(L;) kの方が状態ベクトル(ScM(L;) k,Si j)より上位の状態ベクトルといえる。マージの可否の判断は、下位の状態ベクトルを上位の状態ベクトルに含めて同じものとして考えるどうかの判断になる。
状態ベクトルScM(L;) kに対する目標の状態遷移の条件付確率Pを下式(5)で表し、状態ベクトル(ScM(L;) k,Si j)に対する同じ状態遷移の条件付確率P'を下式(6)で表す。
Figure 0004687732
Figure 0004687732
この場合、両者のマージの可否の判断は下式(7)に従って行われる。αは適当なマージ係数である。
Figure 0004687732
このようなマージの可否の判断が、状態ベクトルScM(L;) kと、特定の状態であるSi jを追加した、モーダルiのni個の全ての状態ベクトル(ScM(L;) k,Si j)との間で行われる。
ni個の状態ベクトル(ScM(L;) k,Si j)のうちのどれか1つでもマージ不可と判断できるものがあれば、因果候補リストから状態ベクトルScM(L;) kが削除される。概念的に下位の状態ベクトルが因果候補リストに残ることになる。
一方、マージ不可と判断できる状態ベクトルがni個の状態ベクトル(ScM(L;) k,Si j)の中になかった場合、ni個の状態ベクトル(ScM(L;) k,Si j)、および、それを一部に含む状態ベクトル(より高次の状態ベクトル)がすべて削除される。概念的に上位の状態ベクトルによって、下位の状態ベクトルがまとめて扱われることになる。
因果候補リストの整理の具体的な例について説明する。
図61Aに示される状態ベクトルである[1 * −]について考える。[1 * −]は、モーダル2のある状態遷移の因果候補の状態を表すものとして因果候補リストに登録されている状態ベクトルであり、上述したScM(L;) kに相当する。
この場合、マージ可否の判断は、[1 * −]と、図61Bに示される、モーダル2に含まれない1つのモーダルであるモーダル3の状態を追加した状態ベクトルである[1 * 1]、[1 * 2]、[1 * 3]との間で判断される。[1 * 1]、[1 * 2]、[1 * 3]が、上述した(ScM(L;) k,Si j)に相当する。
[1 * −]に対するモーダル2のある状態遷移の条件付確率が上式(5)に従って算出され、[1 * 1]、[1 * 2]、[1 * 3]のそれぞれに対する、モーダル2の同じ状態遷移の条件付確率が上式(6)に従って算出される。
また、上式(7)に従って、[1 * −]と、[1 * 1]、[1 * 2]、[1 * 3]をマージすることができるか否かが判断される。
[1 * 1]、[1 * 2]、[1 * 3]を全て[1 * −]にマージすることができると判断された場合、[1 * 1]、[1 * 2]、[1 * 3]が因果関係リストから削除され、[1 * −]だけが残される。
一方、[1 * 1]、[1 * 2]、[1 * 3]の中に1つでもマージすることができない状態ベクトルがあると判断された場合、[1 * −]が因果関係リストから削除され、[1 * 1]、[1 * 2]、[1 * 3]が残される。
ここで、シンプソンのパラドックスを例にとり、因果候補リストの整理の考え方について説明する。
シンプソンのパラドックスとは以下のようなものである。
ある病気の患者が80人いた。そのうちの半数の40人にある治療を施したところ、20人が治癒した。一方、何もしなかったところ、16人が治癒した。治療を施した場合の治癒率50%は、何もしない場合の自然治癒率40%よりも高いので、この治療には効果があると考えられる。
患者は男女それぞれ40人であったが、治療への参加人数に違いがあったので男女別に結果を分析する。
男性は30人が治療を受け、そのうちの18人が治癒した。治療を受けなかったのは残りの10人であり、自然治癒した人はそのうちの7人であった。つまり、男性に限ると、治療を施した場合の治癒率60%は、何もしない場合の自然治癒率70%よりも低く、治療を行なわない方がよいのではないかと考えられる。
女性は10人しか治療に参加せず、そのうちの2人のみが治癒した。残りの30人のうち9人は自然治癒した。つまり、女性の場合、治療を施した場合の治癒率20%は、何もしない場合の自然治癒率30%よりも低く、この場合もやはり、治療を行なわない方がよいのではないかと考えられる。
さて、この治療には効果があるのか、ないのか。むしろ副作用があるのか。
治癒=(病気→健康)という遷移に関して考慮すべきモーダルとしては「治療」および「男女」の2つである。これらの関係をまとめると以下のようになる。
P(治癒|治療する)=0.5 σ=0.079
P(治癒|治療せず)=0.4 σ=0.078
P(治癒|治療する,男性)=0.6 σ=0.089
P(治癒|治療する,女性)=0.2 σ=0.13
P(治癒|治療せず,男性)=0.7 σ=0.14
P(治癒|治療せず,女性)=0.3 σ=0.084
P(治癒|男性)=0.63 σ=0.077
P(治癒|女性)=0.28 σ=0.071
問題は、これらのうちで真に考慮すべき因果関係はどこにあるのか、ということである。ここで、前述した因果関係の整理手法(因果候補リストの状態ベクトルの整理)を適用する。以下、マージ係数α=1とする。
P(治癒|治療する)に関する因果関係を整理してみると次のようになるので、P(治癒|治療する,男性)とP(治癒|治療する,女性)はマージできずにP(治癒|治療する)を消去することになる。
|P(治癒|治療する)-P(治癒|治療する,男性)|=0.1<(0.079+0.089)=0.17
|P(治癒|治療する)-P(治癒|治療する,女性)|=0.3>(0.079+0.13)=0.21
同様に、P(治癒|治療せず)に関しても次のようになるので、P(治癒|治療せず,男性)とP(治癒|治療せず,女性)はマージできずにP(治癒|治療せず)を消去することになる。
|P(治癒|治療せず)-P(治癒|治療せず,男性)|=0.3>(0.078+0.14)=0.22
|P(治癒|治療せず)-P(治癒|治療せず,女性)|=0.1<(0.078+0.084)=0.16
一方、P(治癒|男性)について調べてみると、P(治癒|治療する,男性)とP(治癒|治療せず,男性)はいずれもマージ可能なので、P(治癒|治療する,男性)とP(治癒|治療せず,男性)が共に消去されてP(治癒|男性)のみが残る。
|P(治癒|男性)-P(治癒|治療する,男性)|=0.03<(0.077+0.089)=0.17
|P(治癒|男性)-P(治癒|治療せず,男性)|=0.07<(0.077+0.14)=0.22
同様に、P(治癒|女性)について調べてみると、P(治癒|治療する,女性)とP(治癒|治療せず,女性)はやはりマージ可能なので、P(治癒|治療する,女性)とP(治癒|治療せず,女性)が消去されてP(治癒|女性)のみが残る。
|P(治癒|女性)-P(治癒|治療する,女性)|=0.08<(0.071+0.13)=0.20
|P(治癒|女性)-P(治癒|治療せず,女性)|=0.02<(0.071+0.084)=0.15
以上より、現時点で有効な因果関係は「男女差→治癒の有無」のみであり、治療に関しては有効とも副作用があるとも断定できない。言い換えれば、「男女別」と「治療の有無」の両方を同時に考慮したL=2の因果分析は不要であり、L=1の範囲内で考えれば十分であると考えられる。
その後、実験を繰り返し、被験者の数を100倍に増やしたが、次のように、パラドキシカルな状況は依然として変わらなかったものとする。
ある病気の患者が8000人いた。そのうちの半数4000人にある治療を施したところ、2000人が治癒した。一方、何もしなかったところ、1600人が治癒した。
患者は男女それぞれ4000人であったが、治療への参加人数に違いがあった。
男性は3000人が治療を受け、そのうちの1800人が治癒した。治療を受けなかったのは残りの1000人であり、自然治癒した人はそのうちの700人であった。
女性は1000人しか治療に参加せず、そのうちの200人のみが治癒した。残りの3000人のうち900人は自然治癒した。
このような状況を考え、今度はここから何が言えるのかを考えてみる。
このような状況では、確率そのものは上述したものと同一で、サンプル数Nが100倍となっているため、誤差の大きさの期待値σだけが1/10になっている。
これまでと同様の計算により、P(治癒|治療する)に関する因果候補を整理してみると次のようになるので、P(治癒|治療する,男性)とP(治癒|治療する,女性)はマージできずにP(治癒|治療する)を消去することになる。
|P(治癒|治療する)-P(治癒|治療する,男性)|=0.1>(0.0079+0.0089)=0.017
|P(治癒|治療する)-P(治癒|治療する,女性)|=0.3>(0.0079+0.013)=0.021
同様に、P(治癒|治療せず)に関しても次のようになるので、P(治癒|治療せず,男性)とP(治癒|治療せず,女性)はマージできずにP(治癒|治療せず)を消去することになる。
|P(治癒|治療せず)-P(治癒|治療せず,男性)|=0.3>(0.0078+0.014)=0.022
|P(治癒|治療せず)-P(治癒|治療せず,女性)|=0.1>(0.0078+0.0084)=0.016
次に、P(治癒|男性)について調べてみると、P(治癒|治療する,男性)とP(治癒|治療せず,男性)は、今度はマージ不可なので、P(治癒|男性)が消去されることになる。
|P(治癒|男性)-P(治癒|治療する,男性)|=0.03>(0.0077+0.0089)=0.017
|P(治癒|男性)-P(治癒|治療せず,男性)|=0.07>(0.0077+0.014)=0.022
同様に、P(治癒|女性)についても、P(治癒|治療する,女性)とP(治癒|治療せず,女性)はやはりマージ不可なので、P(治癒|女性)の方が消去される。
|P(治癒|女性)-P(治癒|治療する,女性)|=0.08>(0.0071+0.013)=0.020
|P(治癒|女性)-P(治癒|治療せず,女性)|=0.02>(0.0071+0.0084)=0.015
以上より、このケースでは「男女差」および「治療の有無」を同時に考慮したL=2の因果分析が妥当である。つまり、考慮すべき因果関係は次のものにまとめられることになる。
P(治癒|治療する,男性)=0.6 σ=0.0089
P(治癒|治療する,女性)=0.2 σ=0.013
P(治癒|治療せず,男性)=0.7 σ=0.014
P(治癒|治療せず,女性)=0.3 σ=0.0084
「男女差」と「治療の有無」のうちのどちらか一方の要因のみに着目すると判断を誤る。そして、上記より明らかなように、この場合、男女を問わず、治療しないほうが、治癒成績が良くなると結論できる。すなわち、この治療は副作用の方が大きい。
治療の有無のみに注目したL=1の因果推定ではなく、L=2の因果推定が必要になる理由は、治癒成績の具体的数値に関する男女差が明らかに有意であり、治療の有無に加えて男女差を考慮に入れる必要があることに対応している。実際、この層別の必要性こそがパラドックスの解決になっている。
因果候補リスト整理処理部204により状態ベクトルのマージが必要に応じて行われることにより、ある状態遷移との因果関係を表すという点で必要性のある状態ベクトルを残すことができる。
次に、図62のフローチャートを参照して、以上のようにして適宜整理され、因果候補リスト記憶部203に記憶されている因果候補リストを用いて行われる行動決定部205の行動決定処理について説明する。
ステップS211において、行動決定部205は目標値を取得する。目標値は、例えば、目標とするあるモーダルの1つの状態を表す値である。
ステップS212において、行動決定部205は、因果候補リスト記憶部203に記憶されている因果候補リストを読み出し、目標値により表される状態にそのモーダルの状態を遷移させるための行動を決定する。例えば、行動決定部205は、そのモーダルの現在の状態から目標値の状態までの遷移を決定し、それぞれの遷移の因果候補を、条件付確率の高い順に因果候補リストに登録されているものの中から所定の数だけ取得する。行動決定部205は、取得した因果候補の中から選択した、条件付確率が最も、あるいは一定以上高い1つの因果候補である状態ベクトルにより表される状態に他のモーダルの状態を遷移させるような行動を行わせる。
因果推定が適切に行われている場合、図63に示されるように、ロボットのエネルギーの状態を現在の状態である状態S1から状態S2に遷移させ、エネルギーを上昇させるといったことを、光センサの状態、距離センサの状態をそれぞれ所定の状態に遷移させることで実現することが可能になる。図63の例においては、光センサの状態を光の周囲にロボットがいるときの状態にすることでエネルギーを上昇させることができることが理解されている。図63のエネルギーのグラフにおいて横軸がエネルギーである。
また、図64に示されるように、ロボットのエネルギーの状態を現在の状態である状態S11から状態S12に遷移させ、エネルギーを下降させるといったことを、光センサの状態、距離センサの状態をそれぞれ所定の状態に遷移させることで実現することが可能になる。図64の例においては、光センサの状態を光が届かない位置にロボットがいるときの状態にすることでエネルギーを下降させることができることが理解されている。
なお、因果推定が行動決定のときに行われるようにすることも可能である。
以上のように、「ある事象bの生起」が他のモーダルaiの「事象akから事象a1への状態遷移を生起させる(ただし事象a1とakは相互排反とする)」という形で因果関係を定式化することで、因果関係のある事象の候補を絞ることができるとともに、学習の安定性を図ることが可能になる。事象a1とakは相互に排反する事象であるため、状態遷移ak→a1の原因となる事象はモーダルai内にはないことになり、因果推定の候補としてこのモーダルai内の事象を除外することができる。
事象a1が生起するメカニズムは複数存在しうるが、状態遷移ak→a1の因果推定問題とすることで、問題の複雑性を緩和することができる。
また、因果学習において、カウンタにより数えた事象の同時生起回数を緩やかに時間減衰させることで、時間変動がある因果に対して、それを表す状態遷移確率を動的に追従させることができる。さらに、時間変動があることの可能性を考慮して、因果関係の利用と探索のバランスをとることが可能になる。
また、状態遷移T:ak→a1と事象bの因果関係を条件付確率P(T|ak,b)の形で定式化し、それらの事象の同時生起回数と、条件付確率から見積もられる推定誤差の期待値σを考慮して行動決定が行われるようにすることにより、因果関係の利用と探索のトレードオフを解決することができる。すなわち、データサンプルが多い場合でも少ない場合でも適切な行動を実現することが可能になる。
図65は、因果関係の利用と探索のトレードオフを解決するための方法として、期待値σ分だけ確率を上げた条件付確率を用いる上述した方法と、従来の方法であるランダム法、ε-greedy法、Soft-max法を採用してロボットの行動の最適度を求めた結果を示す図である。
図65の横軸は経験数を表し、縦軸は行動の最適度を表す。曲線L1は上述した方法を用いた場合の結果を表し、曲線L2はSoft-max法を用いた場合の結果を表す。曲線L3はパラメータεを時間経過に伴い減少させていくε-greedy法を用いた場合の結果を表し、曲線L4はε-greedy法の亜種を用いた場合の結果を表す。曲線L5はランダム法を用いた場合の結果を表す。図65に示されるように、上述した方法によれば、他の方法よりよい結果を得ることができる。
他の従来の方法はパラメータチューニングが必要であるのに対して、期待値σ分だけ確率を上げた条件付確率を用いる上述した方法はその必要がないため、その点でも実用的であるといえる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図66は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
CPU(Central Processing Unit)211、ROM(Read Only Memory)212、RAM(Random Access Memory)213は、バス214により相互に接続されている。
バス214には、さらに、入出力インタフェース215が接続されている。入出力インタフェース215には、キーボード、マウス、マイクロホンなどよりなる入力部216、ディスプレイ、スピーカなどよりなる出力部217、ハードディスクや不揮発性のメモリなどよりなる記憶部218、ネットワークインタフェースなどよりなる通信部219、光ディスクや半導体メモリなどのリムーバブルメディア221を駆動するドライブ220が接続されている。
以上のように構成されるコンピュータでは、CPU211が、例えば、記憶部218に記憶されているプログラムを入出力インタフェース215及びバス214を介してRAM213にロードして実行することにより、上述した一連の処理が行われる。
CPU211が実行するプログラムは、例えばリムーバブルメディア221に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部218にインストールされる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明が適用される処理の概要を説明する図である。 本発明が適用される処理の概要を説明する。 本発明が適用される情報処理システムの一実施の形態の機能ブロック図である。 単振子タスクを説明する図である。 単振子タスクの制御処理の一例を説明するフローチャートである。 時系列観測信号の一例を示す図である。 HMMの一例を示す図である。 HMMの一例を示す図である。 HMMの一例を示す図である。 HMMの一例を示す図である。 単振子タスクにおけるHMMの学習結果の一例を示している。 図5の認識処理の詳細例を説明するフローチャートである。 図5の認識処理の詳細例を説明するフローチャートである。 図5の認識処理の詳細例を説明するフローチャートである。 本発明が適用される情報処理システムの一実施の形態の機能ブロック図である。 マルチモーダルタスクに適用可能なシミュレータの一表示例を示す図である。 マルチモーダルセンサの観測信号の一例を示している図である。 マルチモーダルタスクにおける各モーダルのHMMの学習結果の一例を示している。 距離のHMMの経路と制御の一例を説明する図である。 因果推定の概略を説明する図である、 因果推定の概略を説明する図である、 マルチモーダルタスクにおける多段行動制御の一例を説明する図である。 光のHMMの経路と制御の一例を説明する図である。 マルチモーダルタスクにおける因果の多段行動制御の一例を説明する図である。 本発明が適用される情報処理装置としてのパーソナルコンピュータの構成例を示すブロック図である。 データ処理装置の一実施の形態の構成例の概要を説明する図である。 エルゴディックHMMの例を示す図である。 left-to-right型のHMMの例を示す図である。 データ処理装置の詳細な構成例を示すブロック図である。 初期構造設定部116が設定するHMMの初期構造の例を示す図である。 状態の分割を説明する図である。 状態のマージを説明する図である。 状態の追加を説明する図である。 状態遷移の追加を説明する図である。 状態の削除を説明する図である。 データ処理装置の学習処理を説明するフローチャートである。 構造調整部117の処理を説明するフローチャートである。 シミュレーションで用いた移動軌跡を示す図である。 学習の結果得られたHMMを示す図である。 学習の結果得られたHMMから求められた対数尤度を示す図である。 本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。 情報処理装置の機能構成例を示す図である。 情報処理装置の因果知覚に関する処理について説明するフローチャートである。 モーダルの例を示す図である。 モーダルの具体例を示す図である。 システムの状態の時間変化の例を示す図である。 事象生起カウンタの例を示す図である。 モーダル1のそれぞれの状態遷移に対応して用意される遷移生起カウンタの例を示す図である。 モーダル1の状態遷移の例を示す図である。 モーダル2のそれぞれの状態遷移に対応して用意される遷移生起カウンタの例を示す図である。 モーダル2の状態遷移の例を示す図である。 モーダル3のそれぞれの状態遷移に対応して用意される遷移生起カウンタの例を示す図である。 モーダル3の状態遷移の例を示す図である。 カウントアップする事象生起カウンタと遷移生起カウンタの例を示す図である。 カウントアップする事象生起カウンタの例を示す図である。 カウントアップする事象生起カウンタと遷移生起カウンタの他の例を示す図である。 カウントアップする事象生起カウンタと遷移生起カウンタのさらに他の例を示す図である。 カウントアップする事象生起カウンタと遷移生起カウンタの例を示す図である。 状態ベクトルパターンの例を示す図である。 状態ベクトルの例を示す図である。 状態ベクトルの他の例を示す図である。 情報処理装置の行動決定処理について説明するフローチャートである。 因果関係に基づく行動の例を示す図である。 因果関係に基づく行動の他の例を示す図である。 測定結果の例を示す図である。 コンピュータの構成例を示す図である。
符号の説明
21 センサ部, 22 モデル化部, 23 生得コントローラ, 24 行動制御部, 25 アクション部, 31 学習部, 32 HMM格納部, 33 認識部, 34 プランニング部, 41 学習部, 42 コントローラテーブル格納部, 43 コントローラ格納部, 44 実行管理部, 61 センサ部, 62A乃至62C モデル化部, 63 因果部, 64 行動制御部, 65 アクション部, 71A 学習部, 72A HMM格納部, 73A 認識部, 74A プランニング部, 75 因果学習部, 76 因果テーブル格納部, 77 因果推定部, 78 実行管理部, 79 コントローラ, 80 コントローラテーブル格納部, 81 コントローラ格納部,91 CPU, 98 記憶部, 100 ドライブ, 101 リムーバブルメディア, 111 時系列データ入力部, 112 データ調整部, 113 パラメータ推定部, 114 評価部, 115 モデル記憶部, 116 初期構造設定部, 117 構造調整部, 151 バス, 152 CPU, 153 ROM, 154 RAM, 155 ハードディスク, 156 出力部, 157 入力部, 158 通信部, 159 ドライブ, 160 入出力インタフェース, 161 リムーバブル記録媒体, 201 因果学習処理部, 202 因果推定処理部, 203 因果候補リスト記憶部, 204 因果候補リスト整理処理部, 205 行動決定部

Claims (5)

  1. モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習を行いHMMを生成する複数の生成手段と、
    前記生成手段により生成されたそれぞれのHMMの状態を表す状態ベクトルの時系列を記録する記録手段と、
    前記記録手段に記録された前記状態ベクトルの時系列に基づいて、前記生成手段により生成されたHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードを検出する検出手段と、
    前記検出手段による検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率を、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出し、それぞれのHMMの状態間の因果関係を算出した前記条件付確率により表すようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係を推定する推定手段と
    を備える情報処理装置。
  2. 前記推定手段は、時間の経過に応じて1未満の値を前記第1の回数と前記第2の回数に乗算することによって、前記第1の回数と前記第2の回数をそれぞれ所定の減衰率で減衰させる
    請求項1に記載の情報処理装置。
  3. 前記推定手段は、算出した前記条件付確率と、前記第2の回数と、前記条件付確率の推定誤差の初期値として与えられる確率とによって求まる前記条件付確率の誤差の分だけ確率を修正した確率を、最終的な前記条件付確率として算出する
    請求項1に記載の情報処理装置。
  4. CPUを備える情報処理装置の情報処理方法において、
    モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習を行い複数のHMMを前記CPUが生成し、
    生成したそれぞれのHMMの状態を表す状態ベクトルの時系列を前記CPUが記録手段に記録させ、
    前記記録手段に記録された前記状態ベクトルの時系列に基づいて、生成したHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードを前記CPUが検出し、
    検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率を、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出し、それぞれのHMMの状態間の因果関係を算出した前記条件付確率により表すようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係を前記CPUが推定する
    ステップを含む情報処理方法。
  5. モデル化対象であるロボットがおかれている環境の所定の物理量をセンサによりセンシングすることによって検出された観測信号を用いて学習を行い複数のHMMを生成し、
    生成したそれぞれのHMMの状態を表す状態ベクトルの時系列を記録手段に記録させ、
    前記記録手段に記録された前記状態ベクトルの時系列に基づいて、生成したHMMのうちの第1のHMMにおいて生じた第1のノードから第2のノードへの状態遷移の前における、単数または複数の第2のHMMの状態を表す第3のノードを検出し、
    検出結果に基づいて、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになり、次の時刻の前記第1のHMMの状態を表すノードが前記第2のノードに遷移した回数である第1の回数を、前記第1のHMMの前記第1のノードと前記第2のHMMの前記第3のノードが同時に現在状態を表すノードになった回数である第2の回数で割ることによって求められる条件付確率を、前記第1のHMMの前記第1のノードと同時に現在状態を表すノードになった複数の前記第2のHMMの前記第3のノードについて算出し、それぞれのHMMの状態間の因果関係を算出した前記条件付確率により表すようにして前記ロボットの行動決定に用いられるそれぞれのHMMの状態間の因果関係を推定する
    ステップを含む処理をコンピュータに実行させるプログラム。
JP2008064995A 2008-03-13 2008-03-13 情報処理装置、情報処理方法、およびプログラム Expired - Fee Related JP4687732B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008064995A JP4687732B2 (ja) 2008-03-13 2008-03-13 情報処理装置、情報処理方法、およびプログラム
US12/381,499 US8290885B2 (en) 2008-03-13 2009-03-12 Information processing apparatus, information processing method, and computer program
US13/927,708 USRE46186E1 (en) 2008-03-13 2013-06-26 Information processing apparatus, information processing method, and computer program for controlling state transition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008064995A JP4687732B2 (ja) 2008-03-13 2008-03-13 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2009223445A JP2009223445A (ja) 2009-10-01
JP4687732B2 true JP4687732B2 (ja) 2011-05-25

Family

ID=41240185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008064995A Expired - Fee Related JP4687732B2 (ja) 2008-03-13 2008-03-13 情報処理装置、情報処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4687732B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5633734B2 (ja) * 2009-11-11 2014-12-03 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
JP5528214B2 (ja) * 2010-05-28 2014-06-25 本田技研工業株式会社 学習制御システム及び学習制御方法
JP6225927B2 (ja) 2015-02-02 2017-11-08 トヨタ自動車株式会社 車両状態予測システム
WO2020053934A1 (ja) * 2018-09-10 2020-03-19 三菱電機株式会社 モデルパラメタ推定装置、状態推定システムおよびモデルパラメタ推定方法

Also Published As

Publication number Publication date
JP2009223445A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
USRE46186E1 (en) Information processing apparatus, information processing method, and computer program for controlling state transition
EP3046053B1 (en) Method and apparatus for training language model
JP4683308B2 (ja) 学習装置、学習方法、及び、プログラム
US11586925B2 (en) Neural network recogntion and training method and apparatus
US8326780B2 (en) Smoothed sarsa: reinforcement learning for robot delivery tasks
JP4201012B2 (ja) データ処理装置、データ処理方法、およびプログラム
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
Zhao et al. Applying incremental Deep Neural Networks-based posture recognition model for ergonomics risk assessment in construction
KR102637133B1 (ko) 온-디바이스 활동 인식
US8077919B2 (en) Toro: tracking and observing robot
KR102449905B1 (ko) 전자 장치 및 이의 제어 방법
KR20200047205A (ko) 전자 장치 및 이의 제어 방법
JP4687732B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4596024B2 (ja) 情報処理装置および方法、並びにプログラム
KR20180049787A (ko) 전자 장치, 그의 제어 방법
CN112016678B (zh) 用于增强学习的策略生成网络的训练方法、装置和电子设备
JP2013058120A (ja) 情報処理装置、情報処理方法、及び、プログラム
US11195116B2 (en) Dynamic boltzmann machine for predicting general distributions of time series datasets
US11468270B2 (en) Electronic device and feedback information acquisition method therefor
CN113966517A (zh) 用于定序和规划的系统
JP2007280057A (ja) データ処理装置、データ処理方法、およびプログラム
US11410042B2 (en) Dynamic Boltzmann machine for estimating time-varying second moment
US20220019944A1 (en) System and method for identifying and mitigating ambiguous data in machine learning architectures
Kalkan et al. Classification of human activities by smart device measurements
Hiltunen Single Inertial Measurement Unit Embedded Gesture Recognition

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110131

R151 Written notification of patent or utility model registration

Ref document number: 4687732

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees