(57)【特許請求の範囲】
【請求項１】
アクションａによって状態ｓから状態ｓ’へ変わる状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と、アクションａによって状態ｓ’で観測値ｏ’が観測されるときの観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、を予め記憶しておくＰＯＭＤＰ確率・報酬テーブル記憶部と、
時刻をｔとし、一つ前の状態の確率分布ｂｔ−１（ｓ）を記憶する状態確率分布記憶部と、
一つ前のアクションａｔ−１を記憶するアクション記憶部と、
前記アクション記憶部から一つ前のアクションａｔ−１を取得し、一つ前のアクションａｔ−１と現在の観測値ｏｔ’を用いて、前記ＰＯＭＤＰ確率・報酬テーブル記憶部を参照して、対応する状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を取得し、前記状態確率分布記憶部から一つ前の状態の確率分布ｂｔ−１（ｓ）を取得し、現在の状態の確率分布ｂｔ（ｓ’）を求める状態分布更新部と、
アクションａの連続出現回数ｎをアクション継続長ｎａとし、アクション継続長ｎａの確率をアクション継続長確率Ｐａ（ｎ）として予め記憶しておくアクション継続長確率テーブル記憶部と、
状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布ｂｔ（ｓ’）を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を１回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定部と、を備える、
行動制御装置。
【請求項２】
請求項１記載の行動制御装置であって、
前記一様乱数の有限の区間は０以上１以下とし、前記アクション決定部は、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長ｍ以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、実時間アクション継続長ｍに対応するアクション継続長確率と、実時間アクション継続長ｍ以上に対応するアクション継続長確率の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を１回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とする、
行動制御装置。
【請求項３】
請求項１記載の行動制御装置であって、
前記一様乱数の有限の区間は０以上１以下とし、前記アクション決定部は、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションａの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新し、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長ｍ以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、前記アクション継続長確率と前記実時間アクション継続長確率との確率差分を求め、実時間アクション継続長ｍに対応する確率差分と、実時間アクション継続長ｍ以上に対応する確率差分の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を１回分大きくし、比が一様乱数以上場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とし、一つ前のアクションａの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新する、
行動制御装置。
【請求項４】
請求項１から３の何れかに記載の行動制御装置であって、
学習データからアクションａの連続出現回数ｎをアクション継続長ｎａとしてカウントし、アクション継続長ｎａの頻度分布、ポアソン分布、ガンマ分布または二項分布を用いて、前記アクション継続長確率Ｐａ（ｎ）を計算するアクション継続長確率計算部を備える、
行動制御装置。
【請求項５】
時刻をｔとし、一つ前の状態の確率分布ｂｔ−１（ｓ）を状態確率分布記憶部に記憶する状態確率分布記憶ステップと、
一つ前のアクションａｔ−１をアクション記憶部に記憶するアクション記憶ステップと、
前記アクション記憶部から一つ前のアクションａｔ−１を取得し、一つ前のアクションａｔ−１と現在の観測値ｏｔ’を用いて、アクションａによって状態ｓから状態ｓ’へ変わる状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と、アクションａによって状態ｓ’で観測値ｏ’が観測されるときの観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、が予め記憶されているＰＯＭＤＰ確率・報酬テーブル記憶部を参照して、対応する状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を取得し、前記状態確率分布記憶部から一つ前の状態の確率分布ｂｔ−１（ｓ）を取得し、現在の状態の確率分布ｂｔ（ｓ’）を求める状態分布更新ステップと、
状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布ｂｔ（ｓ’）を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を、アクションａの連続出現回数ｎをアクション継続長ｎａとし、アクション継続長ｎａの確率をアクション継続長確率Ｐａ（ｎ）として予め記憶されているアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を１回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定ステップと、を備える、
行動制御方法。
【請求項６】
請求項５記載の行動制御方法であって、
前記一様乱数の有限の区間は０以上１以下とし、前記アクション決定ステップは、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長ｍ以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、実時間アクション継続長ｍに対応するアクション継続長確率と、実時間アクション継続長ｍ以上に対応するアクション継続長確率の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を１回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とする、
行動制御方法。
【請求項７】
請求項５記載の行動制御方法であって、
前記一様乱数の有限の区間は０以上１以下とし、前記アクション決定ステップは、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションａの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新し、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長ｍ以上に対応するアクション継続長確率を前記アクション継続長確率テーブル記憶部から受け取り、前記アクション継続長確率と前記実時間アクション継続長確率との確率差分を求め、実時間アクション継続長ｍに対応する確率差分と、実時間アクション継続長ｍ以上に対応する確率差分の総和との比を求め、この比と前記一様乱数とを比較し、比が一様乱数より小さい場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、アクション継続長を１回分大きくし、比が一様乱数以上の場合には、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、アクション継続長を最小とし、一つ前のアクションａの連続出現回数に基づき、行動制御の過程における実時間アクション継続長確率を更新する、
行動制御方法。
【請求項８】
請求項５から７の何れかに記載の行動制御方法であって、
学習データからアクションａの連続出現回数ｎをアクション継続長ｎａとしてカウントし、アクション継続長ｎａの頻度分布、ポアソン分布、ガンマ分布または二項分布を用いて、前記アクション継続長確率Ｐａ（ｎ）を計算するアクション継続長確率計算ステップを備える、
行動制御方法。
【請求項９】
請求項１から請求項４の何れかに記載の行動制御装置として、コンピュータを機能させるための行動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムとユーザが交互にやり取りをするようなシステム（対話システムなど）において、ユーザの行動に対して、システムが次にどんな行動をとるかを決定する行動制御装置、行動制御方法及び行動制御プログラムに関する。
【背景技術】
【０００２】
部分観測マルコフ決定過程（Partially Observable Markov Decision Process、以下「ＰＯＭＤＰ」という）を用いた行動制御技術として，非特許文献１、２及び３が知られている。
【０００３】
非特許文献１は、６都市間のチケットを買うタスクを対象としている。また、非特許文献２は、ＤＳＬ（Digital Subscriber Line）のトラブルシューティングのタスクを対象としている。これらの行動制御技術は、タスクの種類（どうなればゴールであるか）と、状態遷移の仕方（どの順序で行動するか）は既知である。また、非特許文献３は、大量のデータからシステムの行動を決定するが、ＰＯＭＤＰを求める際には、非特許文献１及び２と同様にタスクが既知である。
【０００４】
タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定する従来技術として、非特許文献４及び５が知られている。しかし、非特許文献４や非特許文献５の従来技術では、アクションａが決定されて、後述する状態ｓａが確定的になっているにもかかわらず、確率的に扱っているため、系全体が確率的に動作し、決定論的に動作せず、精度が悪く、観測値に対して不自然な行動決定を行う場合があった。
【０００５】
アクションａが決定され、後述する状態ｓａが確定的になっているときに、決定論的に動作する従来技術として、非特許文献６が知られている。非特許文献６は、アクション確率を導入することにより、所望の行動系列を実現することができ、かつ、所望の行動系列以外のユーザの行動（観測値）に対しても学習データの統計に従った行動決定（自然なふるまい）を行うことができる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】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
【非特許文献２】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
【非特許文献３】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
【非特許文献４】南泰浩、目黒豊美、東中竜一郎、森啓、堂坂浩二、前田英作、「統計的モデルを用いたＰＯＭＤＰによる対話制御」、日本音響学会秋季研究発表会、２００９
【非特許文献５】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
【非特許文献６】Y. Minami, R. Higashinaka, K. Dohsaka, T. Meguro, and E. Maeda, "Trigram Dialogue Control Using Pomdps", in Proc. of SLT, 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１−６記載の従来技術は、ＰＯＭＤＰの確率や報酬の設定により、システムがある特定のアクションを何回も繰り返し生成する現象が頻繁に起こることが、実験により分かった。さらに、この現象は、ＰＯＭＤＰの確率や報酬を自動的に学習したときに（非特許文献４−６参照）、顕著に現れることが、実験により分かった。
【０００８】
本発明は、データの統計量に従って、自動的にシステムの行動を決定することができ、かつ、この現象（ある特定のアクションを何回も繰り返し生成する現象）を起こさないＰＯＭＤＰによる行動制御を実現する行動制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の第一の態様に係る行動制御装置によれば、アクションａによって状態ｓから状態ｓ’へ変わる状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と、アクションａによって状態ｓ’で観測値ｏ’が観測されるときの観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、を予め記憶しておくＰＯＭＤＰ確率・報酬テーブル記憶部と、時刻をｔとし、一つ前の状態の確率分布ｂｔ−１（ｓ）を記憶する状態確率分布記憶部と、一つ前のアクションａｔ−１を記憶するアクション記憶部と、アクション記憶部から一つ前のアクションａｔ−１を取得し、一つ前のアクションａｔ−１と現在の観測値ｏｔ’を用いて、ＰＯＭＤＰ確率・報酬テーブル記憶部を参照して、対応する状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を取得し、状態確率分布記憶部から一つ前の状態の確率分布ｂｔ−１（ｓ）を取得し、現在の状態の確率分布ｂｔ（ｓ’）を求める状態分布更新部と、アクションａの連続出現回数ｎをアクション継続長ｎａとし、アクション継続長ｎａの確率をアクション継続長確率Ｐａ（ｎ）として予め記憶しておくアクション継続長確率テーブル記憶部と、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布ｂｔ（ｓ’）を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率をアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を１回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定部と、を備える。
【００１０】
上記の課題を解決するために、本発明の第二の態様に係る行動制御方法によれば、時刻をｔとし、一つ前の状態の確率分布ｂｔ−１（ｓ）を状態確率分布記憶部に記憶する状態確率分布記憶ステップと、一つ前のアクションａｔ−１をアクション記憶部に記憶するアクション記憶ステップと、アクション記憶部から一つ前のアクションａｔ−１を取得し、一つ前のアクションａｔ−１と現在の観測値ｏｔ’を用いて、アクションａによって状態ｓから状態ｓ’へ変わる状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と、アクションａによって状態ｓ’で観測値ｏ’が観測されるときの観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、が予め記憶されているＰＯＭＤＰ確率・報酬テーブル記憶部を参照して、対応する状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を取得し、状態確率分布記憶部から一つ前の状態の確率分布ｂｔ−１（ｓ）を取得し、現在の状態の確率分布ｂｔ（ｓ’）を求める状態分布更新ステップと、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布ｂｔ（ｓ’）を引数として、各アクションに対するスコアを求め、一つ前のアクションと最もよいスコアに対応するアクションとが異なる場合には、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し、行動制御の過程で更新される実時間アクション継続長を最小とし、一つ前のアクションと最もよいスコアに対応するアクションとが同じ場合には、最もよいスコアに対応するアクションの実時間アクション継続長に対応するアクション継続長確率を、アクションａの連続出現回数ｎをアクション継続長ｎａとし、アクション継続長ｎａの確率をアクション継続長確率Ｐａ（ｎ）として予め記憶されているアクション継続長確率テーブル記憶部から受け取り、このアクション継続長確率から得られる値と一様乱数との大小関係に応じて、最もよいスコアに対応するアクションをシステムがとるべきアクションとして決定し実時間アクション継続長を１回分大きくするか、または、最もよいスコアに対応するアクションとは異なるアクションを、システムがとるべきアクションとして決定し、実時間アクション継続長を最小とするアクション決定ステップと、を備える。
【発明の効果】
【００１１】
本発明に係る行動制御技術は、ＰＯＭＤＰの学習データに基づき、生成されるシステム側のある特定のアクションが連続して出現する統計量すなわちアクション継続長確率を予め記録しておき、このアクション継続長確率に従って、アクションを決定する。このような構成により、タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定することができ、かつ、同じアクションを何回も繰り返すことを防ぐことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】非特許文献４及び５のＰＯＭＤＰの確率構造を示す図。
【図２】非特許文献６のＰＯＭＤＰの確率構造を示す図。
【図３】アクション継続長確率テーブル記憶部１８０のデータ例を示す図。
【図４】行動制御装置１００の機能構成例を示すブロック図。
【図５】行動制御装置１００の処理フローの例を示す図。
【図６】アクションａと状態ｓａとアクション確率Ｐ（ａ｜ｓ）の関係を示す図。
【図７】状態遷移確率と観測値出力確率を近似した場合のＰＯＭＤＰの確率構造を示す図。
【図８】アクション継続長確率計算部９の処理フロー例を示す図。
【図９】εを用いた場合のアクションａと状態ｓａとアクション確率Ｐ（ａ｜ｓ）の関係を示す図。
【図１０】アクション決定部１６０及び２６０の機能構成例を示すブロック図。
【図１１】アクション決定部１６０の処理フローの例を示す図。
【図１２】アクション決定部２６０の処理フローの例を示す図。
【図１３】シミュレーション結果を示す図。
【発明を実施するための形態】
【００１３】
［本実施形態のポイント］
最初にＰＯＭＤＰの定義を行う。ＰＯＭＤＰは集合のセット（Ｓ，Ｏ，Ａ，Ｔ，Ｚ，Ｒ）で表現される。ここで、ｓ∈Ｓは状態の集合である。ｏ∈Ｏは観測値の集合である。ａ∈Ａはアクションのセットである。Ｔはアクションａによって状態がｓからｓ’へ変化するときの状態遷移確率Ｐ（ｓ’｜ｓ，ａ）の集合である。Ｚは状態ｓ’でアクションａによって観測値ｏ’が観測されるときの観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）の集合である。Ｒは状態ｓでアクションａを実行したときの報酬ｒ（ｓ，ａ）の集合である。
【００１４】
非特許文献４や非特許文献５のＰＯＭＤＰの確率構造を図１に示す。図中、実線の円は確率変数を示し、点線の円は隠れ変数を表す。ひし形は固定値を表し、四角はシステム側が選択する固定の変数を表す。矢印は変数の依存関係を表し、例えば、状態ｓから観測値ｏへの矢印には確率Ｐ（ｏ｜ｓ）が付与されている。図１のとき、状態の確率分布の更新式は
【００１５】
【数１】
0005475707.tif 000002
【００１６】
と表される。なお、ηは全体の和を１にするための正規化定数を表す。
【００１７】
図２は非特許文献６のＰＯＭＤＰの確率構造を示す。図２のとき状態の確率分布ｂの更新式は
【００１８】
【数２】
0005475707.tif 000003
と表される。
【００１９】
本実施形態では、式（１）や（２）等で得られる現在の状態の確率分布ｂｔ（ｓ’）を引数として、各アクションに対するスコアを求める。従来技術では、関数πによって、全てのアクションの内で最もよいスコアに対応するアクションだけを求めていたが、本実施形態では、最もよいスコアに対応するアクション以外のアクション（例えば、２番目によいスコアに対応するアクション）も求める。本実施形態では、学習データに基づき予め求められたアクション継続長確率及び行動制御の過程で更新される実時間アクション継続長を用いて、最もよいスコアに対応するアクションか、または、それ以外のアクションを行うか、を制御する。なお、学習データにおける、あるアクションａの連続出現回数ｎを、アクション継続長ｎａといい、アクション継続長ｎａの確率をアクション継続長確率Ｐａ（ｎ）という。学習データに基づき、各アクションの連続出現回数（アクション継続長）をカウントし、その頻度分布からアクション継続長確率Ｐａ（ｎ）を求める。図３にアクション継続長確率テーブルのデータ例を示す。なお、図中のＵは、アクションの種類の個数を表し、アクションのシンボルは１，２，…，Ｕからなる。また、この分布としては、アクション継続長をサンプルとする、ポアソン分布やガンマ分布、二項分布や任意の連続分布を用いてもよい。行動制御（本実施形態では対話制御）の過程において、あるアクションａが連続ｍ回出現した場合には、その連続出現回数ｍを実時間アクション継続長という。アクション継続長確率Ｐａ（ｎ）は学習データに基づき予め算出し、記憶しておく。また、実時間アクション継続長ｍは、行動制御の過程において、現在までに同じアクションが何回続いたかの記録を取っておき、更新していく。次のアクションを決定する場合は、アクション継続長確率Ｐａ（ｎ）に従うように、実時間アクション継続長ｍを用いてアクションを決定する。
【００２０】
以下、第一実施形態について、詳細に説明する。
【００２１】
＜第一実施形態に係る行動制御装置１００＞
図４及び図５を用いて第一実施形態に係る行動制御装置１００を説明する。行動制御装置１００は、ＰＯＭＤＰ確率・報酬テーブル記憶部１１０と、強化学習部１２０と、アクション評価関数記憶部１３０と、状態分布更新部１４０と、状態確率分布記憶部１５０と、アクション決定部１６０と、アクション記憶部１７０と、アクション継続長確率テーブル記憶部１８０と、を備える。なお、ユーザの行動を観測値ｏとし、システムの行動をアクションａとする。
【００２２】
行動制御装置１００は、観測値ｏｔ’を取得する前に、以下の処理（Ａ）〜（Ｄ）を行う（ｓ１）。
【００２３】
（Ａ）アクションａによって状態ｓから状態ｓ’へ変わる状態遷移確率Ｐ（ｓ’｜ｓ，ａ）とアクションａによって状態ｓ’で観測値ｏ’が観測されるときの観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、状態ｓでアクションａを実行したときの報酬ｒ（ｓ，ａ）と、をＰＯＭＤＰ確率・報酬テーブル記憶部１１０に記憶しておく。なお、記憶される状態遷移確率、観測値出力確率及び報酬の求め方は後述する。
（Ｂ）強化学習部１２０において、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と、観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、報酬ｒ（ｓ，ａ）を用いて、状態の確率分布を引数として各アクションに対するスコアを返す関数πを生成する。なお、関数πの生成方法は後述する。生成された関数πをアクション評価関数記憶部１３０に記憶しておく。
（Ｃ）アクション決定部１６０は、アクション評価関数記憶部１３０に記憶されている関数πを取得し、記憶しておく。なお、アクション評価関数記憶部１３０をアクション決定部１６０の内部に設けてもよい。
（Ｄ）前述のアクション継続長確率をアクション継続長確率テーブル記憶部１８０に記憶しておく（図３参照）。なお、記憶されるアクション継続長確率の求め方は後述する。
【００２４】
＜ＰＯＭＤＰ確率・報酬テーブル記憶部１１０＞
前述の通り、ＰＯＭＤＰ確率・報酬テーブル記憶部１１０は、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と報酬ｒ（ｓ，ａ）と、を記憶する。例えば、非特許文献４や非特許文献５に記載の方法で状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と報酬ｒ（ｓ，ａ）を求める。
【００２５】
なお、学習データの統計すなわち、アクションの予測確率をアクション制御に反映するために、図２の状態に、アクションａに一対一に対応するｓａという状態を付加する。ここで、ユーザ・システム間対話の隠れ状態（以下、単に「状態」という）ｓは、ユーザ・システムの隠れ状態ｓｏと行動生成のための隠れ状態ｓａとの組からなり、ｓ＝（ｓｏ，ｓａ）と表される。なお、ｓｏは、図２の状態と全く等価である。ｓａの役割は、アクションａの予測確率を推定することである。また、その予測確率を最大化するアクションａを選択するためのものである。図６に示すように、ａとｓａとを一対一に対応させるためにａ＝ｓａのときのみ、アクション確率Ｐ（ａ｜ｓ＝（＊，ｓａ））＝１とする。ここでのアクションの種類の数は３である。但し、＊は任意の状態ｓｏを表し、アクション確率Ｐ（ａ｜ｓ）は状態ｓでアクションａを実行する確率を表す。
【００２６】
ここで、本実施形態では、計算量の削減を考えて、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）及び観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を以下のように近似する。
【００２７】
P(s'|s,a)≒P(so'|so,a)P(sa'|sa,so')    (4)
P(o'|s',a)≒P(o'|so')    (5)
図７はこのときのＰＯＭＤＰの構造を示す。確率Ｐ（ｒｔ｜ｓｔ，ａｔ）、確率Ｐ（ｓｔ＋１｜ｓｔ，ａｔ）、確率Ｐ（ｏｔ＋１｜ｓｔ＋１，ａｔ）は、ｔｒｉｇｒａｍ確率として単純な確率計算で求めてもよいし、ダイナミックベイジアンネットワーク（以下、「ＤＢＮ」という）を使って学習して求めてよい。以下、ＤＢＮを使って、ＰＯＭＤＰ確率・報酬を求める方法を例示する。
【００２８】
（行動データ記憶部１）
人対人の行動を示すデータ（例えば、対話を記録した音声データや画像データ等）において、一方の人をユーザとし、他方の人をシステムとして割り当てる。ユーザの行動を観測値ｏとし、システムの行動をアクションａとし、観測値ｏとアクションａからなる一連の行動系列が所望の行動系列であったか否かを、人手により評価する。所望の行動系列として、例えば、システムに親近感を感じる行動系列、ユーザが楽しんだ行動系列、典型的な行動系列、ユーザの役に立つ行動系列等を用いる。また、評価には、アンケートの質問への回答等を利用することができる。例えば、「システムに親近感を感じましたか」、「楽しめましたか」、「役に立ちましたか」等の質問を行い、結果を評価値として記述する。この評価値にｄという変数を利用する。この値が高い行動系列を所望の行動系列とする。
【００２９】
行動データ記憶部１は、このようにして求めた観測値ｏとアクションａと評価値ｄの組合せ（ｏ，ａ，ｄ）を記憶する。このとき、関数πを学習するために十分な量の組合せを記録する。
【００３０】
（ＤＢＮ生成部３及びＤＢＮ確率テーブル記憶部５）
ＤＢＮ生成部３は、時系列の観測値ｏｔ、アクションａｔ、評価値ｄｔを用いて、ＥＭアルゴリズム、ジャンクションツリーアルゴリズム、サンプリング手法などにより、尤度最大化を行い、行動生成モデルのためのＤＢＮを生成する。なお、評価値ｄを確率変数として扱う。ｔは時刻を表すものとする。ここで、ｔは変数の相対的な時刻の関係を明確にするために用いた記号であり、特定の時刻を想定しているものではない。すなわち、ここで示す確率及びそれを使った演算は、時刻に依存しない。
【００３１】
ＤＢＮ生成部３は、ＤＢＮを生成し、状態ｓｔでアクションａｔを実行したときの評価値ｄｔの確率Ｐ（ｄｔ｜ｓｔ，ａｔ）、アクションａｔによって状態がｓｔからｓｔ＋１へ変わる確率Ｐ（ｓｔ＋１｜ｓｔ，ａｔ）、アクションａｔによって状態ｓｔ＋１で観測値ｏｔ＋１が観測される確率Ｐ（ｏｔ＋１｜ｓｔ＋１，ａｔ）を推定する。さらに、ＤＢＮ生成部３で推定された各確率は、ＤＢＮ確率テーブル記憶部５に記憶される。
【００３２】
なお、求めようとするＰＯＭＤＰ確率・報酬において、ｓ＝（ｓｏ，ｓａ）とし、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）及び観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を式（４）及び（５）によって、近似しているので、ＤＢＮにおいても同様の処理を行い、対応する確率を求める。
【００３３】
（ＤＢＮ−ＰＯＭＤＰ変換部７）
ＤＢＮ−ＰＯＭＤＰ変換部７は、ＤＢＮ生成部３で推定された確率を以下の式により、ＰＯＭＤＰの確率・報酬に変換する。なお、観測値及びアクションとして同じ定義のシンボルが使われると仮定する。
【００３４】
【数３】
0005475707.tif 000004
【００３５】
ＤＢＮとＰＯＭＤＰの構造はほぼ同じなので、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）、観測値出力確率Ｐ（ｏ’｜ｓ’，ａｔ）に関しては、対応する確率を代入すればよい。報酬はＤＢＮにおいて確率変数として扱われるため、ＤＢＮで得られた確率変数を平均化することによって、実数に変換したものをＰＯＭＤＰにおいて用いる。例えば、ｄｔの確率分布から式（６）によって求める。このようにして、ＤＢＮ−ＰＯＭＤＰ変換部７は、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）、観測値出力確率Ｐ（ｏ’｜ｓ’，ａｔ）及び報酬ｒ（ｓ，ａ）を生成する。ＰＯＭＤＰ確率・報酬テーブル記憶部１１０は、これらの値を利用に先立ち予め記憶しておく。
【００３６】
（アクション継続長確率計算部９）
アクション継続長確率計算部９は、学習データからアクションａの連続出現回数ｎをアクション継続長ｎａとしてカウントし、アクション継続長ｎａの頻度分布、ポアソン分布、ガンマ分布、二項分布または任意の連続分布を用いて、アクション継続長確率Ｐａ（ｎ）を計算する。例えば、アクション継続長確率計算部９は、行動データ記憶部１に記憶されている時系列の行動データの内、時系列のアクションａｔ（但し、時系列の行動データの個数をＪとすると、ｔ＝１，２，…，Ｊである）を学習データとして取得し（図８のｓ９１）、各パラメタを初期化する（ｓ９２）。ａｔとａｔ−１とが同一か否かを判定し（ｓ９３）、同一の場合には、アクション継続長ｎを一回分大きくする（ｓ９４）。ａｔとａｔ−１とが異なる場合には、アクションａｔ−１のアクション継続長ｎａｔ−１に対する頻度ｃｎｔ（ｎａｔ−１）を１つ大きくし（ｓ９５）、アクション継続長ｎを１に戻す（ｓ９６）。全てのアクションに対して上記処理を行い（ｓ９７，９８）、各アクションａに対する各アクション継続長ｎａの頻度分布を求める。なお、最後のアクションａＪについては、アクションａｔのアクション継続長ｎａｔに対する頻度を１つ大きくする（ｓ９９）。なお、ｎの添え字のａｔ，ａｔ−１はそれぞれａｔ、ａｔ−１を表す。以下の式により、アクションａ毎に、各連続出現回数ｑａ（ｑａ＝１，２,…，Ｑａ）の頻度ｃｎｔ（ｑａ）の総和に対する連続出現回数ｎａの頻度ｃｎｔ（ｎａ）の比を求め（ｓ１００）、その比をアクション継続長確率Ｐａ（ｎ）とする。但し、Ｑａはアクションａの連続出現回数ｑａの最大値を表す。
【００３７】
【数４】
0005475707.tif 000005
【００３８】
このように各アクションａの各アクション継続長ｎａの確率Ｐａ（ｎ）を計算し、アクション継続長確率Ｐａ（ｎ）を求める（ｓ１０４−ｓ１０６）。また、連続出現回数ｎの頻度ｃｎｔ（ｎａ）の平均値を求め、ポアソン分布に基づきアクション継続長確率Ｐａ（ｎ）を求めてもよい。また、ガンマ分布やその他の連続分布に基づきアクション継続長確率Ｐａ（ｎ）を求めてもよいし、他の方法により頻度分布を求めてもよい。
【００３９】
アクション継続長確率計算部９は、求めたアクション継続長確率Ｐａ（ｎ）を行動制御装置１００に出力する。行動制御装置１００のアクション継続長確率テーブル記憶部１８０は、アクション継続長確率Ｐａ（ｎ）を利用に先立ち予め記憶しておく（図３参照）。
【００４０】
＜強化学習部１２０及びアクション評価関数記憶部１３０＞
強化学習部１２０は、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）、観測値出力確率Ｐ（ｏ’｜ｓ’，ａｔ）及び報酬ｒ（ｓ，ａ）を用いて、強化学習により、状態の確率分布を引数とし各アクションに対するスコアを返す関数（以下「アクション評価関数」という）πが得られる。アクション評価関数記憶部１３０は、強化学習部１２０で生成されたアクション評価関数πを記憶する。
【００４１】
次に、状態の確率分布を引数とし最もよいスコアに対応するアクションを返す関数（以下「ポリシー」という）π’の計算方法について説明する。まず、以下の式は、前述のポリシーが既知であると仮定して、時刻ｔから時刻τ＋ｔまでのアクション系列ａτ＋ｔがポリシーπ’によって選択されたときの将来獲得できる平均報酬を示す。
【００４２】
【数５】
0005475707.tif 000006
【００４３】
ここで、ｂτ＋ｔ（ｓ）は、時刻τ＋ｔの状態の確率分布である。また、正定数γ（＜１）により未来の報酬の寄与は小さくなる。ポリシーπ’は、式（１１）を最大にする現在のアクションａｔを、アクション評価関数πと現在の状態の確率分布ｂｔ（ｓ）から計算する関数である。
【００４４】
＜データ中に出現する統計情報に従って行動を選択する手法＞
まず、現在の状態の確率分布ｂｔ（ｓ）の定義から次式が得られる。
【００４５】
【数６】
0005475707.tif 000007
【００４６】
これは、過去のｏ１，ａ１，…，ａｔ−１，ｏｔという系列、すなわちユーザとシステムの観測値とアクションの履歴が実行された後に、状態がｓａとなる確率を表している。
【００４７】
ａ＝ｓａのときにＰ（ａ｜ｓａ）＝１としているため、ａｔ＝ｓａのときに以下の式を得る。
【００４８】
【数７】
0005475707.tif 000008
【００４９】
これは、過去のｏ１，ａ１，…，ａｔ−１，ｏｔが観測されたときの次にアクションａｔが起こる確率を表す。すなわち、今までのデータからａｔがどれだけ自然かを表す確率となっている。すなわち、式（１４）を最大化するようにＰＯＭＤＰの報酬を決めれば、ポリシーにより、学習データの統計に従ったアクションを生成するようになる。これを実現するためには、報酬を
【００５０】
【数８】
0005475707.tif 000009
【００５１】
として設定すればよい。但し、ａ＝ｓａを満たす必要がある。このように報酬を決定するため、ここでは、ａ＝ｓａのときに１をとり、それ以外のときには０をとるように報酬ｒ＾（（＊，ｓａ），ａ）を定める。
【００５２】
【数９】
0005475707.tif 000010
【００５３】
ここで、＊は任意の状態ｓｏを指す。この値を用いて、ｒをｒ＾に置き換えれば、学習データの統計に従った対話を実現できる。ここでは、従来型の所望の行動系列も実現するために従来手法の報酬の線形和をとる。なお、従来型の所望の行動系列に対する報酬は、式（６）より、以下のように示すことができる。但し、＊’は任意の状態ｓａを指す。
【００５４】
【数１０】
0005475707.tif 000011
【００５５】
よって、式（１６）及び（１７）を用いて、式（１１）のｒをαｒ＋βｒ＾で置き換えた下記式（１８）により最終的な目的関数Ｖπ’ｔを得る。
【００５６】
【数１１】
0005475707.tif 000012
【００５７】
ここで、α、βは任意の実数である。このα、βを変化させることにより、所望の行動を実現する（αが大きい場合）のか統計的な行動を優先する（βが大きい場合）のか、その優先度合いの重みづけを行うことができる。なお、α、βを０とすることも可能である。
【００５８】
本実施形態では式（１８）を最大にするアクション系列ａτ＋ｔを求めるポリシーを求めることにより行動制御を実現する。強化学習を用いると、式（１８）を最大化するアクションを決定するポリシーを事前に求めることができる。ＰＯＭＤＰの環境を既知として、最適なポリシーをValue Iterationという手法で式（１８）をポリシーに対して最大化を行うことにより求めることができる。ここでは、計算時間の削減のため、近似手法であるPoint-based Value Iterationを用いる。なお、Value IterationやPoint-based Value Iterationを用いて、ポリシーπ’を求める過程において、前述のアクション評価関数π（状態の確率分布を引数とし各アクションに対するスコアを返す関数）を生成することができる（参考文献１参照）。
［参考文献１］S. Russell and P. Norvig, “Artificial Intelligence: a Modern Approach Second Edition”, Prentice Hall, 2003.
【００５９】
通常、対象となる所望の行動系列に対してＰＯＭＤＰによる行動生成の学習を行うと、所望の行動系列だけをシステムは実現しようとする。このため、人と人の行動の記録には、所望の行動系列だけではなく、様々な系列が含まれているのにもかかわらず、所望の行動系列以外の行動を選択しなくなる。よって、人と人との間のやり取りを再現しつつ、かつ、所望の行動系列にユーザを引き込むようなシステムを作る場合には、所望の行動系列だけを学習するだけでは不十分である。このような構成とすることで、システムを構成する際にはこれらの行動系列の統計情報も含めて、システムの行動制御を学習するため、所望の行動系列へ引き込みつつも、学習データの統計に従った行動制御を行うことができる。
【００６０】
＜状態分布更新部１４０及び状態確率分布記憶部１５０＞
以下、図４及び図５を用いて説明する。まず、状態分布更新部１４０は、観測値ｏｔ’を取得すると（ｓ３）、状態確率分布記憶部１５０に問合せて、一つ前の状態の確率分布ｂｔ−１（ｓ）を取得し、アクション記憶部１７０に問合せて、一つ前のアクションａｔ−１とを取得する（ｓ５）。
【００６１】
次に、状態分布更新部１４０は、取得した現在の観測値ｏｔ’と一つ前のアクションａｔ−１をキーとして、ＰＯＭＤＰ確率・報酬テーブル記憶部１１０を参照し、対応する状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を取得する（ｓ７）。
【００６２】
さらに、状態分布更新部１４０は、取得したＰ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）と、さらに、Ｐ（ａ｜ｓ）を用いて式（２）により、
【００６３】
【数１２】
0005475707.tif 000013
【００６４】
取得した一つ前の状態の確率分布ｂｔ−１（ｓ）を更新し、現在の状態の確率分布ｂｔ（ｓ’）を求める（ｓ９）。
【００６５】
なお、本実施形態では、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）及び観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を式（４）、（５）により近似しているので、
P(s'|s,a)≒P(so'|so,a)P(sa'|sa,so')    (4)
P(o'|s',a)≒P(o'|so')    (5)
現在の状態の確率分布を
【００６６】
【数１３】
0005475707.tif 000014
【００６７】
として求める。なお、現在の状態の確率分布ｂｔ（ｓ’）はアクション決定部１６０と状態確率分布記憶部１５０に出力される。
【００６８】
状態確率分布記憶部１５０は、現在の状態の確率分布ｂｔ（ｓ’）を記憶する（ｓ１０）。
【００６９】
非特許文献６は、状態の確率分布の更新式中にアクション確率Ｐ（ａ｜ｓ）を導入する点が、非特許文献４及び５と異なる。なお、図１と図２の違いによりこのアクション確率Ｐ（ａ｜ｓ）が生じる。
【００７０】
アクション確率Ｐ（ａ｜ｓ）は、図６に示すような確率テーブルを予め図示しない記憶部に記憶しておいてもよいし、ａ＝ｓａのときにＰ（ａ｜ｓ）に１を代入し、ａ≠ｓａのときはＰ（ａ｜ｓ）に０を代入する構成としてもよい。但し、図５に示すようにａ≠ｓａのときにＰ（ａ｜ｓ）＝０とすると、認識誤りがあった場合に、システムが決定論的に動き、認識誤りを考慮していないため、式（２’）において、ｂｔ（ｓ’）がほとんど０になってしまう場合がある。このような場合にはシステムが動作しない。そこで、図９に示すようにａ≠ｓａのときにＰ（ａ｜ｓ）＝εとして、全ての状態が０になることを回避する。但し、εは非常に小さな値を示す。このように設定することで、認識誤りがあった場合にも停止せずに動作する行動制御装置を構成することができる。
【００７１】
なお、認識誤りを考慮した場合のアクション確率Ｐ（ａ｜ｓ）の設定方法は上述した方法に限定されるものではなく、例えば、ファジーロジックを使って設定してもよいし、アクション間にある距離を設定して、平滑化する手法等を用いてもよい。
【００７２】
＜アクション決定部１６０、アクション記憶部１７０、アクション継続長確率テーブル記憶部１８０＞
アクション決定部１６０は、スコア算出部１６１と、比較部１６３と、選択部１６５と、実時間アクション継続長記憶部１６７と、を有する（図１０参照）。図１１を用いて、アクション決定部１６０の処理内容（図５中のｓ１１）を説明する。
【００７３】
（スコア算出部１６１）
スコア算出部１６１は、利用に先立ち予め、アクション評価関数記憶部１３０に記憶されている関数πを取得し、記憶しておく。スコア算出部１６１は、状態の確率分布を引数として各アクションに対するスコアを返す関数πを用いて、現在の状態の確率分布ｂｔ（ｓ’）を引数として、各アクションａに対するスコアＳａを求める。例えば、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）と二番目によいスコアに対応するアクションａｔ’（ｒａｎｋ２）を求め（ｓ１６１）、ａｔ’（ｒａｎｋ１）を比較部１６３に出力し、ａｔ’（ｒａｎｋ１）とａｔ’（ｒａｎｋ２）を選択部１６５に出力する。なお、例えば、関数πとは、各アクションａに対して、スコア
【００７４】
【数１４】
0005475707.tif 000015
【００７５】
（但し、τ＋ｔ＝ｔ（つまり、τ＝０）のときだけ、ポリシーπ’を使わず、各アクションａについて全て求める（つまり、ａｔ＝ａを選択する））          （２０）
を求め、返す関数である。式（２０）の場合、Ｖ（ｂ（ｔ））の値が大きいほど、スコアがよいことを表す。
【００７６】
（比較部１６３）
比較部１６３は、アクション記憶部１７０から一つ前のアクションａｔ−１を取得し、スコア算出部から最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）を受け取る。そして、一つ前のアクションａｔ−１と最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）とが同一か否かを判定し（ｓ１６３）、判定結果を選択部１６５に出力する。なお、最初の判定時には、一つ前のアクションａｔ−１が存在しないため、「ａｔ−１とａｔ’（ｒａｎｋ１）とが異なる」ことを表す判定結果を出力する。
【００７７】
（選択部１６５及び実時間アクション継続長記憶部１６７）
選択部１６５は、判定結果と、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）と、二番目によいスコアに対応するアクションａｔ’（ｒａｎｋ２）と、を受け取る。そして、判定結果が「ａｔ−１とａｔ’（ｒａｎｋ１）とが異なる」ことを表す場合には、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）をシステムがとるべきアクションａｔ’として決定する（ｓ１６５ｂ）。さらに、実時間アクション継続長記憶部１６７から行動制御（本実施形態では対話制御）の過程で更新される実時間アクション継続長ｍを取得し、ｍを最小（例えば、１）とし（ｓ１６５ｆ）、実時間アクション継続長記憶部１６７に記憶する。
【００７８】
選択部１６５は、判定結果が「ａｔ−１とａｔ’（ｒａｎｋ１）とが同一である」ことを表す場合には、アクションａｔ’（ｒａｎｋ１）の実時間アクション継続長ｍに対応するアクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）をアクション継続長確率テーブル記憶部１８０から受け取る。但し、添え字のａｔ’（ｒａｎｋ１）は、ａｔ’（ｒａｎｋ１）を意味する。このアクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）から得られる値と一様乱数との大小関係に応じて、システムがとるべきアクションとして決定する。
【００７９】
アクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）から得られる値とは、例えば、実時間アクション継続長ｍに対応するアクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）と、実時間アクション継続長ｍ以上に対応するアクション継続長確率の総和との比
【００８０】
【数１５】
0005475707.tif 000016
【００８１】
である。これは、アクション継続長ｍ以上において、アクション継続長ｍのアクションａｔ’（ｒａｎｋ１）が生成される確率である。この確率が高い場合には、ｍ＋１以降においてアクションａｔ’（ｒａｎｋ１）が生成される確率は低いことを意味する。この場合、実時間アクション継続長記憶部１６７から実時間アクション継続長ｍを受け取り、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）の実時間アクション継続長ｍ以上に対応するアクション継続長確率をアクション継続長確率テーブル記憶部１８０から受け取る。また、例えば一様乱数の有限の区間は０以上１以下とする。よって、選択部１６５は、式（２１）により、前述の確率（比）を求め、この確率と一様乱数とを比較する（ｓ１６５ａ）。なお、図中ｒａｎｄ（）は、一様乱数を返す関数を表す。
【００８２】
確率が一様乱数より小さい場合には、実時間アクション継続長ｍの最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）をシステムがとるべきアクションａｔ’として決定し（ｓ１６５ｃ）、実時間アクション継続長ｍを１回分大きくし（ｓ１６５ｅ）、実時間アクション継続長記憶部１６７に記憶する。
【００８３】
確率が一様乱数以上の場合には、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）とは異なるアクションａｔ’（ｒａｎｋ２）を、システムがとるべきアクションａｔ’として決定し（ｓ１６５ｄ）、アクション継続長を最小とし（ｓ１６５ｆ）、実時間アクション継続長記憶部１６７に記憶する。これは、確率が一様乱数より小さい場合はアクション継続長ｍでそのアクションが終わらない（継続する）可能性が高く、確率が一様乱数より大きい場合はアクション継続長ｍでそのアクションが終わる（継続しない）可能性が高いことを意味するからである。アクション決定部１６０は、決定したアクションａｔ’を、行動制御装置１００の出力値として出力する。また、アクションａｔ’をアクション記憶部１７０に出力する。
【００８４】
アクション記憶部１７０は、アクションａｔ’を記憶する（図５のｓ１２）。
【００８５】
最後の観測値までｓ３〜ｓ１２の処理を繰り返す（ｓ１３）。
【００８６】
＜効果＞
このような構成により、タスクが決まっていなくてもデータの統計量に従って、自動的にシステムの行動を決定することができ、かつ、学習データ中のアクション継続長の統計に従ったアクションを実行でき、同じアクションだけを何回も繰り返し実行する行動制御を避けることができる。
【００８７】
＜変形例＞
行動制御装置１００は、強化学習部１２０及びアクション評価関数記憶部１３０を備えているが、これらの構成を別装置として構成してもよい。その場合、行動制御装置１００は、別装置で生成した関数πを取得し、アクション決定部１６０に記憶しておけばよい。なお、別装置で関数πを生成する場合には、行動制御装置１００が備えるＰＯＭＤＰ確率・報酬テーブル記憶部１１０には、状態遷移確率Ｐ（ｓ’｜ｓ，ａ）と観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）のみを記憶する構成としてもよい。
【００８８】
本実施形態では、計算量を削減するために、式（４）、（５）を用いて状態遷移確率Ｐ（ｓ’｜ｓ，ａ）、観測値出力確率Ｐ（ｏ’｜ｓ’，ａ）を近似し、さらに、式（２’）を用いて状態の確率分布の更新式を近似しているが、他の式により各値を近似してもよいし、近似せずに各値を求めてもよい。また式（１）や他の式を用いて状態の確率分布を更新してもよい。
【００８９】
なお、行動制御装置１００は、行動データ記憶部１、ＤＢＮ生成部３、ＤＢＮ確率テーブル記憶部５、ＤＢＮ−ＰＯＭＤＰ変換部７、アクション継続長確率計算部９の何れか１つ以上を備える構成であってもよい。
【００９０】
アクション決定部１６０において、必ずしも最もよいスコアに対応するアクション、または、２番目によいスコアに対応するアクションを、システムが取るべきアクションとして決定せずともよい。例えば、図１１のｓ１６５ａにおいて、２番目によいスコアと３番目によいスコアの比が一様乱数よりも小さい場合、この比が一様乱数より大きいか否か判定し、大きい場合には、２番目によいスコアに対応するアクションａｔ’（ｒａｎｋ２）をシステムが取るべきアクションとして決定し、小さい場合には、３番目によいスコアに対応するアクションａｔ’（ｒａｎｋ３）をシステムが取るべきアクションとして決定する構成であってもよい。つまり、自動的にシステムの行動を決定することができ、同じアクションだけを何回も繰り返し実行する行動制御を避けることができ、かつ、不自然でない行動を選択するものであればよく、適宜変更できる。
【００９１】
本実施形態では、対話制御について説明したが、システムとユーザが交互にやり取りをするような対話制御以外の行動制御システムにおいても、同様に本実施形態に係る行動制御技術を利用することができる。
【００９２】
＜第二実施形態に係る行動制御装置２００＞
以下、第一実施形態と異なる部分についてのみ説明する。行動制御装置２００は、ＰＯＭＤＰ確率・報酬テーブル記憶部１１０と、強化学習部１２０と、アクション評価関数記憶部１３０と、状態分布更新部１４０と、状態確率分布記憶部１５０と、アクション決定部２６０と、アクション記憶部１７０と、アクション継続長確率テーブル記憶部１８０と、を備える（図４参照）。アクション決定部２６０の構成及び処理内容が第一実施形態とは異なる。
【００９３】
＜アクション決定部２６０＞
アクション決定部２６０は、スコア算出部１６１と、比較部１６３と、選択部２６５と、実時間アクション継続長記憶部１６７と、実時間アクション継続長確率テーブル記憶部２６８（図１０中、一点鎖線で示す）とを有する。図１２を用いて、アクション決定部２６０の処理内容（図５中のｓ２１）を説明する。但し、第一実施形態と異なる部分（選択部２６５と実時間アクション継続長確率テーブル記憶部２６８）についてのみ説明する。
【００９４】
（選択部２６５、実時間アクション継続長記憶部１６７及び実時間アクション継続長確率テーブル記憶部２６８）
選択部２６５は、比較部１６３の判定結果と最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）と二番目によいスコアに対応するアクションａｔ’（ｒａｎｋ２）とを受け取る。そして、判定結果が「ａｔ−１とａｔ’（ｒａｎｋ１）とが異なる」ことを表す場合には、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）をシステムがとるべきアクションａｔ’として決定する（ｓ１６５ｂ）。さらに、実時間アクション継続長記憶部１６７から対話制御の過程で更新される実時間アクション継続長ｍを取得し、ｍを最小とし（ｓ１６５ｆ）、実時間アクション継続長記憶部１６７に記憶する。さらに、一つ前のアクションａｔ−１の実時間アクション継続長ｍａｔ−１に基づき、対話制御の過程における実時間アクション継続長確率を更新し（ｓ２６５ｇ）、実時間アクション継続長確率テーブル記憶部２６８に記憶する。例えば、選択部２６５は、前述のアクション継続長確率計算部９と同様の方法により、アクションａｔ−１の実時間アクション継続長ｍａｔ−１をカウントし、実時間アクション継続長ｍａｔ−１の頻度分布、ポアソン分布、ガンマ分布または二項分布や任意の連続分布用いて、実時間アクション継続長確率Ｐ￣ａ−１（ｍａｔ−１）を計算する。ａｔ−１とａｔ’（ｒａｎｋ１）とが異なる場合には、対話制御の過程における一つ前のアクションａｔ−１の実時間アクション継続長ｍａｔ−１が確定し、実時間アクション継続長の頻度分布等が変化するため、実時間アクション継続長確率を更新する。更新した実時間アクション継続長確率を実時間アクション継続長確率テーブル記憶部２６８に記憶する。実時間アクション継続長確率テーブル記憶部２６８には、アクション継続長確率テーブル記憶部１８０と同様のデータ構造である（但し、実時間アクション継続長確率に基づいたデータである）。
【００９５】
選択部２６５は、判定結果が「ａｔ−１とａｔ’（ｒａｎｋ１）とが同一である」ことを表す場合には、アクションａｔ’（ｒａｎｋ１）の実時間アクション継続長ｍに対応するアクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）をアクション継続長確率テーブル記憶部１８０から受け取る。このアクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）から得られる値と一様乱数との大小関係に応じて、システムがとるべきアクションとして決定する。
【００９６】
アクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）から得られる値とは、例えば、実時間アクション継続長ｍに対応するアクション継続長確率Ｐａｔ’（ｒａｎｋ１）（ｍ）と実時間アクション継続長確率Ｐ￣ａｔ’（ｒａｎｋ１）（ｍ）との確率差分
ΔPat’(rank1)(m)=Pat’(rank1)(m)-P￣at’(rank1)(m)    (31)
（但し、Pat’(rank1)(m)-P￣at’(rank1)(m)<0のとき、ΔPat’(rank1)(m)←0とする。）
と、実時間アクション継続長ｍ以上に対応するアクション継続長確率と実時間アクション継続長確率との確率差分の総和との比
【００９７】
【数１６】
0005475707.tif 000017
【００９８】
（但し、Pat’(rank1)(n)-P￣at’(rank1)(n)<0のとき、ΔPat’(rank1)(n)←0とする。）
である。この場合、実時間アクション継続長記憶部１６７から実時間アクション継続長ｍを受け取り、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）の実時間アクション継続長ｍ以上に対応するアクション継続長確率をアクション継続長確率テーブル記憶部１８０から受け取り、実時間アクション継続長ｍ以上に対応する実時間アクション継続長確率を実時間アクション継続長確率テーブル記憶部２６８から受け取る。また、例えば一様乱数の有限の区間は０以上１以下とする。よって、選択部２６５は、式（３２）により、前述の比を求め、この比と一様乱数とを比較する（ｓ２６５ａ）。
【００９９】
比が一様乱数より小さい場合には、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）をシステムがとるべきアクションａｔ’として決定し（ｓ１６５ｃ）、実時間アクション継続長ｍを１回分大きくし（ｓ１６５ｅ）、実時間アクション継続長記憶部１６７に記憶する。
【０１００】
比が一様乱数以上の場合には、最もよいスコアに対応するアクションａｔ’（ｒａｎｋ１）とは異なるアクションａｔ’（ｒａｎｋ２）を、システムがとるべきアクションａｔ’として決定し（ｓ１６５ｄ）、アクション継続長を最小とし（ｓ１６５ｆ）、実時間アクション継続長記憶部１６７に記憶する。さらに、一つ前のアクションａｔ−１の実時間アクション継続長に基づき、対話制御の過程における実時間アクション継続長確率を更新し（ｓ２６５ｇ）、実時間アクション継続長確率テーブル記憶部２６８に記憶する。
【０１０１】
アクション決定部２６０は、決定したアクションａｔ’を、行動制御装置２００の出力値として出力する。また、アクションａｔ’をアクション記憶部１７０に出力する。
【０１０２】
＜効果＞
このような構成とすることにより、第一実施形態と同様の効果を得ることができる。さらに、確率差分を用いることで、行動制御の過程で過去に起きた事象の生起確率を、第一実施形態よりも低く抑えることができ、学習データに近い継続時間長の分布を実現でき、より自然な対話を実現できる。
【０１０３】
［シミュレーション結果］
実際の対話からＰＯＭＤＰ確率・報酬を生成し、それを用いてポリシーを学習し、そのＰＯＭＤＰ確率とポリシーを記憶した行動制御装置に対し観測値を入力し、その観測値に対するアクションが、実時間アクション継続長ｍによる制御を行うか行わないかで、その評価がどのように変わるかを調べた。実時間アクション継続長ｍによる制御を行う行動制御装置として第二実施形態の行動制御装置２００を用い、実時間アクション継続長ｍによる制御を行わない行動制御装置として非特許文献６の行動制御装置を用いる。
【０１０４】
アクションと観測値には、３３種類の行動（シンボル）が付与されるものとする。実験では、実際の対話データに対して、これらの行動（シンボル）を人手で付与した。以下に、実際の対話データの例を示す。ユーザと聞き役であるシステムを想定している。
ユーザ：こんにちは、はじめまして、“食事”の話をしましょう。
システム：はじめまして。
ユーザ：夕食にカレーを食べました。カレーは好きですか？
システム：はい好きです。
ユーザ：本当ですか？私もです。
システム：いつも外に食べに行きますか？
ユーザ：いいえ、いつも家で作って食べます。特別なスパイスは使わないんです。でも、ときどき、カレーうどんも作ります。
システム：いいですね。
【０１０５】
この例のように、実際の対話データでは、行動は必ずしも、システム、ユーザ、交互には行われない。そこで何もしないという行動（シンボル）を追加し（全３３種）、行動が交互に出現するようにした。２５０対話に対して行動（シンボル）を付与した。そして一連の行動系列が所望の行動系列であったか否かを５段階で人が評価し、評価値を行動系列に付与した。なお、所望の行動系列として、ユーザが満足感を感じる行動系列を選んだ。そのデータに基づきＤＢＮの学習とｔｒｉｇｒａｍの学習により、統計量を学習した。なお、二つのモデルは等価なので、何れの学習を用いても統計量は、同じ値となった。さらに、ＤＢＮからはＰＯＭＤＰ確率・報酬を生成し、生成したＰＯＭＤＰ確率・報酬に基づき、ポリシーを学習する。その際、所望の行動系列に対する報酬を１とおいた（式（１８）においてα＝１とした）。また、βは２０、１５、１０と３種類を調べた。
【０１０６】
ユーザの挙動をシミュレートするため、行動データから得られたｔｒｉｇｒａｍに基づいてランダムに観測値を選択し、アクション継続長制御を行う場合と行わない場合について、行動制御装置に入力し、それぞれのアクションを取得した。シミュレーションではそれぞれ１０００対話を生成した。
【０１０７】
対話の評価にはいくつかの評価を手法を用いた。一つは以下の式に示すエントロピーを基準とした。
【０１０８】
【数１７】
0005475707.tif 000018
【０１０９】
但し、Ｐｇｅｎｅｒａｔｅｄ  ｄａｔａ（ａ）は生成されたアクションの対話中での生起確率を表す。この値が大きければ、系は乱雑であり、特定のアクションに偏っていないことが分かる。また、次の確率分布の距離も評価尺度とした。
【０１１０】
【数１８】
0005475707.tif 000019
【０１１１】
この値が小さいほど、生成されたアクションの分布が学習データの分布に近いことを示す。さらに、以下の式に示す平均トライグラム確率も調べた。
【０１１２】
【数１９】
0005475707.tif 000020
【０１１３】
Ｋは対話の数、Ｌｉは個々の行動の長さである。この値は、生成された行動系列が、学習データのｔｒｉｇｒａｍ確率にどれだけ従っているかを表す尺度である。大きいほど、学習データの統計に従った対話系列を出力していると考えられる。なお、Ｐ（ａｉｔ＋１｜ａｉｔ，ｏｉｔ＋１）は、ａｉｔ、ｏｉｔ＋１が与えられたときにａｉｔ＋１を生成するｔｒｉｇｒａｍ確率を表す。この値は大きいほど、学習データ中の確率の高いアクションを出力していることになるが、全く同じアクションばかりを生成してもこの値が高くなることもある。
【０１１４】
最後に、満足度に関する評価も入れておく。この式は、以下のようになる。
【０１１５】
【数２０】
0005475707.tif 000021
【０１１６】
ここではデータから得られる観測値とそれに対するアクション間の平均の評価値である。ユーザの評価は過去の履歴に大きな影響を受ける。しかし、ここでは、ユーザの評価はユーザの最後の観測値に対するシステムのアクションに対して、尤も強く影響を受けると仮定した。また、本来であれば、実際のユーザを利用して評価を行うべきではあるが、ここでは手法の認識誤りに対する頑健性を調べるためシミュレーションによる評価尺度を用いた。
【０１１７】
図１３に実験結果を示す。エントロピーを見ても、確率分布の距離を見ても、継続長制御ありとなしどちらの場合も、β＝１５の場合がよい結果を示していることが分かる。継続長制御ありとなしで比べると、トライグラムの確率は落ちているものの、エントロピーも、確率分布の距離も学習データに近い。実際に、継続長制御がない場合は、同じアクションを生成することが多く不自然である。なお、アクション決定部における継続長の制御には、第二実施形態を用いた。
【０１１８】
＜プログラム及び記録媒体＞
上述した行動制御装置は、コンピュータにより機能させることもできる。この場合はコンピュータに、目的とする装置（実施形態で図に示した機能構成をもつ装置）として機能させるためのプログラム、またはその処理手順（実施形態で示したもの）の各過程をコンピュータに実行させるためのプログラムを、ＣＤ−ＲＯＭ、磁気ディスク、半導体記憶装置などの記録媒体から、あるいは通信回線を介してそのコンピュータ内にダウンロードし、そのプログラムを実行させればよい。
【符号の説明】
【０１１９】
１  行動データ記憶部
３  生成部
５  確率テーブル記憶部
７  変換部
９  アクション継続長確率計算部
１００，２００  行動制御装置
１１０  確率・報酬テーブル記憶部
１２０  強化学習部
１３０  ポリシー記憶部
１４０  状態分布更新部
１５０  状態確率分布記憶部
１６０，２６０  アクション決定部
１７０  アクション記憶部
１８０  アクション継続長確率テーブル記憶部
【図１】
0005475707.tif 000022
【図２】
0005475707.tif 000023
【図３】
0005475707.tif 000024
【図４】
0005475707.tif 000025
【図５】
0005475707.tif 000026
【図６】
0005475707.tif 000027
【図７】
0005475707.tif 000028
【図８】
0005475707.tif 000029
【図９】
0005475707.tif 000030
【図１０】
0005475707.tif 000031
【図１１】
0005475707.tif 000032
【図１２】
0005475707.tif 000033
【図１３】
0005475707.tif 000034