説明

データ処理装置、データ処理方法、及びプログラム

【課題】ユーザが所望する操作を先取りして行う。
【解決手段】状況データ取得部101において、状況を表す時系列データである状況データを取得するとともに、操作データ取得部102において、ユーザが所望する操作に対応する時系列データである所望操作データを取得し、予測学習部103において、状況データ及び所望操作データのダイナミクスを学習し、予測部105において、ダイナミクスに基づき、状況データを入力として、所望操作データの予測値を求め、操作データ出力部106において、所望操作データの予測値を出力する。本発明は、例えば、PCや、TV、ゲーム装置等の、ユーザが操作を行う電子機器に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、及びプログラムに関し、特に、例えば、ユーザが行おうとしている操作を先取りして行うことができるようにするデータ処理装置、データ処理方法、及びプログラムに関する。
【背景技術】
【0002】
例えば、PC(Personal Computer)や、TV(テレビジョン受像機)等の電子機器のユーザインタフェースでは、ユーザが過去に行ったことがある操作であっても、ユーザは、マウスやリモートコマンダの操作を、過去に行った場合と同様に繰り返し行う必要があった。
【0003】
また、ユーザの視線を用いたユーザインタフェースが提案されている(例えば、非特許文献1を参照)。
【0004】
かかるユーザインタフェースによれば、ユーザは、マウスやリモートコマンダを操作せずに、視線を動かすだけでコンピュータの操作を行うことができる。
【0005】
【非特許文献1】大野 健彦、「視線を用いたインタフェース」、情報処理44巻7号、2003年7月
【発明の開示】
【発明が解決しようとする課題】
【0006】
先に提案されている、視線を用いるユーザインタフェースは、様々なユーザに共通する特定の視線の動きのパターンから、「迷い」状態の検出や、単語の理解度の推定等を行い、ある検出結果や推定結果等に対して、電子機器の操作を、いわば固定的に対応付け、ユーザの作業を支援する。
【0007】
したがって、先に提案されているユーザインタフェースでは、例えば、ユーザごとに、そのユーザに特有の視線の動きを認識し、その動きに応じて、ユーザが行おうとしている操作を行うことは困難であった。
【0008】
本発明は、このような状況に鑑みてなされたものであり、ユーザが行おうとしている操作、つまり、ユーザが所望する操作を先取りして行うことができるようにするものである。
【課題を解決するための手段】
【0009】
本発明の一側面のデータ処理装置、又は、プログラムは、時系列データを処理するデータ処理装置であり、状況を表す時系列データである状況データを取得する状況データ取得手段と、ユーザが所望する操作に対応する時系列データである所望操作データを取得する操作データ取得手段と、前記状況データ及び所望操作データのダイナミクスを学習する学習手段と、前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求める予測手段と、前記所望操作データの予測値を出力する出力手段とを備えるデータ処理装置、又は、データ処理装置として、コンピュータを機能させるプログラムである。
【0010】
本発明の一側面のデータ処理方法は、時系列データを処理するデータ処理装置のデータ処理方法であり、状況を表す時系列データである状況データを取得するとともに、ユーザが所望する操作に対応する時系列データである所望操作データを取得し、前記状況データ及び所望操作データのダイナミクスを学習し、前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求め、前記所望操作データの予測値を出力するステップを含むデータ処理方法である。
【0011】
本発明の一側面においては、状況を表す時系列データである状況データと、ユーザが所望する操作に対応する時系列データである所望操作データとが取得され、前記状況データ及び所望操作データのダイナミクスの学習が行われる。そして、前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値が求められ、前記所望操作データの予測値が出力される。
【0012】
なお、データ処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【0013】
また、プログラムは、伝送媒体を介して伝送し、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【0014】
本発明の一側面によれば、ユーザが所望する操作を先取りして行うことができる。
【発明を実施するための最良の形態】
【0015】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。したがって、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0016】
本発明の一側面のデータ処理装置、又は、プログラムは、
時系列データを処理するデータ処理装置(例えば、図1のデータ処理装置)であり、
状況を表す時系列データである状況データを取得する状況データ取得手段(例えば、図1の状況データ取得部101)と、
ユーザが所望する操作に対応する時系列データである所望操作データを取得する操作データ取得手段(例えば、図1の操作データ取得部102)と、
前記状況データ及び所望操作データのダイナミクスを学習する学習手段(例えば、図1の予測学習部103)と、
前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求める予測手段(例えば、図1の予測部105)と、
前記所望操作データの予測値を出力する出力手段(例えば、図1の操作データ出力部106)と
を備えるデータ処理装置、又は、データ処理装置として、コンピュータを機能させるプログラムである。
【0017】
本発明の一側面のデータ処理方法は、
時系列データを処理するデータ処理装置のデータ処理方法であり、
状況を表す時系列データである状況データを取得するとともに、ユーザが所望する操作に対応する時系列データである所望操作データを取得し(例えば、図3のステップS101、及びS102)、
前記状況データ及び所望操作データのダイナミクスを学習し(例えば、図3のステップS104)、
前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求め(例えば、図4のステップS113)、
前記所望操作データの予測値を出力する(例えば、図4のステップS114)
ステップを含むデータ処理方法である。
【0018】
以下、図面を参照して、本発明の実施の形態について説明する。
【0019】
図1は、本発明を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
【0020】
図1のデータ処理装置は、例えば、PCや、TVその他の、ユーザが操作を行う電子機器の一部を構成する。
【0021】
図1において、データ処理装置は、状況データ取得部101、操作データ取得部102、予測学習部103、ダイナミクス学習モデル記憶部104、予測部105、及び操作データ出力部106から構成される。
【0022】
状況データ取得部101は、状況を表す時系列データである状況データsit,sit+1,・・・,sit+Tを取得し、予測学習部103、及び予測部105に供給する。
【0023】
ここで、sitは、i番目(i=1,2,・・・,I)の種類の状況データの時刻tのサンプル値を表す。
【0024】
状況データ取得部101は、例えば、PCやTVにおける、マウスカーソルや、アイコン、ウインドウ、GUI(Graphical User Interface)で表示されるボタン、ユーザの視線の位置等の、各種の状況を表す状況データを取得する。
【0025】
操作データ取得部102は、ユーザが所望する操作に対応する時系列データである所望操作データajt,ajt+1,・・・,ajt+Tを取得し、予測学習部103に供給する。
【0026】
ここで、ajtは、j番目(j=1,2,・・・,J)の種類の所望操作データの時刻tのサンプル値を表す。
【0027】
操作データ取得部102は、例えば、PCやTVのキーボードのキーに対するユーザの操作、ユーザによるウインドウの選択の操作、GUIで表示されるボタンに対するユーザの操作、マウスのボタンに対するユーザの操作、スクロールバーに対するユーザの操作等の、ユーザの操作に対応する時系列データ、つまり、ユーザの操作がどのような状態(ユーザによる操作が行われていない状態を含む)にあるのかを表す時系列データを、ユーザが、そのときに所望している操作を表す所望操作データとして取得する。
【0028】
なお、どのようなデータを、状況データ及び所望操作データとするかは、例えば、図1のデータ処理装置に、あらかじめ設定しておくこともできるし、ユーザに設定してもらうようにすることもできる。
【0029】
どのようなデータを、状況データ及び所望操作データとするかを、ユーザに設定してもらう場合には、上述したマウスカーソルの位置等や、キーに対するユーザの操作等の、状況データ及び所望操作データになり得るデータの一覧を表示し、そのデータの一覧の中から、状況データ及び所望操作データとするデータそれぞれを、ユーザに選択してもらえば良い。
【0030】
予測学習部103は、状況データ取得部101からの状況データ、及び、操作データ取得部102からの所望操作データのダイナミクスを、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルによって学習する。
【0031】
すなわち、予測学習部103は、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルのパラメータを、状況データ取得部101からの状況データ、及び、操作データ取得部102からの所望操作データを用いて更新する、ダイナミクス学習モデルの学習を行い、これにより、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルが、状況データ取得部101からの状況データ、及び、操作データ取得部102からの所望操作データのダイナミクスを獲得する。
【0032】
ダイナミクス学習モデル記憶部104は、ダイナミクスを獲得することができるモデルであるダイナミクス学習モデルを記憶する。
【0033】
ここで、ダイナミクス学習モデルとしては、例えば、RNN(Recurrent Neural Network)、FNN(Feed Forward Neural Network)、及びRNN-PB(Recurrent Neural Net with Parametric Bias)等のNN(Neural Network)や、SVR(Support Vector Regression)、その他のダイナミクスを獲得することができるモデルを採用することができる。
【0034】
なお、多数のダイナミクスを獲得することができるモデルとして、複数のノードによって構成され、その複数のノードそれぞれにダイナミクスを保持するダイナミクス記憶ネットワークがある。ダイナミクス記憶ネットワークについては、後述する。
【0035】
予測部105は、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルが獲得したダイナミクスに基づき、状況データ取得部101から供給される状況データsit,sit+1,・・・,sit+Tを入力として、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+T、さらには、必要に応じて、状況データの予測値s'jt,s'jt+1,・・・,s'jt+Tを求め、操作データ出力部106に供給する。
【0036】
なお、予測部105は、状況データの予測値s'jt,s'jt+1,・・・,s'jt+Tを求める場合には、状況データ取得部101からの状況データ(の真値)sit,sit+1,・・・,sit+Tも、操作データ出力部106に供給する。
【0037】
操作データ出力部106は、予測部105からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを、図1のデータ処理装置が一部を構成している電子機器としてのPCやTV等の操作データ(ユーザが行った操作に対応するデータ(操作を表すデータ))を受け付けるインタフェース(モジュール)に出力する。
【0038】
操作データ出力部106が、予測部105からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを、PCやTV等の操作データを受け付けるインタフェースに出力した場合、PCやTV等では、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tに従った処理が行われる。
【0039】
なお、操作データ出力部106は、予測部105から、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tの他、状況データの予測値s'jt,s'jt+1,・・・,s'jt+T、及び、状況データの真値sit,sit+1,・・・,sit+Tが供給される場合には、状況データの予測値の予測誤差eit=|si-s'j|を求める。そして、操作データ出力部106は、例えば、予測誤差ejt,ejt+1,・・・,ejt+Tのそれぞれ、又は、すべての総和が、あらかじめ決定された所定の閾値以下(未満)であるときのみ、予測部105からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを出力する。
【0040】
この場合、予測誤差が大であるときには、操作データ出力部106は、予測部105からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを出力しないので、PCやTV等では、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tに従った処理は、行われない。すなわち、PCやTV等では、予測誤差が小であるときのみ、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tに従った処理が行われる。
【0041】
以上のような、予測誤差に基づく所望操作データの出力の制御は、例えば、ユーザの操作に従って、有効、又は無効とすることができる。
【0042】
次に、図2を参照して、図1の状況データ取得部101が取得する状況データと、操作データ取得部102が取得する所望操作データについて、さらに説明する。
【0043】
図2Aは、PCの画面上のマウスカーソルの位置の軌跡と、PCの画面の左上の位置にあるアイコンがクリックされた状態を示している。
【0044】
図2Aでは、ユーザが、マウスカーソルを、PCの画面の右下から左上の方向に移動し、PCの画面の左上の位置にあるアイコンをクリックする操作をしている。
【0045】
図2Bは、図2Aの操作が行われた場合に、状況データ取得部101が取得する状況データを示している。
【0046】
なお、図2Bにおいて、横軸は、時刻(時間)tを表し、縦軸は、図2Aの画面の左下の点を原点とするxy座標系における座標(x,y)を表している。
【0047】
状況データ取得部101は、図2Bに示すように、マウスカーソルの位置の軌跡を表す座標(mouse_xt,mouse_yt)を、i番目の種類の状況データsit,sit+1,・・・,sit+Tとして取得するとともに、図2Aの画面の左上の位置にあるアイコンの位置を表す座標(icon_xt,icon_yt)を、i'番目の種類の状況データsi't,si't+1,・・・,si't+Tとして取得する。
【0048】
図2Cは、図2Aの操作が行われた場合に、操作データ取得部102が取得する所望操作データを示している。
【0049】
なお、図2Cにおいて、横軸は、時刻tを表し、縦軸は、マウスのボタンのオフ(off)とオン(on)を表している。
【0050】
操作データ取得部102は、図2Cに示すように、マウスのボタンの、オン又はオフの操作の状態を表す時系列データを、j番目の所望操作データajt,ajt+1,・・・,ajt+Tとして取得する。
【0051】
次に、図1のデータ処理装置では、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルのパラメータを、状況データ及び所望操作データを用いて更新する、ダイナミクス学習モデルの学習の処理(学習処理)と、学習処理によってダイナミクスを獲得したダイナミクス学習モデルを用い、状況データを入力として、所望操作データの予測値(さらには、状況データの予測値)を求める予測の処理(予測処理)とが行われる。
【0052】
図3は、図1のデータ処理装置で行われる学習処理を説明するフローチャートである。
【0053】
学習処理は、例えば、周期的に、又は不定期のタイミングで開始され、ステップS101において、状況データ取得部101が、状況データを取得し、予測学習部103に供給して、処理は、ステップS102に進む。
【0054】
ステップS102では、操作データ取得部102が、所望操作データを取得し、予測学習部103に供給して、処理は、ステップS103に進む。
【0055】
ステップS103では、予測学習部103が、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルのパラメータを読み出し、処理は、ステップS104に進む。
【0056】
ステップS104では、予測学習部103が、ステップS103でダイナミクス学習モデル記憶部104から読み出したダイナミクス学習モデルのパラメータを、状況データ取得部101からの状況データ、及び、操作データ取得部102からの所望操作データを用いて更新して、処理は、ステップS105に進む。
【0057】
すなわち、例えば、いま、任意の数の、ニューロンに相当するユニットにより構成される入力層、隠れ層(中間層)、及び出力層の3層を有する3層型NNが、ダイナミクス学習モデルとして採用されていることとすると、予測学習部103は、入力層のユニットに、時刻tの入力データ(ベクトル)Xtとして、状況データ取得部101からの時刻tの状況データsit、及び、操作データ取得部102からの時刻tの所望操作データaitを入力する。
【0058】
これにより、隠れ層のユニットでは、入力層に入力される入力データXtを対象として、ニューロンとしてのユニットどうしを結合する結合重み(結合荷重)を用いた重み付け加算が行われ、さらに、その重み付け加算の結果を引数とする非線形関数の演算が行われて、その演算結果が、出力層のユニットに出力される。
【0059】
出力層のユニットからは、入力データXtに対する出力データとして、その入力データXtの次の時刻t+1の入力データXt+1の予測値X't+1、すなわち、いまの場合、時刻t+1の状況データの予測値s'it+1、及び、時刻t+1の所望操作データの予測値a'it+1が出力される。
【0060】
予測学習部103は、例えば、BP(Back-propagation)法に従い、入力データXtに対する出力データとしての、その入力データXtの次の時刻t+1の入力データXt+1の予測値X't+1の、真値(時刻t+1の入力データXt+1)に対する予測誤差が小さくなるように、NNのパラメータとしての結合重みを、予測誤差に応じた値だけ更新する計算を、NNのパラメータが収束するまで繰り返し行う。
【0061】
なお、NNのパラメータの更新は、ステップS103でダイナミクス学習モデル記憶部104から読み出されたパラメータを、パラメータの初期値として行われる。
【0062】
以上のように、時刻tの時系列データXtから、次の時刻t+1の時系列データXt+1を予測することの学習(予測学習(prediction learning))を行うことで、ダイナミクス学習モデルとしてのNNは、時系列データの時間発展法則を学習し、その時系列データのダイナミクスを獲得することができる。
【0063】
ステップS105では、予測学習部103は、ステップS104で更新したダイナミクス学習モデルのパラメータを、ダイナミクス学習モデル記憶部104に上書きの形で書き込み(保存し)、処理は終了する。
【0064】
図4は、図1のデータ処理装置で行われる予測処理を説明するフローチャートである。
【0065】
予測処理は、例えば、周期的に、又は不定期のタイミングで開始され、ステップS111において、状況データ取得部101が、状況データを取得し、予測部105に供給して、処理は、ステップS112に進む。
【0066】
ステップS112では、予測部105が、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルのパラメータを読み出し、処理は、ステップS113に進む。
【0067】
ステップS113では、予測部105は、ダイナミクス学習モデル記憶部104に記憶されたダイナミクス学習モデルが獲得したダイナミクスに基づき、状況データ取得部101から供給される状況データを入力として、所望操作データの予測値を求め、操作データ出力部106に供給して、処理は、ステップS114に進む。
【0068】
すなわち、例えば、いま、ダイナミクス学習モデルが、図3で説明した3層型NNであるとすると、予測部105は、入力層のユニットに、状況データ取得部101からの時刻tの状況データsitと、時刻tの所望操作データaitとしての、例えば、乱数やあらかじめ決められた値等とを、時刻tの入力データXtとして入力する。
【0069】
これにより、隠れ層のユニットでは、入力層に入力される入力データXtを対象として、ダイナミクス学習モデルのパラメータとしての結合重みを用いた重み付け加算が行われ、さらに、その重み付け加算の結果を引数とする非線形関数の演算が行われて、その演算結果が、出力層のユニットに出力される。
【0070】
出力層のユニットでは、隠れ層のユニットの演算結果を入力として、隠れ層のユニットと同様の演算が行われ、その演算結果が、入力データXtの次の時刻t+1の入力データXt+1の予測値X't+1、すなわち、時刻t+1の状況データの予測値s'it+1、及び、時刻t+1の所望操作データの予測値a'it+1として出力される。
【0071】
そして、出力層のユニットから出力される時刻t+1の所望操作データの予測値a'it+1が、予測部105から操作データ出力部106に供給される。
【0072】
なお、入力層のユニットに、状況データ取得部101からの時刻tの状況データsitが入力された後は、状況データ取得部101からの次の時刻t+1の状況データsit+1が入力されるが、そのとき、時刻tの所望操作データaitとしては、例えば、出力層のユニットから出力された時刻t+1の所望操作データの予測値a'it+1が用いられる(入力層のユニットに入力される)。
【0073】
また、上述の場合には、予測部105において、ダイナミクス学習モデルを用い、時刻tの入力データXtの入力に対して、入力データXtの次の時刻t+1の入力データXt+1の予測値X't+1を求めることとしたが、予測部105では、ダイナミクス学習モデルを用いて得られた予測値を、さらにダイナミクス学習モデルの入力としてフィードバックすることを繰り返すことで、時刻t+1の入力データXt+1の予測値X't+1の他、その時刻t+1の先(未来)の時刻の予測値X't+2,X't+3,・・・をも求めることが可能である。後述する予測部165(図9)でも同様である。
【0074】
ステップS114では、操作データ出力部106が、予測部105からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを、図1のデータ処理装置が一部を構成している電子機器としてのPCやTV等の操作データを受け付けるインタフェースに出力し、処理は終了する。
【0075】
これにより、PCやTV等では、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tに従った処理が行われる。
【0076】
なお、図4の予測処理は、図3の学習処理が行われていないときに行うこともできるし、図3の学習処理と並列して行うこともできる。
【0077】
以上のように、状況データ取得部101において、状況を表す時系列データである状況データを取得するとともに、操作データ取得部102において、ユーザが所望する操作に対応する時系列データである所望操作データを取得し、予測学習部103において、状況データ及び所望操作データのダイナミクスを学習し、予測部105において、ダイナミクスに基づき、状況データを入力として、所望操作データの予測値を求め、操作データ出力部106において、所望操作データの予測値を出力するので、ユーザごとに、ユーザが行おうとしている操作、つまり、ユーザが所望する操作を先取りして行うことができる。
【0078】
すなわち、例えば、図2Aに示したように、ユーザが、マウスカーソルを、PCの画面の右下から左上の方向に移動し、PCの画面の左上の位置にあるアイコンをクリックする操作をした場合には、状況データ取得部101では、図2Bに示したように、マウスカーソルの位置の軌跡を表す座標(mouse_xt,mouse_yt)が、i番目の種類の状況データsit,sit+1,・・・,sit+Tとして取得されるとともに、図2Aの画面の左上の位置にあるアイコンの位置を表す座標(icon_xt,icon_yt)が、i'番目の種類の状況データsi't,si't+1,・・・,si't+Tとして取得される。
【0079】
さらに、操作データ取得部102では、図2Cに示したように、オフになっているマウスのボタンを所定のタイミングでオンにする操作を表す操作データが、j番目の所望操作データajt,ajt+1,・・・,ajt+Tとして取得される。
【0080】
この場合、予測学習部103では、PCの画面の右下から左上の方向に向かうマウスカーソルの軌跡を表す座標(mouse_xt,mouse_yt)の時系列データ、PCの画面の左上の位置にあるアイコンの位置を表す座標(icon_xt,icon_yt)の時系列データ、及び、オフになっているマウスのボタンを所定のタイミングでオンにする操作を表す時系列データを用いて、ダイナミクス学習モデルの学習が行われる。
【0081】
これにより、ダイナミクス学習モデルは、PCの画面の右下から左上の方向に向かうマウスカーソルの軌跡を表す座標(mouse_xt,mouse_yt)の時系列データ、PCの画面の左上の位置にあるアイコンの位置を表す座標(icon_xt,icon_yt)の時系列データ、及び、オフになっているマウスのボタンを所定のタイミングでオンにする操作を表す時系列データのダイナミクスを獲得する。
【0082】
その後、状況データ取得部101において、PCの画面の右下から左上の方向に向かうマウスカーソルの軌跡を表す座標(mouse_xt,mouse_yt)の時系列データと、PCの画面の左上の位置にあるアイコンの位置を表す座標(icon_xt,icon_yt)の時系列データが取得され、予測部105に供給されると、予測部105では、ダイナミクス学習モデルが獲得したダイナミクスを有する所望操作データの予測値(さらには、状況データの予測値)、つまり、オフになっているマウスのボタンを所定のタイミングでオンにする操作を表す時系列データの予測値が求められ、操作データ出力部106を介して、PCのインタフェースに出力される。
【0083】
したがって、PCでは、PCの画面の左上の位置に、アイコンが存在する状況であって、かつ、マウスカーソルが、PCの画面の右下から左上の方向に向かう軌跡を描いた状況となった場合、PCの画面の左上の位置にあるアイコンをクリックする操作に対応する所望操作データの予測値が求められ、これにより、PCでは、ユーザが、PCの画面の左上の位置にあるアイコンをクリックする操作をする前に、その操作を先取りする形で、その操作に従った処理が行われる。
【0084】
なお、NNやSVR等の、ダイナミクスを獲得することができるダイナミクス学習モデルは、いわゆる汎化の能力(機能)を有する。かかる汎化の能力を有するダイナミクス学習モデルによれば、学習処理に用いられた時系列データと一致しない時系列データが与えられた場合であっても、その与えられた時系列データが、学習処理に用いられた時系列データとダイナミクスが類似するものであるときには、ある程度予測精度の高い予測値を出力する。
【0085】
図5及び図6は、状況データと所望操作データの他の例を示している。
【0086】
すなわち、図5は、PCの画面上のwebブラウザに表示された記事を見ているユーザの視線の軌跡と、その軌跡が描かれた後に、webブラウザ(の表示)のスクロールをする操作がされた状態を示している。
【0087】
図5において、状況データ取得部101が、ユーザの視線の軌跡を表す座標を、i番目の種類の状況データsit,sit+1,・・・,sit+Tとして取得するとともに、操作データ取得部102が、webブラウザのスクロールをする操作に対応する操作データを、j番目の所望操作データajt,ajt+1,・・・,ajt+Tとして取得した場合、予測学習部103では、ユーザの視線の軌跡を表す座標の時系列データ、及び、webブラウザのスクロールをする操作を表す時系列データを用いて、ダイナミクス学習モデルの学習が行われる。
【0088】
これにより、ダイナミクス学習モデルは、ユーザの視線の軌跡を表す座標の時系列データ、及び、webブラウザのスクロールをする操作を表す時系列データのダイナミクスを獲得する。
【0089】
その後、状況データ取得部101において、図5に示したような、ユーザの視線の軌跡を表す座標の時系列データが取得され、予測部105に供給されると、予測部105では、ダイナミクス学習モデルが獲得したダイナミクスを有する所望操作データの予測値(さらには、状況データの予測値)、つまり、webブラウザのスクロールをする操作を表す時系列データの予測値が求められ、操作データ出力部106を介して、PCのインタフェースに出力される。
【0090】
したがって、PCでは、webブラウザ上におけるユーザの視線が、図5に示したような軌跡を描いた状況となった場合、webブラウザのスクロールをする操作を表す時系列データの予測値が求められ、これにより、PCでは、ユーザが、webブラウザのスクロールをする操作をする前に、その操作を先取りする形で、その操作に従った処理、つまり、webブラウザのスクロールが行われる。
【0091】
図6は、TVの画面(表示画面)を示している。
【0092】
すなわち、図6では、TVの画面がメイン画面とサブ画面とに左右に分割され、メイン画面において、ユーザが選択した番組の画像が表示されるとともに、サブ画面において、4つの、いわゆる裏番組の画像それぞれを縮小した4つの縮小画像が縦に並ぶ形で表示されている。
【0093】
さらに、図6では、メイン画面の番組の画像上と、サブ画面の上から2番目の番組の縮小画像上とを往復するユーザの視線の軌跡と、その軌跡が描かれた後に、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作がされている。
【0094】
図6において、状況データ取得部101が、ユーザの視線の軌跡を表す座標を、i番目の種類の状況データsit,sit+1,・・・,sit+Tとして取得するとともに、操作データ取得部102が、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作に対応する操作データを、j番目の所望操作データajt,ajt+1,・・・,ajt+Tとして取得した場合、予測学習部103では、ユーザの視線の軌跡を表す座標の時系列データ、及び、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作を表す時系列データを用いて、ダイナミクス学習モデルの学習が行われる。
【0095】
これにより、ダイナミクス学習モデルは、ユーザの視線の軌跡(メイン画面の番組の画像上と、サブ画面の上から2番目の番組の縮小画像上とを往復するユーザの視線の軌跡)を表す座標の時系列データ、及び、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作を表す時系列データ(番組を選択する操作(選択操作)と、その選択操作の前後で、選択操作がされていないことを表す時系列データ)のダイナミクスを獲得する。
【0096】
その後、状況データ取得部101において、図6に示したような、ユーザの視線の軌跡を表す座標の時系列データが取得され、予測部105に供給されると、予測部105では、ダイナミクス学習モデルが獲得したダイナミクスを有する所望操作データの予測値(さらには、状況データの予測値)、つまり、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作を表す時系列データの予測値が求められ、操作データ出力部106を介して、TVのインタフェースに出力される。
【0097】
したがって、TVでは、画面上におけるユーザの視線が、図6に示したような軌跡を描いた状況となった場合、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作を表す時系列データの予測値が求められ、これにより、TVでは、ユーザが、サブ画面の上から2番目に縮小画像が表示された番組を選択する操作をする前に、その操作を先取りする形で、その操作に従った処理、つまり、サブ画面の上から2番目に縮小画像が表示された番組の画像を、メイン画面に表示することが行われる。
【0098】
なお、予測部105(図1)は、図4の予測処理において、上述したように、状況データ取得部101から供給される状況データsit,sit+1,・・・,sit+Tを入力として、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを求める他、状況データの予測値s'jt,s'jt+1,・・・,s'jt+Tを求め、状況データ取得部101から供給される状況データ(の真値)sit,sit+1,・・・,sit+Tとともに、操作データ出力部106に供給することができる。
【0099】
この場合、操作データ出力部106は、予測部105からの状況データの予測値s'jt,s'jt+1,・・・,s'jt+T、及び、状況データの真値sit,sit+1,・・・,sit+Tを用いて、状況データの予測値の予測誤差eit=|si-s'j|を求め、予測誤差ejt,ejt+1,・・・,ejt+Tのそれぞれ、又は、すべての総和が、あらかじめ決定された所定の閾値以下であるときのみ、予測部105からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを出力する。
【0100】
この場合、状況データの予測値s'jt,s'jt+1,・・・,s'jt+Tが確からしくないときに、ひいては、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tも確からしくないときに、そのような確からしくない所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tに従った処理が行われること、つまり、ユーザが意図しない処理が行われることを防止することができる。
【0101】
次に、図7は、本発明を適用したデータ処理装置の他の一実施の形態の構成例を示すブロック図である。
【0102】
図7のデータ処理装置は、例えば、ゲーム装置(又は、ゲームのソフトウェア)の一部を構成する。
【0103】
なお、ここでは、図7のデータ処理装置が一部を構成するゲーム装置が、ユーザが複数のキャラクタを操作する、例えば、サッカーや野球等のゲームのゲーム装置であるとする。
【0104】
図7において、データ処理装置は、教示キャラクタ選択部151、及び、ユーザが操作する複数としてのN人のキャラクタと同一の数のN個のキャラクタ動作補助モジュール1521,1522,・・・,152Nから構成される。
【0105】
教示キャラクタ選択部151は、例えば、ユーザの操作に応じて、N人のキャラクタの中から、動作を学習させるキャラクタを選択し、そのキャラクタの動作の補助を担当するキャラクタ動作補助モジュール152nを、学習処理を行うように制御する。
【0106】
キャラクタ動作補助モジュール1521ないし152Nは、上述したように、ユーザが操作するN人のキャラクタと同一の数であるN個だけ設けられている。キャラクタ動作補助モジュール152nは、N人のキャラクタのうちの、n番目のキャラクタの動作の補助を担当する。
【0107】
すなわち、キャラクタ動作補助モジュール152nは、n番目のキャラクタの動作を学習し、その学習結果に従い、n番目のキャラクタの動作を補助する。
【0108】
図8は、図7のデータ処理装置が一部を構成するゲーム装置が表示するゲームの画面(ゲーム画面)を示している。
【0109】
すなわち、図8は、サッカーのゲームのゲーム画面を示している。
【0110】
図8では、サッカーのプレイヤのキャラクタとして、ユーザのチームの一部のキャラクタである4人の味方キャラクタFC#1,FC#2,FC#3、及びFC#4と、ゲーム装置が操る敵のチームの一部のキャラクタである3人の敵キャラクタRC#1,RC#2、及びRC#3が表示されている。
【0111】
さらに、図8においては、サッカーのボールが表示されており、ゲーム中は、例えば、原則として、ボールの最も近くにいる味方キャラクタFC#nが、ユーザの操作に応じて動作し、他の味方キャラクタFC#n'は、ゲーム装置が動作させる。
【0112】
図8では、味方キャラクタFC#1ないしFC#4のうちの、味方キャラクタFC#1がボールに最も近く、したがって、味方キャラクタFC#1は、ユーザの操作に応じて動作し、他の味方キャラクタFC#2ないしFC#4は、ゲーム装置の制御に従って動作する。
【0113】
ゲーム装置が、他の味方キャラクタFC#n'を、どのように動作させるかは、ゲームのソフトウェアにあらかじめプログラミングされている。したがって、例えば、図8において、ユーザが、味方キャラクタFC#1を操作している最中に、他の味方キャラクタFC#2ないしFC#4それぞれが、矢印で示すように移動して欲しいと思っていても、ゲームのソフトウェアに、そのようなプログラミングがされていなければ、他の味方キャラクタFC#2ないしFC#4は、移動しない。
【0114】
そこで、キャラクタ動作補助モジュール152nは、n番目のキャラクタの動作を学習し、その学習結果に従い、n番目のキャラクタの動作を補助することで、そのn番目のキャラクタに、ユーザが所望する動作(ユーザが操作していたならば、行うであろう操作に対応する動作)を行わせる。
【0115】
すなわち、図9は、図7のキャラクタ動作補助モジュール152nの構成例を示している。
【0116】
図9において、キャラクタ動作補助モジュール152nは、状況データ取得部161、操作データ取得部162、予測学習部163、ダイナミクス学習モデル記憶部164、予測部165、及び操作データ出力部166から構成される。
【0117】
状況データ取得部161は、図1の状況データ取得部101と同様に、状況を表す時系列データである状況データsit,sit+1,・・・,sit+Tを取得し、予測学習部163、及び予測部165に供給する。
【0118】
但し、状況データ取得部161は、例えば、味方キャラクタFC#1ないしFC#4の位置や、ボールの位置、ゴールの位置、敵キャラクタRC#1ないしRC#3の位置等を表す、サッカーゲームの各種の状況を表す状況データを取得する。
【0119】
操作データ取得部162は、図1の操作データ取得部101と同様に、ユーザが所望する操作に対応する時系列データである所望操作データajt,ajt+1,・・・,ajt+Tを取得し、予測学習部163に供給する。
【0120】
但し、操作データ取得部162は、例えば、図9のキャラクタ動作補助モジュール152nが担当するn番目のキャラクタ(味方キャラクタ)を移動させるユーザの操作や、そのn番目のキャラクタに、シュート、パス、ドリブルをさせるユーザの操作等の、ユーザが、そのときに所望している動作をn番目のキャラクタに行わせる操作を表す所望操作データを取得する。
【0121】
予測学習部163は、図1の予測学習部103と同様に、状況データ取得部161からの状況データ、及び、操作データ取得部162からの所望操作データのダイナミクスを、ダイナミクス学習モデル記憶部164に記憶されたダイナミクス学習モデルによって学習する。
【0122】
ダイナミクス学習モデル記憶部164は、図1のダイナミクス学習モデル記憶部104と同様に、ダイナミクス学習モデルを記憶する。
【0123】
予測部165は、図1の予測部105と同様に、ダイナミクス学習モデル記憶部164に記憶されたダイナミクス学習モデルが獲得したダイナミクスに基づき、状況データ取得部161から供給される状況データsit,sit+1,・・・,sit+Tを入力として、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+T、さらには、必要に応じて、状況データの予測値s'jt,s'jt+1,・・・,s'jt+Tを求め、操作データ出力部166に供給する。
【0124】
なお、予測部165は、状況データの予測値s'jt,s'jt+1,・・・,s'jt+Tを求める場合には、状況データ取得部161からの状況データ(の真値)sit,sit+1,・・・,sit+Tも、操作データ出力部166に供給する。
【0125】
操作データ出力部166は、図1の操作データ出力部106と同様に、予測部165からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを、図7のデータ処理装置が一部を構成しているゲーム装置の操作データを受け付けるインタフェース(モジュール)に出力する。
【0126】
操作データ出力部166が、予測部165からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを、ゲーム装置の操作データを受け付けるインタフェースに出力した場合、ゲーム装置では、n番目のキャラクタを、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tに従って動作させる処理が行われる。
【0127】
なお、操作データ出力部166では、図1の操作データ出力部106と同様に、状況データの予測値の予測誤差eit=|si-s'j|を求め、予測誤差ejt,ejt+1,・・・,ejt+Tのそれぞれ、又は、すべての総和が、あらかじめ決定された所定の閾値以下(未満)であるときのみ、予測部165からの所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tを出力することができる。
【0128】
次に、図10を参照して、図9の状況データ取得部161が取得する状況データと、操作データ取得部162が取得する所望操作データについて、さらに説明する。
【0129】
図10Aは、学習モード時のゲーム画面を示している。
【0130】
すなわち、図7のデータ処理装置が一部を構成するゲーム装置には、動作モードとして、ゲーム装置(又は、他のユーザ)が操る敵チームとサッカーの試合を行う通常モードと、ユーザのチームのキャラクタの動作の学習を行う学習モードとがある。
【0131】
図10Aは、動作モードが学習モードである場合のゲーム画面を示している。なお、動作モードの切り換えは、例えば、ユーザの操作に応じて行われる。
【0132】
図10Aは、図8の場合と同様のゲーム画面を示している。
【0133】
したがって、図10Aのゲーム画面では、ユーザのチームの一部のキャラクタである4人の味方キャラクタFC#1ないしFC#4と、ゲーム装置が操る敵のチームの一部のキャラクタである3人の敵キャラクタRC#1ないしRC#3が存在する状況であって、かつ、味方キャラクタFC#1ないしFC#4のうちの、味方キャラクタFC#1が、ボールに最も近い位置に存在する状況になっている。
【0134】
図10Aの状況において、ユーザは、ボールに最も近い味方キャラクタFC#1以外の他の味方キャラクタFC#2ないしFC#4それぞれを、矢印で示すように移動させたい場合、例えば、味方キャラクタFC#2を、動作の学習対象のキャラクタとして選択し、その味方キャラクタFC#2を、矢印で示すように移動させる操作を行う。
【0135】
この場合、教示キャラクタ選択部151(図7)は、味方キャラクタFC#2の動作の補助を担当する、例えば、2番目のキャラクタ動作補助モジュール1522を、学習処理を行うように制御する。キャラクタ動作補助モジュール1522は、教示キャラクタ選択部151の制御に従い、状況データ取得部161において、状況データを取得するとともに、操作データ取得部162において、所望操作データ(ここでは、味方キャラクタFC#2を、図10Aに矢印で示すように移動させる操作に対応する操作データ)を取得し、その状況データ及び所望操作データのダイナミクスを学習する学習処理を行う。
【0136】
図10Bは、図10Aのゲーム画面において、ユーザが、味方キャラクタFC#2を、矢印で示すように移動させる操作を行った場合に、味方キャラクタFC#2の動作の補助を担当するキャラクタ動作補助モジュール1522の状況データ取得部161が取得する状況データを示している。
【0137】
なお、図10Bにおいて、横軸は、時刻tを表し、縦軸は、図10Aのゲーム画面の左下の点を原点とするxy座標系における座標(x,y)を表している。
【0138】
状況データ取得部161は、例えば、図10Bに示すように、ボールの位置の軌跡を表す座標(ball_xt,ball_yt)を、i番目の種類の状況データsit,sit+1,・・・,sit+Tとして取得する。
【0139】
図10Cは、図10Aのゲーム画面において、ユーザが、味方キャラクタFC#2を、矢印で示すように移動させる操作を行った場合に、味方キャラクタFC#2の動作の補助を担当するキャラクタ動作補助モジュール1522の操作データ取得部162が取得する所望操作データを示している。
【0140】
なお、図10Cにおいて、横軸は、時刻tを表し、縦軸は、動作の学習対象のキャラクタである味方キャラクタFC#2の図10Aのゲーム画面の左下の点を原点とするxy座標系における座標(x,y)を表している。
【0141】
操作データ取得部162は、図10Cに示すように、ユーザの操作に従って移動する、動作の学習対象のキャラクタである味方キャラクタFC#2の位置の軌跡を表す座標(p_move_xt,p_move_yt)を、j番目の所望操作データajt,ajt+1,・・・,ajt+Tとして取得する。
【0142】
以下、同様に、ユーザは、味方キャラクタFC#3及びFC#4それぞれを、動作の学習対象のキャラクタとして選択し、矢印で示すように移動させる操作を行う。これにより、味方キャラクタFC#3及びFC#4の動作の補助を担当する、例えば、3番目のキャラクタ動作補助モジュール1523、及び4番目のキャラクタ動作補助モジュール1524それぞれでは、キャラクタ動作補助モジュール1522の場合と同様に、状況データと所望操作データとが取得される。
【0143】
次に、図7のデータ処理装置の動作について説明する。
【0144】
図7のデータ処理装置では、図1のデータ処理装置と同様に、キャラクタ動作補助モジュール152n(図9)において、ダイナミクス学習モデル記憶部164に記憶されたダイナミクス学習モデルのパラメータを、状況データ及び所望操作データを用いて更新する、ダイナミクス学習モデルの学習の処理(学習処理)と、学習処理によってダイナミクスを獲得したダイナミクス学習モデルを用い、状況データを入力として、所望操作データの予測値(さらには、状況データの予測値)を求める予測の処理(予測処理)とが行われる。
【0145】
図11は、図7のデータ処理装置で行われる学習処理を説明するフローチャートである。
【0146】
学習処理は、例えば、動作モードが学習モードとされたときに行われる。
【0147】
教示キャラクタ選択部151は、ステップS151において、ユーザが、動作を学習させるキャラクタを選択する操作を行うのを待って、そのキャラクタの動作の補助を担当するキャラクタ動作補助モジュール152nを、学習を行う学習対象モジュールとして選択し、処理は、ステップS152に進む。
【0148】
ステップS152では、学習対象モジュールとして選択されたキャラクタ動作補助モジュール152n(図9)において、状況データ取得部161が、状況データを取得し、予測学習部163に供給して、処理は、ステップS153に進む。
【0149】
ステップS153では、操作データ取得部162が、所望操作データを取得し、予測学習部163に供給して、処理は、ステップS154に進む。
【0150】
ステップS154では、予測学習部163が、ダイナミクス学習モデル記憶部164に記憶されたダイナミクス学習モデルのパラメータを読み出し、処理は、ステップS155に進む。
【0151】
ステップS155では、予測学習部163が、ステップS154でダイナミクス学習モデル記憶部164から読み出したダイナミクス学習モデルのパラメータを、状況データ取得部161からの状況データ、及び、操作データ取得部162からの所望操作データを用いて更新して、処理は、ステップS156に進む。
【0152】
ステップS156では、予測学習部163は、ステップS155で更新したダイナミクス学習モデルのパラメータを、ダイナミクス学習モデル記憶部164に上書きの形で書き込み、処理は終了する。
【0153】
図12は、図7のデータ処理装置で行われる予測処理を説明するフローチャートである。
【0154】
予測処理は、例えば、動作モードが通常モードとされたときに、N個のキャラクタ動作補助モジュール1521ないし152Nそれぞれ(但し、ユーザが操作しているキャラクタを担当するキャラクタ動作補助モジュール152n’は、除外することができる)において行われる。
【0155】
キャラクタ動作補助モジュール152nでは、ステップS161において、状況データ取得部161が、状況データを取得し、予測部165に供給して、処理は、ステップS162に進む。
【0156】
ステップS162では、予測部165が、ダイナミクス学習モデル記憶部164に記憶されたダイナミクス学習モデルのパラメータを読み出し、処理は、ステップS163に進む。
【0157】
ステップS163では、予測部165は、ダイナミクス学習モデル記憶部164に記憶されたダイナミクス学習モデルが獲得したダイナミクスに基づき、状況データ取得部161から供給される状況データを入力として、所望操作データの予測値を求め、操作データ出力部166に供給して、処理は、ステップS164に進む。
【0158】
ステップS164では、操作データ出力部166が、予測部165からの所望操作データの予測値を、図7のデータ処理装置が一部を構成しているゲーム装置の操作データを受け付けるインタフェースに出力し、処理は終了する。
【0159】
これにより、ゲーム装置では、キャラクタ動作補助モジュール152nが担当するキャラクタを、所望操作データの予測値に従って動作させる処理が行われる。
【0160】
以上のように、キャラクタ動作補助モジュール152nでは、状況データ取得部161において、状況を表す時系列データである状況データを取得するとともに、操作データ取得部162において、ユーザが所望する操作に対応する時系列データである所望操作データを取得し、予測学習部163において、状況データ及び所望操作データのダイナミクスを学習し、予測部165において、ダイナミクスに基づき、状況データを入力として、所望操作データの予測値を求め、操作データ出力部166において、所望操作データの予測値を出力するので、ユーザごとに、ユーザが行いたい操作、つまり、ユーザが所望する操作を先取りして行うことができる。
【0161】
すなわち、例えば、図8や図10に示したように、ユーザが、味方キャラクタFC#1を操作している最中に、他の味方キャラクタFC#2ないしFC#4それぞれを、矢印で示すように移動する操作を行いたいときに、そのように移動させることができる。
【0162】
なお、上述したたように、操作データ出力部166において、状況データの予測値の予測誤差eit=|si-s'j|を求め、図1の操作データ出力部106と同様に、予測誤差ejt,ejt+1,・・・,ejt+Tに応じて、所望操作データの予測値a'jt,a'jt+1,・・・,a'jt+Tの出力を制御することにより、ユーザが意図しない処理が行われること、つまり、キャラクタが意図しない動作を行うことを防止することができる。
【0163】
次に、ダイナミクス学習モデルとしては、上述したように、多数のダイナミクスを保持することができるダイナミクス記憶ネットワークを採用することができる。
【0164】
そこで、以下では、例えば、自律型ロボット等の自律的に行動する自律エージェントへの適用を例に、ダイナミクス記憶ネットワークについて説明する。
【0165】
自律型ロボット等の自律エージェントは、様々なセンサ信号に基づいて、どのように振る舞うべきか、つまり、とるべき行動を決定し、その行動に応じたモータ信号を生成することで、自律的に行動する。
【0166】
ここで、センサ信号とは、例えば、カメラが、センシングとしての撮像を行うことで出力する画像信号や、マイク(マイクロフォン)が、センシングとしての集音を行うことで出力する音声信号等である。また、モータ信号とは、例えば、自律エージェントの腕や脚等を駆動するモータに与えられる信号や、音声合成装置に対して与えられる、音声合成に必要な信号等である。
【0167】
自律エージェントは、とるべき行動を決定するときに、センサ信号に基づいて、周囲の状態(例えば、何らかの物体がある位置等)や、自律エージェントの状態(例えば、腕や脚の状態等)等の状況を認識する。この、状況を認識することを、以下、適宜、認知ともいう。
【0168】
また、自律エージェントは、認知(認識)の結果に基づき、とるべき行動(動作)を決定し、その行動に応じたモータ信号を生成する。このモータ信号が、自律エージェントの腕や脚等を駆動するモータに与えられることで、自律エージェントは、腕や脚等を動かす行動をとる。
【0169】
ここで、以下、適宜、とるべき行動に応じたモータ信号を生成することを、単に、行動ともいう。
【0170】
また、以下、適宜、状況を認識し、その認識結果に基づき、とるべき行動を決定して、その行動に応じたモータ信号を生成する認識生成、つまり、認知を行い、その認知の結果に基づき、行動することを、認知行動ともいい、認知行動をモデル化したモデルを、認知行動モデルという。
【0171】
自律エージェントの認知行動は、時間発展法則により定められる力学系(dynamical systems)として記述することができ、様々な行動はその力学系が持つ特定のアトラクタダイナミクス(attractor dynamics)によって実現できることが知られている。例えば、人を模した二足型ロボットの歩行運動は、系の運動状態が様々な初期状態からある特定の周期軌道に落ち着くことを特徴とするリミットサイクルダイナミクス(limit cycle dynamics)として記述することができる。
【0172】
また、自律エージェントとしての、例えば、アームロボットがある対象物に対して手先を伸ばすようなリーチング運動は、様々な初期状態からある特定の固定点に落ち着くことを特徴とする不動点ダイナミクス(fixed-point dynamics)として記述することができる。さらに、全ての運動は、不動点ダイナミクスで実現可能な離散運動(discrete movement)とリミットサイクルダイナミクスで実現可能な周期運動(cyclic movement)の組み合わせにより実現できるとも言われている。
【0173】
したがって、ダイナミクスを学習するダイナミクス学習モデルは、認知行動モデルとして利用することができる。
【0174】
ダイナミクス学習モデルの1つである、例えば、RNNは、ネットワークに回帰ループで結合されるコンテキストユニットを持ち、そこに内部状態を保持することによって、理論的には、任意の力学系を近似可能である。
【0175】
但し、1つのRNNでは、多数のダイナミクスを獲得(学習)することは、学習の収束性などから難しいことがある。
【0176】
これに対して、ダイナミクス記憶ネットワークによれば、多数のダイナミクスを容易に獲得することができる。
【0177】
そこで、図13は、ダイナミクス記憶ネットワークによって、時系列データのダイナミクスを獲得する学習をし、その学習結果を用いて、時系列データの認識及び生成を行うデータ処理装置の構成例を示している。
【0178】
図13のデータ処理装置では、観測することができる観測信号が、信号入力部11に入力される。観測信号は、例えば音や画像の信号、LED(Light Emitting Diode)の明るさ、モータの回転角度や回転角速度などであり、図13のデータ処理装置が、例えば、自律エージェントの認知行動に利用されることとすると、その自律エージェントに対して入出力し得る信号が、観測信号となり得る。
【0179】
ここで、ダイナミクス学習モデルとして、ダイナミクス記憶ネットワークが採用される場合、状況データ、及び所望操作データが、観測信号に相当する。
【0180】
信号入力部11は、観測される観測信号に対応する電気信号を出力する。具体的には、信号入力部11は、例えば、観測信号が音の信号の場合は、センサとしてのマイクに対応し、観測信号が画像信号の場合は、センサとしてのカメラに対応する。また、モータの回転角度や回転速度の計測装置なども、信号入力部11に対応する。
【0181】
ここで、以下、適宜、信号入力部11に入力される信号も、信号入力部11が出力する信号も、観測信号という。
【0182】
なお、観測信号は、時間的に定常的な定常信号であっても良いし、時間的に変化する(定常的でない)非定常信号であっても良い。
【0183】
以下では、例えば、センサモータ信号を観測信号とする。センサモータ信号とは、例えば、図示せぬ自律型ロボットが有するカメラやマイクその他のセンサが出力するセンサ信号と、自律型ロボットの腕や脚等を駆動するモータに与えられるモータ信号とを、一定の時間間隔でサンプリングして得られる、同一のサンプル点(時刻)のサンプル値をコンポーネントとするベクトルの時系列である。
【0184】
信号入力部11は、時系列データである観測信号を、逐次、適当な長さに区切って出力する。すなわち、信号入力部11は、観測信号としてのセンサモータ信号から、例えば、100サンプル(点)を、1サンプルずつシフトしながら抽出し、その100サンプルの時系列データを、特徴量抽出部12に供給する。
【0185】
なお、センサモータ信号のサンプリングの時間間隔や、信号入力部11がセンサモータ信号から抽出するサンプルの数(サンプル数)は、観測信号とするセンサモータ信号に応じて適切に調整される。
【0186】
特徴量抽出部12は、信号入力部11から供給される観測信号から特徴量を抽出し、その特徴量の時系列を、学習部13、認識部14、及び生成部15に供給する。
【0187】
すなわち、観測信号が、例えば、音声信号である場合には、特徴量抽出部12は、その音声信号の一定時間分ごとに、周波数分析その他の音響処理を施し、音声認識等で広く利用されている、例えば、メルケプストラムなどの音声の特徴量を抽出する。そして、特徴量抽出部12は、観測信号から抽出した特徴量を、時系列に出力し、これにより、特徴量抽出部12から学習部13、認識部14、及び生成部15に対して、特徴量の時系列データが供給される。
【0188】
学習部13は、特徴量抽出部12からの時系列データに基づき、ダイナミクスを学習する学習処理を行い、認識部14及び生成部15は、特徴量抽出部12からの時系列データに基づき、学習処理の結果を利用して、時系列データを認識する認識処理や、時系列データを生成する生成処理、時系列データを認識し、その認識結果に応じて、時系列データを生成する認識生成処理を行う。
【0189】
すなわち、学習部13は、特徴量抽出部12からの時系列データに基づき、後述するネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの各ダイナミクスを自己組織的に更新する学習処理を行う。
【0190】
ここで、学習処理では、ダイナミクス記憶ネットワークのパラメータの更新が行われる。パラメータの更新は、学習とも呼ばれる。
【0191】
学習部13による学習処理の詳細は後述するが、学習処理では、基本的には、ラベル(正解ラベル)の付与されていない時系列データを、ダイナミクス記憶ネットワークに対して、繰り返し与えていく(供給していく)と、ダイナミクス記憶ネットワークが、その時系列データの中の特徴的なダイナミクスを自己組織的に獲得していく教師なし学習が実行される。その結果、ダイナミクス記憶ネットワークには、そこに与えられた時系列データの代表的なダイナミクスが記憶される。
【0192】
ここで、ダイナミクス記憶ネットワークは、例えば、後述するように、力学系近似モデルの1つであるRNNによって、ダイナミクスを保持する。例えば、ある時刻tのデータの入力に対して、次の時刻t+1のデータを出力するRNN(の後述する入力層の入力ユニット)に対して入力される、ある時刻tのデータを、入力データというとともに、その時刻tのデータに対してRNNが出力する時刻t+1のデータを、出力データということとすると、学習部13、認識部14、及び生成部15に対して、特徴量抽出部12から供給される時系列データは、入力データである。
【0193】
認識部14は、入力データ、つまり、特徴量抽出部12から供給される時系列データを認識の対象として、認識処理を行う。
【0194】
すなわち、認識部14は、ネットワーク記憶部16のダイナミクス記憶ネットワークが記憶しているダイナミクスの中で、特徴量抽出部12から供給される時系列データに最も適合するダイナミクスを決定し、そのダイナミクスを表す情報を、入力データとしての時系列データの認識結果として出力する。
【0195】
生成部15には、特徴量抽出部12から時系列データが供給される他、制御信号が供給される。生成部15は、ネットワーク記憶部16のダイナミクス記憶ネットワークが記憶しているダイナミクスの中から、時系列データの生成に用いるダイナミクスを、そこに供給される制御信号に従って決定し、そのダイナミクスを有する時系列データを、特徴量抽出部12から供給される時系列データを必要に応じて用いて生成する生成処理を行う。
【0196】
なお、生成部15が生成処理を行うことによって得られる時系列データは、必要な処理が施されて出力される。
【0197】
ネットワーク記憶部16は、ダイナミクス記憶ネットワークを記憶する。
【0198】
ダイナミクス記憶ネットワークは、ダイナミクスを1つのノードに保持し、複数のノードによって構成される。
【0199】
ここで、ダイナミクスは、時間変化する力学系を表すもので、例えば、具体的な関数によって表現することができる。ダイナミクス記憶ネットワークでは、時系列データの時間変化の特徴が、ダイナミクスとして記憶される。
【0200】
なお、本実施の形態では、ダイナミクス記憶ネットワークのノードにおいて、例えば、内部状態量を持つ力学系近似モデルによってモデル化されたダイナミクスを保持することとする。この場合、ダイナミクス記憶ネットワークは、内部状態量を持つ力学系近似モデルをノードとするネットワーク(内部状態量を持つ力学系近似モデルを保持(記憶)するノードによって構成されるネットワーク)である。
【0201】
ここで、内部状態量を持つ(力学系近似)モデルとは、例えば、ある入力があると、その入力に応じて出力をするモデルを考えた場合に、外部から観測することができる入力と出力とは別に、外部からは観測されない(できない)、モデルの内部の状態を表す内部状態量を有するモデルである。内部状態量を持つモデルでは、入力の他に、内部状態量をも用いて出力が求められるため、同一の入力があっても、内部状態量が異なると、異なる出力が得られる。
【0202】
内部状態記憶部17は、ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの内部状態量を記憶する。内部状態記憶部17に記憶された内部状態量は、認識生成処理において、時系列データの認識時に、適宜更新され、時系列データの生成時に、必要に応じて利用される。この認識生成処理によって、自律エージェントの認知行動を実現することができる。
【0203】
次に、図14は、図13のネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの例を、模式的に示している。
【0204】
ダイナミクス記憶ネットワークは、複数のノードとリンクによって構成される。
【0205】
ノードは、ダイナミクスを保持(記憶)する。
【0206】
リンクは、ノードどうしの間に結合関係を与える。
【0207】
図14では、ダイナミクス記憶ネットワークは、9個のノードN1ないしN9を有し、各ノードNi(i=1,2,・・・,9)には、9個のノードN1ないしN9が2次元の格子状に配置されるように、縦方向及び横方向に隣接するノードとの間にリンクが与えられている。
【0208】
すなわち、図14では、リンクによって、9個のノードN1ないしN9に、2次元の配置構造が与えられている。
【0209】
ここで、ダイナミクス記憶ネットワークにおいては、ノードNiの配置構造に応じて、ノードNiの位置を表す座標系を定義することができる。すなわち、例えば、図14に示すように、2次元の配置構造のノードNiについては、2次元座標系を定義し、その2次元座標系上の座標によって、ノードNiの位置を表すことができる。
【0210】
例えば、いま、図14のダイナミクス記憶ネットワークについて、左下のノードN7の位置を原点(0,0)とするとともに、左から右方向をx軸とし、下から上方向をy軸とする2次元座標系を定義して、リンクの長さを0.5とすると、図14のダイナミクス記憶ネットワークにおいて、例えば、右上のノードN3の位置の座標は、(1,1)となる。
【0211】
また、ダイナミクス記憶ネットワークを構成する任意の2つのノードNi及びNjそれぞれが保持するダイナミクスどうしが類似している(近い)度合いを表す尺度として、ノードNiとNjとの間の距離を導入する。
【0212】
いま、ノードNiとNjとの間の距離として、ノードNiとNjとの間のユークリッド距離を採用することとすると、例えば、左下のノードN7と、右上のノードN3との間の距離は、√((0-1)2+(0-1)2)=√2となる。
【0213】
図15は、図13のネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークのノードNiの構成例を模式的に示している。
【0214】
ノードNiは、例えば、内部状態量を持ち、力学系を表すことができる力学系近似モデルを有する。
【0215】
図15では、内部状態量を持つ力学系近似モデルとして、例えば、RNNが採用されている。
【0216】
図15において、力学系近似モデルとしてのRNNは、3層型NNに、その出力層から入力層への回帰ループを持たせたものとなっており、その回帰ループによって、内部状態量が保持される。
【0217】
すなわち、図15において、力学系近似モデルとしてのRNNは、入力層、隠れ層(中間層)、及び出力層の3層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成される。
【0218】
図15において、入力層は、入力ユニット、及びコンテキストユニットを有する。
【0219】
入力ユニットには、時刻tの入力データ(ベクトル)Xtとしての時系列データが入力される。
【0220】
コンテキストユニットには、例えば、出力層の一部のユニットが出力するデータが、内部状態量であるコンテキストとしてフィードバックされる。すなわち、図15のRNNでは、コンテキストユニットと、出力層の一部のユニットとが、回帰ループによって接続されており、コンテキストユニットには、出力層の一部のユニットが出力するデータが、回帰ループを介して、コンテキストとして入力される。
【0221】
ここで、時刻tの入力データXtが入力ユニットに入力されるときに、コンテキストユニットに入力される時刻tのコンテキストCtは、1時刻前の時刻t-1の入力データXt-1に対して、出力層の一部のユニットが出力したデータである。したがって、時刻tの入力データXtの入力に対して出力層の一部のユニットが出力したデータは、次の時刻t+1のコンテキストCt+1となる。
【0222】
隠れ層のユニットは、入力層に入力される入力データXt、及びコンテキストCtを対象として、ニューロンとしてのユニットどうしを結合する結合重み(結合荷重)を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
【0223】
出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストCt+1となるデータが出力され、入力層のコンテキストユニットにフィードバックされる。また、出力層の残りのユニットからは、例えば、入力データXtに対する出力データとして、その入力データXtの次の時刻t+1の入力データXt+1の予測値X't+1が出力される。
【0224】
以上のようなRNNにおいて、入力データとしての時系列データを、RNNの学習用の学習データとして用い、時刻tの時系列データXtから、次の時刻t+1の時系列データXt+1を予測することを学習(予測学習(prediction learning))することにより、学習データ(時系列データ)の時間発展法則を学習することができる。
【0225】
ここで、RNNのような内部状態量を持つ力学系近似モデルのパラメータを求める学習の方法としては、例えば、BPTT(Back-Propagation Through Time)法を採用することができる。BPTT法については、例えば、D. E. Rumelhart, G. E. Hinton & R. E. Williams, 1986 "Learning internal representations by error propagation", In D. E. Rumelhart & J. McClelland, "Parallel distributed processing, pp. 318-364, Cambridge, MA: MIT Pressや、R. J. Williams and D. Zipser, "A learning algorithm for continually running fully recurrent neural networks", Neural Computation, 1:270-280, 1989等に記載されている。
【0226】
学習部13は、力学系近似モデルとしてのRNNが保持するダイナミクスが、ダイナミクス記憶ネットワークの学習に用いられる時系列データである学習データの影響を受けるように、RNNのパラメータである結合重みを更新するRNNの学習を行う。
【0227】
なお、学習部13は、力学系近似モデルが保持するダイナミクスが、学習データの影響を受ける度合いを強くしたり弱くしたりするための調整機能を有している。
【0228】
すなわち、ダイナミクス記憶ネットワークの学習では、学習データが入力されるたびに、ダイナミクス記憶ネットワークを構成するノードが有する力学系近似モデルのパラメータが少しずつ更新される。このパラメータの更新時に、学習部13は、ノードごとに、そのノードが保持するダイナミクスを更新する程度、つまり、学習データを、ノードが保持するダイナミクスに影響させる程度を表す学習重みを決定する。
【0229】
学習部13は、学習重みに応じて、ノードが保持するダイナミクスを、学習データのダイナミクスに近くなるように、自己組織的に更新する
【0230】
すなわち、学習部13は、ノードの力学系近似モデルが、例えば、RNNである場合には、そのRNNが保持するダイナミクスが、学習データの影響を受ける度合いを、学習重みに応じて調整しながら、RNNのパラメータを、BPTT法により更新する。
【0231】
学習部13において、RNNが保持するダイナミクスが学習データの影響を受ける度合いの調整は、例えば、BPTT法によるRNNのパラメータ(結合重み)の更新時の、パラメータを計算する繰り返し回数を、学習重みに応じて制限することや、パラメータを更新する程度に影響を与える予測誤差を、学習重みに応じて補正すること等によって行われる。
【0232】
すなわち、BPTT法によるRNNのパラメータの更新では、例えば、入力データXtに対する出力データとしての、その入力データXtの次の時刻t+1の入力データXt+1の予測値X't+1の、真値(時刻t+1の入力データXt+1)に対する予測誤差が小さくなるように、RNNのパラメータとしての結合重みを、予測誤差に応じた値だけ更新する計算が、RNNのパラメータが収束するまで繰り返し行われる。
【0233】
学習部13は、例えば、学習重みが小さいほど、パラメータの計算の繰り返し回数を少なくすることで、RNNが保持するダイナミクスが学習データの影響を受ける度合いを小に調整する。
【0234】
あるいは、学習部13は、例えば、学習重みが小さいほど、予測誤差を小さい値に補正することで、RNNが保持するダイナミクスが学習データの影響を受ける度合いを小に調整する。
【0235】
いずれにしても、学習重みが大きいときには、RNNのパラメータは、RNNが保持するダイナミクスが学習データの影響を大きく受けるように更新される。また、学習重みが小さいときには、RNNのパラメータは、RNNが保持するダイナミクスが学習データの影響をあまり受けないように(少ししか受けないように)更新される。
【0236】
次に、学習重みの決定の方法について説明する。
【0237】
学習部13は、ダイナミクス記憶ネットワークのノードの中から、学習データに最も適合するダイナミクスを保持するノードである勝者ノードを決定し、その勝者ノードから各ノードまでの距離に応じて、各ノードが保持するダイナミクスを更新する程度を表す学習重みを決定する。
【0238】
すなわち、学習部13は、特徴量抽出部12から1サンプルの特徴量が供給されると、その1サンプルの特徴量と、特徴量抽出部12から直前に供給された過去のT-1サンプルの特徴量とによって、Tサンプルの特徴量(サンプル値)の時系列データを、観測される(た)観測時系列データとして生成する。
【0239】
ここで、この場合、特徴量抽出部12が出力する特徴量の時系列データを、1サンプルずつシフトしながら、Tサンプルずつ逐次抽出して得られる時系列データが、観測時系列データとなる。
【0240】
なお、以下では、時刻tの(観測)時系列データXtとは、例えば、時刻t-T+1のサンプル値から、時刻tのサンプル値までのTサンプルのサンプル値Xt-T+1,Xt-T+2,・・・,Xt-1,Xtを意味することとする。
【0241】
学習部13は、時刻tの観測時系列データを生成すると、その時刻tの観測時系列データを学習データとして、ダイナミクス記憶ネットワークの各ノード(が有するダイナミクス)が学習データに適合する度合いを表すスコアを求める。
【0242】
すなわち、いま、学習データとしての時刻tの時系列データとしてのTサンプルのサンプル値Xt-T+1,Xt-T+2,・・・,Xt-1,Xtのうちの時刻tのサンプル値Xtを、ノードが有する力学系近似モデルとしてのRNNに入力したときに、そのRNNが出力する時刻t+1のサンプル値Xt+1の予測値X't+1の、時刻t+1のサンプル値(の真値)Xt+1に対する予測誤差δ(t)が、例えば、式δ(t)=|X't+1-Xt+1|2で定義されることとすると、学習部13は、時刻tの時系列データとしてのTサンプルのサンプル値Xt-T+1,Xt-T+2,・・・,Xt-1,Xtについての予測誤差δ(t-T+1),δ(t-T+2),・・・,δ(t-1),δ(t)の、例えば、加算値(総和)Et(=δ(t-T+1)+δ(t-T+2)+・・・+δ(t-1)+δ(t))を、学習データとしての時刻tの時系列データ(の全体)に対するノードのスコアとして求める。
【0243】
なお、この場合、スコアが小さいほど、予測値が真値に近いことを表す。そこで、以下、適宜、スコアが小さいことを、スコアが良い、又は高いともいい、スコアが大きいことを、スコアが悪い、又は低いともいう。
【0244】
RNNのような内部状態量を持つ力学系近似モデルについては、その内部状態量を適切な値とすることで、スコアはより良くなる。
【0245】
そのため、学習部13は、スコアの計算にあたっては、予測誤差を最小化するように、BPTT法によって、内部状態量としてのRNNのコンテキストを調整した後、そのコンテキストを更新しながら、スコアを計算する。
【0246】
そして、学習部13は、ダイナミクス記憶ネットワークのノードの中から、スコアが最も良いRNNを有するノードを、学習データに最も適合するダイナミクスを保持する勝者ノードに決定する。
【0247】
さらに、学習部13は、ダイナミクス記憶ネットワークの各ノードと、勝者ノードとの間の距離dを求める。
【0248】
なお、ノードNiとNjとの間の距離としては、図14で説明したノードNiとNjとの間のユークリッド距離の他、例えば、ノードNiとNjとのスコアの差(の絶対値)を採用することが可能である。この場合、スコアがより良いノードが、勝者ノードとの間の距離がより近いノードとなる。
【0249】
また、任意のノードNiと勝者ノードとの間の距離としては、ノードNiのスコアそのもの(又は、逆数等)を採用することが可能である。
【0250】
学習部13は、ダイナミクス記憶ネットワークの各ノードの、勝者ノードとの間の距離dを求めると、距離dの増加に対して学習重みαが減少する関係を表す曲線(以下、距離/重み曲線という)に従って、ノードの学習重みαを決定する。
【0251】
すなわち、図16は、距離/重み曲線の例を示している。
【0252】
図16の距離/重み曲線において、横軸(左から右方向)は、学習重みαを示しており、縦軸(上から下方向)は、勝者ノードからの距離dを示している。
【0253】
図16の距離/重み曲線によれば、勝者ノードとの距離dが近いノードほど、大きな学習重みαが決定され、距離dが遠いノードほど、小さな学習重みαが決定される。
【0254】
ここで、図16では、縦軸に沿って、ダイナミクス記憶ネットワークを構成する6個のノードN1'ないしN6'が、各ノードNi'と勝者ノードとの距離dに対応する位置(縦軸の位置)に記載されている。
【0255】
図16では、ダイナミクス記憶ネットワークを構成する6個のノードN1'ないしN6'が、その順で、勝者ノードとの距離dが近いノードになっている。ダイナミクス記憶ネットワークを構成する6個のノードN1'ないしN6'のうち、勝者ノードとの距離dが最も近いノード、即ち、勝者ノードとの距離が0のノードであるノードN1'は、勝者ノード(となっているノード)である。
【0256】
図16の距離/重み曲線は、例えば、式(1)によって与えられる。
【0257】
【数1】

・・・(1)
【0258】
ここで、式(1)において、γは0<γ<1の範囲の減衰係数であり、Δは、勝者ノードを中心として各ノードの学習重みαを調整するための変数(以下、適宜、調整変数という)である。
【0259】
調整変数をΔを大きい値から少しずつ0に近づけていくと、学習重みαは勝者ノードから離れるにしたがってより小さい値となる。基本的には、調整変数Δは、学習の開始時は大きくし、時間の経過とともに小さくなるように調整される。
【0260】
式(1)の学習重みαに基づき、勝者ノードのパラメータ(ノードが有する力学系近似モデルのパラメータ)は、学習データの影響を最も強く受けるように更新され、勝者ノードから離れるにしたがって、学習データの影響が小さくなるように、他のノード(勝者ノード以外のノード)のパラメータの更新が行われる。
【0261】
次に、図17のフローチャートを参照して、図13の学習部13による学習処理について説明する。
【0262】
学習部13は、ステップS11において、ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークのすべてのパラメータの初期化を行う。具体的には、ダイナミクス記憶ネットワークの各ノードの内部状態量を持つ力学系近似モデル(図15)のパラメータに適当な値が初期値として付与される。
【0263】
ここで、ダイナミクス記憶ネットワークのノードが有する力学系近似モデルが、例えば、RNNである場合には、ステップS11では、そのRNNのユニットに入力される信号に与えられる結合重み等を、力学系近似モデルのパラメータとして、そのパラメータに適当な初期値がセットされる。
【0264】
その後、特徴量抽出部12から学習部13に対して、1サンプルの特徴量が供給されるのを待って、処理は、ステップS11からステップS12に進み、学習部13は、学習データを生成する。
【0265】
すなわち、学習部13は、特徴量抽出部12から1サンプルの特徴量が供給されると、その1サンプルの特徴量と、特徴量抽出部12から直前に供給されたT-1サンプルの特徴量とによって、Tサンプルの特徴量(サンプル値)の時系列データを、観測時系列データとして生成する。
【0266】
その後、処理は、ステップS12からステップS13に進み、学習部13は、直前のステップS12で生成した観測時系列データを学習データとして、その学習データに対する、ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの各ノードのスコアの計算を、ノードが有する、内部状態量を持つ力学系近似モデルの内部状態量を更新しながら行う。
【0267】
ここで、内部状態量を持つ力学系近似モデルが、例えば、RNNである場合には、所定の基準値を基準として値を変えていく(更新していく)変数の値のうちの、スコアを最も良くする値が、内部状態量としてのRNNのコンテキストの初期値に決定され、コンテキストを初期値から更新しながら、スコアの計算が行われる。
【0268】
なお、コンテキストの初期値の決定に用いる所定の基準値としては、例えば、ランダムな値や、前回のRNNのパラメータの更新時に求められた、コンテキストの最終的な更新値(以下、適宜、前回更新値という)などを採用することができる。
【0269】
例えば、今回のRNNのパラメータの更新時に学習部13で生成された観測時系列データと、前回のRNNのパラメータの更新時に学習部13で生成された観測時系列データとが、何らの関係もないことが分かっている場合には、コンテキストの初期値の決定に用いる所定の基準値としては、ランダムな値を採用することができる。
【0270】
また、例えば、今回のRNNのパラメータの更新時に学習部13で生成された観測時系列データと、前回のRNNのパラメータの更新時に学習部13で生成された観測時系列データとが、連続する時系列データなどのように、何らかの関係を有することが分かっている場合には、コンテキストの初期値の決定に用いる所定の基準値としては、前回更新値を採用することができる。なお、前回更新値を、コンテキストの初期値の決定に用いる所定の基準値として採用する場合には、前回更新値を、そのまま、コンテキストの初期値に決定することができる。
【0271】
ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークのすべてのノードのスコアが求められると、処理は、ステップS13からステップS14に進み、学習部13は、ダイナミクス記憶ネットワークを構成するノードそれぞれのスコアを比較することによって、最もスコアの良いノードを、学習データに最も適合するノードである勝者ノードに決定して、処理は、ステップS15に進む。
【0272】
ステップS15では、学習部13は、ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの各ノードの学習重みを、図16で説明したように、勝者ノードを中心として決定する。
【0273】
その後、処理は、ステップS15からステップS16に進み、学習部13が、学習データを用い、ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの各ノードが有する、内部状態量を持つ力学系近似モデルのパラメータの更新を、学習重みに応じて行う。
【0274】
ここで、内部状態量を持つ力学系近似モデルが、例えば、RNNである場合には、ステップS16でのパラメータの更新は、BPTT法によりパラメータ(結合重み)を計算する繰り返し回数を、学習重みに応じて制限して行われる。すなわち、学習重みが小さいほど、繰り返し回数は、小さい値に制限される。
【0275】
なお、勝者ノードのパラメータだけを更新する方法はWTA(winner-take-all)と呼ばれる学習方法であり、勝者ノードの近傍のノードに対してもパラメータの更新を行う方法はSMA(soft-max adaptation)と呼ばれる学習方法である。学習部13は、SMAで、ダイナミクス記憶ネットワーク(のノードが有する力学系近似モデル)のパラメータの更新を行う。
【0276】
すなわち、図16で説明したように、学習重みは、勝者ノードとの距離が近い、勝者ノードの近傍にあるノードについてほど大きな値に決定され、逆に、勝者ノードとの距離が遠いノードについてほど小さな値に決定される。その結果、勝者ノードの近傍にあるノードについては、学習データの影響をより強く受けるように、ノードのパラメータを更新し、勝者ノードとの距離が遠いノードについては、学習データの影響をあまり受けないように、ノードのパラメータを更新する近傍競合学習が行われる。
【0277】
その後、特徴量抽出部12から学習部13に対して、1サンプルの特徴量が新たに供給されるのを待って、処理は、ステップS16からステップS12に戻り、以下、ステップS12ないしS16の処理が繰り返される。
【0278】
次に、図18のフローチャートを参照して、図13の認識部14による認識処理について説明する。
【0279】
ステップS31において、認識部14は、認識処理に用いる認識データを生成する。
【0280】
すなわち、認識部14は、例えば、特徴量抽出部12から、Tサンプルの特徴量(サンプル値)が供給されるのを待って、そのTサンプルの特徴量の時系列である観測時系列データを、認識データとする。
【0281】
そして、処理は、ステップS31からステップS32に進み、認識部14は、認識データに対するダイナミクス記憶ネットワークの各ノードのスコアの計算を、図17の学習処理の場合と同様に、ノードが有する、内部状態量を持つ力学系近似モデルの内部状態量を更新しながら行う。
【0282】
ダイナミクス記憶ネットワークのすべてのノードのスコアが求められると、処理は、ステップS32からステップS33に進み、認識部14は、ダイナミクス記憶ネットワークを構成するノードそれぞれのスコアを比較することによって、最もスコアの良いノードを、認識データに最も適合するノードである勝者ノードに決定して、処理は、ステップS34に進む。
【0283】
ステップS35では、認識部14は、勝者ノードを表す情報を、認識データの認識結果として出力して、処理は終了する。
【0284】
ここで、認識部14が出力した認識結果は、図13のデータ処理装置の外部に出力することができる。また、認識部14が出力した認識結果は、制御信号として、生成部15に供給することができる。
【0285】
次に、図19のフローチャートを参照して、図13の生成部15による生成処理について説明する。
【0286】
図17の学習処理によれば、ダイナミクス記憶ネットワークの各ノードは、内部状態量を持つ力学系近似モデルによってダイナミクスを学習し、記憶(獲得)するが、その後は、その各ノードの内部状態量を持つ力学系近似モデルから、その力学系近似モデルによってモデル化されたダイナミクスを有する時系列データ(ダイナミクスとして獲得された時系列パターンの時系列データ)を生成することができる。
【0287】
内部状態量を持つ力学系近似モデルとしてRNNを用いた場合には、所定の内部状態量をRNNに与えることで、そのRNNを有するノードに保持されるダイナミクスから時系列データを容易に生成することができる。
【0288】
具体的には、RNNの入力にある時刻tの状態ベクトルを与えると、次の時刻t+1の状態ベクトルが出力される。したがって、この操作を所定の時間ステップ(サンプル点)分だけ行うことで、ダイナミクス記憶ネットワークの各ノードから、その所定の時間ステップ分に相当するサンプル数の時系列データを生成することができる。
【0289】
すなわち、図19のステップS51において、生成部15は、ダイナミクス記憶ネットワークのノードのうちの、どのダイナミクスに対応するノードから時系列データを生成するかを決定する。
【0290】
ここで、時系列データの生成に用いられるノードを、以下、適宜、生成ノードともいう。生成処理では、生成部15は、例えば、ダイナミクス記憶ネットワークのノードの中から、1個のノードをランダムに選択し、そのノードを、生成ノードに決定する。あるいは、生成部15は、例えば、ユーザからの指示等に応じて供給される制御信号に基づいて、ダイナミクス記憶ネットワークのノードの中から、生成ノードとするノードを決定する。
【0291】
生成ノードが決定されると、処理は、ステップS51からステップS52に進み、生成部15は、生成ノードが保持する内部状態量を持つ力学系近似モデルのパラメータに基づき、時系列データを、力学系近似モデルの内部状態量を更新しながら生成して、処理は、ステップS53に進む。
【0292】
ステップS53では、生成部15は、生成ノードの力学系近似モデルから生成された時系列データ(以下、適宜、生成時系列データともいう)を必要に応じて変換し、出力して、処理は終了する。
【0293】
ここで、学習部13が学習処理に用いる学習データとしての観測時系列データは、センサモータ信号の特徴量であるため、生成部15が生成する生成時系列データも、センサモータ信号の特徴量である。生成時系列データとしてのセンサモータ信号の特徴量は、生成部15が、ステップS53において、センサモータ信号に変換し、そのセンサモータ信号のうちのモータ信号が、例えば、自律エージェントに供給される。
【0294】
なお、力学系近似モデルが、例えば、RNNである場合、生成部15での生成時系列データの生成時には、内部状態量としてのRNNのコンテキストユニット(図15)に入力されるコンテキストの初期値、及び入力ユニット(図15)に入力されるデータの初期値として、例えば、ランダムな値が用いられる。
【0295】
また、ある時刻t+1においてRNNの入力ユニット(図15)に入力されるデータとしては、直前の時刻tにおいてRNNの出力層から出力された、時刻t+1のデータの予測値が用いられる。
【0296】
次に、図20のフローチャートを参照して、図13の認識部14、及び生成部15による認識生成処理について説明する。
【0297】
上述したように、認識生成処理によれば、自律エージェントの認知行動を実現することができる。
【0298】
認識部14、及び生成部15において、内部状態量を持つ力学系近似モデルによってダイナミクスを学習したダイナミクス記憶ネットワークを用いて、認識生成を行う場合、図18の認識処理と図19の生成処理を逐次的に組み合わせるだけでは、力学系近似モデルの内部状態量を考慮した認識生成を行うことは困難である。
【0299】
そこで、認識部14、及び生成部15は、内部状態記憶部17において、図18の認識処理において更新された力学系近似モデルの内部状態量(内部状態)を記憶し、その内部状態量を図19の生成処理において用いることで、観測信号から得られる時刻tの観測時系列データに対して、次の時刻t+1の観測時系列データの予測値を生成する認識生成処理を行う。
【0300】
すなわち、認識生成処理では、ステップS71において、認識部14が、図18のステップS31の場合と同様に、特徴量抽出部12からの、Tサンプルの特徴量(サンプル値)の時系列である観測時系列データを、認識データとする。
【0301】
その後、処理は、ステップS71からステップS72に進み、認識部14は、認識データに対する、ダイナミクス記憶ネットワークの各ノードのスコアの計算を、図17の学習処理の場合と同様に、ノードが有する、内部状態量を持つ力学系近似モデルの内部状態量を更新しながら行う。
【0302】
但し、ステップS72のスコアの計算では、認識部14は、内部状態記憶部17から前回更新されて記憶されている内部状態量を読み込み、その内部状態記憶部17から読み込んだ値を、力学系近似モデルの内部状態量(例えば、RNNのコンテキスト)の初期値とする。
【0303】
ダイナミクス記憶ネットワークのすべてのノードのスコアが求められると、処理は、ステップS72からステップS73に進み、認識部14は、ダイナミクス記憶ネットワークを構成するノードそれぞれのスコアを比較することによって、最もスコアの良いノードを、認識データに最も適合するノードである勝者ノードに決定する。
【0304】
さらに、ステップS73では、認識部14は、勝者ノードが決定されたときの内部状態量の更新値(更新された内部状態量)と、その勝者ノードが決定されたときの内部状態量の初期値とを、内部状態記憶部17に保存する(記憶させる)。
【0305】
ここで、内部状態記憶部17に記憶された内部状態量の更新値は、認識部14での次回のスコアの計算を行うステップS72において、力学系近似モデルの内部状態量(例えば、RNNのコンテキスト)の初期値として用いられる。
【0306】
また、内部状態記憶部17に記憶された内部状態量の初期値は、生成部15において、時系列データの生成時に用いられる。
【0307】
その後、認識部14は、勝者ノードを表す情報を出力し、処理は、ステップS73からステップS74に進む。認識部14が出力した情報は、制御信号として、生成部15に供給される。
【0308】
ステップS74では、生成部15は、ダイナミクス記憶ネットワークのノードのうちの、認識部14から制御信号として供給される情報が表す勝者ノードを、生成ノードとして、その生成ノードが保持する内部状態量を持つ力学系近似モデルのパラメータに基づき、生成時系列データを、力学系近似モデルの内部状態量を更新しながら生成して、処理は、ステップS75に進む。
【0309】
すなわち、生成部15は、内部状態記憶部17の記憶値を、ネットワーク記憶部16に記憶されたダイナミクス記憶ネットワークの生成ノードの力学系近似モデルの内部状態量の初期値として読み込む。
【0310】
つまり、生成部15は、内部状態記憶部17の記憶値のうちの、生成ノードが認識部14において勝者ノードに決定されたときの内部状態量の初期値を読み出し、生成ノードの力学系近似モデルの内部状態量の初期値にセットする。
【0311】
さらに、生成部15は、特徴量抽出部12から供給される特徴量の時系列から、認識部14がステップS71で生成するのと同一の認識データを生成し、その認識データを、生成ノードの力学系近似モデルに与え、その力学系近似モデルの内部状態量を更新しながら、生成時系列データを生成する。
【0312】
具体的には、力学系近似モデルが、例えば、RNNである場合、RNNのコンテキストユニット(図15)に対して、内部状態記憶部17の記憶値のうちの、生成ノードが認識部14において勝者ノードに決定されたときのコンテキストの初期値が、生成時系列データを生成するときのコンテキストの初期値として入力される。
【0313】
さらに、RNNの入力ユニット(図15)に対して、認識データが入力される。
【0314】
そして、力学系近似モデルの内部状態量を更新しながら、認識データとしての観測時系列データの次の時刻の観測時系列データの予測値としての生成時系列データが生成される。
【0315】
ステップS75では、生成部15は、生成ノードの力学系近似モデルから生成された生成時系列データを、図19のステップS53の場合と同様に、必要に応じて変換し、出力して、処理は、ステップS71に戻り、以下、ステップS71ないしS75の処理が繰り返される。
【0316】
ここで、生成部15が生成する生成時系列データは、図19で説明したように、センサモータ信号の特徴量であるが、そのセンサモータ信号の特徴量は、生成部15が、ステップS75において、センサモータ信号に変換する。そして、そのセンサモータ信号のうちのモータ信号が、例えば、自律エージェントに供給される。
【0317】
以上のような、図20ステップS71ないしS75の認識生成処理が、例えば、1時刻ごとに行われることで、ロボットは認知行動を行う。
【0318】
図1のデータ処理装置において、ダイナミクス学習モデル記憶部104に記憶させるダイナミクス学習モデルとして、ダイナミクス記憶ネットワークを採用する場合には、予測学習部103において、図17の学習処理を行うとともに、予測部105において、図20の認識生成処理を予測処理として行うことで、多数のダイナミクスを獲得し、その多数のダイナミクスそれぞれを有する時系列データとしての所望操作データ(及び状況データ)の予測値を得ることができる。
【0319】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0320】
そこで、図21は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0321】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク305やROM303に予め記録しておくことができる。
【0322】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体311に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体311は、いわゆるパッケージソフトウエアとして提供することができる。
【0323】
なお、プログラムは、上述したようなリムーバブル記録媒体311からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部308で受信し、内蔵するハードディスク305にインストールすることができる。
【0324】
コンピュータは、CPU(Central Processing Unit)302を内蔵している。CPU302には、バス301を介して、入出力インタフェース310が接続されており、CPU302は、入出力インタフェース310を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部307が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)303に格納されているプログラムを実行する。あるいは、また、CPU302は、ハードディスク305に格納されているプログラム、衛星若しくはネットワークから転送され、通信部308で受信されてハードディスク305にインストールされたプログラム、またはドライブ309に装着されたリムーバブル記録媒体311から読み出されてハードディスク305にインストールされたプログラムを、RAM(Random Access Memory)304にロードして実行する。これにより、CPU302は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU302は、その処理結果を、必要に応じて、例えば、入出力インタフェース310を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部306から出力、あるいは、通信部308から送信、さらには、ハードディスク305に記録等させる。
【0325】
なお、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0326】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0327】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0328】
【図1】本発明を適用したデータ処理装置の第1実施の形態の構成例を示すブロック図である。
【図2】状況データ及び所望操作データの例を示す図である。
【図3】学習処理を説明するフローチャートである。
【図4】予測処理を説明するフローチャートである。
【図5】PCの画面上のwebブラウザを示す図である。
【図6】TVの表示画面を示す図である。
【図7】本発明を適用したデータ処理装置の第2実施の形態の構成例を示すブロック図である。
【図8】ゲーム画面を示す図である。
【図9】キャラクタ動作補助モジュール152nの構成例を示すブロック図である。
【図10】状況データ及び所望操作データの例を示す図である。
【図11】学習処理を説明するフローチャートである。
【図12】予測処理を説明するフローチャートである。
【図13】本発明を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
【図14】ダイナミクス記憶ネットワークの例を、模式的に示す図である。
【図15】ノードの構成例を、模式的に示す図である。
【図16】学習処理での学習重みの決定の方法を説明する図である。
【図17】学習処理を説明するフローチャートである。ある。
【図18】認識処理を説明するフローチャートである。
【図19】生成処理を説明するフローチャートである。
【図20】認識生成処理を説明するフローチャートである。
【図21】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【0329】
11 信号入力部, 12 特徴量抽出部, 13 学習部, 14 認識部, 15
生成部, 16 ネットワーク記憶部, 17 内部状態記憶部, 101 状況データ取得部, 102 操作データ取得部, 103 予測学習部, 104 ダイナミクス学習モデル記憶部, 105 予測部, 106 操作データ出力部, 151 教示キャラクタ選択部, 1521ないし152N キャラクタ動作補助モジュール, 161 状況データ取得部, 162 操作データ取得部, 163 予測学習部, 164 ダイナミクス学習モデル記憶部, 165 予測部, 166 操作データ出力部, 301 バス, 302 CPU, 303 ROM, 304 RAM, 305 ハードディスク, 306 出力部, 307 入力部, 308 通信部, 309 ドライブ, 310 入出力インタフェース, 311 リムーバブル記録媒体

【特許請求の範囲】
【請求項1】
時系列データを処理するデータ処理装置において、
状況を表す時系列データである状況データを取得する状況データ取得手段と、
ユーザが所望する操作に対応する時系列データである所望操作データを取得する操作データ取得手段と、
前記状況データ及び所望操作データのダイナミクスを学習する学習手段と、
前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求める予測手段と、
前記所望操作データの予測値を出力する出力手段と
を備えるデータ処理装置。
【請求項2】
前記予測手段は、前記所望操作データの予測値とともに、前記状況データの予測値をも求め、
前記出力手段は、前記状況データの真値に対する前記状況データの予測値の予測誤差が所定の閾値以下であるときに、前記所望操作データの予測値を出力する
請求項1に記載のデータ処理装置。
【請求項3】
前記学習手段は、ダイナミクスを獲得することができるモデルであるダイナミクス学習モデルによって、前記状況データ及び所望操作データのダイナミクスを学習する
請求項1に記載のデータ処理装置。
【請求項4】
前記ダイナミクス学習モデルは、RNN(Recurrent Neural Network),FNN(Feed Forward Neural Network),SVR(Support Vector Regression)、又はRNN-PB(Recurrent Neural Net with Parametric Bias)である
請求項3に記載のデータ処理装置。
【請求項5】
前記ダイナミクス学習モデルは、複数のノードによって構成され、前記複数のノードそれぞれにダイナミクスを保持するダイナミクス記憶ネットワークである
請求項3に記載のデータ処理装置。
【請求項6】
前記学習手段は、前記状況データ及び所望操作データに基づき、前記ダイナミクス記憶ネットワークの各ノードのダイナミクスを自己組織的に更新し、
前記予測手段は、
前記状況データに最も適合するダイナミクスを保持するノードである勝者ノードを決定し、
前記勝者ノードを、時系列データの生成に用いるノードである生成ノードに決定し、
前記生成ノードが保持するダイナミクスを有する時系列データを、前記所望操作データの予測値として生成する
請求項5に記載のデータ処理装置。
【請求項7】
時系列データを処理するデータ処理装置のデータ処理方法において、
状況を表す時系列データである状況データを取得するとともに、ユーザが所望する操作に対応する時系列データである所望操作データを取得し、
前記状況データ及び所望操作データのダイナミクスを学習し、
前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求め、
前記所望操作データの予測値を出力する
ステップを含むデータ処理方法。
【請求項8】
時系列データを処理するデータ処理装置として、コンピュータを機能させるプログラムにおいて、
状況を表す時系列データである状況データを取得する状況データ取得手段と、
ユーザが所望する操作に対応する時系列データである所望操作データを取得する操作データ取得手段と、
前記状況データ及び所望操作データのダイナミクスを学習する学習手段と、
前記ダイナミクスに基づき、前記状況データを入力として、前記所望操作データの予測値を求める予測手段と、
前記所望操作データの予測値を出力する出力手段と
して、コンピュータを機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2009−140454(P2009−140454A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−319213(P2007−319213)
【出願日】平成19年12月11日(2007.12.11)
【出願人】(000002185)ソニー株式会社 (34,172)