行動制御装置、行動制御方法及び行動制御プログラム
【課題】データの統計量に従って、自動的にシステムの行動を決定することができ、かつ、ある特定のアクションを何回も繰り返し生成する現象を起こさないPOMDPによる行動制御装置等を提供する。
【解決手段】アクションの連続出現回数をアクション継続長とし、アクション継続長の確率をアクション継続長確率として予め記憶しておき、現在の状態の確率分布を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションを、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定する。
【解決手段】アクションの連続出現回数をアクション継続長とし、アクション継続長の確率をアクション継続長確率として予め記憶しておき、現在の状態の確率分布を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションを、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はシステムとユーザが交互にやり取りをするようなシステム(対話システムなど)において、ユーザの行動に対して、システムが次にどんな行動をとるかを決定する行動制御装置、行動制御方法及び行動制御プログラムに関する。
【背景技術】
【0002】
部分観測マルコフ決定過程(Partially Observable Markov Decision Process、以下「POMDP」という)を用いた行動制御技術として,非特許文献1、2及び3が知られている。
【0003】
非特許文献1は、6都市間のチケットを買うタスクを対象としている。また、非特許文献2は、DSL(Digital Subscriber Line)のトラブルシューティングのタスクを対象としている。これらの行動制御技術は、タスクの種類(どうなればゴールであるか)と、状態遷移の仕方(どの順序で行動するか)は既知である。また、非特許文献3は、大量のデータからシステムの行動を決定するが、POMDPを求める際には、非特許文献1及び2と同様にタスクが既知である。
【0004】
タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定する従来技術として、非特許文献4及び5が知られている。しかし、非特許文献4や非特許文献5の従来技術では、アクションaが決定されて、後述する状態saが確定的になっているにもかかわらず、確率的に扱っているため、系全体が確率的に動作し、決定論的に動作せず、精度が悪く、観測値に対して不自然な行動決定を行う場合があった。
【0005】
アクションaが決定され、後述する状態saが確定的になっているときに、決定論的に動作する従来技術として、非特許文献6が知られている。非特許文献6は、アクション確率を導入することにより、所望の行動系列を実現することができ、かつ、所望の行動系列以外のユーザの行動(観測値)に対しても学習データの統計に従った行動決定(自然なふるまい)を行うことができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】J.Williams, P. Poupart, S. Young, "Partially Observable Markov Decision Processes with Continuous Observations for Dialogue Management", Recent Trends in Discourse and Dialogue, Springer Netherlands,2008,Volume 39,p.191-217
【非特許文献2】Jason D.Williams, "Applying POMDPs to Dialog Systems in the Troubleshooting Domain", Bridging the Gap: Academic and Industrial Research in Dialog Technologies, 2007, p.1-8
【非特許文献3】K. Kim, C. Lee, S. Jung, G. G. Lee, "A Frame-Based Probabilistic Framework for Spoken Dialog Management Using Dialog Examples", Proceedings of the 9th SIGdial Workshop on Discourse and Dialogue, 2008, p.120-127
【非特許文献4】南泰浩、目黒豊美、東中竜一郎、森啓、堂坂浩二、前田英作、「統計的モデルを用いたPOMDPによる対話制御」、日本音響学会秋季研究発表会、2009
【非特許文献5】T. Meguro, R. Higashinaka, Y. Minami, K. Dohsaka, "Controlling Listening-Oriented Dialogue Using Partially Observable Markov Decision Processes", in Proc. of COLING, 2010, p.761-769
【非特許文献6】Y. Minami, R. Higashinaka, K. Dohsaka, T. Meguro, and E. Maeda, "Trigram Dialogue Control Using Pomdps", in Proc. of SLT, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1−6記載の従来技術は、POMDPの確率や報酬の設定により、システムがある特定のアクションを何回も繰り返し生成する現象が頻繁に起こることが、実験により分かった。さらに、この現象は、POMDPの確率や報酬を自動的に学習したときに(非特許文献4−6参照)、顕著に現れることが、実験により分かった。
【0008】
本発明は、データの統計量に従って、自動的にシステムの行動を決定することができ、かつ、この現象(ある特定のアクションを何回も繰り返し生成する現象)を起こさないPOMDPによる行動制御を実現する行動制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の第一の態様に係る行動制御装置によれば、アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、を予め記憶しておくPOMDP確率・報酬テーブル記憶部と、時刻をtとし、一つ前の状態の確率分布bt−1(s)を記憶する状態確率分布記憶部と、一つ前のアクションat−1を記憶するアクション記憶部と、アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、POMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新部と、アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶しておくアクション継続長確率テーブル記憶部と、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率をアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定部と、を備える。
【0010】
上記の課題を解決するために、本発明の第二の態様に係る行動制御方法によれば、時刻をtとし、一つ前の状態の確率分布bt−1(s)を状態確率分布記憶部に記憶する状態確率分布記憶ステップと、一つ前のアクションat−1をアクション記憶部に記憶するアクション記憶ステップと、アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、が予め記憶されているPOMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新ステップと、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を、アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶されているアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定ステップと、を備える。
【発明の効果】
【0011】
本発明に係る行動制御技術は、POMDPの学習データに基づき、生成されるシステム側のある特定のアクションが連続して出現する統計量すなわちアクション継続長確率を予め記録しておき、このアクション継続長確率に従って、アクションを決定する。このような構成により、タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定することができ、かつ、同じアクションを何回も繰り返すことを防ぐことができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】非特許文献4及び5のPOMDPの確率構造を示す図。
【図2】非特許文献6のPOMDPの確率構造を示す図。
【図3】アクション継続長確率テーブル記憶部180のデータ例を示す図。
【図4】行動制御装置100の機能構成例を示すブロック図。
【図5】行動制御装置100の処理フローの例を示す図。
【図6】アクションaと状態saとアクション確率P(a|s)の関係を示す図。
【図7】状態遷移確率と観測値出力確率を近似した場合のPOMDPの確率構造を示す図。
【図8】アクション継続長確率計算部9の処理フロー例を示す図。
【図9】εを用いた場合のアクションaと状態saとアクション確率P(a|s)の関係を示す図。
【図10】アクション決定部160及び260の機能構成例を示すブロック図。
【図11】アクション決定部160の処理フローの例を示す図。
【図12】アクション決定部260の処理フローの例を示す図。
【図13】シミュレーション結果を示す図。
【発明を実施するための形態】
【0013】
[本実施形態のポイント]
最初にPOMDPの定義を行う。POMDPは集合のセット(S,O,A,T,Z,R)で表現される。ここで、s∈Sは状態の集合である。o∈Oは観測値の集合である。a∈Aはアクションのセットである。Tはアクションaによって状態がsからs’へ変化するときの状態遷移確率P(s’|s,a)の集合である。Zは状態s’でアクションaによって観測値o’が観測されるときの観測値出力確率P(o’|s’,a)の集合である。Rは状態sでアクションaを実行したときの報酬r(s,a)の集合である。
【0014】
非特許文献4や非特許文献5のPOMDPの確率構造を図1に示す。図中、実線の円は確率変数を示し、点線の円は隠れ変数を表す。ひし形は固定値を表し、四角はシステム側が選択する固定の変数を表す。矢印は変数の依存関係を表し、例えば、状態sから観測値oへの矢印には確率P(o|s)が付与されている。図1のとき、状態の確率分布の更新式は
【0015】
【数1】
【0016】
と表される。なお、ηは全体の和を1にするための正規化定数を表す。
【0017】
図2は非特許文献6のPOMDPの確率構造を示す。図2のとき状態の確率分布bの更新式は
【0018】
【数2】
と表される。
【0019】
本実施形態では、式(1)や(2)等で得られる現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求める。従来技術では、関数πによって、全てのアクションの内で最もよいスコアに対応するアクションだけを求めていたが、本実施形態では、最もよいスコアに対応するアクション以外のアクション(例えば、2番目によいスコアに対応するアクション)も求める。本実施形態では、学習データに基づき予め求められたアクション継続長確率及び行動制御の過程で更新される実時間アクション継続長を用いて、最もよいスコアに対応するアクションか、または、それ以外のアクションを行うか、を制御する。なお、学習データにおける、あるアクションaの連続出現回数nを、アクション継続長naといい、アクション継続長naの確率をアクション継続長確率Pa(n)という。学習データに基づき、各アクションの連続出現回数(アクション継続長)をカウントし、その頻度分布からアクション継続長確率Pa(n)を求める。図3にアクション継続長確率テーブルのデータ例を示す。なお、図中のUは、アクションの種類の個数を表し、アクションのシンボルは1,2,…,Uからなる。また、この分布としては、アクション継続長をサンプルとする、ポアソン分布やガンマ分布、二項分布や任意の連続分布を用いてもよい。行動制御(本実施形態では対話制御)の過程において、あるアクションaが連続m回出現した場合には、その連続出現回数mを実時間アクション継続長という。アクション継続長確率Pa(n)は学習データに基づき予め算出し、記憶しておく。また、実時間アクション継続長mは、行動制御の過程において、現在までに同じアクションが何回続いたかの記録を取っておき、更新していく。次のアクションを決定する場合は、アクション継続長確率Pa(n)に従うように、実時間アクション継続長mを用いてアクションを決定する。
【0020】
以下、第一実施形態について、詳細に説明する。
【0021】
<第一実施形態に係る行動制御装置100>
図4及び図5を用いて第一実施形態に係る行動制御装置100を説明する。行動制御装置100は、POMDP確率・報酬テーブル記憶部110と、強化学習部120と、アクション評価関数記憶部130と、状態分布更新部140と、状態確率分布記憶部150と、アクション決定部160と、アクション記憶部170と、アクション継続長確率テーブル記憶部180と、を備える。なお、ユーザの行動を観測値oとし、システムの行動をアクションaとする。
【0022】
行動制御装置100は、観測値ot’を取得する前に、以下の処理(A)〜(D)を行う(s1)。
【0023】
(A)アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)とアクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、状態sでアクションaを実行したときの報酬r(s,a)と、をPOMDP確率・報酬テーブル記憶部110に記憶しておく。なお、記憶される状態遷移確率、観測値出力確率及び報酬の求め方は後述する。
(B)強化学習部120において、状態遷移確率P(s’|s,a)と、観測値出力確率P(o’|s’,a)と、報酬r(s,a)を用いて、状態の確率分布を引数として各アクションに対するスコアを返す関数πを生成する。なお、関数πの生成方法は後述する。生成された関数πをアクション評価関数記憶部130に記憶しておく。
(C)アクション決定部160は、アクション評価関数記憶部130に記憶されている関数πを取得し、記憶しておく。なお、アクション評価関数記憶部130をアクション決定部160の内部に設けてもよい。
(D)前述のアクション継続長確率をアクション継続長確率テーブル記憶部180に記憶しておく(図3参照)。なお、記憶されるアクション継続長確率の求め方は後述する。
【0024】
<POMDP確率・報酬テーブル記憶部110>
前述の通り、POMDP確率・報酬テーブル記憶部110は、状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)と報酬r(s,a)と、を記憶する。例えば、非特許文献4や非特許文献5に記載の方法で状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)と報酬r(s,a)を求める。
【0025】
なお、学習データの統計すなわち、アクションの予測確率をアクション制御に反映するために、図2の状態に、アクションaに一対一に対応するsaという状態を付加する。ここで、ユーザ・システム間対話の隠れ状態(以下、単に「状態」という)sは、ユーザ・システムの隠れ状態soと行動生成のための隠れ状態saとの組からなり、s=(so,sa)と表される。なお、soは、図2の状態と全く等価である。saの役割は、アクションaの予測確率を推定することである。また、その予測確率を最大化するアクションaを選択するためのものである。図6に示すように、aとsaとを一対一に対応させるためにa=saのときのみ、アクション確率P(a|s=(*,sa))=1とする。ここでのアクションの種類の数は3である。但し、*は任意の状態soを表し、アクション確率P(a|s)は状態sでアクションaを実行する確率を表す。
【0026】
ここで、本実施形態では、計算量の削減を考えて、状態遷移確率P(s’|s,a)及び観測値出力確率P(o’|s’,a)を以下のように近似する。
【0027】
P(s'|s,a)≒P(so'|so,a)P(sa'|sa,so') (4)
P(o'|s',a)≒P(o'|so') (5)
図7はこのときのPOMDPの構造を示す。確率P(rt|st,at)、確率P(st+1|st,at)、確率P(ot+1|st+1,at)は、trigram確率として単純な確率計算で求めてもよいし、ダイナミックベイジアンネットワーク(以下、「DBN」という)を使って学習して求めてよい。以下、DBNを使って、POMDP確率・報酬を求める方法を例示する。
【0028】
(行動データ記憶部1)
人対人の行動を示すデータ(例えば、対話を記録した音声データや画像データ等)において、一方の人をユーザとし、他方の人をシステムとして割り当てる。ユーザの行動を観測値oとし、システムの行動をアクションaとし、観測値oとアクションaからなる一連の行動系列が所望の行動系列であったか否かを、人手により評価する。所望の行動系列として、例えば、システムに親近感を感じる行動系列、ユーザが楽しんだ行動系列、典型的な行動系列、ユーザの役に立つ行動系列等を用いる。また、評価には、アンケートの質問への回答等を利用することができる。例えば、「システムに親近感を感じましたか」、「楽しめましたか」、「役に立ちましたか」等の質問を行い、結果を評価値として記述する。この評価値にdという変数を利用する。この値が高い行動系列を所望の行動系列とする。
【0029】
行動データ記憶部1は、このようにして求めた観測値oとアクションaと評価値dの組合せ(o,a,d)を記憶する。このとき、関数πを学習するために十分な量の組合せを記録する。
【0030】
(DBN生成部3及びDBN確率テーブル記憶部5)
DBN生成部3は、時系列の観測値ot、アクションat、評価値dtを用いて、EMアルゴリズム、ジャンクションツリーアルゴリズム、サンプリング手法などにより、尤度最大化を行い、行動生成モデルのためのDBNを生成する。なお、評価値dを確率変数として扱う。tは時刻を表すものとする。ここで、tは変数の相対的な時刻の関係を明確にするために用いた記号であり、特定の時刻を想定しているものではない。すなわち、ここで示す確率及びそれを使った演算は、時刻に依存しない。
【0031】
DBN生成部3は、DBNを生成し、状態stでアクションatを実行したときの評価値dtの確率P(dt|st,at)、アクションatによって状態がstからst+1へ変わる確率P(st+1|st,at)、アクションatによって状態st+1で観測値ot+1が観測される確率P(ot+1|st+1,at)を推定する。さらに、DBN生成部3で推定された各確率は、DBN確率テーブル記憶部5に記憶される。
【0032】
なお、求めようとするPOMDP確率・報酬において、s=(so,sa)とし、状態遷移確率P(s’|s,a)及び観測値出力確率P(o’|s’,a)を式(4)及び(5)によって、近似しているので、DBNにおいても同様の処理を行い、対応する確率を求める。
【0033】
(DBN−POMDP変換部7)
DBN−POMDP変換部7は、DBN生成部3で推定された確率を以下の式により、POMDPの確率・報酬に変換する。なお、観測値及びアクションとして同じ定義のシンボルが使われると仮定する。
【0034】
【数3】
【0035】
DBNとPOMDPの構造はほぼ同じなので、状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,at)に関しては、対応する確率を代入すればよい。報酬はDBNにおいて確率変数として扱われるため、DBNで得られた確率変数を平均化することによって、実数に変換したものをPOMDPにおいて用いる。例えば、dtの確率分布から式(6)によって求める。このようにして、DBN−POMDP変換部7は、状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,at)及び報酬r(s,a)を生成する。POMDP確率・報酬テーブル記憶部110は、これらの値を利用に先立ち予め記憶しておく。
【0036】
(アクション継続長確率計算部9)
アクション継続長確率計算部9は、学習データからアクションaの連続出現回数nをアクション継続長naとしてカウントし、アクション継続長naの頻度分布、ポアソン分布、ガンマ分布、二項分布または任意の連続分布を用いて、アクション継続長確率Pa(n)を計算する。例えば、アクション継続長確率計算部9は、行動データ記憶部1に記憶されている時系列の行動データの内、時系列のアクションat(但し、時系列の行動データの個数をJとすると、t=1,2,…,Jである)を学習データとして取得し(図8のs91)、各パラメタを初期化する(s92)。atとat−1とが同一か否かを判定し(s93)、同一の場合には、アクション継続長nを一回分大きくする(s94)。atとat−1とが異なる場合には、アクションat−1のアクション継続長nat−1に対する頻度cnt(nat−1)を1つ大きくし(s95)、アクション継続長nを1に戻す(s96)。全てのアクションに対して上記処理を行い(s97,98)、各アクションaに対する各アクション継続長naの頻度分布を求める。なお、最後のアクションaJについては、アクションatのアクション継続長natに対する頻度を1つ大きくする(s99)。なお、nの添え字のat,at−1はそれぞれat、at−1を表す。以下の式により、アクションa毎に、各連続出現回数qa(qa=1,2,…,Qa)の頻度cnt(qa)の総和に対する連続出現回数naの頻度cnt(na)の比を求め(s100)、その比をアクション継続長確率Pa(n)とする。但し、Qaはアクションaの連続出現回数qaの最大値を表す。
【0037】
【数4】
【0038】
このように各アクションaの各アクション継続長naの確率Pa(n)を計算し、アクション継続長確率Pa(n)を求める(s104−s106)。また、連続出現回数nの頻度cnt(na)の平均値を求め、ポアソン分布に基づきアクション継続長確率Pa(n)を求めてもよい。また、ガンマ分布やその他の連続分布に基づきアクション継続長確率Pa(n)を求めてもよいし、他の方法により頻度分布を求めてもよい。
【0039】
アクション継続長確率計算部9は、求めたアクション継続長確率Pa(n)を行動制御装置100に出力する。行動制御装置100のアクション継続長確率テーブル記憶部180は、アクション継続長確率Pa(n)を利用に先立ち予め記憶しておく(図3参照)。
【0040】
<強化学習部120及びアクション評価関数記憶部130>
強化学習部120は、状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,at)及び報酬r(s,a)を用いて、強化学習により、状態の確率分布を引数とし各アクションに対するスコアを返す関数(以下「アクション評価関数」という)πが得られる。アクション評価関数記憶部130は、強化学習部120で生成されたアクション評価関数πを記憶する。
【0041】
次に、状態の確率分布を引数とし最もよいスコアに対応するアクションを返す関数(以下「ポリシー」という)π’の計算方法について説明する。まず、以下の式は、前述のポリシーが既知であると仮定して、時刻tから時刻τ+tまでのアクション系列aτ+tがポリシーπ’によって選択されたときの将来獲得できる平均報酬を示す。
【0042】
【数5】
【0043】
ここで、bτ+t(s)は、時刻τ+tの状態の確率分布である。また、正定数γ(<1)により未来の報酬の寄与は小さくなる。ポリシーπ’は、式(11)を最大にする現在のアクションatを、アクション評価関数πと現在の状態の確率分布bt(s)から計算する関数である。
【0044】
<データ中に出現する統計情報に従って行動を選択する手法>
まず、現在の状態の確率分布bt(s)の定義から次式が得られる。
【0045】
【数6】
【0046】
これは、過去のo1,a1,…,at−1,otという系列、すなわちユーザとシステムの観測値とアクションの履歴が実行された後に、状態がsaとなる確率を表している。
【0047】
a=saのときにP(a|sa)=1としているため、at=saのときに以下の式を得る。
【0048】
【数7】
【0049】
これは、過去のo1,a1,…,at−1,otが観測されたときの次にアクションatが起こる確率を表す。すなわち、今までのデータからatがどれだけ自然かを表す確率となっている。すなわち、式(14)を最大化するようにPOMDPの報酬を決めれば、ポリシーにより、学習データの統計に従ったアクションを生成するようになる。これを実現するためには、報酬を
【0050】
【数8】
【0051】
として設定すればよい。但し、a=saを満たす必要がある。このように報酬を決定するため、ここでは、a=saのときに1をとり、それ以外のときには0をとるように報酬r^((*,sa),a)を定める。
【0052】
【数9】
【0053】
ここで、*は任意の状態soを指す。この値を用いて、rをr^に置き換えれば、学習データの統計に従った対話を実現できる。ここでは、従来型の所望の行動系列も実現するために従来手法の報酬の線形和をとる。なお、従来型の所望の行動系列に対する報酬は、式(6)より、以下のように示すことができる。但し、*’は任意の状態saを指す。
【0054】
【数10】
【0055】
よって、式(16)及び(17)を用いて、式(11)のrをαr+βr^で置き換えた下記式(18)により最終的な目的関数Vπ’tを得る。
【0056】
【数11】
【0057】
ここで、α、βは任意の実数である。このα、βを変化させることにより、所望の行動を実現する(αが大きい場合)のか統計的な行動を優先する(βが大きい場合)のか、その優先度合いの重みづけを行うことができる。なお、α、βを0とすることも可能である。
【0058】
本実施形態では式(18)を最大にするアクション系列aτ+tを求めるポリシーを求めることにより行動制御を実現する。強化学習を用いると、式(18)を最大化するアクションを決定するポリシーを事前に求めることができる。POMDPの環境を既知として、最適なポリシーをValue Iterationという手法で式(18)をポリシーに対して最大化を行うことにより求めることができる。ここでは、計算時間の削減のため、近似手法であるPoint-based Value Iterationを用いる。なお、Value IterationやPoint-based Value Iterationを用いて、ポリシーπ’を求める過程において、前述のアクション評価関数π(状態の確率分布を引数とし各アクションに対するスコアを返す関数)を生成することができる(参考文献1参照)。
[参考文献1]S. Russell and P. Norvig, “Artificial Intelligence: a Modern Approach Second Edition”, Prentice Hall, 2003.
【0059】
通常、対象となる所望の行動系列に対してPOMDPによる行動生成の学習を行うと、所望の行動系列だけをシステムは実現しようとする。このため、人と人の行動の記録には、所望の行動系列だけではなく、様々な系列が含まれているのにもかかわらず、所望の行動系列以外の行動を選択しなくなる。よって、人と人との間のやり取りを再現しつつ、かつ、所望の行動系列にユーザを引き込むようなシステムを作る場合には、所望の行動系列だけを学習するだけでは不十分である。このような構成とすることで、システムを構成する際にはこれらの行動系列の統計情報も含めて、システムの行動制御を学習するため、所望の行動系列へ引き込みつつも、学習データの統計に従った行動制御を行うことができる。
【0060】
<状態分布更新部140及び状態確率分布記憶部150>
以下、図4及び図5を用いて説明する。まず、状態分布更新部140は、観測値ot’を取得すると(s3)、状態確率分布記憶部150に問合せて、一つ前の状態の確率分布bt−1(s)を取得し、アクション記憶部170に問合せて、一つ前のアクションat−1とを取得する(s5)。
【0061】
次に、状態分布更新部140は、取得した現在の観測値ot’と一つ前のアクションat−1をキーとして、POMDP確率・報酬テーブル記憶部110を参照し、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得する(s7)。
【0062】
さらに、状態分布更新部140は、取得したP(s’|s,a)と観測値出力確率P(o’|s’,a)と、さらに、P(a|s)を用いて式(2)により、
【0063】
【数12】
【0064】
取得した一つ前の状態の確率分布bt−1(s)を更新し、現在の状態の確率分布bt(s’)を求める(s9)。
【0065】
なお、本実施形態では、状態遷移確率P(s’|s,a)及び観測値出力確率P(o’|s’,a)を式(4)、(5)により近似しているので、
P(s'|s,a)≒P(so'|so,a)P(sa'|sa,so') (4)
P(o'|s',a)≒P(o'|so') (5)
現在の状態の確率分布を
【0066】
【数13】
【0067】
として求める。なお、現在の状態の確率分布bt(s’)はアクション決定部160と状態確率分布記憶部150に出力される。
【0068】
状態確率分布記憶部150は、現在の状態の確率分布bt(s’)を記憶する(s10)。
【0069】
非特許文献6は、状態の確率分布の更新式中にアクション確率P(a|s)を導入する点が、非特許文献4及び5と異なる。なお、図1と図2の違いによりこのアクション確率P(a|s)が生じる。
【0070】
アクション確率P(a|s)は、図6に示すような確率テーブルを予め図示しない記憶部に記憶しておいてもよいし、a=saのときにP(a|s)に1を代入し、a≠saのときはP(a|s)に0を代入する構成としてもよい。但し、図5に示すようにa≠saのときにP(a|s)=0とすると、認識誤りがあった場合に、システムが決定論的に動き、認識誤りを考慮していないため、式(2’)において、bt(s’)がほとんど0になってしまう場合がある。このような場合にはシステムが動作しない。そこで、図9に示すようにa≠saのときにP(a|s)=εとして、全ての状態が0になることを回避する。但し、εは非常に小さな値を示す。このように設定することで、認識誤りがあった場合にも停止せずに動作する行動制御装置を構成することができる。
【0071】
なお、認識誤りを考慮した場合のアクション確率P(a|s)の設定方法は上述した方法に限定されるものではなく、例えば、ファジーロジックを使って設定してもよいし、アクション間にある距離を設定して、平滑化する手法等を用いてもよい。
【0072】
<アクション決定部160、アクション記憶部170、アクション継続長確率テーブル記憶部180>
アクション決定部160は、スコア算出部161と、比較部163と、選択部165と、実時間アクション継続長記憶部167と、を有する(図10参照)。図11を用いて、アクション決定部160の処理内容(図5中のs11)を説明する。
【0073】
(スコア算出部161)
スコア算出部161は、利用に先立ち予め、アクション評価関数記憶部130に記憶されている関数πを取得し、記憶しておく。スコア算出部161は、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションaに対するスコアSaを求める。例えば、最もよいスコアに対応するアクションat’(rank1)と二番目によいスコアに対応するアクションat’(rank2)を求め(s161)、at’(rank1)を比較部163に出力し、at’(rank1)とat’(rank2)を選択部165に出力する。なお、例えば、関数πとは、各アクションaに対して、スコア
【0074】
【数14】
【0075】
(但し、τ+t=t(つまり、τ=0)のときだけ、ポリシーπ’を使わず、各アクションaについて全て求める(つまり、at=aを選択する)) (20)
を求め、返す関数である。式(20)の場合、V(b(t))の値が大きいほど、スコアがよいことを表す。
【0076】
(比較部163)
比較部163は、アクション記憶部170から一つ前のアクションat−1を取得し、スコア算出部から最もよいスコアに対応するアクションat’(rank1)を受け取る。そして、一つ前のアクションat−1と最もよいスコアに対応するアクションat’(rank1)とが同一か否かを判定し(s163)、判定結果を選択部165に出力する。なお、最初の判定時には、一つ前のアクションat−1が存在しないため、「at−1とat’(rank1)とが異なる」ことを表す判定結果を出力する。
【0077】
(選択部165及び実時間アクション継続長記憶部167)
選択部165は、判定結果と、最もよいスコアに対応するアクションat’(rank1)と、二番目によいスコアに対応するアクションat’(rank2)と、を受け取る。そして、判定結果が「at−1とat’(rank1)とが異なる」ことを表す場合には、最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定する(s165b)。さらに、実時間アクション継続長記憶部167から行動制御(本実施形態では対話制御)の過程で更新される実時間アクション継続長mを取得し、mを最小(例えば、1)とし(s165f)、実時間アクション継続長記憶部167に記憶する。
【0078】
選択部165は、判定結果が「at−1とat’(rank1)とが同一である」ことを表す場合には、アクションat’(rank1)の実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)をアクション継続長確率テーブル記憶部180から受け取る。但し、添え字のat’(rank1)は、at’(rank1)を意味する。このアクション継続長確率Pat’(rank1)(m)から得られる値と一様乱数との大小関係に応じて、システムがとるべきアクションとして決定する。
【0079】
アクション継続長確率Pat’(rank1)(m)から得られる値とは、例えば、実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)と、実時間アクション継続長m以上に対応するアクション継続長確率の総和との比
【0080】
【数15】
【0081】
である。これは、アクション継続長m以上において、アクション継続長mのアクションat’(rank1)が生成される確率である。この確率が高い場合には、m+1以降においてアクションat’(rank1)が生成される確率は低いことを意味する。この場合、実時間アクション継続長記憶部167から実時間アクション継続長mを受け取り、最もよいスコアに対応するアクションat’(rank1)の実時間アクション継続長m以上に対応するアクション継続長確率をアクション継続長確率テーブル記憶部180から受け取る。また、例えば一様乱数の有限の区間は0以上1以下とする。よって、選択部165は、式(21)により、前述の確率(比)を求め、この確率と一様乱数とを比較する(s165a)。なお、図中rand()は、一様乱数を返す関数を表す。
【0082】
確率が一様乱数より小さい場合には、実時間アクション継続長mの最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定し(s165c)、実時間アクション継続長mを1回分大きくし(s165e)、実時間アクション継続長記憶部167に記憶する。
【0083】
確率が一様乱数以上の場合には、最もよいスコアに対応するアクションat’(rank1)とは異なるアクションat’(rank2)を、システムがとるべきアクションat’として決定し(s165d)、アクション継続長を最小とし(s165f)、実時間アクション継続長記憶部167に記憶する。これは、確率が一様乱数より小さい場合はアクション継続長mでそのアクションが終わらない(継続する)可能性が高く、確率が一様乱数より大きい場合はアクション継続長mでそのアクションが終わる(継続しない)可能性が高いことを意味するからである。アクション決定部160は、決定したアクションat’を、行動制御装置100の出力値として出力する。また、アクションat’をアクション記憶部170に出力する。
【0084】
アクション記憶部170は、アクションat’を記憶する(図5のs12)。
【0085】
最後の観測値までs3〜s12の処理を繰り返す(s13)。
【0086】
<効果>
このような構成により、タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定することができ、かつ、学習データ中のアクション継続長の統計に従ったアクションを実行でき、同じアクションだけを何回も繰り返し実行する行動制御を避けることができる。
【0087】
<変形例>
行動制御装置100は、強化学習部120及びアクション評価関数記憶部130を備えているが、これらの構成を別装置として構成してもよい。その場合、行動制御装置100は、別装置で生成した関数πを取得し、アクション決定部160に記憶しておけばよい。なお、別装置で関数πを生成する場合には、行動制御装置100が備えるPOMDP確率・報酬テーブル記憶部110には、状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)のみを記憶する構成としてもよい。
【0088】
本実施形態では、計算量を削減するために、式(4)、(5)を用いて状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,a)を近似し、さらに、式(2’)を用いて状態の確率分布の更新式を近似しているが、他の式により各値を近似してもよいし、近似せずに各値を求めてもよい。また式(1)や他の式を用いて状態の確率分布を更新してもよい。
【0089】
なお、行動制御装置100は、行動データ記憶部1、DBN生成部3、DBN確率テーブル記憶部5、DBN−POMDP変換部7、アクション継続長確率計算部9の何れか1つ以上を備える構成であってもよい。
【0090】
アクション決定部160において、必ずしも最もよいスコアに対応するアクション、または、2番目によいスコアに対応するアクションを、システムが取るべきアクションとして決定せずともよい。例えば、図11のs165aにおいて、2番目によいスコアと3番目によいスコアの比が一様乱数よりも小さい場合、この比が一様乱数より大きいか否か判定し、大きい場合には、2番目によいスコアに対応するアクションat’(rank2)をシステムが取るべきアクションとして決定し、小さい場合には、3番目によいスコアに対応するアクションat’(rank3)をシステムが取るべきアクションとして決定する構成であってもよい。つまり、自動的にシステムの行動を決定することができ、同じアクションだけを何回も繰り返し実行する行動制御を避けることができ、かつ、不自然でない行動を選択するものであればよく、適宜変更できる。
【0091】
本実施形態では、対話制御について説明したが、システムとユーザが交互にやり取りをするような対話制御以外の行動制御システムにおいても、同様に本実施形態に係る行動制御技術を利用することができる。
【0092】
<第二実施形態に係る行動制御装置200>
以下、第一実施形態と異なる部分についてのみ説明する。行動制御装置200は、POMDP確率・報酬テーブル記憶部110と、強化学習部120と、アクション評価関数記憶部130と、状態分布更新部140と、状態確率分布記憶部150と、アクション決定部260と、アクション記憶部170と、アクション継続長確率テーブル記憶部180と、を備える(図4参照)。アクション決定部260の構成及び処理内容が第一実施形態とは異なる。
【0093】
<アクション決定部260>
アクション決定部260は、スコア算出部161と、比較部163と、選択部265と、実時間アクション継続長記憶部167と、実時間アクション継続長確率テーブル記憶部268(図10中、一点鎖線で示す)とを有する。図12を用いて、アクション決定部260の処理内容(図5中のs21)を説明する。但し、第一実施形態と異なる部分(選択部265と実時間アクション継続長確率テーブル記憶部268)についてのみ説明する。
【0094】
(選択部265、実時間アクション継続長記憶部167及び実時間アクション継続長確率テーブル記憶部268)
選択部265は、比較部163の判定結果と最もよいスコアに対応するアクションat’(rank1)と二番目によいスコアに対応するアクションat’(rank2)とを受け取る。そして、判定結果が「at−1とat’(rank1)とが異なる」ことを表す場合には、最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定する(s165b)。さらに、実時間アクション継続長記憶部167から対話制御の過程で更新される実時間アクション継続長mを取得し、mを最小とし(s165f)、実時間アクション継続長記憶部167に記憶する。さらに、一つ前のアクションat−1の実時間アクション継続長mat−1に基づき、対話制御の過程における実時間アクション継続長確率を更新し(s265g)、実時間アクション継続長確率テーブル記憶部268に記憶する。例えば、選択部265は、前述のアクション継続長確率計算部9と同様の方法により、アクションat−1の実時間アクション継続長mat−1をカウントし、実時間アクション継続長mat−1の頻度分布、ポアソン分布、ガンマ分布または二項分布や任意の連続分布用いて、実時間アクション継続長確率P ̄a−1(mat−1)を計算する。at−1とat’(rank1)とが異なる場合には、対話制御の過程における一つ前のアクションat−1の実時間アクション継続長mat−1が確定し、実時間アクション継続長の頻度分布等が変化するため、実時間アクション継続長確率を更新する。更新した実時間アクション継続長確率を実時間アクション継続長確率テーブル記憶部268に記憶する。実時間アクション継続長確率テーブル記憶部268には、アクション継続長確率テーブル記憶部180と同様のデータ構造である(但し、実時間アクション継続長確率に基づいたデータである)。
【0095】
選択部265は、判定結果が「at−1とat’(rank1)とが同一である」ことを表す場合には、アクションat’(rank1)の実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)をアクション継続長確率テーブル記憶部180から受け取る。このアクション継続長確率Pat’(rank1)(m)から得られる値と一様乱数との大小関係に応じて、システムがとるべきアクションとして決定する。
【0096】
アクション継続長確率Pat’(rank1)(m)から得られる値とは、例えば、実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)と実時間アクション継続長確率P ̄at’(rank1)(m)との確率差分
ΔPat’(rank1)(m)=Pat’(rank1)(m)-P ̄at’(rank1)(m) (31)
(但し、Pat’(rank1)(m)-P ̄at’(rank1)(m)<0のとき、ΔPat’(rank1)(m)←0とする。)
と、実時間アクション継続長m以上に対応するアクション継続長確率と実時間アクション継続長確率との確率差分の総和との比
【0097】
【数16】
【0098】
(但し、Pat’(rank1)(n)-P ̄at’(rank1)(n)<0のとき、ΔPat’(rank1)(n)←0とする。)
である。この場合、実時間アクション継続長記憶部167から実時間アクション継続長mを受け取り、最もよいスコアに対応するアクションat’(rank1)の実時間アクション継続長m以上に対応するアクション継続長確率をアクション継続長確率テーブル記憶部180から受け取り、実時間アクション継続長m以上に対応する実時間アクション継続長確率を実時間アクション継続長確率テーブル記憶部268から受け取る。また、例えば一様乱数の有限の区間は0以上1以下とする。よって、選択部265は、式(32)により、前述の比を求め、この比と一様乱数とを比較する(s265a)。
【0099】
比が一様乱数より小さい場合には、最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定し(s165c)、実時間アクション継続長mを1回分大きくし(s165e)、実時間アクション継続長記憶部167に記憶する。
【0100】
比が一様乱数以上の場合には、最もよいスコアに対応するアクションat’(rank1)とは異なるアクションat’(rank2)を、システムがとるべきアクションat’として決定し(s165d)、アクション継続長を最小とし(s165f)、実時間アクション継続長記憶部167に記憶する。さらに、一つ前のアクションat−1の実時間アクション継続長に基づき、対話制御の過程における実時間アクション継続長確率を更新し(s265g)、実時間アクション継続長確率テーブル記憶部268に記憶する。
【0101】
アクション決定部260は、決定したアクションat’を、行動制御装置200の出力値として出力する。また、アクションat’をアクション記憶部170に出力する。
【0102】
<効果>
このような構成とすることにより、第一実施形態と同様の効果を得ることができる。さらに、確率差分を用いることで、行動制御の過程で過去に起きた事象の生起確率を、第一実施形態よりも低く抑えることができ、学習データに近い継続時間長の分布を実現でき、より自然な対話を実現できる。
【0103】
[シミュレーション結果]
実際の対話からPOMDP確率・報酬を生成し、それを用いてポリシーを学習し、そのPOMDP確率とポリシーを記憶した行動制御装置に対し観測値を入力し、その観測値に対するアクションが、実時間アクション継続長mによる制御を行うか行わないかで、その評価がどのように変わるかを調べた。実時間アクション継続長mによる制御を行う行動制御装置として第二実施形態の行動制御装置200を用い、実時間アクション継続長mによる制御を行わない行動制御装置として非特許文献6の行動制御装置を用いる。
【0104】
アクションと観測値には、33種類の行動(シンボル)が付与されるものとする。実験では、実際の対話データに対して、これらの行動(シンボル)を人手で付与した。以下に、実際の対話データの例を示す。ユーザと聞き役であるシステムを想定している。
ユーザ:こんにちは、はじめまして、“食事”の話をしましょう。
システム:はじめまして。
ユーザ:夕食にカレーを食べました。カレーは好きですか?
システム:はい好きです。
ユーザ:本当ですか?私もです。
システム:いつも外に食べに行きますか?
ユーザ:いいえ、いつも家で作って食べます。特別なスパイスは使わないんです。でも、ときどき、カレーうどんも作ります。
システム:いいですね。
【0105】
この例のように、実際の対話データでは、行動は必ずしも、システム、ユーザ、交互には行われない。そこで何もしないという行動(シンボル)を追加し(全33種)、行動が交互に出現するようにした。250対話に対して行動(シンボル)を付与した。そして一連の行動系列が所望の行動系列であったか否かを5段階で人が評価し、評価値を行動系列に付与した。なお、所望の行動系列として、ユーザが満足感を感じる行動系列を選んだ。そのデータに基づきDBNの学習とtrigramの学習により、統計量を学習した。なお、二つのモデルは等価なので、何れの学習を用いても統計量は、同じ値となった。さらに、DBNからはPOMDP確率・報酬を生成し、生成したPOMDP確率・報酬に基づき、ポリシーを学習する。その際、所望の行動系列に対する報酬を1とおいた(式(18)においてα=1とした)。また、βは20、15、10と3種類を調べた。
【0106】
ユーザの挙動をシミュレートするため、行動データから得られたtrigramに基づいてランダムに観測値を選択し、アクション継続長制御を行う場合と行わない場合について、行動制御装置に入力し、それぞれのアクションを取得した。シミュレーションではそれぞれ1000対話を生成した。
【0107】
対話の評価にはいくつかの評価を手法を用いた。一つは以下の式に示すエントロピーを基準とした。
【0108】
【数17】
【0109】
但し、Pgenerated data(a)は生成されたアクションの対話中での生起確率を表す。この値が大きければ、系は乱雑であり、特定のアクションに偏っていないことが分かる。また、次の確率分布の距離も評価尺度とした。
【0110】
【数18】
【0111】
この値が小さいほど、生成されたアクションの分布が学習データの分布に近いことを示す。さらに、以下の式に示す平均トライグラム確率も調べた。
【0112】
【数19】
【0113】
Kは対話の数、Liは個々の行動の長さである。この値は、生成された行動系列が、学習データのtrigram確率にどれだけ従っているかを表す尺度である。大きいほど、学習データの統計に従った対話系列を出力していると考えられる。なお、P(ait+1|ait,oit+1)は、ait、oit+1が与えられたときにait+1を生成するtrigram確率を表す。この値は大きいほど、学習データ中の確率の高いアクションを出力していることになるが、全く同じアクションばかりを生成してもこの値が高くなることもある。
【0114】
最後に、満足度に関する評価も入れておく。この式は、以下のようになる。
【0115】
【数20】
【0116】
ここではデータから得られる観測値とそれに対するアクション間の平均の評価値である。ユーザの評価は過去の履歴に大きな影響を受ける。しかし、ここでは、ユーザの評価はユーザの最後の観測値に対するシステムのアクションに対して、尤も強く影響を受けると仮定した。また、本来であれば、実際のユーザを利用して評価を行うべきではあるが、ここでは手法の認識誤りに対する頑健性を調べるためシミュレーションによる評価尺度を用いた。
【0117】
図13に実験結果を示す。エントロピーを見ても、確率分布の距離を見ても、継続長制御ありとなしどちらの場合も、β=15の場合がよい結果を示していることが分かる。継続長制御ありとなしで比べると、トライグラムの確率は落ちているものの、エントロピーも、確率分布の距離も学習データに近い。実際に、継続長制御がない場合は、同じアクションを生成することが多く不自然である。なお、アクション決定部における継続長の制御には、第二実施形態を用いた。
【0118】
<プログラム及び記録媒体>
上述した行動制御装置は、コンピュータにより機能させることもできる。この場合はコンピュータに、目的とする装置(実施形態で図に示した機能構成をもつ装置)として機能させるためのプログラム、またはその処理手順(実施形態で示したもの)の各過程をコンピュータに実行させるためのプログラムを、CD−ROM、磁気ディスク、半導体記憶装置などの記録媒体から、あるいは通信回線を介してそのコンピュータ内にダウンロードし、そのプログラムを実行させればよい。
【符号の説明】
【0119】
1 行動データ記憶部
3 生成部
5 確率テーブル記憶部
7 変換部
9 アクション継続長確率計算部
100,200 行動制御装置
110 確率・報酬テーブル記憶部
120 強化学習部
130 ポリシー記憶部
140 状態分布更新部
150 状態確率分布記憶部
160,260 アクション決定部
170 アクション記憶部
180 アクション継続長確率テーブル記憶部
【技術分野】
【0001】
本発明はシステムとユーザが交互にやり取りをするようなシステム(対話システムなど)において、ユーザの行動に対して、システムが次にどんな行動をとるかを決定する行動制御装置、行動制御方法及び行動制御プログラムに関する。
【背景技術】
【0002】
部分観測マルコフ決定過程(Partially Observable Markov Decision Process、以下「POMDP」という)を用いた行動制御技術として,非特許文献1、2及び3が知られている。
【0003】
非特許文献1は、6都市間のチケットを買うタスクを対象としている。また、非特許文献2は、DSL(Digital Subscriber Line)のトラブルシューティングのタスクを対象としている。これらの行動制御技術は、タスクの種類(どうなればゴールであるか)と、状態遷移の仕方(どの順序で行動するか)は既知である。また、非特許文献3は、大量のデータからシステムの行動を決定するが、POMDPを求める際には、非特許文献1及び2と同様にタスクが既知である。
【0004】
タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定する従来技術として、非特許文献4及び5が知られている。しかし、非特許文献4や非特許文献5の従来技術では、アクションaが決定されて、後述する状態saが確定的になっているにもかかわらず、確率的に扱っているため、系全体が確率的に動作し、決定論的に動作せず、精度が悪く、観測値に対して不自然な行動決定を行う場合があった。
【0005】
アクションaが決定され、後述する状態saが確定的になっているときに、決定論的に動作する従来技術として、非特許文献6が知られている。非特許文献6は、アクション確率を導入することにより、所望の行動系列を実現することができ、かつ、所望の行動系列以外のユーザの行動(観測値)に対しても学習データの統計に従った行動決定(自然なふるまい)を行うことができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】J.Williams, P. Poupart, S. Young, "Partially Observable Markov Decision Processes with Continuous Observations for Dialogue Management", Recent Trends in Discourse and Dialogue, Springer Netherlands,2008,Volume 39,p.191-217
【非特許文献2】Jason D.Williams, "Applying POMDPs to Dialog Systems in the Troubleshooting Domain", Bridging the Gap: Academic and Industrial Research in Dialog Technologies, 2007, p.1-8
【非特許文献3】K. Kim, C. Lee, S. Jung, G. G. Lee, "A Frame-Based Probabilistic Framework for Spoken Dialog Management Using Dialog Examples", Proceedings of the 9th SIGdial Workshop on Discourse and Dialogue, 2008, p.120-127
【非特許文献4】南泰浩、目黒豊美、東中竜一郎、森啓、堂坂浩二、前田英作、「統計的モデルを用いたPOMDPによる対話制御」、日本音響学会秋季研究発表会、2009
【非特許文献5】T. Meguro, R. Higashinaka, Y. Minami, K. Dohsaka, "Controlling Listening-Oriented Dialogue Using Partially Observable Markov Decision Processes", in Proc. of COLING, 2010, p.761-769
【非特許文献6】Y. Minami, R. Higashinaka, K. Dohsaka, T. Meguro, and E. Maeda, "Trigram Dialogue Control Using Pomdps", in Proc. of SLT, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1−6記載の従来技術は、POMDPの確率や報酬の設定により、システムがある特定のアクションを何回も繰り返し生成する現象が頻繁に起こることが、実験により分かった。さらに、この現象は、POMDPの確率や報酬を自動的に学習したときに(非特許文献4−6参照)、顕著に現れることが、実験により分かった。
【0008】
本発明は、データの統計量に従って、自動的にシステムの行動を決定することができ、かつ、この現象(ある特定のアクションを何回も繰り返し生成する現象)を起こさないPOMDPによる行動制御を実現する行動制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の第一の態様に係る行動制御装置によれば、アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、を予め記憶しておくPOMDP確率・報酬テーブル記憶部と、時刻をtとし、一つ前の状態の確率分布bt−1(s)を記憶する状態確率分布記憶部と、一つ前のアクションat−1を記憶するアクション記憶部と、アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、POMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新部と、アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶しておくアクション継続長確率テーブル記憶部と、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率をアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定部と、を備える。
【0010】
上記の課題を解決するために、本発明の第二の態様に係る行動制御方法によれば、時刻をtとし、一つ前の状態の確率分布bt−1(s)を状態確率分布記憶部に記憶する状態確率分布記憶ステップと、一つ前のアクションat−1をアクション記憶部に記憶するアクション記憶ステップと、アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、が予め記憶されているPOMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新ステップと、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を、アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶されているアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定ステップと、を備える。
【発明の効果】
【0011】
本発明に係る行動制御技術は、POMDPの学習データに基づき、生成されるシステム側のある特定のアクションが連続して出現する統計量すなわちアクション継続長確率を予め記録しておき、このアクション継続長確率に従って、アクションを決定する。このような構成により、タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定することができ、かつ、同じアクションを何回も繰り返すことを防ぐことができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】非特許文献4及び5のPOMDPの確率構造を示す図。
【図2】非特許文献6のPOMDPの確率構造を示す図。
【図3】アクション継続長確率テーブル記憶部180のデータ例を示す図。
【図4】行動制御装置100の機能構成例を示すブロック図。
【図5】行動制御装置100の処理フローの例を示す図。
【図6】アクションaと状態saとアクション確率P(a|s)の関係を示す図。
【図7】状態遷移確率と観測値出力確率を近似した場合のPOMDPの確率構造を示す図。
【図8】アクション継続長確率計算部9の処理フロー例を示す図。
【図9】εを用いた場合のアクションaと状態saとアクション確率P(a|s)の関係を示す図。
【図10】アクション決定部160及び260の機能構成例を示すブロック図。
【図11】アクション決定部160の処理フローの例を示す図。
【図12】アクション決定部260の処理フローの例を示す図。
【図13】シミュレーション結果を示す図。
【発明を実施するための形態】
【0013】
[本実施形態のポイント]
最初にPOMDPの定義を行う。POMDPは集合のセット(S,O,A,T,Z,R)で表現される。ここで、s∈Sは状態の集合である。o∈Oは観測値の集合である。a∈Aはアクションのセットである。Tはアクションaによって状態がsからs’へ変化するときの状態遷移確率P(s’|s,a)の集合である。Zは状態s’でアクションaによって観測値o’が観測されるときの観測値出力確率P(o’|s’,a)の集合である。Rは状態sでアクションaを実行したときの報酬r(s,a)の集合である。
【0014】
非特許文献4や非特許文献5のPOMDPの確率構造を図1に示す。図中、実線の円は確率変数を示し、点線の円は隠れ変数を表す。ひし形は固定値を表し、四角はシステム側が選択する固定の変数を表す。矢印は変数の依存関係を表し、例えば、状態sから観測値oへの矢印には確率P(o|s)が付与されている。図1のとき、状態の確率分布の更新式は
【0015】
【数1】
【0016】
と表される。なお、ηは全体の和を1にするための正規化定数を表す。
【0017】
図2は非特許文献6のPOMDPの確率構造を示す。図2のとき状態の確率分布bの更新式は
【0018】
【数2】
と表される。
【0019】
本実施形態では、式(1)や(2)等で得られる現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求める。従来技術では、関数πによって、全てのアクションの内で最もよいスコアに対応するアクションだけを求めていたが、本実施形態では、最もよいスコアに対応するアクション以外のアクション(例えば、2番目によいスコアに対応するアクション)も求める。本実施形態では、学習データに基づき予め求められたアクション継続長確率及び行動制御の過程で更新される実時間アクション継続長を用いて、最もよいスコアに対応するアクションか、または、それ以外のアクションを行うか、を制御する。なお、学習データにおける、あるアクションaの連続出現回数nを、アクション継続長naといい、アクション継続長naの確率をアクション継続長確率Pa(n)という。学習データに基づき、各アクションの連続出現回数(アクション継続長)をカウントし、その頻度分布からアクション継続長確率Pa(n)を求める。図3にアクション継続長確率テーブルのデータ例を示す。なお、図中のUは、アクションの種類の個数を表し、アクションのシンボルは1,2,…,Uからなる。また、この分布としては、アクション継続長をサンプルとする、ポアソン分布やガンマ分布、二項分布や任意の連続分布を用いてもよい。行動制御(本実施形態では対話制御)の過程において、あるアクションaが連続m回出現した場合には、その連続出現回数mを実時間アクション継続長という。アクション継続長確率Pa(n)は学習データに基づき予め算出し、記憶しておく。また、実時間アクション継続長mは、行動制御の過程において、現在までに同じアクションが何回続いたかの記録を取っておき、更新していく。次のアクションを決定する場合は、アクション継続長確率Pa(n)に従うように、実時間アクション継続長mを用いてアクションを決定する。
【0020】
以下、第一実施形態について、詳細に説明する。
【0021】
<第一実施形態に係る行動制御装置100>
図4及び図5を用いて第一実施形態に係る行動制御装置100を説明する。行動制御装置100は、POMDP確率・報酬テーブル記憶部110と、強化学習部120と、アクション評価関数記憶部130と、状態分布更新部140と、状態確率分布記憶部150と、アクション決定部160と、アクション記憶部170と、アクション継続長確率テーブル記憶部180と、を備える。なお、ユーザの行動を観測値oとし、システムの行動をアクションaとする。
【0022】
行動制御装置100は、観測値ot’を取得する前に、以下の処理(A)〜(D)を行う(s1)。
【0023】
(A)アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)とアクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、状態sでアクションaを実行したときの報酬r(s,a)と、をPOMDP確率・報酬テーブル記憶部110に記憶しておく。なお、記憶される状態遷移確率、観測値出力確率及び報酬の求め方は後述する。
(B)強化学習部120において、状態遷移確率P(s’|s,a)と、観測値出力確率P(o’|s’,a)と、報酬r(s,a)を用いて、状態の確率分布を引数として各アクションに対するスコアを返す関数πを生成する。なお、関数πの生成方法は後述する。生成された関数πをアクション評価関数記憶部130に記憶しておく。
(C)アクション決定部160は、アクション評価関数記憶部130に記憶されている関数πを取得し、記憶しておく。なお、アクション評価関数記憶部130をアクション決定部160の内部に設けてもよい。
(D)前述のアクション継続長確率をアクション継続長確率テーブル記憶部180に記憶しておく(図3参照)。なお、記憶されるアクション継続長確率の求め方は後述する。
【0024】
<POMDP確率・報酬テーブル記憶部110>
前述の通り、POMDP確率・報酬テーブル記憶部110は、状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)と報酬r(s,a)と、を記憶する。例えば、非特許文献4や非特許文献5に記載の方法で状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)と報酬r(s,a)を求める。
【0025】
なお、学習データの統計すなわち、アクションの予測確率をアクション制御に反映するために、図2の状態に、アクションaに一対一に対応するsaという状態を付加する。ここで、ユーザ・システム間対話の隠れ状態(以下、単に「状態」という)sは、ユーザ・システムの隠れ状態soと行動生成のための隠れ状態saとの組からなり、s=(so,sa)と表される。なお、soは、図2の状態と全く等価である。saの役割は、アクションaの予測確率を推定することである。また、その予測確率を最大化するアクションaを選択するためのものである。図6に示すように、aとsaとを一対一に対応させるためにa=saのときのみ、アクション確率P(a|s=(*,sa))=1とする。ここでのアクションの種類の数は3である。但し、*は任意の状態soを表し、アクション確率P(a|s)は状態sでアクションaを実行する確率を表す。
【0026】
ここで、本実施形態では、計算量の削減を考えて、状態遷移確率P(s’|s,a)及び観測値出力確率P(o’|s’,a)を以下のように近似する。
【0027】
P(s'|s,a)≒P(so'|so,a)P(sa'|sa,so') (4)
P(o'|s',a)≒P(o'|so') (5)
図7はこのときのPOMDPの構造を示す。確率P(rt|st,at)、確率P(st+1|st,at)、確率P(ot+1|st+1,at)は、trigram確率として単純な確率計算で求めてもよいし、ダイナミックベイジアンネットワーク(以下、「DBN」という)を使って学習して求めてよい。以下、DBNを使って、POMDP確率・報酬を求める方法を例示する。
【0028】
(行動データ記憶部1)
人対人の行動を示すデータ(例えば、対話を記録した音声データや画像データ等)において、一方の人をユーザとし、他方の人をシステムとして割り当てる。ユーザの行動を観測値oとし、システムの行動をアクションaとし、観測値oとアクションaからなる一連の行動系列が所望の行動系列であったか否かを、人手により評価する。所望の行動系列として、例えば、システムに親近感を感じる行動系列、ユーザが楽しんだ行動系列、典型的な行動系列、ユーザの役に立つ行動系列等を用いる。また、評価には、アンケートの質問への回答等を利用することができる。例えば、「システムに親近感を感じましたか」、「楽しめましたか」、「役に立ちましたか」等の質問を行い、結果を評価値として記述する。この評価値にdという変数を利用する。この値が高い行動系列を所望の行動系列とする。
【0029】
行動データ記憶部1は、このようにして求めた観測値oとアクションaと評価値dの組合せ(o,a,d)を記憶する。このとき、関数πを学習するために十分な量の組合せを記録する。
【0030】
(DBN生成部3及びDBN確率テーブル記憶部5)
DBN生成部3は、時系列の観測値ot、アクションat、評価値dtを用いて、EMアルゴリズム、ジャンクションツリーアルゴリズム、サンプリング手法などにより、尤度最大化を行い、行動生成モデルのためのDBNを生成する。なお、評価値dを確率変数として扱う。tは時刻を表すものとする。ここで、tは変数の相対的な時刻の関係を明確にするために用いた記号であり、特定の時刻を想定しているものではない。すなわち、ここで示す確率及びそれを使った演算は、時刻に依存しない。
【0031】
DBN生成部3は、DBNを生成し、状態stでアクションatを実行したときの評価値dtの確率P(dt|st,at)、アクションatによって状態がstからst+1へ変わる確率P(st+1|st,at)、アクションatによって状態st+1で観測値ot+1が観測される確率P(ot+1|st+1,at)を推定する。さらに、DBN生成部3で推定された各確率は、DBN確率テーブル記憶部5に記憶される。
【0032】
なお、求めようとするPOMDP確率・報酬において、s=(so,sa)とし、状態遷移確率P(s’|s,a)及び観測値出力確率P(o’|s’,a)を式(4)及び(5)によって、近似しているので、DBNにおいても同様の処理を行い、対応する確率を求める。
【0033】
(DBN−POMDP変換部7)
DBN−POMDP変換部7は、DBN生成部3で推定された確率を以下の式により、POMDPの確率・報酬に変換する。なお、観測値及びアクションとして同じ定義のシンボルが使われると仮定する。
【0034】
【数3】
【0035】
DBNとPOMDPの構造はほぼ同じなので、状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,at)に関しては、対応する確率を代入すればよい。報酬はDBNにおいて確率変数として扱われるため、DBNで得られた確率変数を平均化することによって、実数に変換したものをPOMDPにおいて用いる。例えば、dtの確率分布から式(6)によって求める。このようにして、DBN−POMDP変換部7は、状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,at)及び報酬r(s,a)を生成する。POMDP確率・報酬テーブル記憶部110は、これらの値を利用に先立ち予め記憶しておく。
【0036】
(アクション継続長確率計算部9)
アクション継続長確率計算部9は、学習データからアクションaの連続出現回数nをアクション継続長naとしてカウントし、アクション継続長naの頻度分布、ポアソン分布、ガンマ分布、二項分布または任意の連続分布を用いて、アクション継続長確率Pa(n)を計算する。例えば、アクション継続長確率計算部9は、行動データ記憶部1に記憶されている時系列の行動データの内、時系列のアクションat(但し、時系列の行動データの個数をJとすると、t=1,2,…,Jである)を学習データとして取得し(図8のs91)、各パラメタを初期化する(s92)。atとat−1とが同一か否かを判定し(s93)、同一の場合には、アクション継続長nを一回分大きくする(s94)。atとat−1とが異なる場合には、アクションat−1のアクション継続長nat−1に対する頻度cnt(nat−1)を1つ大きくし(s95)、アクション継続長nを1に戻す(s96)。全てのアクションに対して上記処理を行い(s97,98)、各アクションaに対する各アクション継続長naの頻度分布を求める。なお、最後のアクションaJについては、アクションatのアクション継続長natに対する頻度を1つ大きくする(s99)。なお、nの添え字のat,at−1はそれぞれat、at−1を表す。以下の式により、アクションa毎に、各連続出現回数qa(qa=1,2,…,Qa)の頻度cnt(qa)の総和に対する連続出現回数naの頻度cnt(na)の比を求め(s100)、その比をアクション継続長確率Pa(n)とする。但し、Qaはアクションaの連続出現回数qaの最大値を表す。
【0037】
【数4】
【0038】
このように各アクションaの各アクション継続長naの確率Pa(n)を計算し、アクション継続長確率Pa(n)を求める(s104−s106)。また、連続出現回数nの頻度cnt(na)の平均値を求め、ポアソン分布に基づきアクション継続長確率Pa(n)を求めてもよい。また、ガンマ分布やその他の連続分布に基づきアクション継続長確率Pa(n)を求めてもよいし、他の方法により頻度分布を求めてもよい。
【0039】
アクション継続長確率計算部9は、求めたアクション継続長確率Pa(n)を行動制御装置100に出力する。行動制御装置100のアクション継続長確率テーブル記憶部180は、アクション継続長確率Pa(n)を利用に先立ち予め記憶しておく(図3参照)。
【0040】
<強化学習部120及びアクション評価関数記憶部130>
強化学習部120は、状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,at)及び報酬r(s,a)を用いて、強化学習により、状態の確率分布を引数とし各アクションに対するスコアを返す関数(以下「アクション評価関数」という)πが得られる。アクション評価関数記憶部130は、強化学習部120で生成されたアクション評価関数πを記憶する。
【0041】
次に、状態の確率分布を引数とし最もよいスコアに対応するアクションを返す関数(以下「ポリシー」という)π’の計算方法について説明する。まず、以下の式は、前述のポリシーが既知であると仮定して、時刻tから時刻τ+tまでのアクション系列aτ+tがポリシーπ’によって選択されたときの将来獲得できる平均報酬を示す。
【0042】
【数5】
【0043】
ここで、bτ+t(s)は、時刻τ+tの状態の確率分布である。また、正定数γ(<1)により未来の報酬の寄与は小さくなる。ポリシーπ’は、式(11)を最大にする現在のアクションatを、アクション評価関数πと現在の状態の確率分布bt(s)から計算する関数である。
【0044】
<データ中に出現する統計情報に従って行動を選択する手法>
まず、現在の状態の確率分布bt(s)の定義から次式が得られる。
【0045】
【数6】
【0046】
これは、過去のo1,a1,…,at−1,otという系列、すなわちユーザとシステムの観測値とアクションの履歴が実行された後に、状態がsaとなる確率を表している。
【0047】
a=saのときにP(a|sa)=1としているため、at=saのときに以下の式を得る。
【0048】
【数7】
【0049】
これは、過去のo1,a1,…,at−1,otが観測されたときの次にアクションatが起こる確率を表す。すなわち、今までのデータからatがどれだけ自然かを表す確率となっている。すなわち、式(14)を最大化するようにPOMDPの報酬を決めれば、ポリシーにより、学習データの統計に従ったアクションを生成するようになる。これを実現するためには、報酬を
【0050】
【数8】
【0051】
として設定すればよい。但し、a=saを満たす必要がある。このように報酬を決定するため、ここでは、a=saのときに1をとり、それ以外のときには0をとるように報酬r^((*,sa),a)を定める。
【0052】
【数9】
【0053】
ここで、*は任意の状態soを指す。この値を用いて、rをr^に置き換えれば、学習データの統計に従った対話を実現できる。ここでは、従来型の所望の行動系列も実現するために従来手法の報酬の線形和をとる。なお、従来型の所望の行動系列に対する報酬は、式(6)より、以下のように示すことができる。但し、*’は任意の状態saを指す。
【0054】
【数10】
【0055】
よって、式(16)及び(17)を用いて、式(11)のrをαr+βr^で置き換えた下記式(18)により最終的な目的関数Vπ’tを得る。
【0056】
【数11】
【0057】
ここで、α、βは任意の実数である。このα、βを変化させることにより、所望の行動を実現する(αが大きい場合)のか統計的な行動を優先する(βが大きい場合)のか、その優先度合いの重みづけを行うことができる。なお、α、βを0とすることも可能である。
【0058】
本実施形態では式(18)を最大にするアクション系列aτ+tを求めるポリシーを求めることにより行動制御を実現する。強化学習を用いると、式(18)を最大化するアクションを決定するポリシーを事前に求めることができる。POMDPの環境を既知として、最適なポリシーをValue Iterationという手法で式(18)をポリシーに対して最大化を行うことにより求めることができる。ここでは、計算時間の削減のため、近似手法であるPoint-based Value Iterationを用いる。なお、Value IterationやPoint-based Value Iterationを用いて、ポリシーπ’を求める過程において、前述のアクション評価関数π(状態の確率分布を引数とし各アクションに対するスコアを返す関数)を生成することができる(参考文献1参照)。
[参考文献1]S. Russell and P. Norvig, “Artificial Intelligence: a Modern Approach Second Edition”, Prentice Hall, 2003.
【0059】
通常、対象となる所望の行動系列に対してPOMDPによる行動生成の学習を行うと、所望の行動系列だけをシステムは実現しようとする。このため、人と人の行動の記録には、所望の行動系列だけではなく、様々な系列が含まれているのにもかかわらず、所望の行動系列以外の行動を選択しなくなる。よって、人と人との間のやり取りを再現しつつ、かつ、所望の行動系列にユーザを引き込むようなシステムを作る場合には、所望の行動系列だけを学習するだけでは不十分である。このような構成とすることで、システムを構成する際にはこれらの行動系列の統計情報も含めて、システムの行動制御を学習するため、所望の行動系列へ引き込みつつも、学習データの統計に従った行動制御を行うことができる。
【0060】
<状態分布更新部140及び状態確率分布記憶部150>
以下、図4及び図5を用いて説明する。まず、状態分布更新部140は、観測値ot’を取得すると(s3)、状態確率分布記憶部150に問合せて、一つ前の状態の確率分布bt−1(s)を取得し、アクション記憶部170に問合せて、一つ前のアクションat−1とを取得する(s5)。
【0061】
次に、状態分布更新部140は、取得した現在の観測値ot’と一つ前のアクションat−1をキーとして、POMDP確率・報酬テーブル記憶部110を参照し、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得する(s7)。
【0062】
さらに、状態分布更新部140は、取得したP(s’|s,a)と観測値出力確率P(o’|s’,a)と、さらに、P(a|s)を用いて式(2)により、
【0063】
【数12】
【0064】
取得した一つ前の状態の確率分布bt−1(s)を更新し、現在の状態の確率分布bt(s’)を求める(s9)。
【0065】
なお、本実施形態では、状態遷移確率P(s’|s,a)及び観測値出力確率P(o’|s’,a)を式(4)、(5)により近似しているので、
P(s'|s,a)≒P(so'|so,a)P(sa'|sa,so') (4)
P(o'|s',a)≒P(o'|so') (5)
現在の状態の確率分布を
【0066】
【数13】
【0067】
として求める。なお、現在の状態の確率分布bt(s’)はアクション決定部160と状態確率分布記憶部150に出力される。
【0068】
状態確率分布記憶部150は、現在の状態の確率分布bt(s’)を記憶する(s10)。
【0069】
非特許文献6は、状態の確率分布の更新式中にアクション確率P(a|s)を導入する点が、非特許文献4及び5と異なる。なお、図1と図2の違いによりこのアクション確率P(a|s)が生じる。
【0070】
アクション確率P(a|s)は、図6に示すような確率テーブルを予め図示しない記憶部に記憶しておいてもよいし、a=saのときにP(a|s)に1を代入し、a≠saのときはP(a|s)に0を代入する構成としてもよい。但し、図5に示すようにa≠saのときにP(a|s)=0とすると、認識誤りがあった場合に、システムが決定論的に動き、認識誤りを考慮していないため、式(2’)において、bt(s’)がほとんど0になってしまう場合がある。このような場合にはシステムが動作しない。そこで、図9に示すようにa≠saのときにP(a|s)=εとして、全ての状態が0になることを回避する。但し、εは非常に小さな値を示す。このように設定することで、認識誤りがあった場合にも停止せずに動作する行動制御装置を構成することができる。
【0071】
なお、認識誤りを考慮した場合のアクション確率P(a|s)の設定方法は上述した方法に限定されるものではなく、例えば、ファジーロジックを使って設定してもよいし、アクション間にある距離を設定して、平滑化する手法等を用いてもよい。
【0072】
<アクション決定部160、アクション記憶部170、アクション継続長確率テーブル記憶部180>
アクション決定部160は、スコア算出部161と、比較部163と、選択部165と、実時間アクション継続長記憶部167と、を有する(図10参照)。図11を用いて、アクション決定部160の処理内容(図5中のs11)を説明する。
【0073】
(スコア算出部161)
スコア算出部161は、利用に先立ち予め、アクション評価関数記憶部130に記憶されている関数πを取得し、記憶しておく。スコア算出部161は、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションaに対するスコアSaを求める。例えば、最もよいスコアに対応するアクションat’(rank1)と二番目によいスコアに対応するアクションat’(rank2)を求め(s161)、at’(rank1)を比較部163に出力し、at’(rank1)とat’(rank2)を選択部165に出力する。なお、例えば、関数πとは、各アクションaに対して、スコア
【0074】
【数14】
【0075】
(但し、τ+t=t(つまり、τ=0)のときだけ、ポリシーπ’を使わず、各アクションaについて全て求める(つまり、at=aを選択する)) (20)
を求め、返す関数である。式(20)の場合、V(b(t))の値が大きいほど、スコアがよいことを表す。
【0076】
(比較部163)
比較部163は、アクション記憶部170から一つ前のアクションat−1を取得し、スコア算出部から最もよいスコアに対応するアクションat’(rank1)を受け取る。そして、一つ前のアクションat−1と最もよいスコアに対応するアクションat’(rank1)とが同一か否かを判定し(s163)、判定結果を選択部165に出力する。なお、最初の判定時には、一つ前のアクションat−1が存在しないため、「at−1とat’(rank1)とが異なる」ことを表す判定結果を出力する。
【0077】
(選択部165及び実時間アクション継続長記憶部167)
選択部165は、判定結果と、最もよいスコアに対応するアクションat’(rank1)と、二番目によいスコアに対応するアクションat’(rank2)と、を受け取る。そして、判定結果が「at−1とat’(rank1)とが異なる」ことを表す場合には、最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定する(s165b)。さらに、実時間アクション継続長記憶部167から行動制御(本実施形態では対話制御)の過程で更新される実時間アクション継続長mを取得し、mを最小(例えば、1)とし(s165f)、実時間アクション継続長記憶部167に記憶する。
【0078】
選択部165は、判定結果が「at−1とat’(rank1)とが同一である」ことを表す場合には、アクションat’(rank1)の実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)をアクション継続長確率テーブル記憶部180から受け取る。但し、添え字のat’(rank1)は、at’(rank1)を意味する。このアクション継続長確率Pat’(rank1)(m)から得られる値と一様乱数との大小関係に応じて、システムがとるべきアクションとして決定する。
【0079】
アクション継続長確率Pat’(rank1)(m)から得られる値とは、例えば、実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)と、実時間アクション継続長m以上に対応するアクション継続長確率の総和との比
【0080】
【数15】
【0081】
である。これは、アクション継続長m以上において、アクション継続長mのアクションat’(rank1)が生成される確率である。この確率が高い場合には、m+1以降においてアクションat’(rank1)が生成される確率は低いことを意味する。この場合、実時間アクション継続長記憶部167から実時間アクション継続長mを受け取り、最もよいスコアに対応するアクションat’(rank1)の実時間アクション継続長m以上に対応するアクション継続長確率をアクション継続長確率テーブル記憶部180から受け取る。また、例えば一様乱数の有限の区間は0以上1以下とする。よって、選択部165は、式(21)により、前述の確率(比)を求め、この確率と一様乱数とを比較する(s165a)。なお、図中rand()は、一様乱数を返す関数を表す。
【0082】
確率が一様乱数より小さい場合には、実時間アクション継続長mの最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定し(s165c)、実時間アクション継続長mを1回分大きくし(s165e)、実時間アクション継続長記憶部167に記憶する。
【0083】
確率が一様乱数以上の場合には、最もよいスコアに対応するアクションat’(rank1)とは異なるアクションat’(rank2)を、システムがとるべきアクションat’として決定し(s165d)、アクション継続長を最小とし(s165f)、実時間アクション継続長記憶部167に記憶する。これは、確率が一様乱数より小さい場合はアクション継続長mでそのアクションが終わらない(継続する)可能性が高く、確率が一様乱数より大きい場合はアクション継続長mでそのアクションが終わる(継続しない)可能性が高いことを意味するからである。アクション決定部160は、決定したアクションat’を、行動制御装置100の出力値として出力する。また、アクションat’をアクション記憶部170に出力する。
【0084】
アクション記憶部170は、アクションat’を記憶する(図5のs12)。
【0085】
最後の観測値までs3〜s12の処理を繰り返す(s13)。
【0086】
<効果>
このような構成により、タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定することができ、かつ、学習データ中のアクション継続長の統計に従ったアクションを実行でき、同じアクションだけを何回も繰り返し実行する行動制御を避けることができる。
【0087】
<変形例>
行動制御装置100は、強化学習部120及びアクション評価関数記憶部130を備えているが、これらの構成を別装置として構成してもよい。その場合、行動制御装置100は、別装置で生成した関数πを取得し、アクション決定部160に記憶しておけばよい。なお、別装置で関数πを生成する場合には、行動制御装置100が備えるPOMDP確率・報酬テーブル記憶部110には、状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)のみを記憶する構成としてもよい。
【0088】
本実施形態では、計算量を削減するために、式(4)、(5)を用いて状態遷移確率P(s’|s,a)、観測値出力確率P(o’|s’,a)を近似し、さらに、式(2’)を用いて状態の確率分布の更新式を近似しているが、他の式により各値を近似してもよいし、近似せずに各値を求めてもよい。また式(1)や他の式を用いて状態の確率分布を更新してもよい。
【0089】
なお、行動制御装置100は、行動データ記憶部1、DBN生成部3、DBN確率テーブル記憶部5、DBN−POMDP変換部7、アクション継続長確率計算部9の何れか1つ以上を備える構成であってもよい。
【0090】
アクション決定部160において、必ずしも最もよいスコアに対応するアクション、または、2番目によいスコアに対応するアクションを、システムが取るべきアクションとして決定せずともよい。例えば、図11のs165aにおいて、2番目によいスコアと3番目によいスコアの比が一様乱数よりも小さい場合、この比が一様乱数より大きいか否か判定し、大きい場合には、2番目によいスコアに対応するアクションat’(rank2)をシステムが取るべきアクションとして決定し、小さい場合には、3番目によいスコアに対応するアクションat’(rank3)をシステムが取るべきアクションとして決定する構成であってもよい。つまり、自動的にシステムの行動を決定することができ、同じアクションだけを何回も繰り返し実行する行動制御を避けることができ、かつ、不自然でない行動を選択するものであればよく、適宜変更できる。
【0091】
本実施形態では、対話制御について説明したが、システムとユーザが交互にやり取りをするような対話制御以外の行動制御システムにおいても、同様に本実施形態に係る行動制御技術を利用することができる。
【0092】
<第二実施形態に係る行動制御装置200>
以下、第一実施形態と異なる部分についてのみ説明する。行動制御装置200は、POMDP確率・報酬テーブル記憶部110と、強化学習部120と、アクション評価関数記憶部130と、状態分布更新部140と、状態確率分布記憶部150と、アクション決定部260と、アクション記憶部170と、アクション継続長確率テーブル記憶部180と、を備える(図4参照)。アクション決定部260の構成及び処理内容が第一実施形態とは異なる。
【0093】
<アクション決定部260>
アクション決定部260は、スコア算出部161と、比較部163と、選択部265と、実時間アクション継続長記憶部167と、実時間アクション継続長確率テーブル記憶部268(図10中、一点鎖線で示す)とを有する。図12を用いて、アクション決定部260の処理内容(図5中のs21)を説明する。但し、第一実施形態と異なる部分(選択部265と実時間アクション継続長確率テーブル記憶部268)についてのみ説明する。
【0094】
(選択部265、実時間アクション継続長記憶部167及び実時間アクション継続長確率テーブル記憶部268)
選択部265は、比較部163の判定結果と最もよいスコアに対応するアクションat’(rank1)と二番目によいスコアに対応するアクションat’(rank2)とを受け取る。そして、判定結果が「at−1とat’(rank1)とが異なる」ことを表す場合には、最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定する(s165b)。さらに、実時間アクション継続長記憶部167から対話制御の過程で更新される実時間アクション継続長mを取得し、mを最小とし(s165f)、実時間アクション継続長記憶部167に記憶する。さらに、一つ前のアクションat−1の実時間アクション継続長mat−1に基づき、対話制御の過程における実時間アクション継続長確率を更新し(s265g)、実時間アクション継続長確率テーブル記憶部268に記憶する。例えば、選択部265は、前述のアクション継続長確率計算部9と同様の方法により、アクションat−1の実時間アクション継続長mat−1をカウントし、実時間アクション継続長mat−1の頻度分布、ポアソン分布、ガンマ分布または二項分布や任意の連続分布用いて、実時間アクション継続長確率P ̄a−1(mat−1)を計算する。at−1とat’(rank1)とが異なる場合には、対話制御の過程における一つ前のアクションat−1の実時間アクション継続長mat−1が確定し、実時間アクション継続長の頻度分布等が変化するため、実時間アクション継続長確率を更新する。更新した実時間アクション継続長確率を実時間アクション継続長確率テーブル記憶部268に記憶する。実時間アクション継続長確率テーブル記憶部268には、アクション継続長確率テーブル記憶部180と同様のデータ構造である(但し、実時間アクション継続長確率に基づいたデータである)。
【0095】
選択部265は、判定結果が「at−1とat’(rank1)とが同一である」ことを表す場合には、アクションat’(rank1)の実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)をアクション継続長確率テーブル記憶部180から受け取る。このアクション継続長確率Pat’(rank1)(m)から得られる値と一様乱数との大小関係に応じて、システムがとるべきアクションとして決定する。
【0096】
アクション継続長確率Pat’(rank1)(m)から得られる値とは、例えば、実時間アクション継続長mに対応するアクション継続長確率Pat’(rank1)(m)と実時間アクション継続長確率P ̄at’(rank1)(m)との確率差分
ΔPat’(rank1)(m)=Pat’(rank1)(m)-P ̄at’(rank1)(m) (31)
(但し、Pat’(rank1)(m)-P ̄at’(rank1)(m)<0のとき、ΔPat’(rank1)(m)←0とする。)
と、実時間アクション継続長m以上に対応するアクション継続長確率と実時間アクション継続長確率との確率差分の総和との比
【0097】
【数16】
【0098】
(但し、Pat’(rank1)(n)-P ̄at’(rank1)(n)<0のとき、ΔPat’(rank1)(n)←0とする。)
である。この場合、実時間アクション継続長記憶部167から実時間アクション継続長mを受け取り、最もよいスコアに対応するアクションat’(rank1)の実時間アクション継続長m以上に対応するアクション継続長確率をアクション継続長確率テーブル記憶部180から受け取り、実時間アクション継続長m以上に対応する実時間アクション継続長確率を実時間アクション継続長確率テーブル記憶部268から受け取る。また、例えば一様乱数の有限の区間は0以上1以下とする。よって、選択部265は、式(32)により、前述の比を求め、この比と一様乱数とを比較する(s265a)。
【0099】
比が一様乱数より小さい場合には、最もよいスコアに対応するアクションat’(rank1)をシステムがとるべきアクションat’として決定し(s165c)、実時間アクション継続長mを1回分大きくし(s165e)、実時間アクション継続長記憶部167に記憶する。
【0100】
比が一様乱数以上の場合には、最もよいスコアに対応するアクションat’(rank1)とは異なるアクションat’(rank2)を、システムがとるべきアクションat’として決定し(s165d)、アクション継続長を最小とし(s165f)、実時間アクション継続長記憶部167に記憶する。さらに、一つ前のアクションat−1の実時間アクション継続長に基づき、対話制御の過程における実時間アクション継続長確率を更新し(s265g)、実時間アクション継続長確率テーブル記憶部268に記憶する。
【0101】
アクション決定部260は、決定したアクションat’を、行動制御装置200の出力値として出力する。また、アクションat’をアクション記憶部170に出力する。
【0102】
<効果>
このような構成とすることにより、第一実施形態と同様の効果を得ることができる。さらに、確率差分を用いることで、行動制御の過程で過去に起きた事象の生起確率を、第一実施形態よりも低く抑えることができ、学習データに近い継続時間長の分布を実現でき、より自然な対話を実現できる。
【0103】
[シミュレーション結果]
実際の対話からPOMDP確率・報酬を生成し、それを用いてポリシーを学習し、そのPOMDP確率とポリシーを記憶した行動制御装置に対し観測値を入力し、その観測値に対するアクションが、実時間アクション継続長mによる制御を行うか行わないかで、その評価がどのように変わるかを調べた。実時間アクション継続長mによる制御を行う行動制御装置として第二実施形態の行動制御装置200を用い、実時間アクション継続長mによる制御を行わない行動制御装置として非特許文献6の行動制御装置を用いる。
【0104】
アクションと観測値には、33種類の行動(シンボル)が付与されるものとする。実験では、実際の対話データに対して、これらの行動(シンボル)を人手で付与した。以下に、実際の対話データの例を示す。ユーザと聞き役であるシステムを想定している。
ユーザ:こんにちは、はじめまして、“食事”の話をしましょう。
システム:はじめまして。
ユーザ:夕食にカレーを食べました。カレーは好きですか?
システム:はい好きです。
ユーザ:本当ですか?私もです。
システム:いつも外に食べに行きますか?
ユーザ:いいえ、いつも家で作って食べます。特別なスパイスは使わないんです。でも、ときどき、カレーうどんも作ります。
システム:いいですね。
【0105】
この例のように、実際の対話データでは、行動は必ずしも、システム、ユーザ、交互には行われない。そこで何もしないという行動(シンボル)を追加し(全33種)、行動が交互に出現するようにした。250対話に対して行動(シンボル)を付与した。そして一連の行動系列が所望の行動系列であったか否かを5段階で人が評価し、評価値を行動系列に付与した。なお、所望の行動系列として、ユーザが満足感を感じる行動系列を選んだ。そのデータに基づきDBNの学習とtrigramの学習により、統計量を学習した。なお、二つのモデルは等価なので、何れの学習を用いても統計量は、同じ値となった。さらに、DBNからはPOMDP確率・報酬を生成し、生成したPOMDP確率・報酬に基づき、ポリシーを学習する。その際、所望の行動系列に対する報酬を1とおいた(式(18)においてα=1とした)。また、βは20、15、10と3種類を調べた。
【0106】
ユーザの挙動をシミュレートするため、行動データから得られたtrigramに基づいてランダムに観測値を選択し、アクション継続長制御を行う場合と行わない場合について、行動制御装置に入力し、それぞれのアクションを取得した。シミュレーションではそれぞれ1000対話を生成した。
【0107】
対話の評価にはいくつかの評価を手法を用いた。一つは以下の式に示すエントロピーを基準とした。
【0108】
【数17】
【0109】
但し、Pgenerated data(a)は生成されたアクションの対話中での生起確率を表す。この値が大きければ、系は乱雑であり、特定のアクションに偏っていないことが分かる。また、次の確率分布の距離も評価尺度とした。
【0110】
【数18】
【0111】
この値が小さいほど、生成されたアクションの分布が学習データの分布に近いことを示す。さらに、以下の式に示す平均トライグラム確率も調べた。
【0112】
【数19】
【0113】
Kは対話の数、Liは個々の行動の長さである。この値は、生成された行動系列が、学習データのtrigram確率にどれだけ従っているかを表す尺度である。大きいほど、学習データの統計に従った対話系列を出力していると考えられる。なお、P(ait+1|ait,oit+1)は、ait、oit+1が与えられたときにait+1を生成するtrigram確率を表す。この値は大きいほど、学習データ中の確率の高いアクションを出力していることになるが、全く同じアクションばかりを生成してもこの値が高くなることもある。
【0114】
最後に、満足度に関する評価も入れておく。この式は、以下のようになる。
【0115】
【数20】
【0116】
ここではデータから得られる観測値とそれに対するアクション間の平均の評価値である。ユーザの評価は過去の履歴に大きな影響を受ける。しかし、ここでは、ユーザの評価はユーザの最後の観測値に対するシステムのアクションに対して、尤も強く影響を受けると仮定した。また、本来であれば、実際のユーザを利用して評価を行うべきではあるが、ここでは手法の認識誤りに対する頑健性を調べるためシミュレーションによる評価尺度を用いた。
【0117】
図13に実験結果を示す。エントロピーを見ても、確率分布の距離を見ても、継続長制御ありとなしどちらの場合も、β=15の場合がよい結果を示していることが分かる。継続長制御ありとなしで比べると、トライグラムの確率は落ちているものの、エントロピーも、確率分布の距離も学習データに近い。実際に、継続長制御がない場合は、同じアクションを生成することが多く不自然である。なお、アクション決定部における継続長の制御には、第二実施形態を用いた。
【0118】
<プログラム及び記録媒体>
上述した行動制御装置は、コンピュータにより機能させることもできる。この場合はコンピュータに、目的とする装置(実施形態で図に示した機能構成をもつ装置)として機能させるためのプログラム、またはその処理手順(実施形態で示したもの)の各過程をコンピュータに実行させるためのプログラムを、CD−ROM、磁気ディスク、半導体記憶装置などの記録媒体から、あるいは通信回線を介してそのコンピュータ内にダウンロードし、そのプログラムを実行させればよい。
【符号の説明】
【0119】
1 行動データ記憶部
3 生成部
5 確率テーブル記憶部
7 変換部
9 アクション継続長確率計算部
100,200 行動制御装置
110 確率・報酬テーブル記憶部
120 強化学習部
130 ポリシー記憶部
140 状態分布更新部
150 状態確率分布記憶部
160,260 アクション決定部
170 アクション記憶部
180 アクション継続長確率テーブル記憶部
【特許請求の範囲】
【請求項1】
アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、を予め記憶しておくPOMDP確率・報酬テーブル記憶部と、
時刻をtとし、一つ前の状態の確率分布bt−1(s)を記憶する状態確率分布記憶部と、
一つ前のアクションat−1を記憶するアクション記憶部と、
前記アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、前記POMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、前記状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新部と、
アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶しておくアクション継続長確率テーブル記憶部と、
状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定部と、を備える、
行動制御装置。
【請求項2】
請求項1記載の行動制御装置であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定部は、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、実時間アクション継続長mに対応するアクション継続長確率と、実時間アクション継続長m以上に対応するアクション継続長確率の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とする、
行動制御装置。
【請求項3】
請求項1記載の行動制御装置であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定部は、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新し、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、前記アクション継続長確率と前記実時間アクション継続長確率との確率差分を求め、実時間アクション継続長mに対応する確率差分と、実時間アクション継続長m以上に対応する確率差分の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新する、
行動制御装置。
【請求項4】
請求項1から3の何れかに記載の行動制御装置であって、
学習データからアクションaの連続出現回数nをアクション継続長naとしてカウントし、アクション継続長naの頻度分布、ポアソン分布、ガンマ分布または二項分布を用いて、前記アクション継続長確率Pa(n)を計算するアクション継続長確率計算部を備える、
行動制御装置。
【請求項5】
時刻をtとし、一つ前の状態の確率分布bt−1(s)を状態確率分布記憶部に記憶する状態確率分布記憶ステップと、
一つ前のアクションat−1をアクション記憶部に記憶するアクション記憶ステップと、
前記アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、が予め記憶されているPOMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、前記状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新ステップと、
状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を、アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶されているアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定ステップと、を備える、
行動制御方法。
【請求項6】
請求項5記載の行動制御方法であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定ステップは、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、実時間アクション継続長mに対応するアクション継続長確率と、実時間アクション継続長m以上に対応するアクション継続長確率の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とする、
行動制御方法。
【請求項7】
請求項5記載の行動制御方法であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定ステップは、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新し、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、前記アクション継続長確率と前記実時間アクション継続長確率との確率差分を求め、実時間アクション継続長mに対応する確率差分と、実時間アクション継続長m以上に対応する確率差分の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新する、
行動制御方法。
【請求項8】
請求項5から7の何れかに記載の行動制御方法であって、
学習データからアクションaの連続出現回数nをアクション継続長naとしてカウントし、アクション継続長naの頻度分布、ポアソン分布、ガンマ分布または二項分布を用いて、前記アクション継続長確率Pa(n)を計算するアクション継続長確率計算ステップを備える、
行動制御方法。
【請求項9】
請求項1から請求項4の何れかに記載の行動制御装置として、コンピュータを機能させるための行動制御プログラム。
【請求項1】
アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、を予め記憶しておくPOMDP確率・報酬テーブル記憶部と、
時刻をtとし、一つ前の状態の確率分布bt−1(s)を記憶する状態確率分布記憶部と、
一つ前のアクションat−1を記憶するアクション記憶部と、
前記アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、前記POMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、前記状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新部と、
アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶しておくアクション継続長確率テーブル記憶部と、
状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定部と、を備える、
行動制御装置。
【請求項2】
請求項1記載の行動制御装置であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定部は、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、実時間アクション継続長mに対応するアクション継続長確率と、実時間アクション継続長m以上に対応するアクション継続長確率の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とする、
行動制御装置。
【請求項3】
請求項1記載の行動制御装置であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定部は、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新し、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、前記アクション継続長確率と前記実時間アクション継続長確率との確率差分を求め、実時間アクション継続長mに対応する確率差分と、実時間アクション継続長m以上に対応する確率差分の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新する、
行動制御装置。
【請求項4】
請求項1から3の何れかに記載の行動制御装置であって、
学習データからアクションaの連続出現回数nをアクション継続長naとしてカウントし、アクション継続長naの頻度分布、ポアソン分布、ガンマ分布または二項分布を用いて、前記アクション継続長確率Pa(n)を計算するアクション継続長確率計算部を備える、
行動制御装置。
【請求項5】
時刻をtとし、一つ前の状態の確率分布bt−1(s)を状態確率分布記憶部に記憶する状態確率分布記憶ステップと、
一つ前のアクションat−1をアクション記憶部に記憶するアクション記憶ステップと、
前記アクション記憶部から一つ前のアクションat−1を取得し、一つ前のアクションat−1と現在の観測値ot’を用いて、アクションaによって状態sから状態s’へ変わる状態遷移確率P(s’|s,a)と、アクションaによって状態s’で観測値o’が観測されるときの観測値出力確率P(o’|s’,a)と、が予め記憶されているPOMDP確率・報酬テーブル記憶部を参照して、対応する状態遷移確率P(s’|s,a)と観測値出力確率P(o’|s’,a)を取得し、前記状態確率分布記憶部から一つ前の状態の確率分布bt−1(s)を取得し、現在の状態の確率分布bt(s’)を求める状態分布更新ステップと、
状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布bt(s’)を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を、アクションaの連続出現回数nをアクション継続長naとし、アクション継続長naの確率をアクション継続長確率Pa(n)として予め記憶されているアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を1回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定ステップと、を備える、
行動制御方法。
【請求項6】
請求項5記載の行動制御方法であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定ステップは、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、実時間アクション継続長mに対応するアクション継続長確率と、実時間アクション継続長m以上に対応するアクション継続長確率の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とする、
行動制御方法。
【請求項7】
請求項5記載の行動制御方法であって、
前記一様乱数の有限の区間は0以上1以下とし、前記アクション決定ステップは、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新し、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長m以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、前記アクション継続長確率と前記実時間アクション継続長確率との確率差分を求め、実時間アクション継続長mに対応する確率差分と、実時間アクション継続長m以上に対応する確率差分の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を1回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とし、一つ前のアクションaの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新する、
行動制御方法。
【請求項8】
請求項5から7の何れかに記載の行動制御方法であって、
学習データからアクションaの連続出現回数nをアクション継続長naとしてカウントし、アクション継続長naの頻度分布、ポアソン分布、ガンマ分布または二項分布を用いて、前記アクション継続長確率Pa(n)を計算するアクション継続長確率計算ステップを備える、
行動制御方法。
【請求項9】
請求項1から請求項4の何れかに記載の行動制御装置として、コンピュータを機能させるための行動制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−190062(P2012−190062A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−50493(P2011−50493)
【出願日】平成23年3月8日(2011.3.8)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月8日(2011.3.8)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]