JP2011018245A - 認識装置および方法、プログラム、並びに記録媒体 - Google Patents
認識装置および方法、プログラム、並びに記録媒体 Download PDFInfo
- Publication number
- JP2011018245A JP2011018245A JP2009163192A JP2009163192A JP2011018245A JP 2011018245 A JP2011018245 A JP 2011018245A JP 2009163192 A JP2009163192 A JP 2009163192A JP 2009163192 A JP2009163192 A JP 2009163192A JP 2011018245 A JP2011018245 A JP 2011018245A
- Authority
- JP
- Japan
- Prior art keywords
- node
- observation
- time
- probability
- action
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】変化する環境の中で自律的な学習を行う際に、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのかを適切に認識できるようにする。
【解決手段】変数Nの値を1にセットし、ステップS202において、長さNの時系列情報が取得される。ステップS203において、認識器は、時系列情報に基づいて、Viterbiアルゴリズムを用いてノード列を出力し、ステップS204において、実際にあり得るノード列であるか否かを判定する。実際にあり得るノード列ではないと判定された場合、未知ノードであると認識される。一方、実際にあり得るノード列であると判定された場合、エントロピーが計算され、閾値以上であると判定された場合、変数Nの値がインクリメントされ、時系列情報が過去方向に延長される。閾値以上ではないと判定された場合、既知ノードであると認識される。
【選択図】図33
【解決手段】変数Nの値を1にセットし、ステップS202において、長さNの時系列情報が取得される。ステップS203において、認識器は、時系列情報に基づいて、Viterbiアルゴリズムを用いてノード列を出力し、ステップS204において、実際にあり得るノード列であるか否かを判定する。実際にあり得るノード列ではないと判定された場合、未知ノードであると認識される。一方、実際にあり得るノード列であると判定された場合、エントロピーが計算され、閾値以上であると判定された場合、変数Nの値がインクリメントされ、時系列情報が過去方向に延長される。閾値以上ではないと判定された場合、既知ノードであると認識される。
【選択図】図33
Description
本発明は、認識装置および方法、プログラム、並びに記録媒体に関し、特に、変化する環境の中で自律的な学習を行う際に、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのかを適切に認識できるようにする認識装置および方法、プログラム、並びに記録媒体に関する。
対象となるシステムから観測されるセンサ信号を時系列データとして扱い、状態および状態遷移を合わせ持つ確率モデルとして学習する方法としてHMM(隠れマルコフモデル)の利用が提案されている。HMMは、音声認識に広く利用される技術の一つである。HMMは、状態遷移確率と、各状態における出力確率密度関数で定義される状態遷移モデルであり、そのパラメータは、尤度を最大化するように推定される。パラメータの推定方法としては、Baum-Welch algorithmが広く利用されている。
HMMでは、各状態から状態遷移確率を介して別の状態へ遷移することができるモデルとなっており、状態が遷移する過程としてモデル化が行われる。ただし、HMMでは、通常、観測されるセンサ信号がどの状態に対応するのかについては、確率的にしか決定されない。
そこで、観測されるセンサ信号に基づいて、最も尤度が高くなるような状態遷移過程を決定する方法として、Viterbi Algorithmが広く利用されている。これにより、各時刻のセンサ信号に応じた状態を一意に確定することが可能となる。また、システムから観測されるセンサ信号が異なる状況で同じになったとしても、それぞれの時刻の前後におけるセンサ信号の時間変化の過程の違いに応じて、異なる状態遷移過程として扱うことが可能となる。perceptual aliasingの問題が完全に解決できるわけではないが、同じセンサ信号に対して異なる状態を割り当てることが可能であり、SOMなどに比べると、システムの状態をより詳細にモデル化することが可能である(例えば、非特許文献1参照)。
Lawrence R. Rabiner (February 1989)."A tutorial on Hidden Markov Models and selected applications in speech recognition".Proceedings of the IEEE 77 (2): 257-286.
ところで、HMMの学習において、状態の数および状態遷移の数が多くなると、正しくパラメータを推定するのが困難となる。特に、Baum-Welch algorithmは、必ずしも最適なパラメータを決定できることを保証する方法ではないため、パラメータの数が多くなると適切なパラメータを推定するのが極めて困難となる。また、学習すべき対象となるシステムが未知の場合、状態遷移モデルの構造やパラメータの初期値を適切に設定することは難しく、これもパラメータの推定を困難にする原因となる。
音声認識においてHMMが有効に利用されているのは、扱う対象が音声信号に限定されており、音声に関する数多くの知見が利用可能であることが要因となっている。さらに、音声認識においてHMMの構造に関しては left-to-right型の構造が有効であることなどが長年に渡る膨大な研究成果の結果として得られていることなどが大きな要因である。従って、未知のシステムを対象とし、HMMの構造や初期値をあらかじめ決定するための情報が与えられない場合に、大規模なHMMを実用的なモデルとして機能させることは非常に難しい問題であると言える。
さて、HMMが対象とする問題は上記の通り、センサ信号を構造化するというものであり、アクション信号に関する考慮はない。HMMを拡張し、エージェントがアクション信号を用いて環境に対し働きかけ、将来のセンサ信号に影響を与えることができる、という枠組みに置き換えたものは部分観測マルコフ決定過程(Partially observable Markov decision process, 以下、POMDP)と呼ばれる。
この問題のモデル学習は非常に困難な課題であり、これまで主に研究されてきたものは、事前知識によってスケルトンが与えられたモデル内の比較的少数のパラメータ推定のみであったり、あるいは強化学習的な枠組みで学習を駆動するようなものであった。さらに、学習の速度や収束性・安定性に課題のあるものも多く、実用性は必ずしも高くないと言える。
また、HMMの学習の方式として、バッチ学習方式と追加学習方式が存在する。ここで、バッチ学習方式は、例えば、1万ステップの遷移と観測のデータが得られる場合、1万ステップの遷移と観測に基づいて状態遷移確率テーブルと観測確率テーブルを生成して保存するものである。これに対して、追加学習方式は、例えば、最初に、1千ステップの遷移と観測に基づいて状態遷移確率テーブルと観測確率テーブルを生成して保存する。そして、その後の1千ステップの遷移と観測に基づいて状態遷移確率テーブルと観測確率テーブルの各値を変更して保存し、・・・というように、繰り返し学習を行って、内部モデルデータを更新(アップデート)していくものである。
従来のHMMの学習では、追加学習方式の学習の際に問題が発生する。HMMの学習では、事前に全てのデータを予め準備しておき、バッチ学習方式での学習を行なうという方法がよく採られているが、このような学習では環境に適応して経験から学ぶことが原理的に不可能である。言い換えれば、多様な実世界の中でより良い性能を発揮するためには、実環境での動作結果をフィードバックして追加学習を行なうという機能が必須である。ところが、追加学習を行なう際に「学習済みの記憶構造」と「新しい経験」とをどのように調停するのかという問題は未解決である。一方では「新しい経験」を速やかに反映させてすばやい適応を実現したいが、他方、これまでに確立した記憶構造が破壊される危険性もある。
また、従来、追加学習を行うために、過去の学習データを分離して保持するか、または、過去の学習データを現在の記憶からリハースする等して、新たに得られたデータとを組み合わせて学習することが行われていた。しかしながら、そのようにしても、分離された過去の学習データに、「新しい体験」が反映されなかったり、リハースされる過去の学習データが、「新しい体験」の影響を受けて生成されてしまうなどの問題があった。このように、大規模なHMMの学習において、追加学習を行って実用的なモデルとして機能させることは困難であった。
さらに、例えば、学習すべき環境が変化した場合、観測シンボルの種類、ノード数が増えることになり、学習を進める際に、ノード数、観測シンボル数、またはアクション数を変更する必要に迫られこともある。このような場合、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張する必要がある。
エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張する場合、そもそもエージェント自身が、新たに環境が拡張されたのか否かを認識する必要がある。つまり、エージェントが、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのか認識できるようにしなければならない。
本発明はこのような状況に鑑みてなされたものであり、変化する環境の中で自律的な学習を行う際に、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのかを適切に認識できるようにするものである。
本発明の一側面は、環境から得られるセンサ信号に基づいて観測シンボルを観測する観測手段と、時間の経過に伴って観測される前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けて記憶する観測シンボル記憶手段と、前記観測シンボル記憶手段に記憶された情報を時系列情報として読み出し、前記時系列情報の最後の時刻におけるHMMのノードを認識する認識手段とを備え、前記認識手段は、可変長の前記時系列情報を読み出して認識する認識装置である。
前記認識手段は、前記時系列情報に基づいて、前記時系列情報の長さに対応するノード列を認識し、前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在すると判定され、かつ前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値未満となるまで、前記観測シンボル記憶手段から読み出す前記時系列情報の長さを過去方向に延長するようにすることができる。
前記認識手段は、前記過去方向に延長された前記時系列情報に基づいて前記時系列情報の長さに対応するノード列を認識し、前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在しないと判定された場合、前記時系列情報の最後の時刻における前記ノードが、新たに追加すべき内部状態の未知ノードであると認識して認識結果として出力し、前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在すると判定され、かつ前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値未満と判定された場合、前記時系列情報の最後の時刻における前記ノードが、学習済の内部状態の既知ノードであると認識して認識結果として出力するようにすることができる。
前記認識結果を、認識された時刻と対応付けて記憶する認識結果記憶手段をさらに備えるようにすることができる。
前記認識手段は、前記認識結果記憶手段に記憶されている認識結果が、時間の経過に伴って既知ノードから未知ノードに変化した時刻を特定し、前記観測シンボル記憶手段から読み出す前記時系列情報の長さを過去方向に延長することにより、前記特定された時刻より時間的に前の時系列情報が読み出される場合、認識結果の出力を保留するようにすることができる。
前記認識手段は、長さNの前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値と、長さN+1の前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値との差分を算出し、前記算出された差分が第3の閾値未満となるまで、前記観測シンボル記憶手段から読み出す前記時系列情報の長さを過去方向に延長するようにすることができる。
前記認識手段は、前記過去方向に延長された前記時系列情報に基づいて前記時系列情報の長さに対応するノード列を認識し、前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値未満の確率で存在すると判定された場合、前記時系列情報の最後の時刻における前記ノードが、新たに追加すべき内部状態の未知ノードであると認識するようにすることができる。
前記認識手段は、前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在すると判定された場合、前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値未満となるとき、前記時系列情報の最後の時刻における前記ノードが、学習済の内部状態の既知ノードである認識し、前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値以上となるとき、認識結果の出力を保留するようにすることができる。
前記環境に対して自分が実行する行動を行動シンボルとし特定し、時間の経過に伴って得られる前記行動シンボルを、前記行動が実行された時刻と対応付けて記憶する行動シンボル記憶手段をさらに備え、前記観測シンボル記憶手段に記憶された情報と時間的に同じ長さの情報が前記行動シンボル記憶手段から読み出され、前記時系列情報とされるようにすることができる。
本発明の一側面は、時間の経過に伴って観測される環境から得られるセンサ信号に基づく前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けて記憶する観測シンボル記憶手段に記憶された情報を可変長の時系列情報として読み出し、前記時系列情報の最後の時刻におけるHMMのノードを認識する認識方法である。
本発明の一側面は、コンピュータを、環境から得られるセンサ信号に基づいて観測シンボルを観測する観測手段と、時間の経過に伴って観測される前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けて記憶する観測シンボル記憶手段と、前記観測シンボル記憶手段に記憶された情報を時系列情報として読み出し、前記時系列情報の最後の時刻におけるHMMのノードを認識する認識手段とを備え、前記認識手段は、可変長の前記時系列情報を読み出して認識する認識装置として機能させるプログラムである。
本発明の一側面においては、環境から得られるセンサ信号に基づいて観測シンボルが観測され、時間の経過に伴って観測される前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けられて記憶され、記憶された情報を時系列情報として読み出し、前記時系列情報の最後の時刻におけるHMMのノードが認識され、可変長の前記時系列情報が読み出されて認識される。
本発明によれば、変化する環境の中で自律的な学習を行う際に、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのかを適切に認識できる。
以下、図面を参照して、本発明の実施の形態について説明する。
最初に、アクション拡張型HMMについて説明する。
後述する本発明の自律行動学習装置は、例えば、迷路を自走して自分の位置を認識し、目的地へのルートを学習するロボットなどに適用される。
図1は、迷路の例を示す図である。同図に示されるように、この迷路は、図2に示されるような複数の種類のパーツを組み合わせることにより構成されている。図2に示されるように、パーツのそれぞれは、同一の大きさの矩形として構成されており、15の異なる種類が用意されている。例えば、パーツ5は、横方向の通路を構成するためのものであり、パーツ10は、縦方向の通路を構成するためのものである。また、パーツ7、パーツ11、パーツ13は、それぞれT字路を構成するためのものであり、パーツ15は、十字路を構成するためのものである。
また、この迷路は、その構造を変化させることもできるようになされている。例えば、図3において、図中点線の円により示される部分の2つのパーツを変更することにより、迷路の構造は、図4に示されるように変化する。すなわち、図3において、通り抜けできなかったものが、図4においては通り抜けできるように、迷路の構造を変化させることができる。
さらに、図4において、図中点線の円により示される部分の2つのパーツを変更することにより、迷路の構造は、図5に示されるように変化する。すなわち、図4において、通り抜けできたものが、図5においては通り抜けできないように、迷路の構造を変化させることができる。
このような迷路をロボットが自走する。この例では、迷路は2次元であり、通路の方向も水平または垂直方向のみなので、ロボットも上下左右の4方向に移動できるように設定するものとする。
図6は、ロボットの移動方向を説明する図である。同図における垂直方向、水平方向は、図1に対応しており、図中上下左右のいずれかの方向に、図中中央に示されるロボットが移動することが分かる。
ここで、ロボットの所定の方向への移動をアクションと称することにする。例えば、図6の例では、図中の4つの矢印に対応する4通りのアクションが存在することになる。
また、ロボットには、例えば、物体を検知するセンサが設けられており、センサから出力される信号を解析することにより、迷路上においてロボットが位置するパーツの種類を特定することが可能となるようになされている。すなわち、ロボットは、迷路上の各位置において、図2を参照して上述した15種類のパーツのいずれかに対応するセンサ信号を取得するのである。
本発明では、例えば、ロボットが自走した迷路上の各位置におけるセンサ信号に基づいて迷路の構造に対応する内部モデルデータを生成する。ここで、迷路を環境と称し、15種類のパーツのいずれかに対応するセンサ信号を観測シンボルと称することにする。本発明では、HMMを利用して、迷路の構造を学習し、上述した内部モデルデータを生成する。
HMMの学習においては、環境から得られる観測に基づいて状態が認識される。上述したように、環境は、例えば迷路であり、観測は、例えば15種類のパーツのいずれかに対応するセンサ信号から特定される観測シンボルに対応する。なお、ロボットは、適宜、エージェントと称することにする。
HMMの学習では、エージェントが、環境から得られる観測に基づいて自分がいる状態を認識する。ここでいう状態は、いわばエージェントが主観的に認識した状態であり、実際にエージェントが置かれた状態を外部から客観的に観察した場合、両者が異なることがある。例えば、2次元の迷路上においてロボットがいる位置を客観的に観察すれば、その位置は座標(x1,y1)であるのに対して、ロボット自身は、自分は座標(x2,y2)にいると認識する場合がある。このように、いわばエージェントが主観的に認識した状態がHMMでは、隠れ状態、内部状態、state、ノードなどと表現される。
本実施例では、主に、迷路上の各位置、すなわち、迷路に配置された各パーツの位置のそれぞれを、HMMにおけるノード(状態、隠れ状態、内部状態、state)に対応付けて、それらのノードに観測シンボルを対応づけた例について説明する。
ところで、通常のHMMは、センサ信号を構造化するというものであり、アクション信号に関する考慮はない。エージェントがアクション信号を用いて環境に対してアクションを実行し、今後観測される観測シンボルに影響を与えることができるようにするという状況における学習は、HMMでは想定されていない。このような問題の解決は、部分観測マルコフ決定過程(Partially observable Markov decision process, 以下、POMDP)と呼ばれる。
そこで、本発明では、HMMを拡張して上記の問題を解決する。すなわち、本発明では、HMMを、アクション信号を考慮したものとなるように拡張する。このように拡張したHMMをアクション拡張型HMMと称することにする。
図7は、通常のHMMを説明する図である。同図に示されるように、HMMは、ある1つのノードから他の1つのノードへ遷移(状態遷移)する確率を、起こりえる遷移の数だけ学習する。すなわち、ノード数×ノード数のテーブルの各行列位置に、状態遷移確率の値を設定し、状態遷移確率テーブルという2次元のテーブルを生成する。また、HMMは、ある1つのノードにおいて、それぞれの観測シンボルが観測される確率を学習する。すなわち、ノード数×観測シンボル数のテーブルの各行列位置に、観測確率の値を設定し、観測確率テーブルという2次元のテーブルを生成する。
例えば、図7の状態遷移確率テーブルにおいて、図中垂直方向に記述されたノードのそれぞれは、遷移元のノードを表し、図中水平方向に記述されたノードのそれぞれが遷移先のノードを表す。従って、例えば、状態遷移確率テーブルのn行m列に記述された数値は、インデックスnのノード(第n番目のノード)からインデックスmのノード(第m番目のノード)へ遷移する確率を表している。そして、状態遷移確率テーブルの各行(例えば、n行目)に記述された全ての数値を合計すると、1となるようになされている。
また、例えば、図7の観測確率テーブルのn行p列に記述された数値は、インデックスnのノード(第n番目のノード)において、インデックスpの観測シンボル(第p番目の観測シンボル)が観測される確率を表している。そして、観測確率テーブルの各行(例えば、n行目)に記述された全ての数値を合計すると、1となるようになされている。
図8は、アクション拡張型HMMを説明する図である。同図に示されるように、アクション拡張型HMMでは、状態遷移確率テーブルを、アクション毎に生成する。例えば、上方向への移動というアクションの結果、ある1つのノードから他の1つのノードへ遷移する確率を、上方向移動アクションの状態遷移確率テーブルとして生成する。また、下方向への移動というアクションの結果、ある1つのノードから他の1つのノードへ遷移する確率を、下方向移動アクションの状態遷移確率テーブルとして生成する。同様に、左方向移動アクションの状態遷移確率テーブルと、右方向移動アクションの状態遷移確率テーブルも生成される。
例えば、図8の状態遷移確率テーブルを、複数枚の2次元のテーブルとしてみると、図中垂直方向に記述されたノードのそれぞれは、それぞれのアクションにおける遷移元のノードを表し、図中水平方向に記述されたノードのそれぞれが遷移先のノードを表す。従って、例えば、k枚目の状態遷移確率テーブルのn行m列に記述された数値は、インデックスkのアクション(第k番目のアクション)を実行することにより、インデックスnのノードからインデックスmのノードへ遷移する確率を表している。そして、状態遷移確率テーブルの各行(例えば、k枚目のテーブルのn行目)に記述された全ての数値を合計すると、1となるようになされている。
このように、アクション拡張型HMMでは、2次元の状態遷移確率テーブルがアクション毎に生成され、いわば3次元の状態遷移確率テーブルが生成されることになる。
なお、アクション拡張型HMMにおいても、通常のHMMの場合と同様に、ノード数×観測シンボル数のテーブルの各行列位置に、観測確率の値を設定し、2次元の観測確率テーブルが生成される。
例えば、図8の観測確率テーブルのn行p列に記述された数値は、図7の場合と同様に、インデックスnのノードにおいて、インデックスpの観測シンボルが観測される確率を表している。そして、観測確率テーブルの各行(例えば、n行目)に記述された全ての数値を合計すると、1となるようになされている。
ここでは、センサ信号に基づいて15通りの観測シンボルが得られる場合であって、離散観測信号を取得する場合の例について説明した。しかし、例えば、少しずつ変化するセンサ信号に基づいてほぼ無限の観測シンボルが得られるような、連続観測信号を取得する場合にもアクション拡張型HMMを用いることができる。
また、ここでは、エージェントが4通りのアクションのいずれかを実行する場合であって、離散アクション集合を実行する場合の例について説明した。しかし、例えば、エージェントが、少しずつ移動方向を変え、ほぼ無限のアクションの中から1つのアクションを実行するような、連続アクション集合を実行する場合にもアクション拡張型HMMを用いることができる。
ここまで、アクション拡張型HMMについて説明した。
図9は、本発明を適用した自律行動学習装置10の構成例を示すブロック図である。同図の自律行動学習装置10は、例えば、図1に示されるような迷路上を移動するロボットの制御装置などとして構成される。この例では、自律行動学習装置10に、センサ部31、行動出力部32、観測バッファ33、学習器34、認識器35、行動生成器36、内部モデルデータ記憶部37、認識結果バッファ38、および行動出力バッファ39が設けられている。
センサ部31は、例えば、迷路などの環境において、上述した観測シンボルを観測するためのセンサ信号(または観測信号)を出力する。センサ部31から出力された観測信号は、その観測信号が出力された時刻と対応付けられて観測バッファ33に記憶されるようになされている。
例えば、時刻t,t+1,t+2,・・・Tの各時刻で取得した観測信号に対応する観測シンボルot, ot+1, ot+2, ・・・, oTが各時刻の観測シンボルとして観測バッファ33に記憶されることになる。
行動出力部32は、例えば、ロボットが実行すべきアクション(日本語で行動)を、ロボットに実行させるための制御信号を出力する機能ブロックである。行動出力部32から出力された制御信号は、その制御信号に対応するアクションを特定する情報に変換され、その制御信号が出力された時刻と対応付けられて行動出力バッファ39に記憶されるようになされている。
例えば、時刻t,t+1,t+2,・・・Tの各時刻で実行したアクションct, ct+1, ct+2, ・・・, cTが各時刻のアクションとして行動出力バッファ39に記憶されることになる。
学習器34は、観測バッファ33および行動出力バッファ39に記憶されている情報に基づいて、内部モデルデータを生成または更新し、内部モデルデータ記憶部37に記憶させる。
内部モデルデータ記憶部37に記憶されている内部モデルデータには、上述した、3次元の状態遷移確率テーブル、および2次元の観測確率テーブルが含まれる。さらに、内部モデルデータ記憶部37に記憶されている内部モデルデータには、後述する、状態遷移確率の計算のための頻度変数および観測確率の計算のための頻度変数が含まれる。
認識器35は、観測バッファ33および行動出力バッファ39に記憶されている情報、並びに内部モデルデータ記憶部37に記憶されている状態遷移確率テーブルおよび観測確率テーブルに基づいて、現在、ロボットが位置するノードを認識するようになされている。認識器35から出力された認識結果は、その認識結果が出力された時刻と対応付けられて認識結果バッファ38に記憶されるようになされている。
行動生成器36は、内部モデルデータ記憶部37に記憶されている内部モデルデータ、行動出力バッファ39に記憶されている情報、および認識器35が出力する認識結果に基づいて、ロボットが実行すべきアクションを決定する。そして、行動生成器36は、決定されたアクションに対応する制御信号を出力するように、行動出力部32を制御する。
このように、自律行動学習装置10は、例えば、ロボットを迷路上で移動させて、自動的に迷路の構造などを学習させることができるようになされている。
次に、図9の学習器34におけるアクション拡張型HMMの学習アルゴリズムについて説明する。
通常のHMMではノードsiからsjへの状態遷移確率を状態遷移確率テーブルaijでモデル化するが、アクション拡張型HMMではアクションパラメータcを用いてaij(c)としてモデル化する。
学習アルゴリズムとしては、Baum-Welchアルゴリズムを用いる。forward確率、backward確率の計算ができれば、Baum-Welchアルゴリズムに基づくパラメータ推定(期待値最大化法)が可能となるので、以下ではそれらの確率の計算について説明する。
ここで、アクション集合C = {c1, c2, ・・・, cn}に属するアクションckによって、ノードsi からsj への遷移が起きる確率を、3次元の確率表現テーブルaij(k) ≡ aijkで表すこととする。なお、この例の場合、離散アクション集合を実行することになる。
まずforward確率の計算について説明する。
時刻1,2,・・・t-1の各時刻においてエージェントが取得したセンサ信号に対応する観測シンボルを、それぞれo1,o2,・・・,ot?1で表すことにする。また、時刻1,2,・・・t-1の各時刻においてエージェントが実行したアクションを、それぞれc1,c2,・・・,ct?1で表すことにする。この場合、時刻tにおいてエージェントが取得したセンサ信号に対応する観測シンボルがotであるとき、エージェントがノードsjにいるforward確率αt(j)は、式(1)の漸化式により表すことができる。
次に、backward確率の計算について説明する。
エージェントが時刻tにおいて状態iにいた場合、時刻t,t+1,t+2,・・・T-1の各時刻において、それぞれアクションct,ct+1,・・・,cT?1を実行し、各時刻で取得したセンサ信号に対応する観測シンボルが、それぞれot+1,ot+2,・・・,oTであるbackward確率βt(i)は、式(2)の漸化式により表すことができる。
このように計算されるforward確率と、backward確率とを用いて、状態遷移確率の推定と、観測確率の推定を行なうことができる。
離散アクション集合を実行する場合の状態遷移確率の推定と観測確率の推定は、次のようにして行なわれる。
状態遷移確率aij(k)の推定は、Baum-WelchアルゴリズムのM−ステップで行なう。ここで、状態遷移確率aij(k)は、エージェントが状態iにいるとき、アクションkを実行することにより状態jに遷移する確率を意味する。すなわち、式(3)を演算することにより、状態遷移確率の推定値a´ij(k)を得ることができる。
観測確率bj(o)の推定も、やはりBaum-WelchアルゴリズムのM-ステップで行なう。ここで、観測確率bj(o)は、エージェントが状態jにいるとき、観測シンボルoに対応するセンサ信号を取得する確立を意味する。すなわち、式(4)を演算することにより、観測確率の推定値b´j(o)を得ることができる。
式(4)は、離散観測信号を取得する場合の例であるが、連続観測信号を取得する場合は、時刻tにおいて取得された観測信号otを、式(5)に示されるγt(j)よって重み付けた信号分布を用いて、観測確率密度関数bj(o)のパラメータを再推定すればよい。なお、γt(j)は、時刻tにおいてエージェントが状態jにいる場合の重み係数を表している。
通常は、ガウス分布などの対数凹又は楕円型対称確率密度をモデルとして用い、観測確率密度関数bj(o)のパラメータの再推定を行うことができる。
ガウス分布などの対数凹又は楕円型対称確率密度のモデルのパラメータとしては、状態jにおける観測信号の平均ベクトルμ´jおよび共分散行列U´jを用いることができる。平均ベクトルμ´jおよび共分散行列U´jは、それぞれ、式(6)および式(7)により求めることができる。
次に連続アクション集合を実行する場合の例について説明する。
連続アクションの場合、離散アクションの場合と異なり、離散アクションckより連続アクションcの出力される確率ρk(c)の学習が必要となる。確率ρk(c)を学習することにより、連続アクションcを、あたかも離散アクションckであるようにラベリングする(離散アクションに対応付ける)ことができるからである。
連続アクションの場合のforward確率の計算は次のようにして行なわれる。
時刻1,2,・・・t-1の各時刻においてエージェントが取得したセンサ信号に対応する観測シンボルを、それぞれo1,o2,・・・,ot?1で表すことにする。また、時刻1,2,・・・t-1の各時刻においてエージェントが実行した連続アクションから推定される離散アクションを、それぞれc1,c2,・・・,ct?1で表すことにする。この場合、時刻tにおいてエージェントが取得したセンサ信号に対応する観測シンボルがotであるとき、エージェントがノードsjにいるforward確率αt(j)は、式(8)の漸化式により表すことができる。
エージェントが時刻tにおいて状態iにいた場合、時刻t,t+1,t+2,・・・T-1の各時刻において、エージェントが実行した連続アクションから推定される離散アクションを、それぞれアクションct,ct+1,・・・,cT?1とし、各時刻で取得したセンサ信号に対応する観測シンボルが、それぞれot+1,ot+2,・・・,oTであるbackward確率βt(i)は、式(9)の漸化式により表すことができる。
連続アクション集合を実行する場合の状態遷移確率の推定と観測確率の推定は、次のようにして行なわれる。
状態遷移確率aij(k)の推定は、離散アクションの場合と同様に、Baum-WelchアルゴリズムのM−ステップで行なう。ここで、状態遷移確率aij(k)は、エージェントが状態iにいるとき、アクションkを実行することにより状態jに遷移する確率を意味する。すなわち、式(10)を演算することにより、状態遷移確率の推定値a´ij(k)を得ることができる。
観測確率bj(o)の推定は、離散アクションの場合と全く同一なので、ここでは説明を省略する。
次に、離散アクションckより連続アクションcの出力される確率ρk(c)をどのようにして求めるかについて説明する。
確率ρk(c)もBaum-Welch アルゴリズムのM−ステップで行なうようにすることができる。すなわち、連続観測信号の場合における観測確率の推定と同様の方式で推定することができる。
時刻tにおいて実行されるアクションctを、式(11)に示されるξt(i,j,k)よって重み付けた信号分布を用いて、確率ρk(c)を推定すればよい。
観測確率の場合と同様にガウス分布などをモデルとして用い、確率ρk(c)を推定することができる。
この場合、連続アクションcをラベリングして得られる離散アクションckより生成されるアクション信号の平均ベクトルνkおよび共分散行列V´kを、それぞれ式(12)および式(13)により演算する。このようにして演算された、アクション信号の平均ベクトルνkおよび共分散行列V´kを、ガウス分布などのモデルのパラメータとして用いるようにすればよい。
このようにして、アクション拡張型HMMにおける3次元の状態遷移確率テーブルと、2次元の観測確率テーブルを学習により生成することができる。
ここまで説明したアクション拡張型HMMの学習アルゴリズムにより、通常のHMMと同様に、状態遷移確率と観測確率を得ることができる。
しかし、状態の数(ノード数)をN、観測シンボル数をM、アクション数をKとすると、3次元の状態遷移確率テーブルと、2次元の観測確率テーブルにおいて算出すべきパラメータ数は、N2K+NMとなる。このように、アクション拡張型HMMにおいては、N,M,Kの数が増大すると、学習処理の負荷も加速度的に増大することが明らかである。例えば、Nが250程度、Mが15程度、Kが5程度の環境においては、30万規模のパラメータを算出する必要がある。数少ないサンプルからこれほど多くのパラメータを適切に決定することは非常に困難である。
しかしながら、例えば、モデルに制約を加えることでパラメータの自由度を減らし、学習を安定化させることが可能である。次に、必然的に大規模となるアクション拡張型HMMの学習を効率的かつ適切に行うために必要となる技術について説明する。
本発明では、アクション拡張型HMMの学習において、一状態一観測制約およびアクション遷移制約を課すことにする。
最初に、一状態一観測制約について説明する。一状態一観測制約は、例えば、あるノードで観測される観測シンボルは、原則として1つに限るという制約である。なお、一状態一観測制約の下でも、同じ観測シンボルを別々のノードで観測することは許容される。
アクション拡張型HMMの学習において、一状態一観測制約を課すことにより事象の表現方式が限定され、結果として、状態遷移確率テーブルと観測確率テーブルの生成のために必要となるパラメータの自由度が減少する。
一状態一観測制約を実現する方式の1つとして、例えば、離散観測型HMMの学習においてなされているように、目的関数に観測確率をスパースにするような制約項を加えるという方式がある。
例えば、目的関数に観測確率をスパースにするような重みλを乗じた制約項ΣjH(bj)を加えるという方式が考えられる。ここで、H(bj)は、ノードsjで観測され得るすべて観測シンボルに対する観測確率ベクトルbjに対して定義されるエントロピーとされる。これ以外にも、観測確率ベクトルbjのL1ノルムとL2ノルムの差分Σj(||bj||1 ? ||bj||2)などを、制約項とする方式も考えられる。
あるいはまた、上述の目的関数に観測確率をスパースにするような重みλを乗じた制約項ΣjH(bj)を加えるという方式以外の方式で一状態一観測制約を実現することも可能である。このような方式の例としてスプリットアルゴリズムを適用する例が考えられる。
図10と図11は、スプリットアルゴリズムを説明する図である。図10と図11では、図中の円でノードが示されており、各ノードで観測されるシンボルとして図2を参照して上述したパーツの図形が表示されている。
図10は、エージェントの学習の結果得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。図10の例は、ノードS10、ノードS20、ノードS30が存在する場合の例を示している。この例の場合、エージェントは、ノードS10で十字路のパーツ(図2のパーツ15)を100%の確率で観測し、ノードS10において右方向に移動するアクションを実行するとエージェントは100%の確率でノードS20に移動(遷移)する。
また、ノードS20では、図2のパーツ7とパーツ13が、それぞれ50%の確率で観測される。ノードS20において右方向に移動するアクションを実行すると100%の確率でノードS30に遷移し、ノードS20において左方向に移動するアクションを実行すると100%の確率でノードS10に遷移する。
さらに、ノードS30では、図2のパーツ5が100%の確率で観測され、ノードS30において左方向に移動するアクションを実行すると100%の確率でノードS20に遷移する。
なお、図10(図11も同じ)は、状態遷移確率テーブルと観測確率テーブルの内容を可視化したものであり、実際には、図10に対応する状態遷移確率テーブルと観測確率テーブルが内部モデルデータとして学習されている。このような内部モデルデータにスプリットアルゴリズムを適用すると、状態遷移確率テーブルと観測確率テーブルの内容は、図11に示されるように変化する。
図11は、図10に対応する状態遷移確率テーブルと観測確率テーブルの内容にスプリットアルゴリズムを適用した場合に得られる状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。
図11の例では、ノードS10、ノードS21、ノードS22、ノードS30が存在する。すなわち、図10のノードS20が図11においてノードS21とノードS22に分割(スプリット)されたのである。この例の場合、ノードS10では図2のパーツ15が100%の確率で観測され、ノードS10において右方向に移動するアクションを実行すると50%の確率でノードS21に遷移し、50%の確率でノードS22に遷移する。
また、ノードS21では図2のパーツ7が100%の確率で観測され、ノードS21において右方向に移動するアクションを実行すると100%の確率でノードS30に遷移し、左方向に移動するアクションを実行すると100%の確率でノードS10に遷移する。
ノードS22では図2のパーツ13が100%の確率で観測され、ノードS22において右方向に移動するアクションを実行すると100%の確率でノードS30に遷移し、左方向に移動するアクションを実行すると100%の確率でノードS10に遷移する。
さらに、ノードS30では、図2のパーツ5が100%の確率で観測され、ノードS30において左方向に移動するアクションを実行すると50%の確率でノードS21に遷移し、50%の確率でノードS22に遷移する。
このように、スプリットアルゴリズムを適用することにより、一状態一観測制約を実現することが可能である。
すなわち、スプリットアルゴリズムの適用は、期待値最大化法で求められた局所最適解に対して一状態一観測制約を適用し、修正された解に対して再度期待値最大化法に基づく局所最適化を施す処理を繰り返すことで、最終的に一状態一観測制約を満たす局所最適解を求める処理になる。
なお、図10と図11を参照して上述した例では、各ノードで観測される観測シンボルの観測確率が100%とされるように分割されると説明したが、実際には、観測シンボルの観測確率が100%とされることは稀である。一状態一観測制約は、厳密な意味で1つのノードで観測される観測シンボルが常に1つに限られるようにするものではないからである。すなわち、一状態一観測制約は、1つのノードで観測される観測シンボルが複数ある場合でも、そのうち1つの観測シンボルの観測確率が閾値以上となるようにするものである。
図9の学習器34により内部モデルデータに対してスプリットアルゴリズムが適用される場合の処理について、図12のフローチャートを参照して説明する。
ステップS101において、学習器34は、内部モデルデータ記憶部37に記憶されている観測確率テーブルを参照し、観測確率bjの最大値が閾値th1以下のノードsjを1つ探す。
ステップS102において、学習器34は、ステップS101の処理の結果、最大値が閾値th1以下のノードsjが見つかったか否かを判定し、見つかったと判定された場合、処理は、ステップS103に進む。
ステップS103において、学習器34は、観測確率テーブルを参照し、ステップS102で見つかったと判定されたノードsjにおける各観測シンボルの観測確率をチェックする。そして、学習器34は、ノードsjおいて、観測確率が閾値th2以上となる観測シンボルの数をカウントし、それらの観測シンボルをリストする。
例えば、K個の観測確率が閾値th2以上となる観測シンボルが存在する場合、観測シンボルok(k = 1, ・・・,K)がリストされる。
ステップS104において、学習器34は、ノードsjをK個に分割する。
このとき、ノードsjが分割された後の観測確率テーブルにおける観測確率および状態遷移確率テーブルにおける状態遷移確率は、次のようにして設定される。
ノードsjが分割された結果得られるK個のノードのうちの第k番目のノードを、sj kと表すこととし、ノードsj kで観測される各観測シンボルの観測確率のそれぞれを要素とするベクトルをbj kと表すことにする。
ステップS104において、学習器34は、ベクトルbj kを、観測シンボルokに対する観測確率だけが突出して大きく(1に極めて近く)、その他の観測シンボルに対する観測確率はきわめて微小な範囲の一様乱数となるように設定する。
また、ノードsjが分割される前のノードsiからノードsjへの状態遷移確率をaijで表すこととし、ノードsjが分割された後のノードsiからノードsj kへの状態遷移確率をak ijで表すことにする。
ステップS104において、学習器34は、状態遷移確率をak ijが、分割前の状態遷移確率aijを分割前の各観測シンボルの観測確率の比で案分されたものとなるように設定する。
さらに、ノードsjが分割される前のノードsjからノードsiへの状態遷移確率をajiで表すこととし、ノードsjが分割された後のノードsj kからノードsiへの状態遷移確率をak jiで表すことにする。
ステップS104において、K個の状態遷移確率ak jiのそれぞれに、状態遷移確率ajiを設定する。
このようにして、スプリットアルゴリズムの適用の処理が実行される。
次に、アクション遷移制約について説明する。アクション遷移制約は、一状態一観測制約が課されていることを前提とした制約である。
アクション遷移制約は、あるノードsiから、同一のアクションckによって遷移可能な遷移先のノードsj(j=1,・・・ , J)、またはノードsiへ同一のアクションckによって遷移可能な遷移元のノードsj(j=1,・・・,J)では、それぞれ異なる観測シンボルoj(j=1,・・・,J)が観測されるべきであるという制約である。前者をforward制約、後者をbackward制約と称する。すなわち、アクション遷移制約の下では、同一のアクションckによって遷移可能な複数の遷移先(または遷移元)のノードにおいて、同一の観測シンボルが観測されることは許容されないのである。なお、アクション遷移制約の下でも、異なる観測シンボルを観測するノードであれば、同一のアクションckによって遷移可能な遷移先のノードが複数存在することは許容される。
アクション遷移制約を実現する方式の例としてフォワードマージアルゴリズムおよびバックワードマージアルゴリズムを適用する例が考えられる。
図13と図14は、フォワードマージアルゴリズムを説明する図である。
図13と図14では、図中の円でノードが示されており、各ノードで観測されるシンボルとして図2を参照して上述したパーツの図形が表示されている。
図13は、エージェントの学習の結果得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。図13の例は、ノードS10、ノードS21、ノードS22、ノードS31、ノードS32が存在する場合の例を示している。この例の場合、ノードS10において右方向に移動するアクションを実行すると50%の確率でノードS21に遷移し、50%の確率でノードS22に遷移する。
ノードS21では、図2のパーツ5が100%の確率で観測され、ノードS22でも図2のパーツ5が100%の確率で観測される。
さらに、ノードS21において右方向に移動するアクションを実行すると100%の確率でノードS31に遷移し、ノードS22において右方向に移動するアクションを実行すると100%の確率でノードS32に遷移する。
なお、図13(図14も同じ)は、状態遷移確率テーブルと観測確率テーブルの内容を可視化したものであり、実際には、図13に対応する状態遷移確率テーブルと観測確率テーブルが内部モデルデータとして学習されている。このような内部モデルデータにフォワードマージアルゴリズムを適用すると、状態遷移確率テーブルと観測確率テーブルの内容は、図14に示されるように変化する。
図14は、図13に対応する状態遷移確率テーブルと観測確率テーブルの内容にフォワードマージアルゴリズムを適用した場合に得られる状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。
図14の例では、ノードS10、ノードS20、ノードS31、ノードS32が存在する。すなわち、図13のノードS21とノードS22が図14のノードS20に併合(マージ)されたのである。この例の場合、ノードS20では図2のパーツ5が100%の確率で観測され、ノードS10において右方向に移動するアクションを実行すると100%の確率でノードS20に遷移する。
また、ノードS20において右方向に移動するアクションを実行すると50%の確率でノードS31に遷移し、50%の確率でノードS32に遷移する。
このように、フォワードマージアルゴリズムを適用することにより、アクション遷移制約のうちのforward制約を実現することが可能である。
つまり、アクション遷移制約の下では、同一のアクションckによって遷移可能な複数の遷移先のノードにおいて、同一の観測シンボルが観測されることは許容されないので、図13のノードS21とノードS22が図14のノードS20にマージされたのである。なお、仮にノードS10において右方向に移動するアクションを実行することにより遷移するノードS23が存在した場合、ノードS23でパーツ5以外のパーツが観測されるときは、ノード23がマージの対象となることはない。アクション遷移制約の下でも、異なる観測シンボルを観測するノードであれば、同一のアクションckによって遷移可能な遷移先のノードが複数存在することは許容されるからである。
すなわち、1つのノードにおいて所定のアクションを実行した場合に遷移し得る遷移先ノードのそれぞれでの観測確率分布が類似するノードを発見し、発見されたノードが併合(マージ)されるのである。
なお、図13と図14を参照して上述した例では、所定の観測シンボルが観測されるノードへの状態遷移確率が100%とされるようにマージされると説明したが、実際には、状態遷移確率が100%とされることは稀である。forward制約は、厳密な意味で同一のアクションckによって遷移可能な複数の遷移先のノードにおいて、同一の観測シンボルが観測されることは許容しないものではないからである。
図9の学習器34により内部モデルデータに対してフォワードマージアルゴリズムが適用される場合の処理について、図15のフローチャートを参照して説明する。
ステップS121において、学習器34は、内部モデルデータ記憶部37に記憶されている状態遷移確率テーブルを参照し、ある1つのアクションckの状態遷移確率テーブルをチェックする。
ステップS122において、学習器34は、ステップS121の処理でチェックした状態遷移確率テーブルの中で、ある1つの遷移元ノードsiを特定し、ノードsiから各遷移先ノードへの状態遷移確率を要素とするベクトルaij(k)をチェックする。そして、学習器34は、状態遷移確率の値が閾値以上となった遷移先ノードsjをリストする。
ステップS123において、学習器34は、ステップS122の処理でリストされた遷移先ノードを観測シンボル毎に分類する。
なお、上述したように、アクション遷移制約は、一状態一観測制約が課されていることを前提とした制約だから、遷移先ノードで観測される観測シンボルは、ほぼ1つに特定することが可能である。
ステップS124において、学習器34は、ステップS123の処理で分類された同一の観測シンボルのノードをマージする。
すなわち、ステップS123の処理でマージされた、観測シンボルmに対応するノード群を、sj m,l(l = 1,・・・,L)で表すものとし、L個のノードsj m,lを1つのノードsj mにマージするのである。
このとき、L個のノードsj m,lが1つのノードsj mにマージされた後の状態遷移確率テーブルにおける状態遷移確率および観測確率テーブルにおける観測確率は、次のようにして設定される。
ノードsiからノードsj mへの状態遷移確率aij mは、式(14)により求められて設定される。
ノードsj mからノードsiへの状態遷移確率aji mは、aji m,lの単純平均、またはΣkakj m,lによる重み付き平均として求められて設定される。
L個のノードsj m,lが1つのノードsj mにマージされた後のノードsj mにおける観測シンボルmの観測確率bj mは、bj m,lの単純平均、またはΣkakj m,lによる重み付き平均として求められて設定される。
ステップS124では、このように、状態遷移確率aij m、状態遷移確率aji m、観測確率bj mが設定される。
このようにして、フォワードマージアルゴリズムの適用の処理が実行される。
図16と図17は、バックワードマージアルゴリズムを説明する図である。
図16と図17では、図中の円でノードが示されており、各ノードで観測されるシンボルとして図2を参照して上述したパーツの図形が表示されている。
図16は、エージェントの学習の結果得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。図16の例は、ノードS11、ノードS12、ノードS21、ノードS22、ノードS30が存在する場合の例を示している。この例の場合、ノードS11において右方向に移動するアクションを実行すると100%の確率でノードS21に遷移する。ノードS12において右方向に移動するアクションを実行すると100%の確率でノードS22に遷移する。
また、ノードS21では、図2のパーツ7が100%の確率で観測される。ノードS22では、図2のパーツ7が100%の確率で観測される。
さらに、ノードS21において右方向に移動するアクションを実行すると100%の確率でノードS30に遷移し、ノードS22において右方向に移動するアクションを実行すると100%の確率でノードS30に遷移する。
なお、図16(図17も同じ)は、状態遷移確率テーブルと観測確率テーブルの内容を可視化したものであり、実際には、図16に対応する状態遷移確率テーブルと観測確率テーブルが内部モデルデータとして学習されている。このような内部モデルデータにバックワードマージアルゴリズムを適用すると、状態遷移確率テーブルと観測確率テーブルの内容は、図17に示されるように変化する。
図17は、図16に対応する状態遷移確率テーブルと観測確率テーブルの内容にバックワードマージアルゴリズムを適用した場合に得られる状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。
図17の例では、ノードS11、ノードS12、ノードS20、ノードS30が存在する。すなわち、図16のノードS21とノードS22が図17のノードS20に併合(マージ)されたのである。この例の場合、ノードS20では図2のパーツ7が100%の確率で観測される。
また、ノードS11において右方向に移動するアクションを実行すると100%の確率でノードS20に遷移し、ノードS12において右方向に移動するアクションを実行すると100%の確率でノードS20に遷移する。
さらに、ノードS20において右方向に移動するアクションを実行すると100%の確率でノードS30に遷移する。
このように、バックワードマージアルゴリズムを適用することにより、アクション遷移制約のうちのbackward制約を実現することが可能である。
つまり、アクション遷移制約の下では、同一のアクションckによって遷移可能な複数の遷移元のノードにおいて、同一の観測シンボルが観測されることは許容されないので、図16のノードS21とノードS22が図17のノードS20にマージされたのである。なお、仮に右方向に移動するアクションを実行することによりノードS30に遷移するノードS23が存在した場合、ノードS23でパーツ7以外のパーツが観測されるときは、ノード23がマージの対象となることはない。アクション遷移制約の下でも、異なる観測シンボルを観測するノードであれば、同一のアクションckによって遷移可能な遷移元のノードが複数存在することは許容されるからである。
すなわち、1つのノードに対して、共通のアクションによって遷移してくる遷移元ノードのそれぞれでの観測確率分布が類似するノードを発見し、発見されたノードが併合されるのである。
図9の学習器34により内部モデルデータに対してバックワードマージアルゴリズムが適用される場合の処理について、図18のフローチャートを参照して説明する。
ステップS141において、学習器34は、内部モデルデータ記憶部37に記憶されている状態遷移確率テーブルを参照し、ある1つのアクションckの状態遷移確率テーブルをチェックする。
ステップS142において、学習器34は、ステップS141の処理でチェックした状態遷移確率テーブルの中で、ある1つの遷移先ノードsjを特定し、ノードsjへの各遷移元ノードからの状態遷移確率を要素とするベクトルaij(k)をチェックする。そして、学習器34は、状態遷移確率の値が閾値以上となった遷移元ノードsiをリストする。
ステップS143において、学習器34は、ステップS142の処理でリストされた遷移元ノードを観測シンボル毎に分類する。
なお、上述したように、アクション遷移制約は、一状態一観測制約が課されていることを前提とした制約だから、遷移元ノードで観測される観測シンボルは、ほぼ1つに特定することが可能である。
ステップS144において、学習器34は、ステップS143の処理で分類された同一の観測シンボルのノードをマージする。
すなわち、ステップS143の処理でマージされた、観測シンボルmに対応するノード群を、si m,l(l=1,・・・,L)で表すものとし、L個のノードsi m,lを1つのノードsi mにマージするのである。
このとき、L個のノードsi m,lが1つのノードsi mにマージされた後の状態遷移確率テーブルにおける状態遷移確率および観測確率テーブルにおける観測確率は、次のようにして設定される。
ノードsjへのノードsi mからの状態遷移確率aij mは、aji m,lの単純平均、またはΣkaki m,lによる重み付き平均として求められて設定される。
ノードsjからのノードsi mへの状態遷移確率aji mは、Σlaji m,lにより求められて設定される。
L個のノードsi m,lが1つのノードsi mにマージされた後のノードsi mにおける観測シンボルmの観測確率bi mは、bi m,lの単純平均、またはΣkaki m,lによる重み付き平均として求められて設定される。
ステップS124では、このように、状態遷移確率aij m、状態遷移確率aji m、観測確率bj mが設定される。
このようにして、バックワードマージアルゴリズムの適用の処理が実行される。
このように一状態一観測制約およびアクション遷移制約を課すことで、学習処理の負荷を軽減することが可能となる。
図19は、アクション拡張型HMMにおける状態遷移確率テーブルと観測確率テーブルの尤度を比較する表である。同図の最も左側の列は、学習の回数(試行回数)を表している。試行回数の右側の列は、「最初の学習」の列とされており、それぞれの試行回数時に学習された状態遷移確率テーブルと観測確率テーブルの尤度の値が記述されている。「最初の学習」の右側の列は、「スプリット・マージ後」の列とされている。この列には、「最初の学習」によって得られた状態遷移確率テーブルと観測確率テーブルに対して、図12、図15、および図18の処理を施すことにより得られた状態遷移確率テーブルと観測確率テーブルの尤度の値が記述されている。さらに、「スプリット・マージ後」の右側の列は、「増分」の列とされている。この列には、「スプリット・マージ後」の列に記述された尤度値と「最初の学習」の列に記述された尤度値との差分が記述されている。
図19に示されるように、図12、図15、および図18の処理を施すことにより尤度が向上することが分かる。また、図12、図15、および図18の処理を施すことにより、尤度値は、「−60」付近の値をとる回数が多くなることが分かる。つまり、尤度値は、「−60」付近の値をとるような学習が行われた場合、与えられた環境を最も適切に学習したといえる。これに対して、「最初の学習」の列に記述された尤度は、学習の都度、値が大きく変化しており、学習を繰り返しても与えられた環境を最も適切に学習することは困難であることが判る。
すなわち、一状態一観測制約とアクション遷移制約を課すことで、アクション拡張型HMMの学習の精度を高めることができるのである。
図20乃至図26は、一状態一観測制約とアクション遷移制約を課すことによる学習結果の変化を説明する図である。
ここでは、図20に示される迷路において、図中円で示される位置のパーツを変更し、図21に示されるような構造に変化させた迷路を環境としてエージェントに学習させる場合を例として説明する。
図22は、図20と図21に示される環境を学習したエージェントの状態遷移確率テーブルと観測確率テーブルの内容を可視化した図である。図22の例では、図中の円でノードが示されており、図中の三角形で表現された方向のアクションにより遷移するノードが線により接続されている。また、図中の円の内部にしめされた番号が、その円で示されるノードのインデックスを表している。図22の例は、一状態一観測制約とアクション遷移制約を課すことなく得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化した図とされる。
これに対して、図23は、図22に対応する状態遷移確率テーブルと観測確率テーブルに、一状態一観測制約とアクション遷移制約を課す処理を施すことにより得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化した図とされる。
図23においては、図22のノード28がノード28とノード31に分割されている。また、図23においては、図22のノード17とノード19がノード7にマージされている。さらに、図23においては、図22のノード12とノード25がノード12にマージされている。
なお、エージェントが学習のために迷路上を移動していた時間帯において、迷路が図20に示される構造とされていた時間帯と、迷路が図21に示される構造とされていた時間帯とが存在する。従って、図23に示される各ノードの位置が完全に、図20または図21のパーツの位置と一致するものではない。例えば、図23のノード24、ノード36、ノード2、ノード18によって、迷路の構造が時間帯によって変化し得ることが適切に学習されていることが分かる。
実際には、迷路の規模はさらに大きいものとされる。例えば、図24に示されるような迷路を環境としてエージェントに学習させる。この場合、一状態一観測制約とアクション遷移制約を課すことなく得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化すると図25に示されるようになる。これに対して、一状態一観測制約とアクション遷移制約を課すことにより得られた状態遷移確率テーブルと観測確率テーブルの内容を可視化すると図26に示されるようになる。
図25と比較して、図26は、現実の迷路(図24)の構造に近いものとなっていることが分かる。
ここまで、必然的に大規模となるアクション拡張型HMMの学習を効率的かつ適切に行うために必要となる技術について説明した。
次に、ここまで説明してきた、図9の学習器34によるアクション拡張型HMMの学習処理について、図27のフローチャートを参照して説明する。
ステップS161において、学習器34は、初期の内部モデルデータを取得する。ここで、初期の内部モデルデータは、例えば、ロボットが迷路上を移動することで生成された直後の状態遷移確率テーブルと観測確率テーブルとされる。状態遷移確率テーブルと観測確率テーブルに設定される状態遷移確率と観測確率は、例えば、各時刻においてロボットが実行したアクションと、そのアクションを実行した結果観測された観測シンボルとの組み合わせからなる情報に基づいて生成される。
ステップS162において、学習器34は、ステップS161の処理で取得した内部モデルデータを最適化する。このとき、例えば、最尤推定法などにより、状態遷移確率テーブルの各値と観測確率テーブルの各値が最適化されるように変更される。
ステップS163において、学習器34は、ステップS162の処理で最適化された内部モデルデータが、上述した一状態一観測制約、およびアクション遷移制約を満たすか否かを判定する。
例えば、1つのノードで観測される観測シンボルが複数ある場合でも、そのうち1つの観測シンボルの観測確率が閾値以上となる場合、一状態一観測制約を満たすことになる。また、例えば、同一のアクションによって遷移可能な複数の遷移先のノードにおいて、同一の観測シンボルが観測される確率が閾値以下となる場合、アクション遷移制約を満たすことになる。
ステップS163において、内部モデルデータが、上述した一状態一観測制約、およびアクション遷移制約を満たさないと判定された場合、処理は、ステップS164に進む。
ステップS164において、学習器34は、一状態一観測制約、およびアクション遷移制約を満たすように、内部モデルデータを変更する。このとき、例えば、図12、図15、および図18を参照して上述した処理が実行されることにより、状態遷移確率テーブルの各値と観測確率テーブルの各値が変更される。
ステップS164の処理の後、処理は、ステップS162に戻る。そして、ステップS163において、一状態一観測制約、およびアクション遷移制約を満たすと判定されるまで、ステップS162乃至ステップS164の処理が繰り返し実行される。
ステップS163において、一状態一観測制約、およびアクション遷移制約を満たすと判定された場合、処理は、ステップS165に進む。
ステップS165において、学習器34は、内部モデルデータを、内部モデルデータ記憶部37に保存する。
このようにして、アクション拡張型HMMの学習処理が実行される。
ところで、HMMの学習の方式として、バッチ学習方式と追加学習方式が存在する。ここで、バッチ学習方式は、例えば、1万ステップの遷移と観測のデータが得られる場合、1万ステップの遷移と観測に基づいて状態遷移確率テーブルと観測確率テーブルを生成して保存するものである。これに対して、追加学習方式は、例えば、最初に、1千ステップの遷移と観測に基づいて状態遷移確率テーブルと観測確率テーブルを生成して保存する。そして、その後の1千ステップの遷移と観測に基づいて状態遷移確率テーブルと観測確率テーブルの各値を変更して保存し、・・・というように、繰り返し学習を行って、内部モデルデータを更新(アップデート)していくものである。
例えば、迷路上を自走するロボットによるアクション拡張型HMMの学習などの場合、追加学習方式での学習を行うことが求められる。バッチ学習方式での学習では、迷路の構造の変化などを適応的に学ぶことが原理的に不可能であり、変化する環境の中でより良い性能を発揮するためには、動作結果をフィードバックする追加学習方式による学習が必須となるからである。
ところが、追加学習を行なう際に「学習済みの記憶構造」と「新しい経験」とをどのように統合するのかという問題は未解決である。一方では「新しい経験」を速やかに反映させてすばやい適応を実現したいという要請もあるが、他方、これまでに確立した記憶構造が破壊される危険性もある。
例えば、図28に示されるような迷路の構造を学習するロボットが、1度学習して内部モデルデータを保存した後、図中の円101で示される範囲内を長時間移動し続けた場合、円102で示される範囲の位置に対応する内部モデルデータが破壊されることがある。すなわち、せっかく適切に学習されて記憶されていた円102で示される範囲の位置に対応する内部モデルデータが誤って更新されることがある。追加学習方式の学習では、新しく得られた遷移と観測に基づいてのみ、内部モデルデータが更新されるので、円101で示される範囲内の位置が誤って、円102で示される範囲の位置に対応するノードと認識されることがあるからである。
このような問題に対処するために、例えば、従来、追加学習方式での学習を行うために、内部モデルデータを迷路の各範囲に対応させて分離して保持するなどされていた。あるいはまた、過去の学習により得られた内部モデルデータを現在の記憶からリハースする等して、学習することが行われていた。
しかしながら、従来の方式を採用しても、例えば、分離された過去の内部モデルデータに、「新しい体験」が反映されなかったり、リハースされる過去の内部モデルデータが、「新しい体験」の影響を受けて生成されてしまうなどの問題があった。このように、従来の方式では、大規模なHMMの学習において、追加学習を行って実用的なモデルとして機能させることは困難であった。例えば、過去の学習に用いられたデータと、新たな学習に用いられるデータとをまとめてバッチ学習するようにすれば、適切な学習結果を得ることができるが、これを実現するには、膨大な記憶容量と計算量が求められることになる。
次に、必然的に大規模となるアクション拡張型HMMにおける追加学習方式での学習を安定的に行うことができるようにするための技術について説明する。
本発明においては、学習器34が、次のような追加学習方式による学習を行い、変化する環境の中でより良い性能を発揮でき、かつ安定的な学習を行うことができるようにする。具体的には、後述する状態遷移確率の推定のための頻度変数と観測確率の推定のための頻度変数とを算出して保存することにより、アクション拡張型HMMにおける追加学習方式での学習を安定的に行うことができるようにする。
バッチ学習方式による学習は、換言すれば、複数の時間帯において得られた遷移と観測に基づく学習を足し合わせたものということもできる。例えば、図29に示されるように、バッチ学習方式の学習で用いられる遷移と観測の全体データDAが構成されていると考えられる。すなわち、全体データDAは、第1の時間帯において得られたデータセットD1と、第2の時間帯において得られたデータセットD2と、第3の時間帯において得られたデータセットD3と、・・・により構成されていると考えられる。
アクション拡張型HMMの学習における状態遷移確率の推定は、上述した式(3)により行なわれるが、ここでは、図29に示されるように、複数のデータセットが存在している場合を考える。
第n番目の学習データセットDnにおける状態遷移確率の推定値a´ij(k)(n)は、式(15)により求めることができる。
ここで、状態遷移確率の推定の説明において、t∈Dnは、特に言及がない場合、この表記により(t,t+1∈Dn)を表すものとする。また、学習データセットDnには、各時刻において実行したアクション、各時刻におけるノード、各時刻における観測シンボルを表す情報が含まれているものとする。
式(15)における分子は、学習データセットDnの中で、アクションckを実行することにより、ノードiからノードjに遷移した頻度を表すものと言える。一方、式(15)の分母は、学習データセットDnの中で、アクションckを実行することにより、ノードiから他のノードに遷移した頻度を表すものと言える。
いま、式(15)における分子に対応する式を表す変数χij(k)(n)を式(16)で示されるものとして定義する。
式(16)より式(17)を得ることができる。
式(17)と式(15)より式(18)が導出される。
このように、状態遷移確率の推定値は、変数χij(k)(n)を用いて表すことができるのである。
ここで、変数χij(k)(n)は、式(15)における分子に相当し、学習データセットDnの中で、アクションckを実行することにより、ノードiからノードjに遷移した頻度を表すものと言えるから、状態遷移確率の推定のための頻度変数と称することにする。
本発明では、追加学習方式の学習を行う場合、安定的な学習を行うことができるようにするために、上述した頻度変数χij(k)(n)を用いて状態遷移確率の推定値を求めることにする。すなわち、学習器34が、1つの学習データセットに基づく学習を行う都度、頻度変数を更新して内部モデルデータの1つとして内部モデルデータ記憶部37に記憶させて保存するようにする。
つまり、新たに学習を行う際に、過去の学習データセットに対応する頻度変数を読み出して、その頻度変数に新たな学習に基づいて得られた頻度変数を足しこむことにより頻度変数の値を更新する。さらに、更新された頻度変数に基づいて得られる状態遷移確率の推定値を求めることにより、追加学習方式の学習を行うのである。このようにすることで、学習データセットD1,D2,D3・・・をまとめてバッチ学習するのとほぼ同等の結果を得ることができるのである。
次に、複数回の学習により得られたそれぞれの内部モデルデータの統合について説明する。すなわち、学習データセットD1,D2,・・・Dn・・・に基づいて計算される状態遷移確率の推定値a´ij(k)(1),a´ij(k)(2),・・・a´ij(k)(n),・・・の統合について説明する。
このような場合、例えば、重みwn(Σwn=1)を設定し、式(19)に示されるように、状態遷移確率の推定値a´ij(k)(1),a´ij(k)(2),・・・a´ij(k)(n),・・・を統合することも考えられる。
式(19)は、上述した状態遷移確率の推定値のそれぞれに、各学習データセットに対応する重みw1,w2,・・・,wn,・・・を乗じて足し合わせることを意味している。
しかしながら、上述したように本発明では、学習データセットに対応する頻度変数に基づいて得られる状態遷移確率の推定値を求めるようにしたので、式(19)による統合は適さない。
本発明では、学習データセットに対応する頻度変数に基づいて得られる状態遷移確率の推定値を求めるようにしたので、それぞれの状態遷移確率の推定値の信頼性を考慮して統合を行う必要がある。すなわち、学習データセットのデータ量(シーケンス長)を考慮して重みを設定する必要がある。
また、学習データセットに対応する頻度変数は、過去の学習に基づいて既に設定されている状態遷移確率の値によって変化し得る。例えば、状態遷移確率の値が低い遷移が数多く発生した学習データセットから得られる頻度変数の値は必然的に小さい値となり易く、状態遷移確率の値が高い遷移が数多く発生した学習データセットから得られる頻度変数の値は必然的に大きい値となり易い。上述したように頻度変数は、式(15)における分子に対応する式で表されるからである。従って、頻度変数の値の大きさも考慮して重みを設定する必要がある。
本発明では、統合後の状態遷移確率の推定値a´ij(k)を式(20)により求めるようにする。
このとき、上述したように重みwnの考慮が必要となる。具体的には、シーケンス長Tnの学習データセットDnに対応する頻度変数χij(k)(n)について、式(21)に示される関係を満たすように重みwnを設定する。
このように、学習データセットごとに、その学習データセットのシーケンス長に応じた重みの調整を行いながら、頻度変数χij(k)(n)をすべてのデータセットに渡って累積すれば、全データをまとめてバッチ学習するのとほぼ同等の結果を得ることができる。すなわち、式(22)により、頻度変数χij(k)を求め、式(20)を参照して上述したように、頻度変数χij(k)を用いて統合後の状態遷移確率の推定値a´ij(k)を求めるのである。
このようにすることで、例えば、学習データセットD1,D2,・・・Dn・・・のそれぞれに対応する状態遷移確率テーブルを保存するなどしなくても、全ての学習データセットをまとめてバッチ学習するのとほぼ同等の結果を得ることができるのである。すなわち、既に記憶されている、学習データセットDn-1までを学習することにより得られた頻度変数に、学習データセットDnを学習することにより得られた頻度変数を足しこんで状態遷移確率の推定値を求める。これにより、学習データセットD1,D2,・・・Dnをまとめてバッチ学習するのとほぼ同等の結果を得ることができるのである。
一方、アクション拡張型HMMの学習における観測確率の推定は、上述した式(4)により行なわれるが、ここでは、図29に示されるように、複数のデータセットが存在している場合を考える。
第n番目の学習データセットDnにおける観測確率の推定値b´j(o)(n)は、式(23)により求めることができる。
なお、状態遷移確率の推定の説明の場合と異なり、ここでは、t∈Dnの表記により(t,t+1∈Dn)を表すものではない。
また、学習データセットDnには、各時刻において実行したアクション、各時刻におけるノード、各時刻における観測シンボルを表す情報が含まれているものとする。ot=oは、時刻tにおける観測シンボルがoであることを表している。
式(23)における分子は、学習データセットDnの中で、ノードjにおいて観測シンボルoが観測された頻度を表すものと言える。一方、式(23)の分母は、学習データセットDnの中で、ノードjにおいていずれかの観測シンボルが観測された頻度を表すものと言える。
いま、式(23)における分子に対応する式を表す変数ωj(o)(n)を式(24)で示されるものとして定義する。
式(24)より式(25)を得ることができる。
式(25)と式(23)より式(26)が導出される。
このように、観測確率の推定値は、変数ωj(o)(n)を用いて表すことができるのである。
ここで、変数ωj(o)(n)は、式(23)における分子に相当し、学習データセットDnの中で、ノードjにおいて観測シンボルoが観測された頻度を表すものと言えるから、観測確率の推定のための頻度変数と称することにする。
本発明では、状態遷移確率の場合と同様に、追加学習方式の学習を行う場合、安定的な学習を行うことができるようにするために、上述した変数ωj(o)(n)を用いて観測確率の推定値を求めることにする。すなわち、学習器34が、1つの学習データセットに基づく学習を行う都度、頻度変数更新して内部モデルデータの1つとして内部モデルデータ記憶部37に記憶させて保存するようにする。
そして、新たに学習を行う際に、過去の学習データセットに対応する頻度変数を読み出して、その頻度変数に新たな学習に基づいて得られた頻度変数を足しこむことにより頻度変数の値を更新する。さらに、更新された頻度変数に基づいて得られる観測確率の推定値を求めることにより、追加学習方式の学習を行うのである。
次に、複数回の学習により得られたそれぞれの内部モデルデータの統合について説明する。すなわち、学習データセットD1,D2,・・・Dn・・・に基づいて計算される観測確率の推定値b´j(o)(1),b´j(o)(2),・・・b´j(o)(n),・・・の統合について説明する。
統合にあたって、状態遷移確率の推定値の統合の場合と同様の理由で、重みw´nの考慮が必要となる。
本発明では、統合後の状態遷移確率の推定値b´j(o)を式(27)により求めるようにする。
このとき、シーケンス長Tnの学習データセットDnに対応する頻度変数ωj(o)(n)について、式(28)に示される関係を満たすように重みw´nを設定する。
このように、学習データセットごとに、その学習データセットのシーケンス長に応じた重みの調整を行いながら、頻度変数ωj(o)(n)をすべてのデータセットに渡って累積すれば、全データをまとめてバッチ学習するのとほぼ同等の結果を得ることができる。すなわち、式(29)により、頻度変数ωj(o)を求め、式(27)を参照して上述したように、頻度変数ωj(o)を用いて統合後の観測確率の推定値b´j(o)を求めるのである。
このようにすることで、例えば、学習データセットD1,D2,・・・Dn・・・のそれぞれに対応する観測確率テーブル、状態遷移確率テーブルを保存するなどしなくても、全ての学習データセットをまとめてバッチ学習するのとほぼ同等の結果を得ることができるのである。すなわち、既に記憶されている、学習データセットDn-1までを学習することにより得られた頻度変数に、学習データセットDnを学習することにより得られた頻度変数を足しこんで観測確率の推定値を求める。これにより、学習データセットD1,D2,・・・Dnをまとめてバッチ学習するのとほぼ同等の結果を得ることができるのである。
例えば、式(15)または式(23)の計算結果をそのまま保存して追加学習方式による学習を行っても学習データセットD1,D2,・・・Dnをまとめてバッチ学習するのとほぼ同等の結果を得ることはできない。式(15)または式(23)の計算結果は、確率の値として算出されるものであり、あり得る遷移の確率の合計値が1となるように正規化されているからである。仮に、式(15)または式(23)の計算結果をそのまま保存して、追加学習方式による学習を行っても、まとめてバッチ学習するのとほぼ同等の結果を得ることができるようにするためには、例えば、学習データセットのそれぞれに対応するテーブルを保存するなどの必要がある。このため、本発明では、式(15)または式(23)における分子に対応する式により得られる頻度変数を保存するようにしたのである。
このようにして、状態遷移確率と観測確率を求めるようにすれば、追加学習方式による学習を行って、変化する環境の中でより良い性能を発揮できるとともに、安定的な学習を行うことができるようになる。
また、そのようにするために、過去の学習のそれぞれに対応する内部モデルデータを全て保存するなどの必要がなく、例えば、内部モデルデータ記憶部37の記憶容量を小さいものとすることができる。さらに、追加学習方式による学習の結果、内部モデルデータを更新する際の演算量を少なくすることができ、環境の変化をより迅速に認識させるようにすることが可能となる。
ここまでの追加学習方式に関する説明は、離散観測信号を取得する場合の例について説明した。連続観測信号を取得する場合は、時刻tにおいてエージェントが状態jにいる場合の重み係数γt(j)よって重み付けた信号分布を用いて、観測確率密度関数bj(o)のパラメータを再推定すればよい。このとき、重み係数γt(j)が式(30)を満たすように調整する必要がある。
いまの場合、γ′t(j)が頻度相当の意味を有するものとなる。
そして、γ′t(j) ≡ w′nγt(j)を用いて観測信号の平均ベクトルおよび共分散行列を推定すればよい。
通常は、ガウス分布などの対数凹又は楕円型対称確率密度をモデルとして用い、観測確率密度関数bj(o)のパラメータの再推定を行うことができる。
ガウス分布などの対数凹又は楕円型対称確率密度のモデルのパラメータとしては、状態jにおける観測信号の平均ベクトルμ´jおよび共分散行列U´jを用いることができる。平均ベクトルμ´jおよび共分散行列U´jは、それぞれ、式(31)および式(32)により求めることができる。
以上に説明した通り、追加学習方式による学習時の安定性を確保することができるが、追加学習方式の場合、直近の学習結果により大きな重みを与えて内部モデルデータを更新させることが多い。新しい経験は、環境の変化をより適切に学習するのに都合が良いと考えられるからである。
例えば、10万サンプルからなる学習を終えた学習器に対して100サンプルの新規データを与えて追加学習方式の学習をさせる場合を考える。既に学習したものの大きさ(10万)に対して新たに学習するデータの量(100)が小さいため、そのまま学習すると新たな学習の影響度は0.1%となる。このような場合、環境の変化を適切に学習しているとは言い難い。
そこで、例えば、新たな学習の影響度である学習率を指定することができれば便利である。例えば、上述の例において、学習率を0.1(10%)と指定した場合、新たに学習するデータの量を変えることなく、影響度を100倍にすることができる。
本発明では、上述した学習率の指定があった場合でも、学習の安定性を損なうことがないようにする。
上述したように、状態遷移確率の推定のための頻度変数χij(k)は、式(33)で示されるように更新される。なお式(33)における⇒は、χij(k)が右辺に示されるように更新されることを表している。
観測確率の推定のための頻度変数ωj(o)は、式(34)で示されるように更新される。なお式(34)における⇒は、ωj(o)が右辺に示されるように更新されることを表している。
いま、学習率r(0≦r≦1)が指定された場合、本発明では、状態遷移確率の推定のための頻度変数を算出するために、式(35)に示される重みWnと、重みzi(k)(n)を演算する。重みWnと、重みzi(k)(n)は、それぞれ新たな学習に基づいて得られた頻度変数に乗じるための重みと、既に保存されている頻度変数に乗じるための重みとして演算される。
そして、状態遷移確率の推定のための頻度変数は、式(36)により演算される。
なお、式(35)における重みzi(k)(n)は、重みWnが学習を繰り返すに従って一方的に大きくなることを考慮して設けられた重みであり、実際の演算では用いられないようにしてもよい。
また、学習率r(0≦r≦1)が指定された場合、観測確率の推定のための頻度変数を算出するために、式(37)に示される重みW´nと、重みzi (n)を演算する。重みW´nと、重みzi (n)は、それぞれ新たな学習に基づいて得られた頻度変数に乗じるための重みと、既に保存されている頻度変数に乗じるための重みとして演算される。
そして、状態遷移確率の推定のための頻度変数は、式(38)により演算される。
なお、式(37)における重みzi (n)は、重みW´nが学習を繰り返すに従って一方的に大きくなることを考慮して設けられた重みであり、実際の演算では用いられないようにしてもよい。
ここまでの学習率の指定のある追加学習方式に関する説明は、離散観測信号を取得する場合の例について説明した。連続観測信号を取得する場合も同様に、対応する重み変換を行ってから分布パラメータの推定を行えばよい。
このようにすることで、学習率の指定があった場合でも、学習の安定性を損なうことがないようにすることができる。
ところで、頻度変数を用いた状態遷移確率の推定値a´ij(k)の算出については、上述したように式(20)により求めることができるが、実際には、分母のΣjχij(k)が小さい値となる場合、計算結果が擾乱することがある。上述した擾乱は、学習により得られる内部モデルデータの信頼性を損ねて、その後の環境の認識に影響し、エージェントが環境を誤って認識してしまう。さらに、その認識結果が、追加学習方式の学習の結果に対しても再帰的に悪影響を及ぼすため、この問題を解決する必要がある。
ここで、Nik=Σjχij(k)とする。Nikが小さい値となる場合、計算結果が擾乱するという問題を解決するためには、状態遷移確率に対するNikの小ささに応じたペナルティ係数を乗ずるようにすればよい。すなわち、ペナルティ係数をη(Nik)とし、状態遷移確率の推定値a´ij(k)を、式(39)により求めるようにすればよい。
ただし、関数η(x)は、定義域0≦xに対して値域0≦η(x)≦1を満たす単調増加関数であるものとする。
関数η(x)は、例えば、式(40)により表される関数とされる。
式(40)におけるα(>0),βは、必要に応じて適切に調整されるパラメータであり、例えば、指定された学習率rに応じて調整されるようにしてもよい。
ところで、上述したように、本発明においては、内部モデルデータとして、状態遷移確率の推定のための頻度変数と、観測確率の推定のための頻度変数とを記憶するようにした。そうすると、状態遷移確率の推定のための頻度変数と、観測確率の推定のための頻度変数に対しても、上述した一状態一観測制約とアクション遷移制約を課す処理を施すことが必要となる。
状態遷移確率の推定のための頻度変数と、観測確率の推定のための頻度変数に対するスプリットアルゴリズム適用の処理は、次のようにして行われる。
ここでは、ノードsjをK個のノードに分割する場合の例について説明する。なお、ノードsjが分割された結果得られるK個のノードのうちの第k番目のノードを、sj kと表すこととし、ノードsjが分割された後のノードsiからノードsj kへの状態遷移確率をak ijで表すことにする。また、ノードsjが分割された後のノードsj kからノードsiへの状態遷移確率をak jiで表すことにする。
学習器34は、観測シンボルoについての観測確率bj(o)に対応する観測確率の推定のための頻度変数ωj(o)を、式(41)により求める。
また、学習器34は、状態遷移確率ak ijに対応する状態遷移確率の推定のための頻度変数χk ijが、分割前の頻度変数χijを分割前の各観測シンボルの観測確率に対応する観測確率の推定のための頻度変数ωj(ok)の比で案分されたものとなるように設定する。
さらに、学習器34は、状態遷移確率ak jiに対応する状態遷移確率の推定のための頻度変数χk jiが、分割前の頻度変数χjiを分割前の各観測シンボルの観測確率に対応する観測確率の推定のための頻度変数ωj(ok)の比で案分されたものとなるように設定する。
状態遷移確率の推定のための頻度変数と、観測確率の推定のための頻度変数に対するフォワードマージアルゴリズム適用の処理は、次のようにして行われる。
ここでは、L個のノード群sj m,l(l=1,・・・,L)を1つのノードsj mにマージする場合の例について説明する。なお、マージされた後のノードsiからノードsj mへの状態遷移確率をaij mで表し、マージされた後のノードsj mからノードsiへの状態遷移確率をaji mで表すことにする。また、マージされた後の各観測シンボルの観測確率のそれぞれを要素とするベクトルを、bj mで表すことにする。
学習器34は、状態遷移確率aij mに対応する状態遷移確率の推定のための頻度変数χij mをΣlχij m,lにより求めて設定する。ここで、χij m,lは、マージされる前のノードsiからノードsj m,lへの状態遷移確率に対応する状態遷移確率の推定のための頻度変数とされる。
また、学習器34は、状態遷移確率aji mに対応する状態遷移確率の推定のための頻度変数χji mをΣlχji m,lにより求めて設定する。ここで、χji m,lは、マージされる前のノードsj m,lからノードsiへの状態遷移確率に対応する状態遷移確率の推定のための頻度変数とされる。
さらに、学習器34は、ベクトルbj mの要素のそれぞれに対応する状態遷移確率の推定のための頻度変数のそれぞれを要素とするベクトルωj mをΣlωj m,lにより求めて設定する。
そして学習器34は、すべてのマージが終了したら、修正された状態遷移確率の推定のための頻度変数と観測確率の推定のための頻度変数とを用いて状態遷移確率と観測確率とを再計算する。
状態遷移確率の推定のための頻度変数と、観測確率の推定のための頻度変数に対するバックワードマージアルゴリズム適用の処理は、次のようにして行われる。
ここでは、L個のノード群sj m,l(l=1,・・・,L)を1つのノードsj mにマージする場合の例について説明する。なお、マージされた後のノードsiからノードsj mへの状態遷移確率をaij mで表し、マージされた後のノードsj mからノードsiへの状態遷移確率をaji mで表すことにする。また、マージされた後の各観測シンボルの観測確率のそれぞれを要素とするベクトルを、bj mで表すことにする。
学習器34は、状態遷移確率aij mに対応する状態遷移確率の推定のための頻度変数χij mをΣlχij m,lにより求めて設定する。ここで、χij m,lは、マージされる前のノードsiからノードsj m,lへの状態遷移確率に対応する状態遷移確率の推定のための頻度変数とされる。
また、学習器34は、状態遷移確率aji mに対応する状態遷移確率の推定のための頻度変数χji mをΣlχji m,lにより求めて設定する。ここで、χji m,lは、マージされる前のノードsj m,lからノードsiへの状態遷移確率に対応する状態遷移確率の推定のための頻度変数とされる。
さらに、学習器34は、ベクトルbi mの要素のそれぞれに対応する観測確率の推定のための頻度変数のそれぞれを要素とするベクトルωi mをΣlωi m,lにより求めて設定する。
そして学習器34は、すべてのマージが終了したら、修正された状態遷移確率の推定のための頻度変数と観測確率の推定のための頻度変数とを用いて状態遷移確率と観測確率とを再計算する。
このようにすることで、状態遷移確率の推定のための頻度変数と、観測確率の推定のための頻度変数に対しても、上述した一状態一観測制約とアクション遷移制約が課されることになる。
ここまで、必然的に大規模となるアクション拡張型HMMにおける追加学習方式での学習を安定的に行うことができるようにするための技術について説明した。
ところで以上においては、図8を参照して上述したような、3次元の状態遷移確率テーブルと、2次元の観測確率テーブルを有するアクション拡張型HMMの例について説明した。通常は、ノード数をN、観測シンボル数をM、アクション数をKとすると、算出すべきパラメータ数は、N2K+NMとなり、N、M、およびKの値が一定であることを前提に学習アルゴリズムが定められる。
しかしながら、学習を進めるうちにN、M、およびKの値を変更する必要に迫られることがある。例えば、ロボットが移動する迷路に用いられるパーツが新たに加わった場合、観測シンボルの種類が増えることになるので、Mの値を大きくする必要がある。
次に、学習を進める際に、ノード数、観測シンボル数、またはアクション数を変更する必要に迫られた場合にとり得る処置について説明する。
図30は、観測シンボルの種類が増えることによる影響を説明する図である。同図に示されるように、観測シンボルの種類が増えると、観測確率テーブルの行方向(図中水平方向)の拡張が生じることになる。すなわち、領域121に対応する観測確率の値を新たに設定する必要がある。なお、観測確率テーブルにおいては、テーブルの1行あたり観測確率値の合計が1.0となるようにする制約がある。
また、図30に示されるように、観測確率テーブルの行方向(図中水平方向)の拡張が生じたことにより、観測確率の推定のための頻度変数のテーブルも拡張させる必要がある。すなわち、領域122に対応する頻度変数の値を新たに設定する必要がある。
本発明では、図30に示されるように観測確率テーブルを拡張する必要がある場合、学習器34が、次のような処理を行う。ここでは、例えば、ロボットに対して予め所定の数だけ観測シンボルの種類が増えることを前提として、図30に示されるように観測確率テーブルを拡張するように指令する場合の学習器34の処理について説明する。
いま、新しい観測シンボルoM+iに対応するインデックスをM+iとして、観測確率テーブルに第M+i列を追加するものとする。
学習器34は、観測確率テーブルの第M+i列に設定すべき観測確率値を適切な大きさの非零要素とする。この非零要素の値は、次のように決定される。
式(42)に示されるように、新しい観測シンボルを追加する前の観測シンボルの数をMとし、第M+i列に設定すべき観測確率値は、全て1/Mとする。
あるいはまた、式(43)に示されるように、観測確率テーブルの各行ごとに、観測確率bj(・)が閾値以上となる観測シンボルの数をカウントし、その数njを用いて第M+i列に設定すべき観測確率値を求める。なお、bj(・)は、閾値以上となった、それぞれの観測シンボルの観測確率を表している。
学習器34は、式(42)または式(43)に示されるように、観測確率テーブルの第M+i列に適切な大きさの非零要素を設定した後、テーブルの1行あたり観測確率値の合計が1.0となるように調整する。すなわち、式(44)に示されるように、観測確率テーブル内の非零の各観測確率bj(・)を更新する。これにより、観測確率テーブルの拡張は完了する。
さらに、学習器34は、観測確率の推定のための頻度変数のテーブルの第M+i列に設定すべき観測確率値を全て0(零)とする。これにより、観測確率の推定のための頻度変数のテーブルの拡張は完了する。
そして学習器34は、新しい観測シンボルを含む学習データセットに対する追加学習方式での学習を、所定の学習率の指定の下に行い、内部モデルデータを更新する。これにより、状態遷移確率の推定のための頻度変数、観測確率の推定のための頻度変数、並びに観測確率テーブルおよび状態遷移確率テーブルの各値が更新される。
このようにすることで、追加学習方式での学習中に、新たな観測シンボルが観測された場合でも、内部モデルデータを適切に更新することができる。
また、例えば、学習中に所定の観測シンボルが不要となった場合、観測確率テーブルを列方向に縮小させることも可能である。
この場合、学習器34は、不要となる観測シンボルに対応するインデックスをkとすると、観測確率テーブルから第k列を削除して、ノードsjにおける観測確率bj(k)が存在しないようにする。
学習器34は、観測確率の推定のための頻度変数のテーブルについても同様に、第k列を削除して、ωj(k)が存在しないようにする。
さらに、学習器34は、観測確率の推定のための頻度変数を用いて縮小後の観測確率テーブル内の各値を再計算する。
そして学習器34は、所定の観測シンボルが不要となった後の学習データセットに対する追加学習方式での学習を、所定の学習率の指定の下に行い、内部モデルデータを更新する。これにより、状態遷移確率の推定のための頻度変数、観測確率の推定のための頻度変数、並びに観測確率テーブルおよび状態遷移確率テーブルの各値が更新される。
また、例えば、ロボットが移動する迷路が所定の方向に延長された場合、ノードの数が増えることになるので、ノード数Nの値を大きくする必要がある。
図31は、ノードの数が増えることによる影響を説明する図である。同図に示されるように、ノードの数が増えると、状態遷移確率テーブルの行列方向の拡張が生じることになる。すなわち、図31の第1枚目の状態遷移確率テーブルにおける逆L字型の領域131−1に対応する状態遷移確率の値を新たに設定する必要がある。同様に、各アクションに対応する状態遷移確率テーブルの逆L字型の領域131−2、領域131−3、・・・に対応する状態遷移確率の値を新たに設定する必要がある。すなわち、アクション数K枚の状態遷移確率テーブルを拡張させて状態遷移確率の値を新たに設定する必要がある。なお、状態遷移確率テーブルにおいては、テーブルの1行あたり観測確率値の合計が1.0となるようにする制約がある。
また、ノードの数が増えると、観測確率テーブルの列方向(図中垂直方向)の拡張が生じることになる。すなわち、領域134に対応する観測確率の値を新たに設定する必要がある。なお、観測確率テーブルにおいては、テーブルの1行あたり観測確率値の合計が1.0となるようにする制約がある。
さらに、同図には示されていないが、状態遷移確率の推定のための頻度変数のテーブルと、観測確率の推定のための頻度変数のテーブルも同様に拡張させて値を新たに設定する必要がある。
本発明では、図31に示されるように状態遷移確率テーブルと観測確率テーブルを拡張する必要がある場合、学習器34が、次のような処理を行う。ここでは、例えば、ロボットに対して予め所定の数だけノードの数が増えることを前提として、図31に示されるように状態遷移確率テーブルと観測確率テーブルを拡張するように指令する場合の学習器34の処理について説明する。
いま、新しいノードsN+iに対応するインデックスをN+iとして、状態遷移確率テーブルに第N+i行と第N+i列を追加するものとする。
学習器34は、状態遷移確率テーブルの第N+i行と第N+i列に設定すべき状態遷移確率値を、それぞれ微小なランダム要素とする。
学習器34は、状態遷移確率の推定のための頻度変数のテーブルについても同様に、第N+i行と第N+i列とを追加し、設定すべき状態遷移確率値を、それぞれ微小なランダム要素とする。
学習器34は、ノードsN+iにおいて実行したことのあるアクションckを特定する。そして学習器34は、アクションckに対応する第k枚目の状態遷移確率テーブルのノードsN+iに対応する行の状態遷移確率値のそれぞれを一様の値とする。ただし、アクションck実行時の実際の遷移結果を考慮して、経験のある遷移先状態への遷移確率を多少引き上げるようにしてもよい。
また、アクションckを実行した結果、ノードsN+iへの遷移したことのある遷移元のノードsjを特定する。そして学習器34は、アクションckに対応する第k枚目の状態遷移確率テーブルのノードsjに対応する行の状態遷移確率値のそれぞれを次のように設定する。
当該行において、状態遷移確率が閾値以上となる遷移先ノードslの数をカウントし、その数をLとする。そして、第k枚目の状態遷移確率テーブルのノードsjからノードsN+iへの状態遷移確率aiN+i(k)を1/Lとする。
そして学習器34は、テーブルの1行あたり状態遷移確率値の合計が1.0となるように調整する。すなわち、式(45)に示されるように、状態遷移確率テーブル内の各状態遷移確率aj(k)を更新する。これにより、状態遷移確率テーブルの拡張は完了する。
さらに、学習器34は、状態遷移確率の推定のための頻度変数のテーブルの追加領域に設定すべき状態遷移確率値を全て0(零)とする。これにより、状態遷移確率の推定のための頻度変数のテーブルの拡張は完了する。
また、学習器34は、観測確率テーブルの第N+i行と第N+i列に設定すべき観測確率値を、適切な大きさの非零要素とする。非零要素の値としては、例えば、1/Nのような一様の値とされるが、ノードsN+iで実際に観測されたことのある観測シンボルの観測確率を引き上げるようにしてもよい。
さらに、学習器34は、観測確率の推定のための頻度変数のテーブルにおいて追加されたノードsN+iに対応する第N+i 行をすべて0(零)とする。これにより、観測確率の推定のための頻度変数のテーブルの拡張は完了する。
そして学習器34は、新たなノードを含む学習データセットに対する追加学習方式での学習を、所定の学習率の指定の下に行い、内部モデルデータを更新する。これにより、状態遷移確率の推定のための頻度変数、観測確率の推定のための頻度変数、並びに観測確率テーブルおよび状態遷移確率テーブルの各値が更新される。
あるいはまた、例えば、ロボットが迷路上における移動可能方向が拡張されるように改造された場合、アクションの数が増えることになるので、アクション数Kの値を大きくする必要がある。
図32は、アクションの数が増えることによる影響を説明する図である。同図に示されるように、アクションの数が増えると、状態遷移確率テーブルの奥行方向の拡張が生じることになる。すなわち、例えば、新たに追加されたアクションに対応する状態遷移確率テーブルであって、図32の第3枚目の状態遷移確率テーブル141の状態遷移確率の値を新たに設定する必要がある。
また、同図には示されていないが、状態遷移確率の推定のための頻度変数のテーブルも同様に拡張させて値を新たに設定する必要がある。
本発明では、図32に示されるように状態遷移確率テーブルを拡張する必要がある場合、学習器34が、次のような処理を行う。ここでは、例えば、ロボットに対して予め所定の数だけアクションが増えることを前提として、図32に示されるように状態遷移確率テーブルを拡張するように指令する場合の学習器34の処理について説明する。
いま、新しいアクションcK+i に対応するインデックスをK+iとして、第K+i枚目の状態遷移確率テーブルを追加するものとする。
学習器34は、追加された第K+i枚目の状態遷移確率テーブルの全ての状態遷移確率を0とする。
また、学習器34は、状態遷移確率の推定のための頻度変数のテーブルも同様に、第K+i枚目のテーブルを追加し、追加された第K+i枚目の状態遷移確率テーブルの全ての状態遷移確率を0とする。これにより、状態遷移確率の推定のための頻度変数のテーブルの拡張は完了する。
さらに、学習器34は、新しいアクションcK+iを実行したことがあるノードsjを特定する。そして学習器34は、第K+i枚目の状態遷移確率テーブルのノードsjに対応する行の状態遷移確率値を全て一様の値とする。ただし、実際のアクションcK+i実行時の遷移結果を考慮して、経験のある遷移先ノードへの状態遷移確率を多少引き上げるようにしてもよい。これにより、状態遷移確率テーブルの拡張は完了する。
そして学習器34は、新たなアクションの実行を含む学習データセットに対する追加学習方式での学習を、所定の学習率の指定の下に行い、内部モデルデータを更新する。これにより、状態遷移確率の推定のための頻度変数、観測確率の推定のための頻度変数、並びに観測確率テーブルおよび状態遷移確率テーブルの各値が更新される。
上述した処理により、学習を進めるうちにノード数、観測シンボル数、アクション数を追加する必要に迫られた場合であっても学習を継続させることが可能となる。上述した処理は、例えば、ロボットに対して予め所定の数だけ観測シンボルの種類が増えることを前提として、図30乃至図32に示されるように各テーブルを拡張する場合の例である。
しかしながら、例えば、所定の数だけ観測シンボル、ノード、またはアクションが増えることを予め知ることができない場合がある。つまり、エージェントの自律的な行動によって逐次環境の変化が認識されるような場合、例えば、ロボットの管理者などが事前にどれだけ観測シンボル、ノード、またはアクションが増えるのかを知ることができない。従って、例えば、ロボットが迷路を移動中に、任意に新たな迷路のパーツが出現したり、新たに迷路が拡張されたり、新たに移動方向が追加されたりする場合は、さらなる考慮が必要となる。
次に、例えば、ロボットが迷路を移動中に、新たな迷路のパーツが出現したり、新たに迷路が拡張されたりする場合の、状態遷移確率テーブル、観測確率テーブルの拡張について説明する。すなわち、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張する場合の例について説明する。
エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張する場合、そもそもエージェント自身が、新たに環境が拡張されたのか否かを認識する必要がある。つまり、エージェントが、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのか認識できるようにしなければならない。例えば、ロボットが迷路を移動中に、新たに迷路が拡張された場合、拡張された部分を移動しているとき、自分が新たに追加されるべきノードに位置していることを認識できるようにしなければ、自律的に環境の変化を認識することができない。
ここで、自律行動学習装置10におけるノードの認識の方式について説明する。ノードの認識は、図9の認識器35により行なわれる。詳細は後述するが、ここでは、時系列情報の長さ値に上限があること、および認識された現在の状態確率のエントロピーの値の変化を考慮して、最終的には4通りの方式を説明することにする。
上述したように、認識器35は、観測バッファ33および行動出力バッファ39に記憶されている情報、並びに内部モデルデータ記憶部37に記憶されている状態遷移確率テーブルおよび観測確率テーブルに基づいて、現在、ロボットが位置するノードを認識するようになされている。
また、上述したように、時刻t,t+1,t+2,・・・Tの各時刻で取得した観測信号に対応する観測シンボルot, ot+1, ot+2, ・・・, oTが各時刻の観測シンボルとして観測バッファ33に記憶されている。同様に、例えば、時刻t,t+1,t+2,・・・Tの各時刻で実行したアクションct, ct+1, ct+2, ・・・, cTが各時刻のアクションとして行動出力バッファ39に記憶されている。
ここでは、認識器35に入力される情報であって、観測バッファ33および行動出力バッファ39に記憶されている情報を時系列情報と称することにし、時系列情報の長さを変数Nで表すことにする。
また、認識器35から出力された認識結果は、その認識結果が出力された時刻と対応付けられて認識結果バッファ38に記憶されるようになされている。
認識器35は、まず、時系列情報の長さNを設定し、観測バッファ33および行動出力バッファ39から長さNの時系列情報を取得し、内部モデルデータ記憶部37に記憶されている状態遷移確率テーブルおよび観測確率テーブルに基づく認識を行なう。
認識器35は、例えば、Viterbiアルゴリズムを用いて、長さNに対応するノード列を出力する。例えば、N=3であった場合、認識器35は、認識結果としてのノード列s1,s2,s3を出力する。この場合、認識器35は、時刻t1,において、ロボットがノードs1に位置し、時刻t2において、ロボットがノードs2に位置し、時刻t3において、ロボットがノードs3に位置していたと認識したことになる。
なお、Viterbiアルゴリズムを用いて、長さNに対応するノード列を出力する処理においては、内部モデルデータ記憶部37に記憶されている状態遷移確率テーブルおよび観測確率テーブルに基づいてノード列が推測されて出力される。Viterbiアルゴリズムを用いて、長さNに対応するノード列を出力する場合、最も確からしい確率を有するノード列を含んだ複数のノード列を出力することが可能である。ここでは、Viterbiアルゴリズムを用いて得られた最も確からしい確率を有するノード列が出力されるものとする。
認識器35は、さらに、現在ロボットが位置するノードが新たに追加されるべきであるのか否かを判定するために、Viterbiアルゴリズムを用いて出力されたノード列が、実際にあり得るノード列であるか否かを判定する。
出力されたノード列が、実際にあり得るノード列であるか否かの判定は、例えば、次のようにして行なわれる。
いま、出力されたノード列(長さTのノード列)をXで表し、時系列情報に基づいて特定された観測シンボルの列(長さTの観測シンボルの列)を、観測系列Oで表すことにする。また、内部モデルデータの状態遷移確率テーブルを、行列Aで表すことにする。なお、行列Aは、時系列情報に基づいて特定されたアクションのそれぞれに対応する状態遷移確率テーブルを意味することとする。
認識器35は、ノード列Xと観測系列Oが式(46)および式(47)を満たすか否かを判定する。
ここで、P(O|X)は、ノード列Xを構成する各ノードにおける観測系列Oを構成する各観測シンボルの観測確率を意味するものとし、観測確率テーブルに基づいて特定することができる。また、Threstrans、およびThresobsは、それぞれ遷移があり得るかどうかの閾値と観測があり得るかどうかの閾値を表すものとする。
従って、ノード列Xと観測系列Oが式(46)または式(47)のいずれか1つでも満たさないと判定された場合、認識器35は、出力されたノード列が、実際にあり得るノード列ではないと判定する。これにより、現在ロボットが位置するノード(時系列情報の最後の時刻におけるノード)は、新たに追加されるべきノードであって、未知のノードであると認識されるようにすることができる。
ノード列Xと観測系列Oが式(46)および式(47)を満たすと判定された場合、認識器35は、現在の状態遷移確率のエントロピーを計算する。
ここで、エントロピーをE、ノードXiの事後確率をP(Xi|O)とし、現在の内部モデルデータ上に存在するノード数の合計をMで表すことにする。なお、ノード(状態)の事後確率とは、Viterbiアルゴリズムにより出力された確率であって、時系列情報の最後の時刻におけるノードに対応する確率を意味する。この場合、エントロピーEは、式(48)により表すことができる。
例えば、式(48)により演算されたエントロピーの値を所定の閾値と比較し、閾値未満である場合、認識器35は、出力されたノード列が、実際にあり得るノード列であって一意に特定することができる状況であることを意味する。これにより、現在ロボットが位置するノード(時系列情報の最後の時刻におけるノード)は、内部モデルデータ上に既に存在するノードであって、既知のノード(学習済みの内部状態)であると認識されるようにすることができる。
さらに、出力されたノード列に含まれる固有ノード数が閾値Thres以上であるか否かが判定され、Thres以上である場合にのみ、時系列情報の最後の時刻におけるノードは、既知のノードであると認識されるようにしてもよい。すなわち、認識の精度を保証するための閾値であって、認識した結果のノード列における固有ノード数の閾値を設けるのである。ここで、固有ノード数とは、インデックスが異なるノードのみをカウントした場合のノード数を意味する。
例えば、出力されたノード列のインデックスが「10」、「11」、「10」、「11」、「12」、「13」であった場合、ノード列の長さは6であるが、固有ノード数は4である。例えば、エージェントが同じノード間の遷移を繰り返した場合、同じ長さの時系列情報に基づいて認識を行なったとしても、認識結果の精度は低くなる。このため、認識の精度を保証するための閾値であって、認識した結果のノード列における固有ノード数の閾値を設けるようにしてもよい。
一方、エントロピーの値が閾値以上である場合、出力されたノード列が、実際にあり得るノード列であるが、例えば、複数の候補が存在しており一意に特定することができない状況であることを意味する。このため、認識器35は、出力されたノード列が、時系列情報の長さを増加させるべきと判定する。これにより、例えば、時系列情報の長さNの値がインクリメントされて処理が繰り返し実行される。
次に、図33のフローチャートを参照して、認識器35によるノード認識処理について説明する。この処理は、認識器35によるノード認識処理の第1の方式の例となる処理である。
ステップS201において、認識器35は、変数Nの値を初期値である1にセットする。
ステップS202において、認識器35は、長さNの時系列情報を観測バッファ33および行動出力バッファ39から取得する。
ステップS203において、認識器35は、ステップS202で出力された時系列情報に基づいて、Viterbiアルゴリズムを用いてノード列を出力する。
ステップS204において、認識器35は、ステップS203の処理の結果、出力されたノード列が実際にあり得るノード列であるか否かを判定する。このとき、上述したように、ノード列Xと観測系列Oが式(46)および式(47)を満たすか否かが判定される。ノード列Xと観測系列Oが式(46)および式(47)を満たす場合、ステップS204では、実際にあり得るノード列であると判定される。一方、ノード列Xと観測系列Oが式(46)または式(47)の少なくとも一方を満たさない場合、ステップS204では、実際にあり得るノード列ではないと判定される。
ステップS204において、実際にあり得るノード列ではないと判定された場合、処理は、ステップS208に進み、認識器35は、時系列情報の最後の時刻におけるノードは、未知ノードであると認識する。ステップS208の認識結果は、時系列情報の最後の時刻と対応付けられて認識結果バッファ38に記憶されるようになされている。
一方、ステップS204において、実際にあり得るノード列であると判定された場合、処理は、ステップS205に進む。
ステップS205において、認識器35は、エントロピーを計算する。このとき上述したように、式(48)によりエントロピーが演算される。
ステップS206において、認識器35は、ステップS205の処理で演算されたエントロピーの値を所定の閾値と比較し、エントロピーの値が閾値以上であるか否かを判定する。
ステップS206において、エントロピーの値が閾値以上であると判定された場合、処理は、ステップS209に進む。
ステップS209において、認識器35は、変数Nの値を1だけインクリメントする。これにより、その後実行されるステップS202の処理において、長さがN+1の時系列情報が取得されることになる。なお、ステップS209において変数Nの値をインクリメントする毎に、ステップS202で取得される時系列情報は、過去方向に延長されるものとする。
このように、ステップS204で実際にあり得るノード列ではないと判定されるか、または、ステップS206において、エントロピーの値が閾値以上ではないと判定されるまで、ステップS202乃至ステップS206、およびステップS209の処理が繰り返し実行される。
ステップS206において、エントロピーの値が閾値以上ではないと判定された場合、処理は、ステップS207に進む。
また、ステップS204において、出力されたノード列に含まれる固有ノード数が閾値Thres以上であるか否かがさらに判定され、Thres以上である場合にのみ、処理は、ステップS205またはステップS208に進むようにしてもよい。
あるいはまた、ステップS203で固有ノード数が閾値Thres以上となるノード列が出力された場合にのみ、処理がステップS204に進み、固有ノード数が閾値Thres未満である場合は、Nの値がインクリメントされて時系列情報が再度取得されるようにしてもよい。
ステップS207において、認識器35は、時系列情報の最後の時刻におけるノードは、既知ノードであると認識する。このとき、時系列情報の最後の時刻におけるノードのインデックスが出力されるようにしてもよい。また、ステップS207の認識結果は、時系列情報の最後の時刻と対応付けられて認識結果バッファ38に記憶されるようになされている。
このようにしてノード認識処理が実行される。
ところで、図33の処理において、変数Nの値をインクリメントする毎に、取得される時系列情報は、過去方向に延長されるものとすると説明したが、既知ノードから未知ノードへの遷移が生じた時刻より以前に時系列情報を延長することはできない。既知ノードから遷移した未知ノードを含むノード列に基づいて、正確な認識結果を得ることはできないからである。
従って、時系列情報に対応するノード列の中に、既知ノードから遷移した未知ノードが含まれるようにすることはできず、時系列情報の長さNの値に上限があることになる。なお、当該ノードが既知ノードから遷移した未知ノードであるか否かは、認識結果バッファ38に記憶された情報に基づいて判断することができる。
次に、図34のフローチャートを参照して、時系列情報の長さNの値に上限があることを考慮した場合のノード認識処理の例について説明する。この処理は、認識器35によるノード認識処理の第2の方式の例となる処理である。
ステップS221乃至ステップS229の処理は、図33のステップS201乃至ステップS209の処理と同様のものなので、詳細な説明は省略する。
図34の例の場合、ステップS229の処理で変数Nの値が1だけインクリメントされると、ステップS230において、ノード列に既知ノードから遷移した未知ノードが含まれることになるか否かが判定される。すなわち、変数Nの値をインクリメントする毎に、取得される時系列情報は、過去方向に延長されるが、ノード列を過去方向に延長すると既知ノードから遷移した未知ノードが含まれることになるか否かが判定されるのである。つまり、既知ノードから未知ノードへの遷移が生じた時刻より以前に時系列情報を延長することができないようにされるのである。
ステップS230において、既知ノードから遷移した未知ノードが含まれることになると判定された場合、処理は、ステップS231に進む。ステップS230において、既知ノードから遷移した未知ノードが含まれることにはならないと判定された場合、処理は、ステップS222に戻る。
ステップS231において、認識器35は、認識結果を保留し、時系列情報を未来方向に延長するように指令する。つまり、さらにアクションを実行して時系列情報を蓄積することを指令するためのメッセージ等を出力するのである。このとき、認識器35は、例えば、行動生成器36に対して、さらに、アクションを実行させるように制御情報を出力する。
すなわち、現時点でのノードの認識は不可能であるか、または、仮に可能であっても不確実な認識結果となるため、認識器35は、認識結果を保留し、時系列情報をさらに蓄積するように指令を出力するのである。
認識処理は、図34に示されるように実行されるようにしてもよい。
ところで、図33と図34を参照して上述した処理においては、ノード列Xと観測系列Oが式(46)および式(47)を満たすかによって、実際にあり得るノード列であるか否かが判定されると説明した。しかし、認識された現在の状態確率のエントロピーの値の変化に基づいて実際にあり得るノード列であるか否かが判定されるようにすることも可能である。
すなわち、長さNの時系列情報に基づいて式(48)により演算されるエントロピーをENとし、長さN−1の時系列情報に基づいて式(48)により演算されるエントロピーをEN-1とし、△E=EN−EN-1を演算する。そして、△Eを所定の閾値Thresentと比較し、その比較処理の繰り返し回数を閾値Thresstableと比較し、それらの比較結果に基づいてノードが認識されるようにしてもよい。
例えば、△E<Thresentを満たさない場合、時系列情報が過去方向に延長されるようにし、さらにエントロピーが計算されて△E<Thresentを満たすか否かが判定される。△E<Thresentを満たす場合、カウンタNCがカウントアップされ、NC>Thresstableを満たすとき、ノードの認識が行なわれることになる。
次に、図35のフローチャートを参照して、状態確率のエントロピーの値の変化に基づく認識を行なう場合のノード認識処理の例について説明する。この処理は、認識器35によるノード認識処理の第3の方式の例となる処理である。
ステップS251において、認識器35は、変数Nの値を初期値である1にセットする。
ステップS252において、認識器35は、長さNの時系列情報を観測バッファ33および行動出力バッファ39から取得する。
ステップS253において、認識器35は、ステップS202で出力された時系列情報に基づいて、Viterbiアルゴリズムを用いてノード列を出力する。
ステップS254において、認識器35は、エントロピーの差分を演算する。このとき、上述したように、長さNの時系列情報に基づいて式(48)により演算されるエントロピーをENとし、長さN−1の時系列情報に基づいて式(48)により演算されるエントロピーをEN-1とし、△E=EN−EN-1を演算する。なお、ステップS254の演算は、Nの値が2以上となったときに実行されるものとする。
ステップS255において、認識器35は、ステップS254で演算したエントロピーの差分は、閾値Thresent以上であるか否かを判定する。ステップS255において、ステップS254で演算したエントロピーの差分は、閾値以上ではないと判定された場合、処理は、ステップS256に進む。
ステップS256において、認識器35は、カウンタNCの値を1だけインクリメントする。
ステップS257において、認識器35は、カウンタNCの値が閾値Thresstable以上であるか否かを判定する。ステップS257において、カウンタNCの値が閾値Thresstable以上であると判定された場合、処理は、ステップS258に進む。
ステップS258において、認識器35は、ステップS253の処理の結果、出力されたノード列が実際にあり得るノード列であるか否かを判定する。このとき、上述したように、ノード列Xと観測系列Oが式(46)および式(47)を満たすか否かが判定される。ノード列Xと観測系列Oが式(46)および式(47)を満たす場合、ステップS258では、実際にあり得るノード列であると判定される。一方、ノード列Xと観測系列Oが式(46)または式(47)の少なくとも一方を満たさない場合、ステップS258では、実際にあり得るノード列ではないと判定される。
ステップS258において、出力されたノード列が実際にあり得るノード列ではないと判定された場合、処理は、ステップS262に進み、認識器35は、時系列情報の最後の時刻におけるノードは、未知ノードであると認識する。ステップS262の認識結果は、時系列情報の最後の時刻と対応付けられて認識結果バッファ38に記憶されるようになされている。
一方、ステップS258において、出力されたノード列が実際にあり得るノード列であると判定された場合、処理は、ステップS259に進む。
ステップS259において、認識器35は、エントロピーを計算する。このとき上述したように、式(48)によりエントロピーが演算される。
ステップS260において、認識器35は、ステップS259の処理で演算されたエントロピーの値を所定の閾値と比較し、エントロピーの値が閾値以上であるか否かを判定する。
ステップS260において、エントロピーの値が閾値以上であると判定された場合、処理は、ステップS263に進む。
ステップS263において、認識器35は、認識結果を保留し、時系列情報を未来方向に延長するように指令する。つまり、さらにアクションを実行して時系列情報を蓄積することを指令するためのメッセージ等を出力するのである。このとき、認識器35は、例えば、行動生成器36に対して、さらに、アクションを実行するように制御情報を出力する。
すなわち、現時点でのノードの認識は不可能であるか、または、仮に可能であっても不確実な認識結果となるため、認識器35は、認識結果を保留し、時系列情報をさらに蓄積するように指令を出力するのである。
一方、ステップS260において、エントロピーの値が閾値以上ではないと判定された場合、処理は、ステップS261に進み、認識器35は、時系列情報の最後の時刻におけるノードは、既知ノードであると認識する。
ステップS261の認識結果は、時系列情報の最後の時刻と対応付けられて認識結果バッファ38に記憶されるようになされている。
また、ステップS258において、出力されたノード列に含まれる固有ノード数が閾値Thres以上であるか否かがさらに判定され、Thres以上である場合にのみ、処理は、ステップS259またはステップS262に進むようにしてもよい。この場合、ステップS258において、出力されたノード列に含まれる固有ノード数が閾値Thres以上ではないと判定されたときは、処理は、ステップS265に進むようにすればよい。すなわち、変数Nの値が1だけインクリメントされるようにすればよい。
また、ステップS255で、ステップS254で演算したエントロピーの差分は、閾値Thresent以上であると判定された場合、処理は、ステップS264に進み、カウンタNCの値が0に設定される。
ステップS264の処理の後、または、ステップS257でカウンタNCの値が閾値Thresstable以上ではないと判定された場合、処理は、ステップS265に進む。
ステップS265において、認識器35は、変数Nの値を1だけインクリメントする。これにより、その後実行されるステップS202の処理において、長さがN+1の時系列情報が取得されることになる。なお、ステップS265において変数Nの値をインクリメントする毎に、ステップS252で取得される時系列情報は、過去方向に延長されるものとする。
このように、ステップS255でエントロピーの差分は、閾値Thresent以上ではないと判定され、かつ、ステップS257でカウンタNCの値が閾値Thresstable以上であると判定されるまで、ステップS252乃至ステップS257、およびステップS265の処理が繰り返し実行される。
このようにしてノード認識処理が実行される。図35の例の場合、ステップS255とステップS257の処理により、エントロピーの値が収束したことが確認され、その後、出力されたノード列が実際にあり得るノード列であるかが判定されるようにした。従って、例えば、図33を参照して上述した場合と比較して、より確実な認識を行なうことが可能となる。
また、図35の処理の場合も、既知ノードから未知ノードへの遷移が生じた時刻より以前に時系列情報を延長することはできない。既知ノードから遷移した未知ノードを含むノード列に基づいて、正確な認識結果を得ることはできないからである。。
従って、時系列情報に対応するノード列の中に、既知ノードから遷移した未知ノードであると認識されたノードが含まれるようにすることはできず、時系列情報の長さNの値に上限があることになる。なお、当該ノードが既知ノードから遷移した未知ノードであるか否かは、認識結果バッファ38に記憶された情報に基づいて判断することができる。
次に、図36のフローチャートを参照して、状態確率のエントロピーの値の変化に基づく認識を行なう場合、時系列情報の長さNの値に上限があることを考慮するときのノード認識処理の例について説明する。この処理は、認識器35によるノード認識処理の第4の方式の例となる処理である。
ステップS281乃至ステップS295の処理は、図35のステップS251乃至ステップS265の処理と同様のものなので、詳細な説明は省略する。
図36の例の場合、ステップS295の処理で変数Nの値が1だけインクリメントされると、ステップS296において、ノード列に既知ノードから遷移した未知ノードが含まれることになるか否かが判定される。すなわち、変数Nの値をインクリメントする毎に、取得される時系列情報は、過去方向に延長されるが、ノード列を過去方向に延長すると既知ノードから遷移した未知ノードが含まれることになるか否かが判定されるのである。
ステップS296において、既知ノードから遷移した未知ノードが含まれることになると判定された場合、処理は、ステップS293に進む。ステップS296において、既知ノードから遷移した未知ノードが含まれることにはならないと判定された場合、処理は、ステップS282に戻る。
ステップS293において、認識器35は、認識結果を保留し、時系列情報を未来方向に延長するように指令する。つまり、さらにアクションを実行して時系列情報を蓄積することを指令するためのメッセージ等を出力するのである。このとき、認識器35は、例えば、行動生成器36に対して、さらに、アクションを実行するように制御情報を出力する。
すなわち、現時点でのノードの認識は不可能であるか、または、仮に可能であっても不確実な認識結果となるため、認識器35は、認識結果を保留し、時系列情報をさらに蓄積されるように指令を出力するのである。
認識処理は、図36に示されるように実行されるようにしてもよい。
図33乃至図36を参照して上述した4通りの方式により、ロボットは、自分が新たに追加された迷路のパーツ上(未知ノード)に位置しているのか、または以前から存在していたパーツ上(既知ノード)にいるのかを認識することができる。このようにして認識された未知ノードに関する状態遷移確率と観測確率を設定し、状態遷移確率テーブル、および観測確率テーブルを拡張する。
なお、ここでは、アクション拡張型HMMによる認識を行なう場合の例について説明したが、図33乃至図36の認識処理は、通常のHMMの認識においても適用することができる。
ところで、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張する場合、どの時点でどれだけの未知ノードを、新たに状態遷移確率テーブル、および観測確率テーブルなどに含めるかが問題となる。次に、自律的に環境の変化を認識して、未知ノードを内部モデルデータに追加する場合における追加すべき未知ノードの個数および追加すべきタイミングについて説明する。
なお、ここでいう未知ノードの内部モデルデータへの追加とは、未知ノードとみなされたノードを表す新たなインデックスを生成し、例えば、そのインデックスに対応する行列を状態遷移確率テーブルなどに追加することを意味する。
図33乃至図36を参照して上述した方式により、自分が新たに追加されるべきノード(未知ノード)に位置していると認識した時刻から経過した時間をNとする。この時間Nは、時系列情報の長さと言い換えることもできる。また、ここでは認識の精度を保証するための閾値であって、認識した結果のノード列における固有ノード数の閾値Thresを設けることにする。
まず、長さNの時系列情報に含まれる固有ノード数がThresの値になるまで、エージェントは行動を繰り返す。すなわち、行動生成器36と行動出力部32とにより、N回のアクションが実行され、観測バッファ33、および行動出力バッファ39に、長さNの時系列情報が蓄積されることになる。なお、ここでいう長さNの時系列情報は、自分が未知ノードに位置していると認識した時刻後の時間的長さNの時系列情報を意味する。また、以下において適宜、「長さNの時系列情報に基づいて認識された長さLrのノード列に含まれる固有ノード数がThresの値になる」という意味で「LrがThresの値になる」と表現することにする。
そして、LrがThres以上になった場合、認識器35は、時系列情報に基づいて、図34、または図36を参照して上述した認識処理を実行する。この場合、時系列情報の長さの上限Nがあることになる。
ここで実行される認識処理における図34のステップS223または図36のステップS283で出力されるノード列をSとし、そのノード列の長さをLrとする。
そして、図34のステップS228または図36のステップS292で未知ノードであると認識された場合、そのノードが未知ノードとみなされて、学習器34により内部モデルデータに追加するようにする。
実際に未知になってから足したノードの数をm_addとすると、追加する未知ノードの数をmは、式(49)により表すことができる。
なお、m_addは、自分が未知ノードに位置していると最初に認識したときから、既に未知ノードの追加が行なわれた場合、それら追加されたノードの個数を表す数とされる。すなわち、式(49)は、未知ノードに位置していると認識された後、未知ノードとみなして追加したノードの数はひいた上で、最初に認識した未知ノードに至るまでの間のノードを足すことを示している。
また、式(49)の右辺において加算される「1」は、長さLrのノード列の最も過去の時刻に対応するノードを、どのノードに接続するかが現時点では決められないため、保留するということを示す。
図37を参照してさらに詳細に説明する。図37は、図中垂直方向に時間軸tが設けられており、時間の経過に伴ってエージェントが遷移したノードが図中の円により示されている。また、同図において、図中垂直方向の点線は、自分が未知ノードに位置していると最初に認識したノードを示すためのものである。この例では、ノード201が、自分が未知ノードに位置していると最初に認識したノードとされる。
さらに、説明を簡単にするため、アクションを1回実行すると図中の円により示されたノードの数と時系列情報の長さが1だけ増加するものとし、それらのノードは、特に説明がない限り、全て固有ノードであると認識されたものとする。
同図に示されるように、自分が未知ノードに位置していると最初に認識した後、1ずつアクションが実行されて時系列情報が蓄積されていく。そして、時系列情報の長さNが閾値Thresと等しくなった(この場合、Lr=N)後、認識器35は、時系列情報に基づいて、図34、または図36を参照して上述した認識処理を実行する。この例の場合、ノード201、ノード202、・・・ノード211のノード列が出力され、ノード211は、未知ノードであると認識されたものとする。
その後、さらに1のアクションが実行され、エージェントは、ノード212に遷移する。このとき、ノード202乃至ノード212に対応する長さLrの時系列情報に基づく認識処理が実行され、ノード212は未知ノードと認識されたものとする。この時点では、まだ未知ノードの追加は行なわれない。
その後、さらに1のアクションが実行され、エージェントがノード213に遷移する。このとき、ノード203乃至ノード213に対応する長さLrの時系列情報に基づく認識処理が実行され、ノード213は未知ノードと認識されたものとする。この時点でノード201の追加が行なわれる。
これにより、それ以後の認識処理においては、ノード201が既知ノードとして取り扱われることになる。
いまの場合、時系列情報の長さ(自分が未知ノードに位置していると認識した時刻後の時間的長さ)Nは、Thres+2である。また、いまの場合、ノード203乃至ノード213がノード列Sに対応し、ノード列Sの長さLrは、Thresである。よって、式(49)より、追加すべきノードの個数mは、Thres+2-(Thres+0+1)=1と算出される。従って、未知ノードであった1個のノード201が新たに追加されたのである。
すなわち、内部モデルデータの状態遷移確率テーブルなどに、ノード201を表す新たなインデックスの行列が追加されるのである。
なお、上述した例において、ノード211乃至ノード213は、いずれも未知ノードであると認識されているが、ノード201が真の意味で未知ノードであったか否かは不明である。例えば、ノード211が未知ノードと判定されたのは、ノード201乃至ノード211のノード列が、実際にあり得るノード列ではないと判定された結果であり、必ずしもノード211が既存の内部モデルデータに存在しないノードであるとは限らないからである。つまり、ノード201乃至ノード211のノードのいずれかが既存の内部モデルデータに存在しないノードであれば、ノード211は、未知ノードと認識されるのである。
従って、現時点でノード201を未知ノードとみなして内部モデルデータの状態遷移確率テーブルなどに、ノード201を表す新たなインデックスの行列が追加しても、実際には既存のインデックスの行列と重複する結果にもなり得る。このように、ノード201が真の意味で未知ノードであったか否かは不明なのである。
なお、ここでは、図37を参照して説明する都合上、ノード201が真の意味で未知ノードであったか否かは不明と説明しているが、図37の例では、ノード201は真の意味で未知ノードであったことが前提とされる。従って、本来は、その後に追加される「ノード202、ノード203、・・・が真の意味で未知ノードであったか否かは不明なものとなる」という説明が適切である。
上述のように、ノード201が真の意味で未知ノードであったか否かは不明であるとしても、既存のインデックスの行列と重複する可能性を過度に懸念して、ノード201を表す新たなインデックスを内部モデルデータに追加しないとすると、問題がある。エージェントの状況によっては、永遠に学習が完了しないことになるからである。
例えば、環境である迷路が拡張され、新たな迷路の部屋ができ、エージェントであるロボットが、新たな迷路の部屋に閉じ込められた場合、追加するノードが真の意味で未知ノードであったと確信できなくても、やはり追加せざるを得ない。
このため、自分が未知ノードに位置していると最初に認識したときから、所定の時間経過後のタイミングで、所定の個数のノードを、内部モデルデータに追加する必要があるのである。
説明を図37に戻す。ノード201が内部モデルデータに追加された後、さらにアクションが実行され、時系列情報に基づいて認識処理が実行されていく。ノード212乃至ノード221に対応する時系列情報に基づく認識処理が実行された結果、ノード221が既知ノードであると認識された場合、ノード212乃至ノード221は、全て既知ノードであったことになる。このとき、ノード211が追加されるとともに、ノード211からノード212へのアンカリングが行われる。アンカリングは、未知ノードから既知ノードへの遷移が認識された場合、未知ノードと既知ノードとの状態遷移確率などを設定する処理である。なお、アンカリングの詳細については後述する。
ところで、図34、または図36を参照して上述した認識処理においては、ステップS231またはステップS293において、認識結果を保留し、時系列情報を未来方向に延長する指令が出力される場合がある。このような場合、時系列情報の長さThresでは適切な認識を行なうことができないので、時系列情報の長さを未来方向に延長する必要がある。
認識処理において、認識結果を保留し、時系列情報を未来方向に延長する指令が出力された場合の例について、図38を参照してさらに詳細に説明する。図38では、図37と同様に、図中垂直方向に時間軸tが設けられており、時間の経過に伴ってエージェントが遷移したノードが図中の円により示されている。また、同図において、図中垂直方向の点線は、自分が未知ノードに位置していると最初に認識したノードを示すためのものである。この例では、ノード201が、自分が未知ノードに位置していると最初に認識したノードとされる。
同図に示されるように、自分が未知ノードに位置していると最初に認識した後、1ずつアクションが実行されて時系列情報が蓄積されていく。そして、時系列情報の長さNが閾値Thresと等しくなった(この場合、Lr=N)後、認識器35は、時系列情報に基づいて、図34、または図36を参照して上述した認識処理を実行する。この例の場合、ノード201、ノード202、・・・ノード211のノード列が出力され、ノード201乃至ノード211は、全て未知ノードであると認識されたものとする。また、この例では、ノード201乃至ノード211が内部モデルデータに追加されたものとする。
これにより、それ以後の認識処理においては、ノード201乃至ノード211が既知ノードとして取り扱われることになる。
エージェントがノード221に遷移したとき、長さLrの時系列情報に基づいて認識処理が実行され、この時点では、認識結果を保留し、時系列情報を未来方向に延長する指令が出力されたものとする。すなわち、この時点では、ノード列を一意に認識することができず、仮に認識したとしても複数の候補が存在する状態となっている。
このような場合、閾値Thresの値が1だけインクリメントされ、新たに1のアクションが実行され、認識処理の対象となる時系列情報の長さも1だけインクリメントされる。これにより、エージェントは、ノード222に遷移したものとする。この時点で、長さThres+1の時系列情報に基づいて認識処理を実行し、長さLr(=Thres+1)のノード列を得たが、この時点でも、認識結果を保留し、時系列情報を未来方向に延長する指令が出力されたものとする。
そして、閾値Thresの値がインクリメントされ、さらにアクションが実行されることにより、エージェントは、ノード231に遷移したものとする。この時点で、長さThres+qの時系列情報に基づいて認識処理を実行することにより、ノード231が既知ノードであると認識されたものとする。
ノード231が既知ノードであると認識された場合、ノード213乃至ノード231は、全て既知ノードであったことになる。このとき、ノード212が追加されるとともに、ノード212からノード213へのアンカリングが行われる。
ただし、上述したように、未知ノードとみなされて追加されたノードの中に、実際には既知ノードであるノードが含まれることがある。また、例えば、エージェントが実際には同じノードに繰り返し遷移している場合(例えば、2つのノード間を往復している場合)でも、それらが異なる未知ノードと認識される場合がある。
このように、本来未知ノードとは言えないノードが未知ノードとみなされて、それらの未知ノードが内部モデルデータに追加されることを抑止するために、例えば、アンカリングする際にノードの追加または削除の要否のチェックが行なわれる。
アンカリングする際にノードの追加または削除の要否のチェックが行なわれる場合の例について、図39を参照してさらに詳細に説明する。図39では、図37と同様に、図中垂直方向に時間軸tが設けられており、時間の経過に伴ってエージェントが遷移したノードが図中の円により示されている。また、同図において、図中垂直方向の点線は、自分が未知ノードに位置していると最初に認識したノードを示すためのものである。この例では、ノード201が、自分が未知ノードに位置していると最初に認識したノードとされる。
同図に示されるように、自分が未知ノードに位置していると最初に認識した後、1ずつアクションが実行されて時系列情報が蓄積されていく。そして、時系列情報の長さNが閾値Thresと等しくなった(この場合、Lr=N)後、認識器35は、時系列情報に基づいて、図34、または図36を参照して上述した認識処理を実行する。この例の場合、ノード201、ノード202、・・・ノード211のノード列が出力され、ノード201乃至ノード211は、全て未知ノードであると認識されたものとする。
その後、さらに1のアクションが実行され、エージェントは、ノード212に遷移するが、この時点では、まだ未知ノードの追加は行なわれない。
その後、さらに1のアクションが実行され、エージェントがノード213に遷移すると、ノード201の追加が行なわれる。
このようにして、アクションが実行され、エージェントはノード215に遷移したものとする。また、このとき、ノード201乃至ノード203の追加が既に行なわれていたものとする。この時点で、ノード201乃至ノード203は、未知ノードとみなされて追加されており、例えば、新たなインデックスを有するノードが内部モデルデータに追加されているものとする。その後、ノード205乃至ノード215に対応する時系列情報に基づく認識処理が実行された結果、ノード215が既知ノードであると認識された場合、ノード205乃至ノード215は、全て既知ノードであったことになる。
このとき、ノードの削除の要否のチェックが行なわれる。すなわち、時系列情報の長さが過去方向に延長され、延長された時系列情報に基づく認識処理が実行される。その結果、例えば、ノード203乃至ノード215に対応する時系列情報に基づく認識処理が実行され、その結果、ノード203乃至ノード215が全て既知ノードであったと認識されたものとする。すなわち、ノード203は、未知ノードとみなされて追加されており、例えば、新たなインデックスを有するノードが内部モデルデータに追加されていたが、本来は、既知ノードであって、追加したインデックスのノードは、内部モデルデータから削除すべきである。
例えば、ノード203とノード205、実際には同じインデックスのノードであり、また、ノード204とノード206は、実際には同じインデックスのノードであった場合、上述のように認識されることになる。
例えば、ノード203のインデックスをuとして状態遷移確率テーブルなどに新たな行列を追加したが、ノードの削除の要否のチェックが行なわれた結果、ノード203のインデックスは、fであることが判明したとする。インデックスfに対応する行列は、エージェントがノード201に遷移する以前から状態遷移確率テーブルなどに存在していたものとする。この場合、インデックスuに対応する行列とインデックスfに対応する行列が重複して存在することになるので、インデックスuに対応する行列は、状態遷移確率テーブルなどから削除しておく必要がある。
その結果、ノード203のインデックスとして新たに追加されたインデックスuに対応する行列などが内部モデルデータから削除され、ノード202から既知ノードとして認識されたノード203へのアンカリングが行われる。
例えば、上述の例において、ノード202のインデックスをtとして状態遷移確率テーブルなどに新たな行列を追加していた場合、インデックスtのノードからインデックスfのノードへの状態遷移確率などが、アンカリングによって設定されることになる。
なお、アンカリングが行なわれた後、これまで蓄積された時系列情報に基づいて、追加学習方式の学習が行われるようになされている。すなわち、アンカリングされた直後の内部モデルデータを初期値とし、図39におけるノード201乃至ノード215、およびノード201の左側の1つのノードに対応する時系列情報に基づく学習が行われることになる。
上述したように、アンカリングは、未知ノードから既知ノードへの遷移が認識された場合、未知ノードと既知ノードとの状態遷移確率などを設定する処理である。本発明では、アンカリングが行なわれた後、これまで蓄積された時系列情報に基づいて、追加学習方式の学習が行われるようにする。
すなわち、未知ノードが追加された後の内部モデルデータに基づいて、追加学習方式の学習が行われる。仮に、実際には同じインデックスのノードが異なる未知ノードとして重複して追加されたとしても、この学習によって、上述したフォワードマージアルゴリズムおよびバックワードマージアルゴリズムが適用されて同一のノードとしてマージされる可能性が高くなる。
また、追加学習方式での学習を、アンカリングが行なわれるまで実行しないようにすることで、内部モデルデータにおいて更新すべきパラメータの数をできるだけ少なくすることができる。アンカリングの際にノードの削除の要否のチェックが行なわれるからである。従って、計算量を抑制しながら、適切に内部モデルデータを更新していくことが可能となるのである。
このように、アンカリングの際に、ノードの削除の要否のチェックが行なわれる場合、追加する未知ノードの数mは、式(49)に替えて式(50)より表すことができる。
いまの場合、時系列情報の長さ(自分が未知ノードに位置していると認識した時刻後の時間的長さ)Nは、11である。また、いまの場合、ノード203乃至ノード215がノード列Sに対応し、ノード列Sの長さLrは、Thres+2である。よって、式(50)より、追加すべきノードの個数mは、Thres+4-(Thres+2+3)=−1と算出される。従って、既に追加された3つのノードのうちの1個のノード203(のインデックスに対応する行列)が削除されるのである。
ここでは、ノードが削除される場合の例のみを説明したが、m_addの値の如何によっては、ノードが追加される場合もあり得る。すなわち、式(50)または後述する式(51)により計算されたmが正の値となれば、その分のノードが追加されることになる。従って、実際には、アンカリングの際に、ノードの追加または削除の要否のチェックが行なわれることになる。
なお、削除すべきノードが認識処理の結果、既知ノードと認識されてしまう場合、そのノードの削除は行なわれない。
仮に、既に未知ノードとみなして追加したノードのうちK個目のノードが、認識処理で出力されたノード列Sに含まれていた場合、削除するノードの数mは、式(50)に替えて式(51)より表すことができる。
式(51)により算出された|m|個のノードが削除するノードとなる。
また、この場合、アンカリングするノードは、ノード列Sの中の((Lr+K)−N)番目のノードとなる。
このようにアンカリングが行なわれた後、これまで蓄積された時系列情報に基づいて、追加学習方式の学習が行われるようになされている。また、アンカリングが行なわれるまでは、追加学習方式での学習を実行しないようになされている。従って、アンカリングされる前に、未知ノードとみなされて内部モデルデータに追加されたノードは、それ以後の認識処理において既知ノードの1つとして認識されるものの、いわば仮の既知ノードとして認識されていることになる。アンカリングされる前に、未知ノードとみなされて内部モデルデータに追加されたノードは、最終的には削除すべきものである可能性があるからである。また、アンカリングされる前に、未知ノードとみなされて内部モデルデータに追加されたノードと、他のノードとの状態遷移確率などの値は、追加学習方式での学習により変更される可能性があるからである。
ところで、追加するノードが真の意味で未知ノードであったと確信できなくても、自分が未知ノードに位置していると最初に認識したときから、所定の時間経過後のタイミングで、所定の個数のノードを、内部モデルデータに追加せざるを得ないことについては上述した。つまり、アンカリングする前の内部モデルデータには、単に未知ノードとみなされたノードを表すインデックスに対応する情報も追加されている可能性が極めて高いといえる。
しかし、真の意味で未知ノードであったと確信できない極めて多数のノードが、それぞれ一様に未知ノードとみなされて内部モデルデータに追加されていくと、認識処理における誤認識を招くことがある。未知ノードとみなされて追加されたノードも、それ以後の認識処理においては既知ノードとして取り扱われることになるからである。
その結果、例えば、以前から存在していた既知ノードが、未知ノードとみされて追加されたノードであると、誤って認識されてしまうことがある。認識処理は、内部モデルデータに基づいて行なわれるからである。
このような誤認識を抑制するために、アンカリングする前に、未知ノードとみなして追加してしまったノードを適宜削除するようにしてもよい。この場合、式(49)に示したmの値が0よりも小さくなったとき、|m|個のノードを削除するようにすればよい。
例えば、固有ノード数の閾値Thresの値が7であった場合を考える。例えば、ノード216(図示せず)が、自分が未知ノードに位置していると最初に認識したノードであったものとし、いま、エージェントはノード226(図示せず)に遷移したものとする。ここで、ノード216は、既に内部モデルデータに追加されているものとする。
ノード219乃至ノード226に対応する時系列情報に基づいて認識処理を行った結果、ノード226は未知ノードであると認識されたものとする。このとき、ノード217が内部モデルデータに追加されることになる。
その後、アクションを実行することにより、エージェントはノード227(図示せず)に遷移し、この時点での認識処理の結果、ノード227は未知ノードであると認識されたものとする。このとき、ノード218が内部モデルデータに追加されることになる。しかし、ノード218が内部モデルデータに追加された結果、ノード220、ノード222、ノード224、およびノード226は、実際には、ノード218と同じインデックスのノードであることが認識されたこととする。
この場合、閾値Thres以上の固有ノード数を含むノード列を出力させるためには、時系列情報の長さを、ノード217乃至ノード227に対応する長さとしなければならない。
このような場合、時系列情報の長さ(ノード216乃至ノード227)Nは12であり、既に追加したノード(ノード216乃至ノード218)の数m_addは3である。また、いまの場合、ノード217乃至ノード227がノード列Sに対応し、ノード列Sの長さLrは11である。よって、式(49)より、追加すべきノードの個数mは、12−(11+3+1)=−3と算出される。従って、内部モデルデータに追加された3つノードであって、ノード216乃至ノード218が削除されるのである。
このようにして、アンカリングする前に、未知ノードとみなして追加してしまったノードを必要に応じて削除すれば、誤認識を抑制することが可能となる。
すなわち、アンカリングする前に、未知ノードを追加したり、未知ノードとみなして追加してしまったノードを必要に応じて削除したりする処理が行われる。この処理は、後述する図40のステップS316に対応する。
また、アンカリングする際にも、未知ノードを追加したり、未知ノードとみなして追加してしまったノードを必要に応じて削除したりする処理が行われる。この処理は、後述する図40のステップS318に対応する。
次に、図40のフローチャートを参照して、未知ノード追加処理について説明する。この処理は、エージェントが自律的に環境の変化を認識して、内部モデルデータを拡張する必要がある場合、自律行動学習装置10により実行される。
ステップS311において、認識器35は、変数Nの値を初期値である1にセットする。
ステップS312において、認識器35は、長さNの時系列情報を観測バッファ33および行動出力バッファ39から取得する。
ステップS313において、認識器35は、Nが固有ノード数の閾値Thres以上となったか否かを判定し、まだ、閾値Thres以上となっていないと判定された場合、処理は、ステップS321に進む。
ステップ321において、変数Nの値が1だけインクリメントされ、処理は、ステップS312に戻る。
一方、ステップS313において、Nが閾値Thres以上となったと判定された場合、処理は、ステップS314に進む。
ステップS314において、認識器35は、図34、または図36を参照して上述した認識処理を実行する。ただし、いまの場合、ステップS312の処理で時系列情報が取得されているので、その時系列情報に基づいて認識処理が実行される。
ステップS315において、学習器34は、ステップS314における認識処理の結果、ノード列の最後のノードが未知ノードと認識されたか否かを判定する。ステップS315において、認識処理の結果、未知ノードと認識されたと判定された場合、処理は、ステップS316に進む。
ステップS316において、学習器34は、未知ノードとみなされたノードを追加または削除する。
ステップS316では、例えば、図37において未知ノードとみなされたノード201が内部モデルデータに追加されたように、ノードの追加が行なわれる。また、例えば、上述したように、誤認識を抑制するために、アンカリング前に、未知ノードとみなして追加してしまったノードの削除が行なわれる。
一方、ステップS315において、認識処理の結果、未知ノードと認識されていないと判定された場合、処理は、ステップS317に進む。
ステップS317において、学習器34は、ステップS314における認識処理の結果、ノード列の最後のノードが既知ノードと認識されたか否かを判定する。ステップS317において、認識処理の結果、既知ノードと認識されたと判定された場合、処理は、ステップS318に進む。
ステップS318において、学習器34および認識器35は、図41を参照して後述する追加または削除要否チェック処理を実行する。これにより、例えば、図39を参照して上述したように、アンカリングの際のノードの削除要否がチェックされ、削除が必要であれば未知ノードとみなされて追加されたノードが削除される。
ステップS319において、学習器34は、アンカリングを行なう。これにより、例えば、既知ノードから未知ノードへの状態遷移確率などが設定される。
一方、ステップS317において、認識処理の結果、既知ノードと認識されていないと判定された場合、処理は、ステップS320に進む。
ステップS320において、認識器35は、閾値Thresの値を1だけインクリメントする。
すなわち、ステップS317において、認識処理の結果、既知ノードと認識されていないと判定された場合、認識処理において、認識結果を保留し、時系列情報を未来方向に延長する指令が出力されたことになる。例えば、図34、または図36を参照して上述したステップS231の処理またはステップS293の処理が行われる場合である。この場合、例えば、図38を参照して上述したように、閾値Thresの値をインクリメントするとともに、時系列情報の長さを未来方向に延長する必要がある。
従って、ステップS320の処理の後、処理は、ステップS321に進むことになる。
このようにして、未知ノード追加処理が実行される。
次に、図41のフローチャートを参照して、図40のステップS318の追加または削除要否チェック処理の詳細な例について説明する。
ステップS341において、認識器35は、長さNの時系列情報を取得する。すなわち、自分が未知ノードに位置していると認識した時刻後の時間的長さNの時系列情報が取得される。例えば、図39の例の場合、ノード201乃至ノード215に対応する長さの時系列情報が取得されることになる。
ステップS342において、認識器35は、長さNの時系列情報に基づく認識処理を実行する。このとき、図34、または図36を参照して上述した認識処理を実行する。ただし、いまの場合、ステップS341の処理で時系列情報が取得されているので、その時系列情報に基づいて認識処理が実行される。
ステップS343において、学習器34は、ステップS342における認識処理の結果、ノード列の最後のノード(時間的に最も後のノード)が既知ノードと認識されたか否かを判定する。ステップS343において、認識処理の結果、既知ノードと認識されていないと判定された場合、処理は、ステップS344に進む。
ステップS344において、認識器35は、時系列情報の長さNを1だけデクリメントする。この場合、時系列情報が過去側から短縮されることになる。例えば、例えば、図39の例の場合、ノード201乃至ノード215に対応する長さの時系列情報が取得されていたものが、ノード202乃至ノード215に対応する長さの時系列情報とされることになる。
このように、ステップS343において、認識処理の結果、既知ノードと認識されたと判定されるまで、時系列情報が過去側から短縮され、繰り返し認識処理が実行されるのである。
ステップS343において、認識処理の結果、既知ノードと認識されたと判定された場合、処理は、ステップS345に進む。例えば、図39の例の場合、ノード203乃至ノード215に対応する長さの時系列情報に基づく認識処理の結果、ノード203乃至ノード215が全て既知ノードであったと認識される。このとき、ノード203乃至ノード215のノード列におけるノード数が特定される。
ステップS345において、学習器34は、ノード数を特定し、特定されたノード数をノード列Sの長さLrとして、式(50)を参照して上述した演算を行う。
ステップS346において、学習器34は、追加(または削除)すべきノードがあるか否かを判定する。ステップS346において、追加(または削除)すべきノードがあると判定された場合、処理は、ステップS347に進む。一方、ステップS346において、追加(または削除)すべきノードがないと判定された場合、ステップS347の処理は、スキップされる。
ステップS347において、学習器34は、ステップS346の処理で追加(または削除)すべきと判定されたノードを追加(または削除)する。例えば、図39の例の場合、式(50)より、追加すべきノードの個数mは、Thres+4-(Thres+2+3)=−1と算出されるので、既に追加された3つのノードのうちの1個のノード203が削除される。すなわち、ノード203は、未知ノードとして追加されており、例えば、新たなインデックスを有するノードが内部モデルデータに追加されていたが、本来は、既知ノードであって、追加したインデックスのノードは、内部モデルデータから削除されるのである。
このようにして、追加または削除要否チェック処理が実行される。
これまでに学習して得られた内部モデルデータでは表現できない、新しい状況に遭遇したときには、ノード数を増やして状況を表現し、事態を解決する必要がある。例えば、ロボットが移動する迷路が所定の方向に延長された場合、ノードの数が増えることになるので、ノード数Nの値を大きくする必要がある。
従来の技術では、新たなノードを検出すると、その場で直ちに内部モデルデータを拡張し、新たなノードを表すインデックスの追加が行なわれていた。
しかしながら、一般に新しい経験を取り込む際、その経験は既存の構造とどのような関係に位置づけられるのかが最重要な問題となり、例えば、新たなノードを検出した直後では既存構造との関係が十分明確でないことも多い。
従って、早急に新たなノードを表すインデックス内部モデルデータに追加することにより、今後の誤認識を招くおそれもある。例えば、新たなノードが連続して検出されるような状況では、新たなノードは直前の状態に対してしか関係性を定義できず、そのような連鎖が連続すればするほど、加速度的に既存構造に対する関係の不明瞭化が進むことになる。また、このような内部モデルデータに基づいて追加学習方式で学習を行ったとしても、学習時に調整すべきパラメータが膨大になってしまう。
そこで、本発明では、上述のように、所定のタイミングで所定の個数の未知ノードが追加されるようにするとともに、アンカリングされた直後の内部モデルデータに基づいて追加学習方式での学習が行われるようにしたのである。このようにすることで、例えば、既知ノードの中に散発的に新たなノードが発現するような場合はもちろんのこと、長期に渡って新たなノードが連続して検出されるような困難な環境においても、十分に有効な学習を行うことが可能となる。
上述のように、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張することが可能であるが、その際、それぞれのテーブルの拡張された領域に設定すべき状態遷移確率、観測確率などの値を特定する必要がある。
図30乃至図32において各テーブルを拡張する場合の例については説明したが、ここでは、既に記憶されている状態遷移確率から、拡張された領域のノードへの状態遷移確率などを推定して設定する方式について説明する。
例えば、図31に示されるように状態遷移確率テーブルを拡張する必要がある場合、状態遷移確率テーブルの各行の確率の値の総和が1となるように正規化する必要があると説明した。換言すれば、図31の例において上述した処理では、追加された領域に状態遷移確率を設定するにあたり、既に記憶されている既知ノードから既知ノードへの状態遷移確率は考慮されていなかった。しかしながら、内部モデルデータに追加された未知ノードに対して複数の既知ノードからの遷移が発生し得ることは予測可能である。
例えば、迷路におけるあるパーツAが、別のパーツBと置き換えられた場合、パーツAに隣接していたパーツCと、パーツBとが接続されることになる。このような場合、ロボットがパーツCからパーツAに移動するためのアクションを実行すると、パーツBに移動する可能性が高い。また、ロボットがパーツAからパーツCに移動するためのアクションを、パーツBにおいて実行すると、パーツCに移動する可能性が高い。この例では、パーツBに対応するHMMのノードを、未知ノードとして新たに追加する必要があるが、上記を考慮してパーツCに対応する既知ノードとの状態遷移確率を設定すべきである。
従って、既に記憶されている既知ノードから既知ノードへの状態遷移確率に基づいて、未知ノードと既知ノードとの間の状態遷移確率などを設定することができれば、より適切に状態遷移確率を設定することができると考えられる。いわば、過去の経験に基づいて未知ノードと既知ノードとの間の状態遷移確率などを設定することができれば、より適切に状態遷移確率を設定することができるのである。
なお、ここで説明する既知ノードには、例えば、ロボットが迷路を移動中に、未知ノードとみなされて既に内部モデルデータに追加されているノードも含まれるものとする。
上述のように設定する状態遷移確率の値は、次のパターンを考慮して決める必要がある。
すなわち、現実に、ノードsiからノードsjへの遷移が生じた場合、ノードsiとノードsjが既知のノードであるのか、新たに追加された未知のノードであるのかを考慮する必要がある。
つまり、既知ノードから未知ノードへの遷移、未知ノードから未知ノードへの遷移、および未知ノードから既知ノードへの遷移の3つのパターンを考慮する必要がある。
例えば、状態遷移確率テーブルが拡張された場合、図42に示される領域301−1乃至領域301−3に、既知ノードから未知ノードへの状態遷移確率を設定する必要がある。また、領域303−1乃至領域303−3に、未知ノードから未知ノードへの状態遷移確率を設定する必要がある。さらに、領域302−1乃至領域302−3に、未知ノードから既知ノードへの状態遷移確率を設定する必要がある。
また、上述したように、状態遷移確率テーブルの各行(例えば、n行目)に記述された全ての数値を合計すると、1となるようになされているので、図42において既存状態と記述された領域の確率もあらためて設定する必要がある。
例えば、図43に示されるような場合を例として説明する。
すなわち、既知ノードである遷移元のノード321において、図中右方向への移動に対応するアクションを実行した結果、遷移する可能性の高い遷移先ノードは、状態遷移確率テーブルに基づいてノード322またはノード323と予想されていたものとする。しかしながら、実際に遷移元のノード321において、図中右方向への移動に対応するアクションを実行した結果、遷移した遷移先ノードはノード324であったとする。この場合、ノード324が未知ノードとなる。
図43の例において、ノード321では、図2のパーツ5に対応する観測シンボルが観測され、ノード322では、図2のパーツ12に対応する観測シンボルが観測され、ノード323では、図2のパーツ6に対応する観測シンボルが観測されている。
なお、図43においては、迷路のパーツを表す矩形に対してノード321乃至ノード324の符号が付されているが、実際には、それらのパーツに対応する観測シンボルが観測されたノードに対して付される符号である。すなわち、エージェントは、ノード321乃至ノード323を、学習済の内部モデルデータに基づいて一意に認識することができたのであり、ノード324は、これまでに記憶されていない内部状態(ノード)として認識されたものとなる。
つまり、エージェントは、ノード321から図中右方向に移動すると、図中上向きの曲がり角(ノード322)または図中下向きの曲がり角(ノード323)に出るものと予想していた。
しかしながら、実際にノード321から図中右方向に移動してみると、十字路(ノード324)に出たのである。すなわち、ノード324では、図2のパーツ15に対応する観測シンボルが観測されている。
例えば、迷路におけるノード321に対応する位置に配置されていたパーツが置き換えられた場合、このような状況となる。このような場合、ノード324は、それまでの内部モデルデータには存在しなかったノードと考えられるから、少なくともノード324を内部モデルデータに追加する必要がある。
このような場合、ノード324に対応する新たなインデックスが生成されて状態遷移確率テーブルの行列が追加される。従って、右方向のアクションに対応する状態遷移確率テーブルのノード321からノード324への状態遷移確率を設定する必要がある。ただし、実際に、新たなインデックスが生成されて状態遷移確率テーブルの行列が追加されるタイミングについては、図37乃至図41を参照して上述した通りである。
この状態遷移確率は、例えば、ノード321からノード322およびノード323への状態遷移確率の和を3で割った値を、設定する。このとき、ノード321からノード322およびノード323への状態遷移確率もそれぞれの状態遷移確率に応じた重みづけにより案分されて設定されるようにすればよい。
ノード321(例えば、ノードsiとする)から右方向のアクション(例えば、アクションk´とする)により遷移し得るノードの候補sj l(l=1,・・・L)は、例えば、状態遷移確率aij(k´)が閾値以上となる遷移先のノードsjをリストすればよい。
図43の例では、ノード321から右方向のアクションにより遷移し得るノード322およびノード323の2つのノードが候補ノードとしてリストされることになる。この場合、Lの値は2となる。
未知ノードであるノード324をノードsnewで表し、アクションk´に対応する各既知ノードsiからsnewへの状態遷移確率ainew(k´)は、1/Lとして設定する。
図43の例では、ノード321からノード324への状態遷移確率が1/2として設定されることになる。
状態遷移確率ainew(k´)は、図42の例における領域301−1乃至領域301−3のいずれかの領域に設定されるものとなる。
そして、アクションk´に対応する状態遷移確率テーブルの各行の状態遷移確率の総和が1となるように正規化する。すなわち、状態遷移確率ainew(k´)として非零値が設定された行の各値をL/(L+1)倍すればよい。
ただし、状態遷移確率aij(k´)が閾値以上となる遷移先のノードが存在しなかった場合、状態遷移確率ainew(k´)≒1として、上述のような正規化を行なう。
なお、ノード321においてアクションk´以外のアクションを実行することによりノード324に遷移する状態遷移確率は、0に近い微小な値を設定すればよいので、状態遷移確率テーブルの各行の状態遷移確率の総和が1となるように正規化する必要はない。
また、図44の図中の矢印で示されるに示されるように、十字路であるノード324においては、上下左右方向の4つアクションを実行して他のノードに遷移することが可能である。従って、上下左右方向のアクションに対応する状態遷移確率テーブルのノード324から既知の各ノードへの状態遷移確率も設定する必要がある。これらの状態遷移確率は、図42の例における領域302−1乃至領域302−3のいずれかに設定されるものとなる。なお、未知ノードから未知ノードへの遷移があり得る場合は、上記に加えて図42の例における領域303−1乃至領域303−3のいずれかも含まれることになる。
例えば、上方向のアクションに対応する状態遷移確率テーブルのノード324から既知の各ノードへの状態遷移確率は、ノード322から既知の各ノードへの状態遷移確率をコピーする。ノード322は、上向きの曲がり角であり、ノード321から右方向のアクションによって遷移し得るノードのうち、上方向のアクションにより他の既知ノードへ遷移し得る唯一のノードだからである。なお、ノード322から既知の各ノードへの状態遷移確率については何も変更しない。
また、例えば、下方向のアクションに対応する状態遷移確率テーブルのノード324から既知の各ノードへの状態遷移確率は、ノード323から既知の各ノードへの状態遷移確率をコピーする。ノード323は、下向きの曲がり角であり、ノード321から右方向のアクションによって遷移し得るノードのうち、下方向のアクションにより他の既知ノードへ遷移し得る唯一のノードだからである。なお、ノード323から既知の各ノードへの状態遷移確率については何も変更しない。
さらに、左方向のアクションに対応する状態遷移確率テーブルのノード324から既知の各ノードへの状態遷移確率は、ノード322から既知の各ノードへの状態遷移確率とノード323から既知の各ノードへの状態遷移確率を平均化した値とされる。ノード322とノード323は、ノード321から右方向のアクションによって遷移し得るノードのうち、左方向のアクションにより他の既知ノードへ遷移し得るノードだからである。すなわち、ノード322およびノード323の状態遷移確率の平均値をもって、左方向のアクションに対応する状態遷移確率テーブルのノード324から既知の各ノードへの状態遷移確率とすればよい。なお、このとき、ノード322およびノード323から既知の各ノードへの状態遷移確率については何も変更されない。
また、右方向のアクションに対応する状態遷移確率テーブルのノード324から既知の各ノードへの状態遷移確率は、例えば、それぞれ一様の値を設定する。図45に示されるように、右方向のアクションにより他の既知ノードへ遷移し得る候補のノードが他にないからである。
さらに、ノード321以外の各既知ノードからノード324への状態遷移確率も設定する必要がある。
ノード324は十字路だから、他のノードからノード324への遷移は、上下左右方向のいずれのアクションによっても起こりえる。すなわち、上方向のアクションによってノード324に遷移する遷移元のノードが存在し、下方向のアクションによってノード324に遷移する遷移元のノードが存在するはずである。また、左方向のアクションによってノード324に遷移する遷移元のノードが存在し、右方向のアクションによってノード324に遷移する遷移元のノードが存在するはずである。
この場合、遷移元のノードを特定するとともに、遷移元のノードのそれぞれにおいてどのアクションを実行することによりノード324へ遷移するのかを特定しなければならない。すなわち、未知ノードへの逆方向遷移アクションを特定する必要がある。
まず、遷移元のノードの推定の根拠となる情報を得るために、ノード324に類似するノードを抽出する。ノード324に類似するノードとは、例えば、仮にエージェントが現在ノード324以外のノードにいるとした場合、ある程度確からしいノードということもできる。
例えば、迷路の構造上似通った部分が複数存在する場合を考える。エージェントは、それらの部分の1つであって所定のパーツ上に存在しているものとする。このような場合、実際には、エージェントが認識した部分とはことなる部分の所定のパーツ上に存在している可能性もある。このように、エージェントが認識したノードに類似するノードを抽出することができるのである。
類似するノードは、過去nステップ分の時系列情報を用いたn-ステップ状態認識により特定することができる。
時刻tにおいて、過去nステップ分のアクションのシーケンスct?n,・・・,ct?1および過去n+1ステップ分の観測シンボルのシーケンスot?n,・・・,otを用いて現在のノードを推定したり、現時刻tにおいてエージェントが各ノードに存在する確率を計算したりすることを「n-ステップ状態認識」と称する。
n-ステップ状態認識では、最初に、インデックスi(i=1,・・・N)のノードに対応する事前確率πiが、例えば、予め決められた方式で設定される。
その後、認識器35が、時刻t-nにおいてエージェントが各ノードに存在する確率δt-n(i)を式(52)により演算する。
そして、認識器35は、時刻τ=t-n+1,・・・tの順に、エージェントが各ノードに存在する確率δτ(i)を式(53)の漸化式により演算する。
あるいはまた、式(53)に替えて式(54)の演算が行われるようにしてもよい。
認識器35は、さらに、式(53)または式(54)における最終時刻tにおいてエージェントが各ノードに存在する確率δt(i)を正規化することにより、時刻tにおける各ノードについての状態確率δ´t(i)を式(55)により演算する。
式(55)により得られた状態確率が予め定められた閾値以上となるノードのそれぞれが、類似するノードとされる。
なお、n-ステップ状態認識では、過去nステップ分のアクションのシーケンスおよび観測シンボルのシーケンスが用いられるが、nを0とすると、観測シンボルotが所定の閾値以上の確率で観測されるノードの全てが類似するノードとなる。また、nを大きくするほど、類似するノードの数も、通常少なくなっていく。n-ステップ状態認識におけるnの値は、例えば、本発明において行なわれる推定等に用いて好適となるような予め設定された値とされるものとする。
類似ノードが得られたら、それらのノードにおいて実行されることにより、他のノードに遷移し得るアクションを特定する。例えば、ノード324は十字路であるから、ノード324に類似するノードも十字路である可能性が高い。そうすると、類似するノードでは、上下左右方向の移動のアクションにより他のノードに遷移できることになる。
そしてそれらのアクションを実行して他のノードに遷移し得る既知ノードを特定する。例えば、ノード321から右方向のアクションによって遷移し得る既知ノードであるノード322でも、それぞれ左方向および上方向のアクションを実行することにより、他のノードに遷移し得る。同様に、ノード321から右方向のアクションによって遷移し得る既知ノードであるノード323でも、それぞれ左方向および下方向のアクションを実行することにより、他のノードに遷移し得る。
そうすると、未知ノード324には、ノード322において、それぞれ左方向および上方向のアクションを実行することで遷移する遷移先ノードのそれぞれから、左方向および上方向の逆方向となるアクションによって遷移し得ると仮定できる。この場合、右方向および下方向が逆方向となるアクション(逆方向遷移アクション)となる。
また、未知ノード324には、ノード323において、それぞれ左方向および下方向のアクションを実行することで遷移する遷移先ノードのそれぞれから、左方向および下方向の逆方向となるアクションによって遷移し得ると仮定できる。この場合、右方向および上方向が逆方向となるアクション(逆方向遷移アクション)となる。
逆方向遷移アクションは、例えば、次のようにして推定することができる。例えば、アクションczによってノードsaからノードsbへの遷移が起きる場合、逆方向遷移、すなわちノードsbからノードsaへの遷移を起こすためのアクションcz′を推定する。
逆方向遷移アクションを推定するにあたり、認識器35は、上述したように類似するノードであって既知ノードを特定する。ここで特定された既知ノードのそれぞれを、ノードsj q(q=1,・・・Q)で表すことにする。
そして、認識器35は、ノードsj qのそれぞれについて、アクションczによってノードsj qに遷移する遷移元ノードを抽出する。この場合、例えば、状態遷移確率aij q(z)が閾値以上となるノードsiをリストすればよい。
そして、認識器35は、(sj q,si q,l)(q= 1,・・・,Q, l= 1,・・・,Lq)の全ての組み合わせについて、ノードsj qからノードsi q,lへの状態遷移確率の平均値a*(k)を式(56)により演算する。
このようにして得られた状態遷移確率の平均値a*(k)のうち、閾値以上となるものを選択し、そのa*(k)に対応するアクションckを特定すれば、逆方向遷移アクションcz r´(r=1,・・・,R)を特定することができる。
このようにして特定された遷移元のノードで、逆方向遷移が実行されることによりノード324へ遷移すると仮定すれば、上述したノード321からノード324への状態遷移確率を設定する場合と同様の操作により状態遷移確率を設定することができる。
このように考えると、未知ノードとみなされたノードのインデックスに対応する行列を状態遷移確率テーブルに追加するときには、図42に示される領域の全ての状態遷移確率を再設定する必要がある。
すなわち、未知ノードとみなされたノードのインデックスに対応する行列を状態遷移確率テーブルに追加するときには、未知ノードにおいて実行し得るアクションと、そのアクションにより遷移し得る遷移先のノードとを特定する必要がある。このようにすれば、それら特定されたアクションと遷移先ノードとのペアから、状態遷移確率テーブルの所定の行列位置を特定することができ、それらの位置に設定すべき状態遷移確率の値を設定するとともに、その行の各値を正規化するなどすればよい。
また、未知ノードとみなされたノードのインデックスに対応する行列を状態遷移確率テーブルに追加するときには、未知ノードに遷移し得る遷移元ノードと、その遷移元ノードから未知ノードに遷移するためのアクションとを特定する必要がある。このようにすれば、それら特定されたアクションと遷移元ノードとのペアから、状態遷移確率テーブルの所定の行列位置を特定することができ、それらの位置に設定すべき状態遷移確率の値を設定するとともに、その行の各値を正規化するなどすればよい。
従って、上記に示したように、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブルを拡張した場合、拡張された領域に設定すべき状態遷移確率の値を設定する処理は、最終的には、例えば、図46に示される手順で実行されるようにすることができる。
図46は、ノード追加時の状態遷移確率設定処理を説明するフローチャートである。この処理は、例えば、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブルなどに未知ノードを追加するとき実行される。
なお、ここでは、未知ノードsnewが内部モデルデータに追加されるものとし、エージェントがノードsnewに遷移する直前のノードをノードsi′とし、ノードsi′においてアクションck′が実行されることによりエージェントはノードsnewに遷移したものとする。
ステップS401において、認識器35は、図47のフローチャートを参照して後述するノード逆アクションペアリスト生成処理を実行する。
これにより、未知ノードへの遷移元のノードが特定されるとともに、未知ノードへの逆方向遷移アクションが特定されることになる。
ステップS402において、学習器34は、図48のフローチャートを参照して後述する逆アクション状態遷移確率設定処理を実行する。
これにより、ステップS401の処理により特定された遷移元のノードにおいて逆方向遷移アクションを実行することにより未知ノードへ遷移する状態遷移確率が設定される。また、ここで新たに設定された状態遷移確率に応じて状態遷移確率テーブルの各行の値が正規化される。
ステップS403において、認識器35は、図49のフローチャートを参照して後述するノード順アクションペアリスト生成処理を実行する。
これにより、未知ノードからの遷移先のノードが特定されるとともに、未知ノードからそれらの遷移先ノードへ遷移するための順方向遷移アクションが特定されることになる。
ステップS404において、学習器34は、図50のフローチャートを参照して後述する順アクション状態遷移確率設定処理を実行する。
これにより、未知ノードにおいて、ステップS403の処理により特定された順方向遷移アクションを実行することにより遷移先のノードへ遷移する状態遷移確率が設定される。また、ここで新たに設定された状態遷移確率に応じて状態遷移確率テーブルの各行の値が正規化される。
次に、図47のフローチャートを参照して、図46のステップS401のノード逆アクションペアリスト生成処理の詳細について説明する。
ステップS421において、認識器35は、ノードsi′においてアクションck′が実行されることにより遷移し得る候補ノードsj l(l=1,・・・L)を抽出する。候補ノードsj lは、例えば、状態遷移確率ai´j(k´)が閾値以上となる遷移先のノードsj´をリストすればよい。
ステップS422において、認識器35は、過去nステップ分の時系列情報を用いたn-ステップ状態認識を行なう。
ステップS423において、認識器35は、ステップS422の処理結果に基づいて、ノードsnewに類似する類似ノードであって既知ノードを抽出する。ここで特定された既知ノードのそれぞれを、ノードsj q(q=1,・・・Q)で表すことにする。このとき、上述した式(52)乃至式(55)の演算が行われることにより、ノードsnewに類似する類似ノードが抽出される。
ステップS424において、認識器35は、ステップS423の処理で抽出された類似ノードの有効アクションを抽出する。
ここで、有効アクションは、上述した各類似ノードにおいて実行されることにより、他のノードに遷移し得るアクションを意味する。
ステップS424では、例えば、アクション毎の評価値Ekが、式(57)により演算される。なお、この演算は、個々のアクションに対応してそれぞれ行われ、1のアクションに対して1の評価値が得られることになる。
ここでajx q(k)(q=1,・・・,Q, x=1,・・・,N)は、ノードsj q(q=1,・・・,Q)においてアクションckを実行したとき、ノードsxに遷移する状態遷移確率である。
そして、式(57)により演算された評価値が閾値以上となったアクションkが選択され、有効アクションの候補とされる。
さらに、その選択されたアクションkのそれぞれについて、状態遷移確率ajx q(k)がチェックされ、状態遷移確率ajx q(k)が閾値以上となる(q,x)の組が少なくとも1つ存在するか否かが判定される。そのような(q,x)の組が1つも存在しない場合、そのアクションkは、有効アクションの候補から除外される。
このようにして、ステップS424では、有効アクションck r(r=1,・・・,R)が抽出される。
ステップS425において、認識器35は、ステップS421の処理で抽出された候補ノードsj lのうち、ステップS424の処理で抽出されたアクションck rを有効アクションとして有するものを抽出する。すなわち、候補ノードのうち、類似ノードと同一の有効アクションを有するノードsj ru (u=1,・・・,Ur)が抽出される。
ステップS425では、例えば、ノードsj lのそれぞれについて評価値Elrが式(58)により演算される。なお、この演算は、ノードsj lのそれぞれにおいて、個々のアクションck rを実行する場合のそれぞれに対応してそれぞれ行われ、ノードとアクションの組み合わせ1つに対して1の評価値が得られることになる。
なお、式(58)は、変数lにより特定されるインデックスjの候補ノードで、変数rで特定されるアクションckを実行する場合について算出される。また、式(58)の右辺の状態遷移確率のアクションであるk(またはck)は、左辺の変数rにより特定されるものとする。
このように、ステップS425では、式(58)により算出された評価値が閾値以上となったものが、ノードsj ruとして抽出されるのである。
ステップS426において、認識器35は、ステップS425で抽出されたノードとステップS424で抽出された有効アクションのペア(sj ru,ck r)を生成し、それぞれのペアから特定される遷移先ノードを特定する。
例えば、ノードsj ruにおいて、アクションck rを実行した場合の状態遷移確率ajl ru(k)(l=1,・・・,N)をチェックし、閾値を超える状態遷移確率に対応する遷移先ノードsl q(q=1,・・・Qru)を特定する。
ステップS427において、認識器35は、ノードsj ruにおけるアクションck rの逆方向遷移アクションを推定する。すなわち、ノードsl qからノードsj ruへ遷移するためのアクションを推定する。このとき推定された逆方向遷移アクションを、cruq v(v=1,・・・Vruq)とする。ただし、遷移先ノードがノードsi′であった場合は、この推定は行なわない。
そして、認識器35は、ステップS426で特定された遷移先ノードと、逆方向遷移アクションとのペア(sl q,cruq v)(l=1,・・・,L, r=1,・・・,R, u=1,・・・,Ur, q=1,・・・,Qru, v=1,・・・,Vruq)を生成する。
ステップS428において、認識器35は、ステップS427で生成したペア(sl q,cruq v)に(si′,ck′)を加えて重複を排除し、未知ノードへの遷移元ノードと逆方向遷移アクションのペア(si x,ck x)(x=1,・・・,X)を生成する。そして、未知ノードへの遷移元ノードと逆方向遷移アクションのペアのそれぞれがリストされる。
このようにして、ノード逆アクションペアリスト生成処理が実行される。
図47の処理により得られたペアに基づいて、ノードsi xにおいてアクションck xを実行することによりノードsnewに遷移したと仮定され、図46のステップS402の処理が実行される。
次に、図48のフローチャートを参照して、図46のステップS402の逆アクション状態遷移確率設定処理の詳細な例について説明する。
例えば、遷移元ノードsiからアクションckによりノードsnewに遷移したと仮定されたものとする。
ステップS441において、学習器34は、アクションckにより、ノードsiから遷移し得るノードの候補を抽出する。ノードの候補sj l(l=1,・・・L)は、例えば、状態遷移確率aij(k)が閾値以上となる遷移先のノードsjをリストすればよい。
ステップS442において、学習器34は、未知ノードへの状態遷移確率を設定し、正規化する。
例えば、アクションckに対応する各候補ノードsiからsnewへの状態遷移確率ainew(k)は、1/Lとして設定する。そして、アクションckに対応する状態遷移確率テーブルの各行の状態遷移確率の総和が1となるように正規化する。すなわち、状態遷移確率ainew(k)として非零値が設定された行の各値をL/(L+1)倍する。
ただし、ステップS411の処理の結果、状態遷移確率aij(k)が閾値以上となる遷移先のノードが存在しなかった場合、状態遷移確率ainew(k)≒1として、上述のような正規化を行なう。
このようにして、逆アクション状態遷移確率設定処理が実行される。
次に、図49のフローチャートを参照して、図46のステップS403のノード順アクションペアリスト生成処理の詳細な例について説明する。
ステップS461において、認識器35は、図47のステップS426の処理と同様に遷移先ノードsl q(q=1,・・・Qru)を抽出する。すなわち、候補ノードと有効アクションのペアを生成し、各ペアに対応する遷移先ノードを特定する。
ステップS462において、認識器35は、ステップS461の処理で得られた遷移先ノードsl q(q=1,・・・Qru)と、その遷移先ノードに遷移するためのアクションck r(r=1,・・・R)をペアとして生成する。
ステップS463において、認識器35は、ステップS462の処理で得られたペアの重複を排除し、ペア(sj y,ck y)(y=1,・・・,Y)を生成する。そして、遷移先ノードとその遷移先ノードへ遷移するためのアクションのペアのそれぞれがリストされる。
このようにして、ノード順アクションペアリスト生成処理が実行される。
図49の処理により得られたペアに基づいて、ノードsnewにおいてアクションck yを実行することによりノードsj yに遷移したと仮定され、図46のステップS404の処理が実行される。
次に、図50のフローチャートを参照して、図46のステップS404の順アクション状態遷移確率設定処理の詳細な例について説明する。
ステップS481において、学習器34は、状態遷移確率anewj(k)(j=1,・・・,N, k=1,・・・,K)を、全て微小な値で初期化する。
ステップS482において、学習器34は、図48の処理により得られたペア(sj y,ck y)を用いて状態遷移確率を設定する。すなわち、ノードsnewにおいてアクションck yを実行することによりノードsj yに遷移する状態遷移確率anewj y(k)を1として設定する。
ステップS483において、学習器34は、Σjanewj(k)(k=1,・・・,K)を満たすように正規化する。
このようにして順アクション状態遷移確率設定処理が実行される。
上記した例においては、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブルに未知ノードを追加する場合の例について説明したが、これに伴って、観測確率テーブルにも未知ノードを追加する必要がある。この場合の、観測確率テーブルの更新については、例えば、図31に示されるように観測確率テーブルを拡張する必要がある場合に、学習器34が行う処理として上述した処理を行うようにすればよい。
また、勿論、状態遷移確率の推定のための頻度変数のテーブル、および観測確率の推定のための頻度変数のテーブルも図46を参照して上述した処理に伴って更新されることになる。
次に、アンカリングする場合の状態遷移確率の設定について説明する。
上述したように、アンカリングは、既知ノードへの遷移が認識された場合、未知ノードとみなされたノードと既知ノードとの状態遷移確率などを設定する処理である。
換言すれば、未知ノードsi´においてアクションck´を実行して、既知ノードsj´に遷移した場合、内部モデルデータの状態遷移確率テーブルにおいて、状態遷移確率a i´j(k´)(j=1,・・・,N)が閾値以上となるノードsjが存在しないとき、アンカリングが行なわれる。すなわち、未知ノードとみなされたノードから、既知ノードへの遷移が確認され、かつ当該未知ノードから当該既知ノード以外のノードへの遷移が発生し難い場合、アンカリングが行われるのである。
アンカリングでは、アクションck´による未知ノードsi´から既知ノードsj´への状態遷移確率が設定される。例えば、図46を参照して上述したように、未知ノードとみなされたノードが内部モデルデータに追加される都度、その未知ノードから既知ノードへの状態遷移確率が推定されて設定される。しかし、未知ノードから既知ノードへの遷移が実際に発生した場合は、アンカリングがなされることになる。
ここで、図51のフローチャートを参照してアンカリング処理について説明する。この処理は、例えば、図40のステップS319の処理として実行される処理である。
ステップS501において、学習器34は、アンカリングの対象となる遷移に対応する状態遷移確率を1とする。上述の例では、状態遷移確率a i´j´(k´)が1とされる。
ステップS502において、学習器34は、Σja i´j(k´)が1となるように、状態遷移確率テーブルの各値を正規化する。
ステップS503において、認識器35は、既知ノードsj´から未知ノードsi´に遷移する逆方向遷移アクションを推定する。このとき、例えば、図47を参照して上述した場合と同様に逆方向遷移アクションの推定が行なわれる。これにより、逆方向遷移アクションcz r(r=1,・・・,R)が推定される。
ステップS504において、学習器34は、ステップS503の処理で推定された逆方向遷移アクションのそれぞれが実行されることにより、既知ノードsj´から未知ノードsi´への遷移が発生したと仮定して状態遷移確率を設定する。この処理は、例えば、図48を参照して上述した場合と同様である。
このようにしてアンカリング処理が実行される。
なお、図51を参照して説明した処理に替えて、既知ノードsj´から未知ノードsi´への遷移が発生したと仮定して図46を参照して上述した処理が行われることにより状態遷移確率を設定することで、アンカリング処理がなされるようにしてもよい。
すなわち、実際には、未知ノードsi´においてアクションck´を実行して、既知ノードsj´に遷移したのだが、逆方向遷移アクションcz r (r=1,・・・,R)によって既知ノードsj´から未知ノードsi´への遷移が発生したと仮定するのである。ここで、逆方向遷移アクションcz r (r=1,・・・,R)は、例えば、ステップS503の処理と同様にして推定することができる。
つまり、アクションcz 1によって、既知ノードsj´から未知ノードsi´への遷移が発生したと仮定して図46を参照して上述した処理を実行する。また、アクションcz 2によって、やはり、既知ノードsj´から未知ノードsi´への遷移が発生したと仮定して図46を参照して上述した処理を実行する。同様に、アクションcz 3・・・アクションcz Rによって、それぞれ既知ノードsj´から未知ノードsi´への遷移が発生したと仮定して図46を参照して上述した処理を実行するのである。
アンカリングの際には、このように、アクションcz r (r=1,・・・,R)によって直前のノードsj′(実際には、アンカリングする既知ノード)から未知ノードsi′へ遷移したものとみなして、図46の処理がそれぞれ実行されるようにしてもよい。
このように、本発明によれば、エージェントが自律的に環境の変化を認識して、状態遷移確率テーブル、および観測確率テーブルを拡張することが可能である。また、その際に、それぞれのテーブルの拡張された領域に設定すべき状態遷移確率、観測確率などの値を適切に設定することも可能である。さらに、既に記憶されている既知ノードから既知ノードへの状態遷移確率に基づいて、未知ノードと既知ノードとの間の状態遷移確率などを設定することが可能である。
ここまで、学習を進める際に、ノード数、観測シンボル数、またはアクション数を変更する必要に迫られた場合にとり得る処置について説明した。
以上のように、本発明によれば、アクション拡張型HMMを用いた学習を行うことができる。これにより、エージェントがアクション信号を用いて環境に対してアクションを実行し、今後観測される観測シンボルに影響を与えることができるようにするという状況における学習が可能となる。
また、本発明によれば、必然的に大規模となるアクション拡張型HMMの学習を効率的かつ適切に行うことができる。すなわち、学習される内部モデルデータに対してスプリットアルゴリズムを適用するなどして一状態一観測制約を課し、フォワードマージアルゴリズムおよびバックワードマージアルゴリズムを適用するなどしてアクション遷移制約を課す。これにより、計算すべきパラメータの数の増大などを抑制し、必然的に大規模となるアクション拡張型HMMの学習を効率的かつ適切に行うことができる。
さらに、本発明によれば、必然的に大規模となるアクション拡張型HMMにおける追加学習方式での学習を安定的に行うことができる。すなわち、状態遷移確率の推定のための頻度変数と観測確率の推定のための頻度変数とを算出して保存することにより、アクション拡張型HMMにおける追加学習方式での学習を安定的に行うことができる。
また、本発明によれば、学習を進める際に、ノード数、観測シンボル数、またはアクション数を変更することが可能である。
この際、例えば、エージェントに対して予め所定の数だけノードの数が増えることを前提として、内部モデルデータを拡張するように指令することも可能であるし、エージェントが自律的に環境の変化を認識して、内部モデルデータを拡張することも可能である。
エージェントが自律的に環境の変化を認識して、内部モデルデータを拡張するために、エージェントが、現在自分が位置するノードは学習済の内部状態とされているノードなのか、新たに追加すべき内部状態とされるノードなのか認識できるようにした。
また、所定のタイミングで所定の個数の未知ノードが追加されるようにするとともに、アンカリングされた直後の内部モデルデータに基づいて追加学習方式での学習が行われるようにした。これにより、例えば、既知ノードの中に散発的に新たなノードが発現するような場合はもちろんのこと、長期に渡って新たなノードが連続して検出されるような困難な環境においても、十分に有効な学習を行うことが可能となった。
さらに、内部モデルデータを拡張するにあたり、過去の経験に基づいて未知ノードと既知ノードとの間の状態遷移確率などを設定することができるようにした。
このように、本発明によれば、変化する環境の中で自律的な学習を行う際に、効率的かつ安定的な学習を行うことができるのである。
以上においては、本発明の実施の形態を主に、ロボットが迷路を移動する場合の例に適用して説明したが、勿論、それ以外の実施の形態であっても構わない。例えば、アクションは、エージェントを移動させるものに限られず、環境に対して働きかける行為であればアクションとなり得る。また、例えば、観測シンボルは、迷路のパーツの形状などに対応するものに限られず、光や音の変化などに対応するものであってもよい。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータにインストールされる。例えば、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、図52に示されるような汎用のパーソナルコンピュータ700などに、ネットワークや記録媒体から、そのソフトウェアを構成するプログラムがインストールされる。
図52において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707、ハードディスクなどより構成される記憶部708が接続されている。また、入出力インタフェース705には、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着される。そして、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア711などからなる記録媒体からインストールされる。
なお、この記録媒体は、図52に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD (Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
10 自律行動学習装置, 31 センサ部, 32 行動出力部, 33 観測バッファ, 34 学習器, 35 認識器, 36 行動生成器, 37 内部モデルデータ記憶部, 38 認識結果バッファ, 39 行動出力バッファ
Claims (12)
- 環境から得られるセンサ信号に基づいて観測シンボルを観測する観測手段と、
時間の経過に伴って観測される前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けて記憶する観測シンボル記憶手段と、
前記観測シンボル記憶手段に記憶された情報を時系列情報として読み出し、前記時系列情報の最後の時刻におけるHMMのノードを認識する認識手段とを備え、
前記認識手段は、可変長の前記時系列情報を読み出して認識する
認識装置。 - 前記認識手段は、
前記時系列情報に基づいて、前記時系列情報の長さに対応するノード列を認識し、
前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在すると判定され、かつ前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値未満となるまで、
前記観測シンボル記憶手段から読み出す前記時系列情報の長さを過去方向に延長する
請求項1に記載の認識装置。 - 前記認識手段は、
前記過去方向に延長された前記時系列情報に基づいて前記時系列情報の長さに対応するノード列を認識し、
前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在しないと判定された場合、前記時系列情報の最後の時刻における前記ノードが、新たに追加すべき内部状態の未知ノードであると認識して認識結果として出力し、
前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在すると判定され、かつ前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値未満と判定された場合、前記時系列情報の最後の時刻における前記ノードが、学習済の内部状態の既知ノードであると認識して認識結果として出力する
請求項2に記載の認識装置。 - 前記認識結果を、認識された時刻と対応付けて記憶する認識結果記憶手段をさらに備える
請求項3に記載の認識装置。 - 前記認識手段は、
前記認識結果記憶手段に記憶されている認識結果が、時間の経過に伴って既知ノードから未知ノードに変化した時刻を特定し、
前記観測シンボル記憶手段から読み出す前記時系列情報の長さを過去方向に延長することにより、前記特定された時刻より時間的に前の時系列情報が読み出される場合、
認識結果の出力を保留する
請求項4に記載の認識装置。 - 前記認識手段は、
長さNの前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値と、長さN+1の前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値との差分を算出し、
前記算出された差分が第3の閾値未満となるまで、前記観測シンボル記憶手段から読み出す前記時系列情報の長さを過去方向に延長する
請求項1に記載の認識装置。 - 前記認識手段は、
前記過去方向に延長された前記時系列情報に基づいて前記時系列情報の長さに対応するノード列を認識し、
前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値未満の確率で存在すると判定された場合、
前記時系列情報の最後の時刻における前記ノードが、新たに追加すべき内部状態の未知ノードであると認識する
請求項6に記載の認識装置。 - 前記認識手段は、
前記環境において前記ノード列が、前記HMMの状態遷移確率および観測確率に基づいて、第1の閾値以上の確率で存在すると判定された場合、
前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値未満となるとき、前記時系列情報の最後の時刻における前記ノードが、学習済の内部状態の既知ノードである認識し、
前記時系列情報の最後の時刻における前記ノードの事後確率のエントロピーの値が第2の閾値以上となるとき、認識結果の出力を保留する
請求項7に記載の認識装置。 - 前記環境に対して自分が実行する行動を行動シンボルとし特定し、時間の経過に伴って得られる前記行動シンボルを、前記行動が実行された時刻と対応付けて記憶する行動シンボル記憶手段をさらに備え、
前記観測シンボル記憶手段に記憶された情報と時間的に同じ長さの情報が前記行動シンボル記憶手段から読み出され、前記時系列情報とされる
請求項1に記載の認識装置。 - 時間の経過に伴って観測される環境から得られるセンサ信号に基づく前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けて記憶する観測シンボル記憶手段に記憶された情報を可変長の時系列情報として読み出し、
前記時系列情報の最後の時刻におけるHMMのノードを認識する
認識方法。 - コンピュータを、
環境から得られるセンサ信号に基づいて観測シンボルを観測する観測手段と、
時間の経過に伴って観測される前記観測シンボルを、前記観測シンボルが観測された時刻と対応付けて記憶する観測シンボル記憶手段と、
前記観測シンボル記憶手段に記憶された情報を時系列情報として読み出し、前記時系列情報の最後の時刻におけるHMMのノードを認識する認識手段とを備え、
前記認識手段は、可変長の前記時系列情報を読み出して認識する認識装置として機能させる
プログラム。 - 請求項11に記載のプログラムが記録されている記録媒体。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009163192A JP2011018245A (ja) | 2009-07-09 | 2009-07-09 | 認識装置および方法、プログラム、並びに記録媒体 |
| US12/829,984 US8725510B2 (en) | 2009-07-09 | 2010-07-02 | HMM learning device and method, program, and recording medium |
| CN201010225858.XA CN101950376B (zh) | 2009-07-09 | 2010-07-02 | 隐马尔可夫模型学习设备和方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009163192A JP2011018245A (ja) | 2009-07-09 | 2009-07-09 | 認識装置および方法、プログラム、並びに記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2011018245A true JP2011018245A (ja) | 2011-01-27 |
Family
ID=43595971
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009163192A Withdrawn JP2011018245A (ja) | 2009-07-09 | 2009-07-09 | 認識装置および方法、プログラム、並びに記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2011018245A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110955466A (zh) * | 2018-09-27 | 2020-04-03 | 罗伯特·博世有限公司 | 用于测定智能体的策略的方法、装置和计算机程序 |
| CN111132819A (zh) * | 2017-09-26 | 2020-05-08 | 西门子股份公司 | 用于对对象的质量信息进行计算机辅助处理的方法和相应的辅助设备 |
-
2009
- 2009-07-09 JP JP2009163192A patent/JP2011018245A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111132819A (zh) * | 2017-09-26 | 2020-05-08 | 西门子股份公司 | 用于对对象的质量信息进行计算机辅助处理的方法和相应的辅助设备 |
| CN110955466A (zh) * | 2018-09-27 | 2020-04-03 | 罗伯特·博世有限公司 | 用于测定智能体的策略的方法、装置和计算机程序 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101950376B (zh) | 隐马尔可夫模型学习设备和方法 | |
| Mihajlovic et al. | Dynamic bayesian networks: A state of the art | |
| CN115552430B (zh) | 用于支持策略学习的方法和系统 | |
| Wang et al. | Multi-sensor control for multi-object Bayes filters | |
| JP2012008659A (ja) | データ処理装置、データ処理方法、およびプログラム | |
| JP2011059816A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
| US11699096B2 (en) | Systems and methods for event prediction using schema networks | |
| CN103544496A (zh) | 基于空间与时间信息融合的机器人场景识别方法 | |
| JP2011059815A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
| US20250053179A1 (en) | Pathfinding apparatus, pathfinding method, and non-transitory computer-readable storage medium | |
| JP6749282B2 (ja) | 人流量予測装置、人流量予測方法、及び人流量予測プログラム | |
| JP6665071B2 (ja) | 人流量予測装置、人流量予測方法、及び人流量予測プログラム | |
| Mendonca et al. | Graph-based skill acquisition for reinforcement learning | |
| JP6908286B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
| JP2011059817A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
| Li et al. | Labeled multi-Bernoulli filter based group target tracking using SDE and graph theory | |
| Tonkens et al. | Scalable safe long-horizon planning in dynamic environments leveraging conformal prediction and temporal correlations | |
| WO2020117358A9 (en) | Systems and methods for operating robots using object-oriented partially observable markov decision processes | |
| Zitar et al. | Optimum sensors allocation for drones multi-target tracking under complex environment using improved prairie dog optimization | |
| WO2021064858A1 (ja) | 通信速度予測装置、通信速度予測方法及び記録媒体 | |
| WO2014087590A1 (ja) | 最適化装置、最適化方法および最適化プログラム | |
| JP2011018245A (ja) | 認識装置および方法、プログラム、並びに記録媒体 | |
| JP7500504B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
| EP4416642A1 (en) | Method and apparatus | |
| JP2011018246A (ja) | Hmm学習装置および方法、プログラム、並びに記録媒体 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20121002 |