請求項1ないし5のいずれかに記載の動作学習装置を備える、ロボット。前記時系列データをモデル化することによって各時系列の隠れ状態を示す文字列およびスコアを含む文書を生成し、そのスコアの和が最大になるように文字列を分節化する、ロボット。0001】この発明は、動作学習装置に関し、特に分節化されていない連続動作または連続行動を分節化して学習する、動作学習装置などに関する。【背景技術】【0002】人間社会において共生的に活動可能な自律ロボットを生み出すためには、彼らが私たちと共に生活する中で自然に様々な概念や振舞いを獲得することが望まれる。そのような能力をロボットに与えることのできる方法はほとんど存在しない。私たちが、もし日常生活の中で必要なすべての振舞いを全て直接的にロボットに教え込まないといけないとするならば、それは手間がかかり過ぎる。したがって、人間の子供が行うように親の動作をみて「勝手に」見まねを通じて学習するような枠組み(模倣学習)を持ったロボットまたはその学習方法が求められる。【0003】従来のロボットの模倣学習では、たとえば非特許文献1に示すように、その多くの先行技術において、学習する対象となる時系列情報が予め分節化され与えられ、ロボットはそれら各々の分節化された時系列情報を学習することによって動作学習を行なう。実際に家庭にロボットが現われる状況を考えると、我々がロボットとインタラクションする中でロボットに新たな行動パターンを学習させようとするときには、覚えさせようとする行動パターン毎にスイッチを押すなり、事前に準備された行動の開始と終了の合図を指定する(主には静止状態にするものが多い)などして行動パターンの分節を明示的に提示しなければならない。前者の場合ではスイッチを押すモーションが行動パターンの前後にノイズとして加わるし、後者の場合では静止状態から静止状態へ移る行動パターンしか学習対象とできないなどの問題点がある。そのような不自然な動作を挿入することが、人間とロボットとの自然なインタラクションを妨げる要因ともなると考えられる。biasなど)が提案されている。2006.【発明の開示】【発明が解決しようとする課題】【0005】非特許文献1や非特許文献2で提案されている従来の手法では、行動の分節化に時系列ダイナミクスの局所的な情報しか用いないために、分節化に力学情報しか用いず、必ずしも人間が考えるような意味を持った単位としての行動の分節化を行なうことができないといった問題点がある。【0006】それゆえに、この発明の主たる目的は、新規な、動作学習装置を提供することである。【0007】この発明の他の目的は、連続動作を確実に分節化して学習できる、動作学習装置を提供することである。【課題を解決するための手段】【0008】この発明は、上記の課題を解決するために、以下の構成を採用した。括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。【0009】第1の発明は、各々が連続する動作を示す複数の時系列データからモデルを獲得することによって、モデルが示す離散的な文字列を含む文書を生成する文書列生成手段、および文書に含まれる文字列から意味のある分節を抽出して保存する分節抽出手段を備え、文書列生成手段は、時系列データをモデル化することによって各時系列の隠れ状態を示す文字列およびスコアを含む文書を生成し、そのスコアの和が最大になるように文字列を分節化する、動作学習装置である。【0010】第1の発明では、たとえば、ユーザ(28。実施例で相当する要素を例示する参照符号。)とロボット(12)との複数回のセッションを通して、ロボット(12)が複数の時系列データを取得する。Model)を用いて、モデル化することによって、各モデルに固有の文字からなる離散的な文字列を生成する。ロボット(12)のコンピュータ(36)(または他のコンピュータであってよい)は、分節抽出手段として「辞書を用いないキーワード抽出手法」を用いて、キーワードすなわち有意な分節をその文字列から抽出して保存する。このとき、文書列生成手段は、時系列データをモデル化することによって各時系列の隠れ状態を示す文字列およびスコアを含む文書を生成し、そのスコアの和(積や重み付け和、その他非線形和など合計スコアを計算する他の計算式でも構わない)が最大になるように文字列を分節化する。文書列生成手段は、たとえばSARMを用い、ARモデルの切り替わりにより時系列を文字列として生成する。その際、スコアを考慮して、スコアが最大になるように分節化する。【0011】このようにして、第1の発明によれば、連続する動作を分節化して、その分節化した動作を学習することができる。【0014】第2の発明は、第1の発明に従属し、意味のある分節とモデルを利用して動作を生成する動作生成手段をさらに備える、動作学習装置である。【0015】第2の発明では、動作生成手段(S7)が、抽出した意味のある分節およびモデルを用いて動作を生成する。したがって、動作学習装置が学習した動作を、たとえば、ユーザに対して提示して、そのリアクションを引き出すことができる。【0016】第3の発明は、第2の発明に従属し、ユーザのリアクションに基づいて動作生成手段が生成した動作を評価する評価手段をさらに備える、動作学習装置である。【0017】第3の発明によれば、動作生成手段によってユーザに、キーモーション(主動作)と思われる、学習した動作を再現して提示したとき、ユーザがリアクションを返すが、評価手段(S9,S11)がそのユーザリアクションに基づいて、生成した動作を評価する。ユーザが主動作を含む動作系列をリアクションとして返した場合、学習は成功したのであり、高い評価が与えられる。【0018】第4の発明は、第3の発明に従属し、評価手段による評価が低いとき、保存した分節を破棄する破棄手段をさらに備える、動作学習装置である。【0019】第4の発明では、破棄手段(S19)によって、評価の低かった提示動作すなわち保存したキーワード(分節)を破棄するので、効率よく動作を学習することができる。【0020】第5の発明は、第1ないし第4の発明のずれかに従属し、文書列生成手段はSARMを用いる、動作学習装置である。【0021】第5の発明によれば、文書列生成手段は、自己回帰(AR)モデルを用いて、時系列データを文書に変換する。【0022】第6の発明は、第1ないし第5の発明の動作学習装置を備える、ロボットである。【0023】第6の発明によれば、ロボットが非分節化されていない連続動作から、確実に動作を学習することができる。ある分節とモデルを利用して動作を生成しユーザに提示する動作生成手段、および動作生成手段が提示した動作に対するユーザのリアクションを認識することによって応答戦略を獲得する獲得手段を備え、文書列生成手段は、時系列データをモデル化することによって各時系列の隠れ状態を示す文字列およびスコアを含む文書を生成し、そのスコアの和が最大になるように文字列を分節化する、ロボットである。【0025】第8の発明では、たとえば、ユーザ(28)とロボット(12)との複数回のセッションを通して、ロボット(12)が複数の時系列データを取得する。文書生成手段である、ロボット(12)のコンピュータ(36)または他のコンピュータは、それらの時系列データをSARMを用いて、モデル化することによって、各モデルに固有の文字からなる離散的な文字列を生成する。ロボット(12)のコンピュータ(36)(または他のコンピュータであってよい)は、分節抽出手段として「辞書を用いないキーワード抽出手法」を用いて、キーワードすなわち有意な分節をその文字列から抽出して保存する。このとき、文書列生成手段は、時系列データをモデル化することによって各時系列の隠れ状態を示す文字列およびスコアを含む文書を生成し、そのスコアの和(積や重み付け和、その他非線形和など合計スコアを計算する他の計算式でも構わない)が最大になるように文字列を分節化する。文書列生成手段は、たとえばSARMを用い、ARモデルの切り替わりにより時系列を文字列として生成する。その際、スコアを考慮して、スコアが最大になるように分節化する。【0026】そして、動作生成手段(S7)が、抽出した意味のある分節およびモデルを用いて、学習したキーモーション(主動作)と思われる動作を生成し、ユーザに対して提示して、そのリアクションを引き出す。【0027】獲得手段(S9,S11)がそのユーザリアクションに基づいて、生成した動作を認識し、学習する。ユーザ(28)がいつもロボット(12)のある動作Aに対して動作Bを返しているとすれば、その動作Bは動作Aへの応答として用いるものであることをロボットは認識することができる。この対を観測することで、ロボットはユーザが動作Aを行ったときの返答として動作Bを用いることができるようになる。ユーザがA動作を示したときにはB動作をそれに対する返答として生成すべきだというルールすなわち応答戦略を獲得する。【発明の効果】【0028】この発明によれば、連続動作を確実に分節化でき、有意な動作系列を抽出することができる。その動作系列によって動作学習を行なうことができる。【0029】この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。Model)を用い、連続な時系列を分節化し、分節化された時系列をARモデルとしてモデル化した(これらはSARMを用いることで同時に行われる)。SARMは時系列情報を1つの分節化の単位は線形ダイナミクスで記述されるという条件の下で、単にダイナミカルな情報のみを用いて分節化すると同時に、各ARモデルを推定する。多くの場合、単にダイナミクス情報のみを用いて分節化された時系列はユーザにとって必ずしも意味ある単位を表さない。その一方で、ある一連の分節のつながりは意味ある動作系列を意味する可能性がある。SARMにおいて各時刻で最大の事後確率(Pr)を持つと推定された隠れ状態の列によって分節化された時系列が記述されたとすると、時系列は隠れ状態を表すラベルによって記述されたある種の文書(document)に変換されることになる。【0031】そこで以下の実施例では、人間の動作系列における意味ある部分動作系列は,自然言語で記述された文書(日本語,中国語,英語などの文書)におけるキーワードと同様の分布特徴を持つものという大胆な仮定を導入する。意味あるユーザの動作から変換されて生成されたn-gram、つまりユーザの動作系列に含まれる主動作(キーモーション)を表象するn-gramが自然言語文書中のキーワードを示すn-gramと類似した分布における偏りを持っているという仮定である。その仮定に立って、その文書中からキーワードを抽出する。その方法としては、「辞書を用いないキーワード抽出」の手法を用いる。【0032】このキーワード抽出手法で抽出されたキーワード集合はユーザにとっていくらかの意味がないように見える動作を含む。そこで、これらの動作候補を取り除くために、ロボットが獲得した動作を提示した場合におけるユーザのリアクションを利用する。ユーザは通常、ロボットが意味ある動作をしたときには意味ある応答を返すと想定した。したがって、ロボットは人間に意味あるリアクションを引き出させる動作を意味ある動作と認識するようになる。このようにしてユーザのリアクションをキーワード選択フィルタとして利用することによって、ロボットが無意味な動作の候補を除去でき、それによってユーザとロボットとの間の非分節なセッションを通じてロボットがユーザから有意な動作を学習することができる。【0033】図1を参照して、この実施例のロボットシステム10は、腕型ロボット12を含む。この腕型ロボット12は、土台ないしベース14の上に垂直に固定された、人間の腕でいえば上腕に相当する第1コラム16と、前腕に相当する第2コラム18とを有する。第1コラム16と第2コラム18とは肘関節に相当する第1関節20によって連結され、第2コラム18は、第1コラム16に対して1つの回転軸(φ1)で回転可能であり、3軸(X,Y,Z)方向に角度可変である。第1関節20は4自由度であり、図示しないが、4つのモータを有する。第2コラム18の先端には、手首関節に相当する第2関節22が設けられ、この第2関節22を介して、第2コラム18にハンド24が連結される。ハンド24は、第2コラム16に対して1つの回転軸(φ2)で回転可能であり、3軸(X,Y,Z)方向に角度可変である。第2関節22もまた、4つのモータ(図示せず)を有する4自由度関節である。【0034】この腕型ロボット12とテーブル26を挟んでユーザ28が対面し、実施例のロボットシステム10では、ユーザ28が提示する動作を先に述べた自己組織化的な学習過程を通して、腕型ロボット12が模倣する。その意味で実施例のロボットシステム10は動作模倣装置ないし動作学習装置ということができる。実施例では、ロボットとして腕型ロボット12を用いているので、ユーザ28はその腕30だけを動かす動作を提示することとする。【0035】しかしながら、模倣主体として実施例の腕型ロボット12に代えて別の形式のロボット、たとえば人間とほぼ同じ可動部分を有するヒューマノイドロボットを用いることもでき、ヒューマノイドロボットを用いる場合には、ユーザ28は腕の動きだけでなく、全身の可動要素を使って動作を提示でき、ヒューマノイドロボットはその全身動作を自律的に模倣し学習することになる。【0036】ユーザ28の提示する動作は、腕だけの動作であっても、全身動作であっても、実施例では、3次元光学モーションキャプチャカメラ32で捕捉される。このモーションキャプチャカメラ32で撮影した3次元映像信号はサーバ34に入力される。サーバ34は3次元映像信号を処理して、モーションキャプチャデータを作成する。モーションキャプチャデータは、ユーザ28が提示する連続動作を示す時系列データであり、このモーションキャプチャデータすなわち時系列データは、このサーバ34から、たとえば無線LAN(図示せず)を介して、ロボット12に与えられる。【0037】腕型ロボット12は、図2に示すように、コンピュータ36を含み、コンピュータ36は、バス38を介して、メモリ40,モータ制御ボード42,センサ入力/出力ボード44および音声入力/出力ボード46に接続される。【0038】メモリ40は、図示しないが、ROM,HDDおよびRAMなど任意のメモリ素子を含む。ROMやHDDには、ロボット12の動作を制御するための制御プログラムが予め記憶される。各センサの出力(センサ情報)を検知するための検知プログラムや、外部コンピュータ、たとえばサーバ34などとの間で必要なデータや情報を授受するための通信プログラム、さらにSARMなどのモデル化手段を構築するためのプログラムなどが記録される。RAMは、ワークメモリやバッファメモリとして用いられる。メモリ40内のフラッシュメモリのようなROMやHDDは、後述のようにした獲得または学習した有意な動作系列(キーワード)を保存するために利用される。【0039】モータ制御ボード42は、たとえばDSPで構成され、図1に示す第1関節20および第2関節22の各軸モータの駆動を制御する。モータ制御ボード42は、コンピュータ36からの制御データを受け、第1関節20の1つの回転角および3つの関節角、すなわち4つのモータを制御する。同様にして、モータ制御ボード42は、コンピュータ36からの制御データを受け、第2関節22の1つの回転角および3つの関節角すなわち4つのモータを制御する。これらのモータはステッピングモータや直流モータであってよい。【0040】つまり、腕型ロボット12が第1関節20および第2関節22を制御してハンド24を動かす場合、コンピュータ36がハンド24の座標を指定してその座標データをモータ制御ボード42に出力することによって、ハンド24を指定した座標位置に動かすように設計している。ロボット12(のコンピュータ36)は、上述のようにモーションキャプチャを通して、ユーザ28の手先、実施例では特に右手の手先の座標位置を観測できる。ロボット12がユーザ28の提示した動作を理解した上でその動作を再現する場合、コンピュータ36はユーザ28の手先座標をそのままモータ制御ボード42に設定することによって、ハンド24をその手先座標位置に動かすことができる。ロボット12はユーザ28の手先座標を自らの手先座標に直接的に写像することができる。モータ制御ボード42では、目標位置が連続して与えられたり、外れ値が与えられた際には、前後の座標位置とともに平滑化することによって、ハンド24をスムーズに動かすように指定している。【0041】センサ入力/出力ボード44は、モータ制御ボード42と同様に、DSPで構成され、各センサからの信号を取り込んでコンピュータ36に与える。接触センサ48は図1では図示していないが、たとえばハンド24の表面に設置され、ユーザ28が接触したことを検知できる。カメラ50はユーザ28などを撮影するもので、映像信号を出力する。接触センサ48およびカメラ50の映像信号はコンピュータ36に入力され、コンピュータ36は、それらの信号を処理または分析して、ユーザ28からロボット12に対して与えられた返答(後述)が肯定を意味するのか、否定を意味するのかなどを判断することができる。【0042】音声入力/出力ボード46もまた、同様に、DSPで構成され、コンピュータ36から与えられる音声合成データに従った音声または声がスピーカ52から出力される。マイク54からの音声入力が、音声入力/出力ボード46を介してコンピュータ36に与えられる。マイク54からの音声信号はコンピュータ36に入力される。したがって、後述のようにロボット12が動作を提示した後に、ユーザ28からロボット12に対して音声で返答(リアクション)を返すこともできる。【0043】また、コンピュータ36は、バス38を介して通信LANボード56に接続される。通信LANボード56は、たとえばDSPで構成され、コンピュータ36から与えられた送信データを無線通信装置58に与え、無線通信装置58は送信データを、ネットワークを介して外部コンピュータ(たとえばサーバ34)に送信する。通信LANボード56は、無線通信装置58を介して、たとえばサーバ34から送信されたモーションキャプチャデータ(時系列データ)を受信し、受信した時系列データをコンピュータ36に与える。【0044】図1および図2に示す実施例のロボットシステム10において、ユーザ28は、たとえば手で何か目印になる物体を持つなどした状態で、自分の腕30を動かして、腕型ロボット12に向かって、厳密には、3次元モーションキャプチャカメラ32に向かって、動作を提示する。発明者等が実験で採用した、ユーザ28が提示する動作の一例が図3および図4の写真で示されている。motion)」である。【0045】このような動作を含んでユーザ28は、セッションの中で図5に例示する動作系列をロボット12に対して提示する。ユーザ28は、このとき、動作はこれらの特徴的な動作を含む形で他の動作と連続的に提示してもかまわない。【0046】ユーザ28とロボット12とがことのように相互作用(やりとり)をしている一連の時間を「セッション」と呼ぶ。1つのセッションは、たとえば、ユーザ28がロボット12の存在する部屋に入ってきたときから始まり、その部屋からユーザ28が出るまで続き、あるいは、ロボット12が人間28の動作を観察し始めてそれが終わるまでを1つのセッションとすることもある。【0047】セッションの時間中、ユーザ28がたとえば図5のように提示した動作系列が、3次元モーションキャプチャカメラ32で撮影され、その結果、サーバ34がその一連の動作系列に応じた時系列データを作成する。この時系列データは、上で説明したように、たとえば無線によって、腕型ロボット12のコンピュータ36に与えられる。時系列データがサーバ34から与えられると、ロボット12のコンピュータ36は、図6の最初のステップS1でその時系列データをメモリ40(図2)のRAMに一時記憶する。【0048】つまり、セッションが行われている間、3次元モーションキャプチャカメラ32がユーザ28の示す動作系列を取得し、サーバ34が、その動作系列をベクトル値に変換して時系列データを得る。実際のセッションで起こりうる人間(ユーザ)の動作すべては有限次元ベクトルですべて捉えられるものでもないので、サーバ34では、特徴量を有限次元ベクトルとして得て、時系列的に保存することによって、時系列データを生成する。したロボット12では、複数のセッションを通じて複数の時系列データが入手できる。各セッションはそれ自体のトピックをある程度保持している。【0049】続いて、コンピュータ36は、ステップS3において、以下に詳細に説明するように、SARMを用いて文書を生成する。model)モデル(線形モデル)とその切り替わりによりモデル化する手法であり、これによって、連続的な時系列が各個別の時系列へ分割される。【0050】各ARモデルを表す隠れ状態はマルコフ過程に基づいて遷移するとものする。SARMはM個の隠れ状態を持つ。時刻tにおける隠れ状態をstとしたとき、隠れ状態j=stは数1で示すARモデルを持つ。【0051】【数1】ここで、xtは時刻tにおける時系列情報の状態量、すなわちロボット12が獲得したユーザ28の腕の関節角などの情報であり、vt~N(0,Qt)はノイズを表す。【0052】まず、ロボット12が時系列データx1:T(t=1~t=Tまでの時系列情報)を観測した際に、どのARモデルから生成されたものとして認識されるかについての計算機構について説明する。このためには、事後確率Pr(st=j|x1:T)を計算する必要がある。隠れ状態遷移がマルコフ過程に従うとすると、事後確率Prは数2で計算される。【0053】【数2】ここで、cは正規化定数であり、Zは隠れ状態の遷移確率行列である。Z(i,j)が隠れ状態iからjの遷移確率を表す。数3は、j番目のARモデルによる時刻tにおける予測誤差に基づく尤度を表わす。【0054】【数3】ここで、Nは中心をAjxt-1、そして分散共分散行列をQjとした多次元正規分布を表す。backward(バックワード)の計算により以下のように計算される。model:隠れマルコフモデル)と同様である。algorithm)を用いることで推定することができる。【0056】【数5】【0057】【数6】【0058】【数7】ここで、Wtj≡Pr(st=j|x1:T)、Pt≡xtx’t、かつPt≡xtx’t-1。初期の分布P(s1=j)=πjを推定し、さらには、Z(i、j)も推定するようにしてもよい。【0059】次に、計算された事後確率から最大のARモデルを選ぶことで、時系列データを文字列、すなわち文書に変換する。ステップS3では、多次元時系列データの各時系列(セグメント)をモデル化し、同じモデルを同じ文字で表すことによって、時系列データを離散的な文字列、すなわち文書に変換する。【0060】【数8】ここで、st*は最も尤もらしい隠れ状態を指す。隣接する同じ隠れ状態を無視することで、図7に示すように、隣接する文字は必ず異なる文書へ圧縮される。これにより、セッション数と同じだけの文書を獲得することができる。このようにして、ステップS3において時系列に基づいて文字列(文書)を生成する。したがって、このステップS3が文書または文字列生成手段として機能する。【0061】この後に、ロボット12すなわちコンピュータ36は、図6のステップS5において、図5に示す一見意味のない文字列からキーワード(有意な分節)を抽出する。したがって、このステップS5が有意な分節またはキーワード抽出手段として機能する。【0062】一般的に、隠れ状態の列により形成されるn-gram(n-gramは文書中で連続するn個の文字を意味する。[1,3,4,5]、や[2,1,2,1]など)はある種の動作系列を表象するが、そのほとんどの動作はユーザにとって意味がない。隠れ状態が10存在するとした場合、4-gramにより動作モーションが形成されると、主動作の候補は組み合わせから約7000に上る。この非常に多い候補をユーザのリアクションを通じた教示のみにより絞っていくことは困難である。そこで、その中から全セッション通じてのインタラクションで得られた統計的な情報を用いてキーワードを抽出することが重要となる。2000.)を利用する。【0064】辞書を使わずに未知の文書から意味のある分節を切り出すことは日本語のような空白で単語が区切られていない言語では難しい。多くのキーワード抽出手法では形態素解析を用いたり、辞書を用いるアプローチがなされていた。【0065】これに対して梅村氏は、キーワードが文書中に偏って現れる性質に着目して新規なキーワード抽出手法を提案した。人間によってかかれた文書群では、もし、文書のトピックがキーワードに関係するならば、キーワードは文書中に複数回現われ易い傾向があることが知られている。一方で、キーワードとなる語は他の文書中では殆ど出てこない。この仮定に基づき、梅村氏はn-gramがキーワードかどうかをスコアリングする非常に簡単な手法を提案した。スコアが高いほどそのn-gramはキーワードである可能性が高いと見なされる。adaptation”と呼ばれる。adaptationを以下で定義した。k)は指定のn-gramをk個かそれ以上含む文書の数を示す。DFを一般化したものである。DFは指定のn-gramを含む文書の数(文書頻度)である。adaptationだけではキーワードかどうかを特定するのに不十分である。adaptationを持つからである。「パイナップル」と「パイナップ」は殆ど同じ頻度で同じように現れる。【0069】この問題を解決するために、梅村氏は、このスコアの和が最大になるように文書を分節化することで、n-gramの境界を求めた。n-gramのスコアは以下で表される。Bound)は設計者により決定されるメタパラメータである。対象の文書は細かく分節化され、UBが0.0に近いと、対象の文書は粗く分節化されることになる。list)にそのスコアと共に登録されることにした(図8参照)。Appearance最小出現頻度)はワードリストの大きさを決めるメタパラメータである。図8に示すワードリストは、ワードスコア表であり、時系列データをモデルで分節化した結果得られた文書の集合から統計的に計算されるものであり、SARMで求めたARモデルとともに、メモリ40に保存される。このワードリストは、ARモデルが示す文字を含む文字列(ワード)のスコアを計算したものであり、後述のキーワード抽出の際に利用する。【0072】梅村氏の研究では、これらのパラメータ、UBやMAは発見的に定められていた。実験結果は明白にこれらの値に依存する。対象のn-gramがランダムに文書中に分布しているならばPr(+adapt)=DF1/DNとなる。Number)は文書の総数を示す。実施例では、Pr(+adapt)にスケーリングのためのlogをかけたものを単純にキーワードかどうかのスコアとした。【0073】また、梅村氏の方法と同じく、文書の最適な分節を特定するために、各n-gramのスコアを文書の分節の基準として用い、分節化した後の文書に含まれる語のスコアが最大になるように分節化を行なった。search(ビタビ探索)を用いた。これは計算量を減らすためである。ワードリストに登録されていない語のスコアは、-10000とした。【0074】このようにして、ステップS3で時系列データの分節化を行った後に、ステップS5で、分節化された文書からキーワード(意味のある文節)を抽出する。発明者等の実験では、以下の条件を満たすものをキーワードとして抽出した。1.DF2/DN<Fmax2.score>scoremin3.1つより多くの文字を含むこと。【0075】このキーワード抽出手法は最終的に4つのメタパラメータを含む。UB、MA、Fmaxとscoreminである。これらは実施例において発見的に決定されているが、将来的にはその決定手法についても検討する必要がある。【0076】このようにして、キーワード(有意な分節)を獲得したら、コンピュータ36は、そのキーワードをメモリ40に保存する。【0077】ここまでのステップS1-S5を実行することによって、ユーザ28とのセッションを通じて取得した非分節な時系列データを分節化でき、ステップS5が終わった時点で、有意な分節(キーワード)が保存できる。したがって、一連の動作としてはこのステップS7で一旦終了する。【0078】その後、ロボット12が別途、図6のステップS7以降に示す処理を実行することによって、ロボット12が上述のようにして学習した動作の評価をする。したがって、本来的には、ステップS5までの処理とステップS7以降の処理とは連続する必要はないのであるが、他方、その連続処理を排除するものでもない。したがって、図6に示す実施例では、これらの処理を連続して実行するものとし、以下説明する。【0079】ステップS7で、ロボット12は、ステップS5で保存したキーワードを用いて動くことによって、ユーザ28に対して、キーワードに基づいて再現した動作を提示する。コンピュータ36がキーワードに含まれた文字に従って、ステップS3で用いたSARMに含まれるARモデルを起動することによって、モータ制御データを獲得し、ロボット12の第1関節20および第2関節22を動かす。詳しくいうと、キーワードを抽出した後に、コンピュータ36は、元の時系列データから、そのキーワードが用いられていたときに、それぞれの隠れ状態にどれだけの時間滞在したかの平均を算出する。コンピュータ36は、キーワードに相当する動作が開始される初期位置についても同様にして求める。これらの情報を用いることによって、コンピュータ36がモータ制御データを生成して、モータ制御ボード42(図2)へ与える。それによって、ロボット12が、文字で書かれたキーワードに従って実世界の連続値の動作系列を生成する。【0080】ロボットがインタラクションにおいて意味のある動作をした場合、たとえば、「手を振る」、「バイバイ」、「お辞儀をする」などをした場合は、その前にいるユーザ28も何かしらかの意味のある動作を返す可能性が高まるものと仮定する。すると、その応答に意味のある動作が含まれているかどうかは、獲得したSARMとワードリストを用いることで認識することができる(図9参照)。motion)であると考えるものをユーザ28に提示した後に、ユーザ28は、ロボット12に対してリアクション(返答動作)を返す。そこで、ステップS9で、先に説明したステップS1‐S3を再度実行することによって、ロボット12がユーザ28のリアクションに含まれる動作系列を再度観測するようにした。【0082】この再度の観測の結果、ステップS11で、ユーザ28が再提示した動作系列の中に上記した主動作が含まれていることを検知すれば、そのときのロボット12の動作は、ユーザ28にとって意味あるものであったと考えることができる(正のフィードバック)ので、ステップS11で“YES”が判断され、ステップS13において、ロボット12がステップS7で提示した動作の信頼度を増加または加算する。逆に、ユーザ28のリアクション中の動作系列に上記した主動作が含まれていることが検知できなければ、その提示動作はユーザ28にとって意味のない動作であった(負のフィードバック)と判断できる。したがって、ステップS11で“NO”が判断され、ステップS15において、提示動作の信頼度を減少または減算する。提示動作の信頼度がユーザのリアクションによって評価される。【0083】続いて、ステップS17において、コンピュータ36は、ステップS13またはS15で増減した信頼度が、予め設定してある閾値より小さいかどうか判断する。ステップS17で“NO”が判断されたとき、つまり、提示動作に一定の信頼性があった場合には、そのまま終了する。ステップS17で“YES”が判断されたとき、つまり、提示動作に信頼性がなかった場合には、ステップS19で、先のステップS5でメモリ40に保存したキーワード(分節)を破棄して終了する。ステップS9‐S19の評価は、1回だけのユーザのリアクションで判断してもいいし、数回のリアクションを通じて判断するようにしてもよい。多くの試行を経て統計的な情報を獲得してから判断することもできる。このように、提示動作の評価を行ない、その評価が一定以上であるときはキーワードやワードリスなどをそのまま保存しておき、評価が低い場合には、保存したキーワードやワードリスなどを破棄することによって、ロボット12が正しい動作を学習することができる。【0084】先に述べたように、ロボット12は、獲得したSARM、ワードリストおよびキーワードを用いて主動作と考える動作をユーザ28に提示し、それに対するユーザ28のリアクションを認識する。ユーザ28がいつもロボット12のある動作Aに対して動作Bを返しているとすれば、その動作Bは動作Aへの応答として用いるものであることをロボットは認識することができる。この対を観測することで、ロボットはユーザが動作Aを行ったときの返答として動作Bを用いることができるようになる。ロボット12とユーザ28との間で役割反転が生じ、ロボット12はそれによってユーザ28の動作を模倣学習することができる。このように、ロボット12(のコンピュータ36)は、先のステップS7で生成してユーザ28に提示した提示動作に対するユーザの応答動作をステップS9およびS11で認識することによって、ユーザがA動作を示したときにはB動作をそれに対する返答として生成すべきだというルールすなわち応答戦略を獲得することができる。発明者等は、提案手法の有効性を確かめるために図1に示すようなユーザ28とロボット12とのインタラクションのための環境を構築した。実験ではユーザ28の右手先のX軸、Y軸、Z軸が3Dモーションキャプチャカメラ32によって観測し、それぞれの時刻tにおける値を、xt、yt、ztとした。実験では、簡単のため手先の模倣だけを論じる。【0085】先に説明したように、ロボット12はコンピュータ36によってハンド座標を指定することでそのハンド24が動かされるように設計してある。目標位置が連続して与えられたり、外れ値が与えられた際には、時系列情報を平滑化することで動く。ロボット12は、モーションキャプチャを通して、ユーザ28の手先座標を観測できる。状態変数はxt=(xot、yot、zot、c)と定義した(ここで、c=100は定数)。各次元の単位は[mm]である。ロボット12はユーザ28の手先座標を自らの手先座標に直接的に写像することができるものとする。【0086】実験ではユーザ28はロボット12に21セッション分の動作を提示した。1セッションは約20秒ほどの時間であった。モーションキャプチャにおけるサンプリングレートは、25[Hz]であった。それぞれのセッションでは、それぞれのセッションに特徴的な動作が中心的に示された。図3および図4に示す2種類のターゲット動作を準備した。どれだけの長さのインタラクションを行うかは、そのときの実験者(ユーザ28)に委ねた。motionを提示した。motionを提示した。他のセッションではこれらの動作や他の動作がランダムに提示された。これらの時系列を実験者は明示的には分節化せずに、他の動作も混ぜながら連続して与えた。motionかは自ら発見しなければならない。いくつのどのような動作が学習対象なのかすらロボットは自ら発見しなければならない。ロボット12は何通りの動作をユーザ28が教えようとしているのかについても教えられていない。図5にユーザが提示した動作(セッション)の一例を示す。【0088】この実験では意味ある動作が連続して繰り返し提示される必要もないし、その間に意味のない動作が挿入されてもかまわない。【0089】これらの後にSARMのパラメータ({Aj、Qj})が21回のセッション情報を基に推定された。Zの直行成分の0.964、その他の成分は0.004とした。隠れ状態の数は発見的に10と定めた。ARモデルの初期値は乱数を用いて決定した。EMアルゴリズムは5回繰り返し適用してARモデルのパラメータを決定した。これらのパラメータを用いて、SARMは事後確率Pr(st=j|x1:T)をそれぞれのセッションに対して求めた(数4)。【0090】最も尤もらしい隠れ状態の系列{st*}がその事後確率から決定された(数8)。【0091】この系列を圧縮することでロボットは21の文書を得た。【0092】この後にキーワード抽出手法を用いて、最終的にいくつかのキーワードとワードリストを獲得した。実験ではパラメータは{UB=0.9、MA=2、Fmax=0.4、scoremin=0.5}とした。学習結果としてSARMのパラメータが推定され、ワードリストが計算された。【0093】キーワード抽出が行われ、7つのキーワードが抽出された。それらは[7,9,0,5,3,0,7],[9,0,5,3,0,7]、[9、0,5,3]、[7,9,4,3]、[0,7,9,0,5]、[3,0,7]、[9,4,3](ただし、各数値はSARMの隠れ状態を表している。motionに相当していた。この2つの違いは[7,9,4,3]が一度テーブルの上に手を止めてから腕を挙げるのに対し、[9,4,3]は直接手を挙げるというものであった。[7,9,4,3]により生成された動作を図10に示す。相当することが分かった。部分であることが分かった。このことは、キーワード抽出器(ステップS7)が完全には部分文字列を排除できていないことを示している。[7,9,0,5,3,0,7]から生成された動作を図11に示す。[3,0,7]は手を置いた位置から少し手を右に動かす動作であった。【0096】対して、[0,7,9,0,5]は実験者(ユーザ)にとって説明しがたい動作であった。このような動作もこの実施例では抽出されうる。実施例の手法が自己組織化型学習であり、教師あり学習ではないため、このような想定外の学習結果を含むことは大いにあり得る。[0,7,9,0,5]により生成された動作系列を図12に示す。これらはユーザにとって意味ある動作ではないので、ロボットは自らそれに気づく必要がある。【0097】獲得の後に、ロボットに5回づつ各動作を提示させた。motionを返した。それ以外の動作に対しては実験者はロボットに何も返さなかった。【0098】ロボットに動作を提示した後5秒間実験者の動作を観測させた。motionを提示しなかったときでもユーザの動作時系列情報は持続的にロボットが得ている点は注意すべきである。motionが返ってきたとしたら十分な確率でロボットはその動作を意味ある動作[7,9,4,3]もしくは[7,4,3]として認識することができる。ロボットは自らの動作が実験者にとって有意味であったと知ることができる。逆に意味ある応答を得られなかった場合には。ロボットは自らの動作がユーザにとって無意味だったことを知る。このユーザのリアクション(返答)を用いることで、最終的にロボットはユーザが意味ある動作とした、2つの意味ある動作を獲得することができた。【0100】これらの結果は、実施例の模倣学習の枠組みがロボットがいくつかの動作を獲得し、それらを認識し、さらに実験者にとって有意味なキーワードを特定できることを示している。motionを返答として出すべきだというルール(応答戦略)を獲得することもできる。imitation)の枠組みである。それゆえ、実施例の枠組みは非分節な人間ロボット相互作用から最も簡単なレベルではあるが、役割反転模倣を可能にする枠組みであると言うことができる。【0102】なお、上述の実施例ではユーザ28が提示する動作を表現している時系列をステップS5でのモデリングの手法として、SARMを利用したが、このモデリング手法としては、これに限らず、たとえば、HMM(隠れマルコフ)でもよいし、適当な時間幅の窓をと時系列をAR(自己回帰)モデルでモデル化したものをパラメータ空間中でk‐means法、混合正規分布などでクラスタリングしてもよい。expertsを用いてもよい。【0103】さらに、他にも複数の学習器からなる競合モデルを用いてもかまわない。【0104】たとえば、有限個の統計モデルの切り替わりにより時系列をモデル化し、統計的計算からそれぞれの各時刻でのモデルの貢献度合い(事後確率や責任信号、ファジィ真理値など)を計算可能で、それらの情報を用いて(基本的にはそれらの値が最大となるモデルを選択する)各時刻の担当モデルを決定することによって、結果として時系列を分節化しつつ、モデル化し、また、それらの情報を用いて時系列を生成できるものならなんでもよい。【0105】また、3次元モーションキャプチャを用いてユーザ28の動作系列の時系列を作成してロボット12に与えるようにしたが、時系列の入力装置は、人間の動作情報を有限次元のベクトルの時系列情報として得られるものならなんでもよい。その動作は、実施例のような手先の動作であってもかまわないし、ロボット12がヒューマノイドロボットのように全身構造を有する場合には、全身の動作であってもかまわない。【0106】また、動作を表現するベクトルは、手先などの指定部位の空間座標でも、関節角度の情報であっても、ユーザの部屋の中の位置情報であってもよく、ユーザ28の動きを表象する情報であればよい。その情報は位置や速度といった力学的なものである必要もなく、多次元ベクトルとしての映像情報や音情報であっても、ある種の特徴変換を用いても用いずとも結果として有限次元のベクトルとして時系列的に得られるものであれば構わない。【0107】また、それはユーザの部屋の中の位置といったような俯瞰的な情報であっても構わない。【0108】それゆえに、時系列データを入力するための入力装置は実施例のようなカメラ式のモーションキャプチャであってもよく、ジャイロ式のモーションキャプチャであっても構わないし、通常のビデオカメラであっても、ユーザの位置を特定するGPSであっても、センサネットワークであっても構わない。【0109】ステップS5でのキーワード抽出のために実施例では、梅村氏の提唱する「辞書を用いないキーワード抽出」の手法を採用したが、その際、各パラメータは異なる値であってもよく、また、特に梅村氏の手法に限らず、各シンボルの分布情報を用いて、文書を分節化し、キーワード抽出を行う手法であれば何であっても構わない。【0110】ロボット12は、実施例のような腕型ロボットやヒューマノイドロボットの他、他の任意の形式のロボット、たとえば犬型ロボットなど、人間の動作を模倣した結果を出力できるものなら何でも構わない。コンピュータやテレビ、ゲーム機のディスプレイ上やプロジェクタ上に映し出される仮想空間上のロボットや仮想生命体、その他のエージェントでも構わない。【0111】さらに、ステップS9においてロボット12が獲得した動作を再現してユーザ28に提示したとき、実施例では、ユーザ28が主動作を再提示するユーザリアクションをステップS11の前に行うことによって、ロボット12は自分が獲得した動作が正しかったかどうか、つまりステップS13で「提示動作がユーザリアクション中に見えたかどうか」を判断するようにした。明示的なフィルタリングであっても構わない。事前に設計した強化信号、つまり、頭をたたく動作や、音声によって「めっ!」「違う」などで候補を除去し、さらには、頭をなでたり、「よし」という言葉で強化を行うのでも構わない。そのために実施例の接触センサ48やマイク54(いずれも図2)が利用できる。これらを用いない場合、当然、接触センサ48やマイク54を設ける必要はない。【0112】ただし、このようなユーザによるフィルタリングは特にはなくても構わない。【0113】なお、学習順序についていえば、たとえばSARMを用いて離散的な文字列を生成するのは、ユーザとのセッション毎でも構わないし、数セッションをためてからでも構わない。これは、文字列からキーワードを抽出する場合についても同様である。【0114】実施例では、ロボット12がサーバ34から無線によってモーションキャプチャデータを時系列情報として受け取るようにしたが、ロボット12自身が3次元モーションキャプチャカメラ32の映像信号を処理することによって、自身でモーションキャプチャデータを作成するようにしてもよい。3次元モーションキャプチャカメラをロボットに組み込んでしまうこともできる。その場合には、ユーザ動作を取得するときには一定の姿勢を保持しておく必要がある。【0115】さらに、ロボット12内のコンピュータ36がロボットの動作を制御するようにしたが、ロボットとしては関節など必要な機械的構造とそれらを直接制御する電気回路構造だけを有するものとし、実施例のコンピュータ36に相当するコンピュータはロボットとは別に設けたものでよい。その場合には、ユーザ動作を表現したモーションキャプチャデータ(時系列)はその別のコンピュータに与えられる。したがって、前述のようにした獲得または学習した有意な動作系列(キーワード)はその別のコンピュータに保存されることになる。【図面の簡単な説明】【0116】【図1】図1はこの発明の一実施例を示すロボットシステムの概要を示す図解図である。【図2】図2は図1に示すロボットの電気的な構成を示すブロック図である。【図3】図3は図1システムにおいてユーザが提示する動作の一例を示す写真である。【図4】図4は図1システムにおいてユーザが提示する動作の他の例を示す写真である。【図5】図5は図1システムにおいてセッションの過程でユーザが提示する動作系列の一例を示す写真である。【図6】図6は図1の実施例におけるロボットの動作を示すフロー図である。【図7】図7は時系列を分節化して離散的な文字列を生成することを示す図解図である。【図8】図8はキーワードの決定の際のスコアを例示する図解図である。【図9】図9(a)は図1システムにおいてユーザが提示する動作をSARMで推定した隠れ状態を示すグラフであり、図9(b)はロボットがユーザに提示した動作の時系列を例示するグラフである。motionについて獲得したキーワードを使ってユーザに提示した動作例を示す写真である。motionについて獲得したキーワードを使ってユーザに提示した動作例を示す写真である。【図12】図12は図1システムにおいてロボットが不明動作について獲得したキーワードを使ってユーザに提示した動作例を示す写真である。