JP5815458B2 - 報酬関数推定装置、報酬関数推定方法、およびプログラム - Google Patents
報酬関数推定装置、報酬関数推定方法、およびプログラム Download PDFInfo
- Publication number
- JP5815458B2 JP5815458B2 JP2012096453A JP2012096453A JP5815458B2 JP 5815458 B2 JP5815458 B2 JP 5815458B2 JP 2012096453 A JP2012096453 A JP 2012096453A JP 2012096453 A JP2012096453 A JP 2012096453A JP 5815458 B2 JP5815458 B2 JP 5815458B2
- Authority
- JP
- Japan
- Prior art keywords
- training
- reward function
- reward
- value
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、強化学習問題において行動列(ある状態とその状態に対する行動のペアの連なり)と行動列に付与された評価(あるタスクに対する行動列の適切さを表す指標)に基づき、評価の高い行動列を再現するための報酬関数を推定する報酬関数推定装置、方法、プログラムに関する。
報酬関数に基づき意思決定を行う手法として、強化学習と呼ばれる手法(非特許文献1,2参照)が知られている。強化学習とは、ある環境内におけるエージェントが、現在の「状態」を観測し、取るべき「行動」を決定する問題を扱う機械学習の一種を意味する。強化学習では、例えばある環境中で自律的に行動するロボットシステムが環境から得られる「状態」に応じて、「報酬」が最大になるような「行動」を選択していくという問題を扱う。すなわち強化学習では、達成させたい「タスク」に応じて「報酬」を設計することで、システムの行動を設計することができる。なお報酬関数とは、入力された「状態」に対応する「報酬」を出力する関数を意味する。具体例を挙げる。例えば「穴が開いてるGridに切られた世界(Gridworld)で、エージェントが穴に落ちないように、ゴールまで最短距離で移動する」という「タスク」を想定する。このようなタスクのための報酬関数の一例は、穴という「状態」に対して-100という「報酬」を出力し、ゴールという「状態」に対して+100という「報酬」を出力し、それ以外の位置という「状態」に対して-1という「報酬」を出力する関数である。
従来、プログラムの設計者はこの報酬関数をあらかじめ適切に設計しておく必要があった。しかし、特定の望ましい行動をシステムに取らせたい場合に報酬関数をどのように設定すればよいかは、人のヒューリスティックな知識に依存し、難しい問題であった(非特許文献3参照)。
この問題を解決し、所与の行動列を再現する報酬関数を推定する方法として、逆強化学習に基づく報酬関数推定手法(非特許文献4,5参照)が知られている。これらの手法では、適当な報酬関数を用いて所与の行動列が再現されるかどうかをシミュレーションによってテストし、所与の行動列と異なる行動が選択された場合に報酬関数のパラメータを修正して再度テストすることを繰り返し、適切な報酬関数を推定する。
Jason D. Williams. Applying POMDPs to dialog systems in the troubleshooting domain, In Workshop on Bridging the Gap, pp. 1-8, Rochester, New York, 2007. Association for Computational Linguistics.
Toyomi Meguro, Ryuichiro Higashinaka, Yasuhiro Minami, and Kohji Dohsaka. Controlling Listening-oriented Dialogue using Partially Observable Markov Decision Processes. In Coling, 2010.
A. Boularias, H.R. Chinaei, and B. Chaib-draa. Learning the Reward Model of Dialogue POMDPs from Data. NIPS 2010 Workshop on Machine Learning for Assistive Technologies (MLAT-2010), pp. 1-9, 2010.
Pieter Abbeel and Andrew Y. Ng. Apprenticeship learning via inverse reinforcement learning. Twenty-first international conference on Machine learning - ICML'04, 2004.
B.D. Ziebart, Andrew Maas, J.A. Bagnell, and A.K. Dey. Maximum entropy inverse reinforcement learning. In Proc. AAAI, pp. 1433-1438, 2008.
非特許文献4,5では、与えられた行動列が全て正しく、再現すべき対象であるという前提で報酬関数の推定が行われる。しかし、実際の行動列はそれぞれタスクに対する適切さが異なっている。例えば、人を説得する対話(状態:対話相手の発言,行動:説得するための発話)や、けん玉のコントロール(状態:けん玉の位置・自分の腕位置など,行動:腕・手関節制御信号)などの行動列の場合、タスクを失敗した不適切な行動列も再現対象の行動列に含まれ得る。これらを同一の適切さを持つ行動列として報酬関数を推定すると、不適切な行動列を生成した報酬関数を含んだ報酬関数が推定されてしまう。また、適切な行動列のみを人手で選んで非特許文献4,5の入力とした場合には、今度は学習データサイズが減ってしまう。そのような場合、対応する学習データが存在しない「状態」および「行動」が増えてしまう。これにより、何らかの原因でそうした「行動」を取らざるを得ない「状態」に置かれた場合、この欠損によって致命的な行動を回避できないという問題が発生する。
本発明はこのような点に鑑みてなされたものであり、従来よりも適切な報酬関数を推定することが可能な技術を提供することを目的とする。
本発明では、行動によって遷移する一連の状態と各状態での行動とを表す訓練行動列からなる集合、および、訓練行動列それぞれの適切さを表す訓練順序評価値の集合が格納されており、状態に対する報酬値を求める報酬関数を用い、訓練行動列が表す一連の状態の報酬値に対応する順序評価値を得、順序評価値の集合と訓練順序評価値の集合との相違に基づいて報酬関数を更新する。
本発明では、報酬関数を用いて得られる訓練行動列の順序評価値と訓練行動列の訓練順序評価値との相違に基づいて報酬関数を推定する。そのため、訓練行動列の適切さを考慮して報酬関数を推定でき、従来よりも適切に報酬関数を推定できる。
以下、図面を参照して本発明の実施形態を説明する。
図1に例示するように、本形態の報酬関数推定装置1は、訓練行動列記憶部11、状態遷移計算部12、行動評価部13、行動決定部14、訓練行動列評価部15、報酬関数調整部16、および制御部17を有する。報酬関数推定装置1は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることで構成される特別な装置である。あるいは例えば、報酬関数推定装置1を構成する各部の少なくとも一部がハードウェアによって構成されてもよい。報酬関数推定装置1は、制御部17による制御に従って各処理を実行する。学習時には、例えば、訓練行動列記憶部11、状態遷移計算部12、行動評価部13、行動決定部14、訓練行動列評価部15、および報酬関数調整部16によって、適切な報酬関数を推定する。実行時には、例えば、状態遷移計算部12、行動評価部13、および行動決定部14によって適切な行動を得る。
図1に例示するように、本形態の報酬関数推定装置1は、訓練行動列記憶部11、状態遷移計算部12、行動評価部13、行動決定部14、訓練行動列評価部15、報酬関数調整部16、および制御部17を有する。報酬関数推定装置1は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることで構成される特別な装置である。あるいは例えば、報酬関数推定装置1を構成する各部の少なくとも一部がハードウェアによって構成されてもよい。報酬関数推定装置1は、制御部17による制御に従って各処理を実行する。学習時には、例えば、訓練行動列記憶部11、状態遷移計算部12、行動評価部13、行動決定部14、訓練行動列評価部15、および報酬関数調整部16によって、適切な報酬関数を推定する。実行時には、例えば、状態遷移計算部12、行動評価部13、および行動決定部14によって適切な行動を得る。
<事前処理>
訓練行動列記憶部11には、入力された複数の訓練行動列からなる集合、および、訓練行動列それぞれの適切さを表す訓練順序評価値の集合が格納される。訓練行動列のそれぞれは、例えば、ある状態とその状態に対する行動のペアの連なりであり、行動によって遷移する一連の状態と各状態での行動とを表す。訓練行動列の具体例は、行動によって遷移する一連の状態のそれぞれを表す値の列と当該各状態を表す値の列とからなる。
訓練行動列記憶部11には、入力された複数の訓練行動列からなる集合、および、訓練行動列それぞれの適切さを表す訓練順序評価値の集合が格納される。訓練行動列のそれぞれは、例えば、ある状態とその状態に対する行動のペアの連なりであり、行動によって遷移する一連の状態と各状態での行動とを表す。訓練行動列の具体例は、行動によって遷移する一連の状態のそれぞれを表す値の列と当該各状態を表す値の列とからなる。
訓練順序評価値のそれぞれは、例えば、訓練行動列からなる集合に属する2個の訓練行動列からなる組に対応し、当該組をなす2個の訓練行動列のうちいずれのほうが適切であるかを表す。この例の訓練順序評価値は、訓練行動列からなる集合に属する2個の訓練行動列からなる組(ペア)ごとに付与される。すなわち、N個(N≧2)の訓練行動列からなる集合はN(N−1)/2個のペアを含むため、例えばN(N−1)/2個の訓練順序評価値が付与される。具体的には、例えば各訓練行動列のペアζ* i,ζ* jに対し、それぞれ、どちらが適切であるかを表す以下の訓練順序評価値o* i,jが付与される。
以下では訓練行動列をζ*と総称し、訓練順序評価値をo*と総称する。
報酬関数の推定のためには、いずれの訓練行動列のほうが適切であるかを相対評価できればよく、数値で訓練行動列を評価する必要はない。上記のようなペアごとの訓練順序評価値を用いるほうが、実数の訓練順序評価値(例えば、ある発言に対する否定が-1.4,肯定が+0.3など)を用いるよりも取り扱いが容易となる。また、学習時に訓練行動列ごとに改めて順序評価する必要はない。
<報酬関数推定処理>
訓練行動列からなる集合および訓練順序評価値の集合を用い、報酬関数の推定を行う処理を説明する。
図2に例示するように、まず制御部17がループ数に対応する変数stepを0に初期化する(ステップS10)。次に報酬関数調整部16が、初期の報酬関数のパラメータ(以下「報酬関数パラメータ」という)θ0を設定する(ステップS11)。本形態の報酬関数パラメータは、実数を要素とするM次元ベクトルである(Mは1以上の整数)。初期の報酬関数のパラメータθ0は、ランダムに選択された要素からなるM次元ベクトルであってもよいし、予め定められた要素からなるM次元ベクトルであってもよい。
訓練行動列からなる集合および訓練順序評価値の集合を用い、報酬関数の推定を行う処理を説明する。
図2に例示するように、まず制御部17がループ数に対応する変数stepを0に初期化する(ステップS10)。次に報酬関数調整部16が、初期の報酬関数のパラメータ(以下「報酬関数パラメータ」という)θ0を設定する(ステップS11)。本形態の報酬関数パラメータは、実数を要素とするM次元ベクトルである(Mは1以上の整数)。初期の報酬関数のパラメータθ0は、ランダムに選択された要素からなるM次元ベクトルであってもよいし、予め定められた要素からなるM次元ベクトルであってもよい。
その後、報酬関数推定装置1は、以下のループに従って報酬関数パラメータθstepを逐次的に更新する。
まず訓練行動列評価部15が、現在の報酬関数パラメータθstepに基づいて、訓練行動列記憶11から読み出した訓練行動列ζ*の集合を評価し、訓練行動列ζ*の集合に対応する順序評価値の集合を得て出力する。すなわち訓練行動列評価部15は、報酬関数パラメータθstepに対応する報酬関数を用い、各訓練行動列ζ*が表す一連の状態の報酬値に対応する順序評価値を得て、当該順序評価値の集合を出力する。例えば順序評価値のそれぞれは、訓練行動列ζ*からなる集合に属する2個の訓練行動列ζ* i,ζ* jからなる組(ペア)に対応し、当該組をなす2個の訓練行動列ζ* i,ζ* jのうちいずれに対応する報酬値または当該報酬値の期待値のほうが高い評価を表すかを表す。この場合、N個の訓練行動列からなる集合に対し、例えばN(N−1)/2個の順序評価値が得られる。以下では順序評価値をostepと総称する(ステップS12/詳細は後述)。
まず訓練行動列評価部15が、現在の報酬関数パラメータθstepに基づいて、訓練行動列記憶11から読み出した訓練行動列ζ*の集合を評価し、訓練行動列ζ*の集合に対応する順序評価値の集合を得て出力する。すなわち訓練行動列評価部15は、報酬関数パラメータθstepに対応する報酬関数を用い、各訓練行動列ζ*が表す一連の状態の報酬値に対応する順序評価値を得て、当該順序評価値の集合を出力する。例えば順序評価値のそれぞれは、訓練行動列ζ*からなる集合に属する2個の訓練行動列ζ* i,ζ* jからなる組(ペア)に対応し、当該組をなす2個の訓練行動列ζ* i,ζ* jのうちいずれに対応する報酬値または当該報酬値の期待値のほうが高い評価を表すかを表す。この場合、N個の訓練行動列からなる集合に対し、例えばN(N−1)/2個の順序評価値が得られる。以下では順序評価値をostepと総称する(ステップS12/詳細は後述)。
訓練行動列評価部15から出力された順序評価値ostepの集合と、行動列記憶11から読み出された訓練順序評価値o*の集合とが、報酬関数調整部16に入力される。報酬関数調整部16は、順序評価値ostepの集合と訓練順序評価値o*の集合とを比較し、それらの相違に基づいて報酬関数パラメータθstepを報酬関数パラメータθstep+1に更新する(ステップS13/詳細は後述)。
制御部17は、所定の終了条件が満たされたかを判定する(ステップS14)。終了条件の例は、順序評価値ostepの集合と訓練順序評価値o*の集合と間の誤差が規定の値を下回る、既定回数更新しても当該誤差の改善量が規定量を下回る、または、繰り返し回数が規定数に達するなどである。順序評価値ostepの集合と訓練順序評価値o*の集合と間の誤差の例は、対応する順序評価値ostepと訓練順序評価値o*とが互いに相違する訓練行動列のペアの個数、順序評価値ostepの集合と訓練順序評価値o*の集合との距離などである。
ステップS14で所定の終了条件が満たされていないと判定された場合、制御部17はstep+1を新たな変数stepの値とし(ステップS15)、処理をステップS12に戻す。一方、所定の終了条件が満たされたと判定された場合、報酬関数調整部16は、報酬関数パラメータθstep+1に対応する報酬関数を表す情報を出力する。報酬関数を表す情報の例は、報酬関数そのものや報酬関数パラメータθstep+1などである(ステップS16)。このように、所定の終了条件が満たされるまで、訓練行動列評価部15や報酬関数調整部16等による処理(ステップS12および13)が繰り返され、所定の終了条件が満たされた場合に報酬関数を表す情報が出力される。
<ステップS12の詳細>
ステップS12の詳細を例示する。ここでは、報酬関数パラメータθstepに対応する報酬関数に基づいて、各訓練行動列ζ*のシステム評価値e(ζ*|θstep)を得、各ペアζ* i,ζ* jに対応するシステム評価値e(ζ* i|θstep),e(ζ* j|θstep)の大小関係を表す情報を、各ペアζ* i,ζ* jに対応する順序評価値ostep(以下「順序評価値ostep i,j」と表記)とする。なお、各システム評価値e(ζ* i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて計算された各訓練行動列ζ* iの評価値である。システム評価値e(ζ* i|θstep)は、各訓練行動列ζ* iが表す一連の状態の報酬値またはその期待値の和に対応する。報酬値または期待値は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる。このような値であればどのような値をシステム評価値e(ζ* i|θstep)としてもよい。
ステップS12の詳細を例示する。ここでは、報酬関数パラメータθstepに対応する報酬関数に基づいて、各訓練行動列ζ*のシステム評価値e(ζ*|θstep)を得、各ペアζ* i,ζ* jに対応するシステム評価値e(ζ* i|θstep),e(ζ* j|θstep)の大小関係を表す情報を、各ペアζ* i,ζ* jに対応する順序評価値ostep(以下「順序評価値ostep i,j」と表記)とする。なお、各システム評価値e(ζ* i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて計算された各訓練行動列ζ* iの評価値である。システム評価値e(ζ* i|θstep)は、各訓練行動列ζ* iが表す一連の状態の報酬値またはその期待値の和に対応する。報酬値または期待値は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる。このような値であればどのような値をシステム評価値e(ζ* i|θstep)としてもよい。
システム評価値e(ζ* i|θstep)の一例は、訓練行動列ζ* iが表す一連の状態の報酬値R(ζ* i|θstep)と、当該訓練行動列ζ* iに対応する最適行動列ζA iが表す一連の状態の報酬値R(ζA i|θstep)との差分である。
e(ζ* i|θstep)=R(ζ* i|θstep)−R(ζA i|θstep) (1)
なお、報酬値R(ζ* i|θstep)およびR(ζA i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる値である。報酬値R(ζ* i|θstep)およびR(ζA i|θstep)の具体例は以下の通りである。
ここで、s* i,tおよびsA i,tは、それぞれ、訓練行動列ζ* iおよび最適行動列ζA iが表すt番目の状態(時点tでの状態)を表す。f(s* i,t)およびf(sA i,t)は、それぞれ、状態s* i,tおよびsA i,tに対応する素性を表すM次元ベクトルである。f(s* i,t)およびf(sA i,t)の各要素は正の実数である。βTはβの転置を表す。θstep T・f(s* i,t)およびθstep T・f(sA i,t)はM次元ベクトルの内積を表し、報酬関数パラメータθstepに対応する報酬関数に相当する。なお、これらの報酬値やシステム評価値は一例にすぎず、要旨を逸脱しない範囲での変更は可能である。
e(ζ* i|θstep)=R(ζ* i|θstep)−R(ζA i|θstep) (1)
なお、報酬値R(ζ* i|θstep)およびR(ζA i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる値である。報酬値R(ζ* i|θstep)およびR(ζA i|θstep)の具体例は以下の通りである。
ここで、s* i,tおよびsA i,tは、それぞれ、訓練行動列ζ* iおよび最適行動列ζA iが表すt番目の状態(時点tでの状態)を表す。f(s* i,t)およびf(sA i,t)は、それぞれ、状態s* i,tおよびsA i,tに対応する素性を表すM次元ベクトルである。f(s* i,t)およびf(sA i,t)の各要素は正の実数である。βTはβの転置を表す。θstep T・f(s* i,t)およびθstep T・f(sA i,t)はM次元ベクトルの内積を表し、報酬関数パラメータθstepに対応する報酬関数に相当する。なお、これらの報酬値やシステム評価値は一例にすぎず、要旨を逸脱しない範囲での変更は可能である。
また最適行動列ζA iは、訓練行動列ζ* iが表す一連の状態の初期状態s* i,0と同一の状態を初期状態si,0とし、その初期状態から各行動によって遷移する一連の状態と各状態での行動とを表す行動列ζiのうち、報酬関数パラメータθstepに対応する報酬関数によって得られる当該一連の状態の報酬値の合計が最大となる行動列を意味する。例えば、訓練行動列ζ* iが表す初期状態s* i,0を初期状態si,0とする行動列ζiのうち、以下の報酬値R(ζi|θstep)を最大にする行動列ζiが最適行動列ζA iである。
ここで、si,tは、行動列ζiが表すt番目の状態を表す。f(si,t)は、状態si,tに対応する素性を表すM次元ベクトルである。
ここで、si,tは、行動列ζiが表すt番目の状態を表す。f(si,t)は、状態si,tに対応する素性を表すM次元ベクトルである。
≪最適行動列ζA iの探索≫
上記の方法でシステム評価値を計算するためには、訓練行動列記憶部11に格納されたすべての訓練行動列ζ* iに対し、それぞれ最適行動列ζA iを決定する必要がある。ここでは最適行動列ζA iを決定するため、訓練行動列ζ* iごとに多数の行動列ζiを生成し、報酬値R(ζi|θstep)が最大となる行動列ζiを探索する、探索的アプローチを用いる。
上記の方法でシステム評価値を計算するためには、訓練行動列記憶部11に格納されたすべての訓練行動列ζ* iに対し、それぞれ最適行動列ζA iを決定する必要がある。ここでは最適行動列ζA iを決定するため、訓練行動列ζ* iごとに多数の行動列ζiを生成し、報酬値R(ζi|θstep)が最大となる行動列ζiを探索する、探索的アプローチを用いる。
各行動列ζiは、訓練行動列ζ* iが表す一連の状態の初期状態s* i,0を初期状態si,0とし、各状態si,tでの行動ai,tを決定し、その行動ai,tに基づいて次の状態si,t+1を決定するというプロセスを繰り返して生成される。問題の空間が全探索可能なほど小さい場合には、訓練行動列ζ* iごとに、初期状態si,0から遷移し得るすべての行動列ζiを生成し、それらの中で報酬値R(ζi|θstep)が最大となる行動列ζiを最適行動列ζA iとする(全探索法)。一方、空間が大きく全探索が困難な場合には行動列ζiを確率的に生成し、それらの中で報酬値R(ζi|θstep)が最大となる行動列ζiを最適行動列ζA iとする(部分探索法)。
[最適行動列ζA iの生成方法の例示]
最適行動列ζA iの生成方法を例示する。
1−1−1:訓練行動列記憶部11からある訓練行動列ζ* iが読み出され、状態遷移計算部12に入力される。
最適行動列ζA iの生成方法を例示する。
1−1−1:訓練行動列記憶部11からある訓練行動列ζ* iが読み出され、状態遷移計算部12に入力される。
1−1−2:状態遷移計算部12で、訓練行動列ζ* iが表す一連の状態の初期状態s* i,0を読み出し、初期状態si,0=s* i,0を行動評価部13へ入力する。
1−1−3:行動評価部13で、現在の報酬関数パラメータθstepに基づき、状態si,tで取りうるすべての行動ai,tについて、以下の期待報酬値ri,t(si,t,ai,t)を計算する。最初のループではt=0とされる。
ただし、PT(si,t+1|si,t,ai,t)は、状態si,tで行動ai,tを行った場合に状態si,t+1に遷移する条件付き確率を表す。なお、条件付き確率PT(si,t+1|si,t,ai,t)は予め定められているものとする。
ただし、PT(si,t+1|si,t,ai,t)は、状態si,tで行動ai,tを行った場合に状態si,t+1に遷移する条件付き確率を表す。なお、条件付き確率PT(si,t+1|si,t,ai,t)は予め定められているものとする。
1−1−4:行動評価部13で得られた状態si,tおよび行動ai,tごとの期待報酬値ri,t(si,t,ai,t)は、対応する状態si,tおよび行動ai,tを表す情報とともに、行動決定部14および訓練行動列評価部15に入力される。
1−1−5:行動決定部14で、期待報酬値ri,t(si,t,ai,t)に基づいて状態si,tでの行動ai,tを決定し、決定した行動ai,tおよび状態si,tを表す情報を状態遷移計算部12へ入力する。全探索法の場合、状態si,tで取り得る行動が順番にai,tとして選択される。部分探索法の場合、確率的に行動ai,tが決定される。行動ai,tの確率的な決定方法は後述する。
1−1−6:状態遷移計算部12で、行動決定部14で得られた行動ai,tに基づいて、次の状態si,t+1を決定し、決定した状態si,t+1を表す情報を行動評価部13へ入力する。
1−1−7:所定の終了条件を満たさない場合にはt+1を新たなtとして1−1−3へ戻る。所定の終了条件を満たす場合にはループを停止し、行動評価部13はそれまでに得られた一連の状態si,tおよび行動ai,tからなる行動列ζiを訓練行動列評価部15へ入力する。この終了条件の例は、1−1−3〜1−1−7のループを既定回数繰り返した、既定の状態に至った等である。
訓練行動列評価部15は、以上の1−1−1〜1−1−7のループを複数回繰り返し、訓練行動列ζ* iごとに複数個の行動列ζiを得る。訓練行動列評価部15は、得られた行動列ζiのそれぞれについて報酬値R(ζi|θstep)を計算し、訓練行動列ζ* iごとに報酬値R(ζi|θstep)を最大にする行動列ζiを得、それらを各訓練行動列ζ* iに対応する最適行動列ζA iとする。すなわち、訓練行動列評価部15は、訓練行動列ζ* iが表す一連の状態の初期状態s* i,0を初期状態si,0とする最適行動列ζA iをiごとに生成する。
[1−1−5での行動の確率的な決定方法の例]
空間が広く全探索困難な場合、行動ai,tを確率的に決定する必要がある。その方法として、2種類の方法を例示する。
空間が広く全探索困難な場合、行動ai,tを確率的に決定する必要がある。その方法として、2種類の方法を例示する。
例1:期待報酬値ri,t(si,t,ai,t)に基づいて確率的に選択
例1の行動決定部14は、例えば確率p(ai,t)∝exp(ri,t(si,t,ai,t))またはp(ai,t)∝ri,t(si,t,ai,t)に従って行動ai,tをサンプリングし、状態si,tでの行動ai,tを決定する。ただし、β1∝β2はβ1がβ2に比例することを表し、expは指数関数を表す。
例1の行動決定部14は、例えば確率p(ai,t)∝exp(ri,t(si,t,ai,t))またはp(ai,t)∝ri,t(si,t,ai,t)に従って行動ai,tをサンプリングし、状態si,tでの行動ai,tを決定する。ただし、β1∝β2はβ1がβ2に比例することを表し、expは指数関数を表す。
例2:ランダムに選択
例2の行動決定部14は、期待報酬値ri,t(si,t,ai,t)の値にかかわらず、一様分布もしくは非特許文献6のUCBアルゴリズムなどの探索アルゴリズムに従って行動ai,tをサンプリングし、状態si,tでの行動ai,tを決定する。この場合には、期待報酬値ri,t(si,t,ai,t)が算出されなくてもよい。
[非特許文献6]P. Auer, N. Cesa-Bianchi, P. Fischer. Finite-time analysis of the multiarmed bandit problem, Machine learning, pp. 235-256, 2002.
例2の行動決定部14は、期待報酬値ri,t(si,t,ai,t)の値にかかわらず、一様分布もしくは非特許文献6のUCBアルゴリズムなどの探索アルゴリズムに従って行動ai,tをサンプリングし、状態si,tでの行動ai,tを決定する。この場合には、期待報酬値ri,t(si,t,ai,t)が算出されなくてもよい。
[非特許文献6]P. Auer, N. Cesa-Bianchi, P. Fischer. Finite-time analysis of the multiarmed bandit problem, Machine learning, pp. 235-256, 2002.
≪システム評価値の計算≫
訓練行動列評価部15は、上述の各最適行動列ζA i、および訓練行動列記憶部11から読み出した各訓練行動列ζ* iを用い、各訓練行動列ζ* iのシステム評価値e(ζ* i|θstep)を得る。訓練行動列評価部15は、例えば前述の式(1)に従ってシステム評価値e(ζ* i|θstep)を得る。
この例のシステム評価値e(ζ* i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる、訓練行動列ζ* iが表す一連の状態の報酬値の和と、当該訓練行動列ζ* iに対応する最適行動列ζA iが表す一連の状態の報酬値の和と、の差に相当する。
訓練行動列評価部15は、上述の各最適行動列ζA i、および訓練行動列記憶部11から読み出した各訓練行動列ζ* iを用い、各訓練行動列ζ* iのシステム評価値e(ζ* i|θstep)を得る。訓練行動列評価部15は、例えば前述の式(1)に従ってシステム評価値e(ζ* i|θstep)を得る。
この例のシステム評価値e(ζ* i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる、訓練行動列ζ* iが表す一連の状態の報酬値の和と、当該訓練行動列ζ* iに対応する最適行動列ζA iが表す一連の状態の報酬値の和と、の差に相当する。
あるいは、式(1)に従ってシステム評価値e(ζ* i|θstep)を得るのではなく、訓練行動列評価部15が、最適行動列ζA iおよび訓練行動列ζ* iに対応する期待報酬値ri,t(si,t,ai,t)(式(2)参照)を用い、以下のようにシステム評価値e(ζ* i|θstep)を得てもよい。
この例のシステム評価値e(ζ* i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる、訓練行動列ζ* iが表す一連の状態の報酬値の期待値の総和と、当該訓練行動列ζ* iに対応する最適行動列ζA iが表す一連の状態の報酬値の期待値の総和との差に相当する。
この例のシステム評価値e(ζ* i|θstep)は、報酬関数パラメータθstepに対応する報酬関数を用いて得られる、訓練行動列ζ* iが表す一連の状態の報酬値の期待値の総和と、当該訓練行動列ζ* iに対応する最適行動列ζA iが表す一連の状態の報酬値の期待値の総和との差に相当する。
≪順序評価値の計算≫
訓練行動列評価部15は、各システム評価値のペアζ* i,ζ* jに対応するシステム評価値e(ζ* i|θstep),e(ζ* j|θstep)を用い、システム評価値e(ζ* i|θstep),e(ζ* j|θstep)の大小関係を表す各順序評価値ostep i,jを得て出力する。例えば、訓練行動列評価部15は、ペアζ* i,ζ* jごとにシステム評価値e(ζ* i|θstep),e(ζ* j|θstep)を比較し、以下のように各順序評価値ostep i,jを得て出力する。
訓練行動列評価部15は、各システム評価値のペアζ* i,ζ* jに対応するシステム評価値e(ζ* i|θstep),e(ζ* j|θstep)を用い、システム評価値e(ζ* i|θstep),e(ζ* j|θstep)の大小関係を表す各順序評価値ostep i,jを得て出力する。例えば、訓練行動列評価部15は、ペアζ* i,ζ* jごとにシステム評価値e(ζ* i|θstep),e(ζ* j|θstep)を比較し、以下のように各順序評価値ostep i,jを得て出力する。
<ステップS13の詳細>
ステップS13の詳細を例示する。
報酬関数調整部16は、各ペアζ* i,ζ* jに対応する訓練順序評価値o* i,jと順序評価値ostep i,jとを入力とし、o* i,jとostep i,jとをペアζ* i,ζ* jごとに比較し、o* i,jとostep i,jとの正負が互いに異なるペアζ* i,ζ* jを選択する。
ステップS13の詳細を例示する。
報酬関数調整部16は、各ペアζ* i,ζ* jに対応する訓練順序評価値o* i,jと順序評価値ostep i,jとを入力とし、o* i,jとostep i,jとをペアζ* i,ζ* jごとに比較し、o* i,jとostep i,jとの正負が互いに異なるペアζ* i,ζ* jを選択する。
報酬関数調整部16は、訓練行動列記憶部11から訓練順序評価値o* i,jと順序評価値ostep i,jとの正負が互いに異なるペアζ* i,ζ* jを抽出し、以下に従って報酬関数パラメータθstepを報酬関数パラメータθstep+1に更新する。
ただし、式(3)のγは所定の重み係数であり、例えば、0<γ<1を満たす実数である。またγは学習率であり、0.01<γ<0.1程度の値とすることが望ましい。報酬関数パラメータの更新後の挙動によってγが修正されてもよい。
ただし、式(3)のγは所定の重み係数であり、例えば、0<γ<1を満たす実数である。またγは学習率であり、0.01<γ<0.1程度の値とすることが望ましい。報酬関数パラメータの更新後の挙動によってγが修正されてもよい。
例えば、o* i,j=1かつe(ζ* i|θstep)<e(ζ* j|θstep)(すなわちostep i,j≠1)のとき、ostep+1 i,j=1とするためにはe(ζ* i|θstep)−e(ζ* j|θstep)が大きくなる方向にθstepを更新してθstep+1とすればよいため、
とすればよい。一方、o* i,j=−1かつe(ζ* i|θstep)>e(ζ* j|θstep)(すなわちostep i,j=1)のとき、ostep+1 i,j=−1とするためにはe(ζ* i|θstep)−e(ζ* j|θstep)が小さくなる方向にθstepを更新してθstep+1とすればよいため、
とすればよい。これらをまとめると式(3)となる。
とすればよい。一方、o* i,j=−1かつe(ζ* i|θstep)>e(ζ* j|θstep)(すなわちostep i,j=1)のとき、ostep+1 i,j=−1とするためにはe(ζ* i|θstep)−e(ζ* j|θstep)が小さくなる方向にθstepを更新してθstep+1とすればよいため、
とすればよい。これらをまとめると式(3)となる。
以上のように、この例の報酬関数調整部16は、訓練順序評価値o* i,jと順序評価値ostep i,jとの正負が異なる組をなす2個の訓練行動列ζ* i,ζ* jの一方に対応するシステム評価値から他方に対応するシステム評価値を減じた値e(ζ* i|θstep)−e(ζ* j|θstep)の報酬関数パラメータθstepでの偏微分値と、当該正負が異なる組をなす2個の訓練行動列ζ* i,ζ* jに対応する訓練順序評価値o* i,jと、の乗算値の総和に対応する更新ベクトルγ▽θstep prefを得、当該更新ベクトルγ▽θstep prefによって報酬関数パラメータθstepを更新することで報酬関数を更新する。
以上の方法に加え、高い評価の行動列を利用した逆強化学習を行って報酬関数パラメータθstepを更新してもよい。その場合、報酬関数調整部16は、高い評価の行動列を再現するよう報酬関数パラメータθstepを更新するために、以下のように報酬関数パラメータθstepを更新する。
なお、式(4)のγおよびαはいずれも所定の重み係数であり、例えば、0<γ<1,0<α<1を満たす実数である。γは学習率であり、0.01<γ<0.1程度の値とすることが望ましい。報酬関数パラメータの更新後の挙動によってγが修正されてもよい。また、αを大きくすると高い評価の行動列が重視されて逆強化学習(IRL:inverse reinforcement learning)の挙動に近づく。一方、αを小さくすると本発明の方式(Preference-based IRL)の挙動が強くなる。
以上のように、この例の報酬関数調整部16は、訓練順序評価値o* i,jと順序評価値ostep i,jとの正負が異なる組をなす2個の訓練行動列ζ* i,ζ* jの一方に対応するシステム評価値から他方に対応するシステム評価値を減じた値e(ζ* i|θstep)−e(ζ* j|θstep)の報酬関数パラメータθstepでの偏微分値と、当該正負が異なる組をなす2個の訓練行動列ζ* i,ζ* jに対応する訓練順序評価値o* i,jと、の乗算値の総和に対応する更新ベクトルγ▽θstep prefを得る。さらに、この例の報酬関数調整部16は、訓練行動列ζ* iが表す一連の状態のそれぞれに対応するベクトルの総和から、当該訓練行動列ζ* iに対応する最適行動列ζA iが表す一連の状態のそれぞれに対応するベクトルの総和を減じて得られるベクトルの総和に対応する逆強化学習ベクトルγα▽θstep clipを得る。この例の報酬関数調整部16は、更新ベクトルγ▽θstep prefおよび逆強化学習ベクトルγα▽θstep clipによって報酬関数パラメータθstepを更新することで報酬関数を更新する。
<シミュレーション>
[color−gridworld]
上述の方式と従来方式とを比較するため、color−gridworldを導入する。これは従来のRL/IRLで頻繁に用いられるgridworldタスクを、多様な報酬関数を許容するように拡張したものである。図3を用いてcolor−gridworldの概要を説明する。color−gridworldでは、エージェントは各時点tにおいて四方の任意のマス(状態st)へ移動できる。エージェントがある状態stへ遷移するごとに、状態stに関連付けられた素性に対応する評価値を受け取る。color−gridworldの状態stはそれぞれ特定の色(Color feature)を持ち、各エージェント(agent1〜3)は図3Bのようにそれぞれ異なる報酬関数(色と評価値の対応関係)を持つとする。例えば図3Bでは、エージェント1では緑色(横ハッチング)が評価値−3に対応し、青色(斜めハッチング)が評価値+1に対応する。この例では、一度エージェントが訪れた状態に専用の素性(Visited feature)を割り当てる(図3B中、白色(ハッチングなし))。このルールにより、高い評価の状態に留まり続けることを抑制するとともに、各方式がこうした素性に対しどのような報酬を付与するのかを検証する。このルールによって状態列の履歴を保存すると、状態列の総数は各状態が0もしくは1を取る全組み合わせ数となるため、状態数をnとして状態列の数がO(2^n)となり爆発してしまう。そのため状態列数が膨大でも比較的動作するモンテカルロ法を用いてエージェントの方策を決定する。学習データには、ランダムに報酬関数と初期状態が設定された訓練エージェントによって生成された行動列に対し、評価エージェントが順序評価したものを用いる。また、推定された報酬関数の評価は、報酬関数の学習時とは異なるcolor−gridworld上で行う。
[color−gridworld]
上述の方式と従来方式とを比較するため、color−gridworldを導入する。これは従来のRL/IRLで頻繁に用いられるgridworldタスクを、多様な報酬関数を許容するように拡張したものである。図3を用いてcolor−gridworldの概要を説明する。color−gridworldでは、エージェントは各時点tにおいて四方の任意のマス(状態st)へ移動できる。エージェントがある状態stへ遷移するごとに、状態stに関連付けられた素性に対応する評価値を受け取る。color−gridworldの状態stはそれぞれ特定の色(Color feature)を持ち、各エージェント(agent1〜3)は図3Bのようにそれぞれ異なる報酬関数(色と評価値の対応関係)を持つとする。例えば図3Bでは、エージェント1では緑色(横ハッチング)が評価値−3に対応し、青色(斜めハッチング)が評価値+1に対応する。この例では、一度エージェントが訪れた状態に専用の素性(Visited feature)を割り当てる(図3B中、白色(ハッチングなし))。このルールにより、高い評価の状態に留まり続けることを抑制するとともに、各方式がこうした素性に対しどのような報酬を付与するのかを検証する。このルールによって状態列の履歴を保存すると、状態列の総数は各状態が0もしくは1を取る全組み合わせ数となるため、状態数をnとして状態列の数がO(2^n)となり爆発してしまう。そのため状態列数が膨大でも比較的動作するモンテカルロ法を用いてエージェントの方策を決定する。学習データには、ランダムに報酬関数と初期状態が設定された訓練エージェントによって生成された行動列に対し、評価エージェントが順序評価したものを用いる。また、推定された報酬関数の評価は、報酬関数の学習時とは異なるcolor−gridworld上で行う。
[シミュレーション結果]
上述した提案手法を用い、順序評価つきの訓練行動列を入力として、行動列に評価を付与した評価エージェントの報酬関数を推定する。比較対象の従来手法として、非特許文献5の手法(MaxEntlRL)を用いる。さらに、この従来手法は順序評価値には対応していないため、評価エージェント自身が生成した行動列を入力として評価エージェントの報酬関数を推定するものとする。このシミュレーションを手法ごとに5回実行し、それらの評価の平均値を用いて比較する。各パラメータは以下のように設定する。各行動列の最大長Tは7、エージェントのモンテカルロのサンプル生成数は3000、評価者のサンプル生成数は5000、IRLのイテレーション回数は最大50にする。報酬関数のパラメータの範囲は−4から+4までとし、全エージェント間で一度訪れた状態に付与される素性に対応する報酬は−1とする。ただし、学習エージェントはこの設定を知らないものとする。
上述した提案手法を用い、順序評価つきの訓練行動列を入力として、行動列に評価を付与した評価エージェントの報酬関数を推定する。比較対象の従来手法として、非特許文献5の手法(MaxEntlRL)を用いる。さらに、この従来手法は順序評価値には対応していないため、評価エージェント自身が生成した行動列を入力として評価エージェントの報酬関数を推定するものとする。このシミュレーションを手法ごとに5回実行し、それらの評価の平均値を用いて比較する。各パラメータは以下のように設定する。各行動列の最大長Tは7、エージェントのモンテカルロのサンプル生成数は3000、評価者のサンプル生成数は5000、IRLのイテレーション回数は最大50にする。報酬関数のパラメータの範囲は−4から+4までとし、全エージェント間で一度訪れた状態に付与される素性に対応する報酬は−1とする。ただし、学習エージェントはこの設定を知らないものとする。
正解パラメータに対する推定された報酬関数の誤差(報酬関数距離)の平均値を表1に示す。色数(色の個数、すなわち素性の個数)5の場合と15の場合で評価を行った。表1より、評価エージェントのみを用いて推定する従来手法よりも、行動列の適切さが異なるデータから順序評価を用いて推定した提案手法のほうが誤差を小さくできることが分かる。
<本形態の特徴>
本形態の手法を用いることで、従来よりも適切に報酬関数を訓練行動列から推定できる。その結果、例えば人同士の対話からそのやり方を学習することでロボットによる自然な対話を実現することが可能になる。また、システムとやりとりするユーザがどのようなものを求めているか、個人ごとにその評価関数を推定することで、より適切な推薦や情報提示が可能になる。本形態では、異なる適切さを持つ訓練行動列とその訓練順序評価に基づき、その訓練順序評価を付与した評価エージェントの報酬関数を推定する。行動列自体以外に必要になるデータは訓練行動列のペアごとの訓練順序評価であり、これは個々に絶対値で点数をつけていくやりかたや、データ全体の全順序を付与するやり方に比べ、評価付与が容易であるという利点も持つ。
本形態の手法を用いることで、従来よりも適切に報酬関数を訓練行動列から推定できる。その結果、例えば人同士の対話からそのやり方を学習することでロボットによる自然な対話を実現することが可能になる。また、システムとやりとりするユーザがどのようなものを求めているか、個人ごとにその評価関数を推定することで、より適切な推薦や情報提示が可能になる。本形態では、異なる適切さを持つ訓練行動列とその訓練順序評価に基づき、その訓練順序評価を付与した評価エージェントの報酬関数を推定する。行動列自体以外に必要になるデータは訓練行動列のペアごとの訓練順序評価であり、これは個々に絶対値で点数をつけていくやりかたや、データ全体の全順序を付与するやり方に比べ、評価付与が容易であるという利点も持つ。
<変形例等>
本発明は上述の実施形態に限定されるものではない。例えば、報酬関数は上述したものに限定されず、状態(例えば状態に対応するベクトル)と報酬関数パラメータとに対応するその他の関数が報酬関数とされてもよい。
本発明は上述の実施形態に限定されるものではない。例えば、報酬関数は上述したものに限定されず、状態(例えば状態に対応するベクトル)と報酬関数パラメータとに対応するその他の関数が報酬関数とされてもよい。
訓練順序評価値や順序評価値が{−1,0,1}の値を取るのではなく、−1の代わりに所定の負値をとり、1の代わりに所定の正値をとってもよい。また、報酬関数パラメータや報酬関数の更新方法も上記のものに限定されない。更新された報酬関数を用いて得られる順序評価値の集合と訓練順序評価値の集合との相違が、更新前の報酬関数を用いて得られる順序評価値の集合と訓練順序評価値の集合との相違よりも小さくなるように、報酬関数パラメータや報酬関数が更新されればよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1 報酬関数推定装置
11 訓練行動列記憶部
15 訓練行動列評価部
16 報酬関数調整部
11 訓練行動列記憶部
15 訓練行動列評価部
16 報酬関数調整部
Claims (8)
- 行動によって遷移する一連の状態と各状態での行動とを表す訓練行動列からなる集合、および、前記訓練行動列それぞれの適切さを表す訓練順序評価値の集合を記憶する訓練行動列記憶部と、
状態に対する報酬値を求める報酬関数を用い、前記訓練行動列が表す一連の状態の報酬値に対応する順序評価値を得る訓練行動列評価部と、
前記順序評価値の集合と前記訓練順序評価値の集合との相違に基づいて前記報酬関数を更新する報酬関数調整部と、
を有する報酬関数推定装置。 - 請求項1の報酬関数推定装置であって、
所定の終了条件が満たされるまで、前記訓練行動列評価部による処理および前記報酬関数調整部による処理が繰り返され、
前記報酬関数調整部は、前記所定の終了条件が満たされた場合に前記報酬関数を表す情報を出力する、
ことを特徴とする報酬関数推定装置。 - 請求項1または2の報酬関数推定装置であって、
前記訓練順序評価値のそれぞれは、前記訓練行動列からなる集合に属する2個の訓練行動列からなる組に対応し、当該組をなす2個の訓練行動列のうちいずれのほうが適切であるかを表し、
前記順序評価値のそれぞれは、前記訓練行動列からなる集合に属する2個の訓練行動列からなる組に対応し、当該組をなす2個の訓練行動列のうちいずれに対応する前記報酬値または当該報酬値の期待値のほうが高い評価を表すかを表す、
ことを特徴とする報酬関数推定装置。 - 請求項3の報酬関数推定装置であって、
前記訓練行動列評価部は、
前記訓練行動列が表す一連の状態の初期状態と同じ状態から行動によって遷移する一連の状態と各状態での行動とを表す行動列の集合から、前記報酬関数によって得られる前記一連の状態の報酬値の合計が最大となる行動列を選択し、当該報酬値の合計が最大となる行動列を当該訓練行動列に対応する最適行動列とし、
前記報酬関数を用いて得られる、前記訓練行動列が表す一連の状態の報酬値の和と当該訓練行動列に対応する前記最適行動列が表す一連の状態の報酬値の和との差、または、前記訓練行動列が表す一連の状態の報酬値の期待値の総和と当該訓練行動列に対応する前記最適行動列が表す一連の状態の報酬値の期待値の総和との差を、前記訓練行動列のシステム評価値として得、
前記組をなす2個の訓練行動列に対応する2個のシステム評価値の大小関係を表す前記順序評価値を得る、
ことを特徴とする報酬関数推定装置。 - 請求項4の報酬関数推定装置であって、
前記報酬関数は、前記状態とベクトルである報酬関数パラメータとに対応し、
前記訓練順序評価値のそれぞれは、前記組をなす前記2個の訓練行動列の一方が他方よりも適切である場合に正値であり、当該他方が当該一方よりも適切である場合に負値であり、当該一方と当該他方との適切さが等しい場合にゼロ値であり、
前記順序評価値のそれぞれは、前記組をなす前記2個の訓練行動列の前記一方に対応するシステム評価値が前記他方に対応するシステム評価値よりも大きい場合に正値であり、当該一方に対応するシステム評価値が当該他方に対応するシステム評価よりも小さい場合に負値であり、当該一方に対応するシステム評価値と当該他方に対応するシステム評価とが等しい場合にゼロ値であり、
前記報酬関数調整部は、前記訓練順序評価値と前記順序評価値との正負が異なる前記組をなす前記2個の訓練行動列の前記一方に対応するシステム評価値から前記他方に対応するシステム評価値を減じた値の前記報酬関数パラメータでの偏微分値と、当該正負が異なる前記組をなす前記2個の訓練行動列に対応する前記訓練順序評価値と、の乗算値の総和に対応する更新ベクトルを得、当該更新ベクトルによって前記報酬関数パラメータを更新することで前記報酬関数を更新する、
ことを特徴とする報酬関数推定装置。 - 請求項4の報酬関数推定装置であって、
前記報酬関数は、前記状態に対応するベクトルとベクトルである報酬関数パラメータとに対応し、
前記訓練順序評価値のそれぞれは、前記組をなす前記2個の訓練行動列の一方が他方よりも適切である場合に正値であり、当該他方が当該一方よりも適切である場合に負値であり、当該一方と当該他方との適切さが等しい場合にゼロ値であり、
前記順序評価値のそれぞれは、前記組をなす前記2個の訓練行動列の前記一方に対応するシステム評価値が前記他方に対応するシステム評価値よりも大きい場合に正値であり、当該一方に対応するシステム評価値が当該他方に対応するシステム評価よりも小さい場合に負値であり、当該一方に対応するシステム評価値と当該他方に対応するシステム評価とが等しい場合にゼロ値であり、
前記報酬関数調整部は、前記訓練順序評価値と前記順序評価値との正負が異なる前記組をなす前記2個の訓練行動列の前記一方に対応するシステム評価値から前記他方に対応するシステム評価値を減じた値の前記報酬関数パラメータでの偏微分値と、当該正負が異なる前記組をなす前記2個の訓練行動列に対応する前記訓練順序評価値と、の乗算値の総和に対応する更新ベクトルを得、
前記訓練行動列が表す一連の状態のそれぞれに対応するベクトルの総和から、当該訓練行動列に対応する最適行動列が表す一連の状態のそれぞれに対応するベクトルの総和を減じて得られるベクトルの総和に対応する逆強化学習ベクトルを得、
前記更新ベクトルおよび前記逆強化学習ベクトルによって前記報酬関数パラメータを更新することで前記報酬関数を更新する、
ことを特徴とする報酬関数推定装置。 - 訓練行動列記憶部と訓練行動列評価部と報酬関数調整部とを有する報酬関数推定装置が実行する報酬関数推定方法であって、
行動によって遷移する一連の状態と各状態での行動とを表す訓練行動列からなる集合、および、前記訓練行動列それぞれの適切さを表す訓練順序評価値の集合が前記訓練行動列記憶部に格納されており、
前記訓練行動列評価部で、状態に対する報酬値を求める報酬関数を用い、前記訓練行動列が表す一連の状態の報酬値に対応する順序評価値を得、
前記報酬関数調整部で、前記順序評価値の集合と前記訓練順序評価値の集合との相違に基づいて前記報酬関数を更新する、
ことを特徴とする報酬関数推定方法。 - 請求項1から6のいずれかの報酬関数推定装置の各部としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012096453A JP5815458B2 (ja) | 2012-04-20 | 2012-04-20 | 報酬関数推定装置、報酬関数推定方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012096453A JP5815458B2 (ja) | 2012-04-20 | 2012-04-20 | 報酬関数推定装置、報酬関数推定方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013225192A JP2013225192A (ja) | 2013-10-31 |
JP5815458B2 true JP5815458B2 (ja) | 2015-11-17 |
Family
ID=49595213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012096453A Active JP5815458B2 (ja) | 2012-04-20 | 2012-04-20 | 報酬関数推定装置、報酬関数推定方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5815458B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10831208B2 (en) | 2018-11-01 | 2020-11-10 | Ford Global Technologies, Llc | Vehicle neural network processing |
US10896383B2 (en) | 2014-08-07 | 2021-01-19 | Okinawa Institute Of Science And Technology School Corporation | Direct inverse reinforcement learning with density ratio estimation |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6088604B1 (ja) | 2015-08-27 | 2017-03-01 | ファナック株式会社 | 磁束制御部を有する電動機制御装置、ならびに機械学習装置およびその方法 |
JP6088613B1 (ja) * | 2015-09-30 | 2017-03-01 | ファナック株式会社 | ロータにおける磁石の配置位置を学習する機械学習装置および方法ならびに該機械学習装置を備えたロータ設計装置 |
JP6513557B2 (ja) * | 2015-11-11 | 2019-05-15 | 日本電信電話株式会社 | 内部基準推定装置、方法、及びプログラム |
JP6464075B2 (ja) * | 2015-11-11 | 2019-02-06 | 日本電信電話株式会社 | What−ifシミュレーション装置、方法、及びプログラム |
JP6616170B2 (ja) | 2015-12-07 | 2019-12-04 | ファナック株式会社 | コアシートの積層動作を学習する機械学習器、積層コア製造装置、積層コア製造システムおよび機械学習方法 |
US20210042584A1 (en) * | 2018-01-30 | 2021-02-11 | Nec Corporation | Information processing apparatus, control method, and non-transitory storage medium |
CN108791308B (zh) * | 2018-06-25 | 2020-05-19 | 大连大学 | 基于驾驶环境构建驾驶策略的系统 |
JP7173317B2 (ja) * | 2019-05-22 | 2022-11-16 | 日本電気株式会社 | 動作規則決定装置、動作規則決定方法およびプログラム |
KR102082113B1 (ko) * | 2019-07-23 | 2020-02-27 | 주식회사 애자일소다 | 데이터 기반 강화 학습 장치 및 방법 |
JP7315007B2 (ja) * | 2019-08-29 | 2023-07-26 | 日本電気株式会社 | 学習装置、学習方法および学習プログラム |
EP3792483A1 (en) * | 2019-09-16 | 2021-03-17 | Siemens Gamesa Renewable Energy A/S | Wind turbine control based on reinforcement learning |
US20230173683A1 (en) * | 2020-06-24 | 2023-06-08 | Honda Motor Co., Ltd. | Behavior control device, behavior control method, and program |
JP7446178B2 (ja) | 2020-08-05 | 2024-03-08 | 本田技研工業株式会社 | 行動制御装置、行動制御方法、およびプログラム |
JP7425690B2 (ja) | 2020-07-16 | 2024-01-31 | 本田技研工業株式会社 | ロボット動作生成装置、ロボット動作生成方法、およびプログラム |
JP7425681B2 (ja) | 2020-06-24 | 2024-01-31 | 本田技研工業株式会社 | 社会的能力生成装置、社会的能力生成方法、およびコミュニケーションロボット |
JP7376450B2 (ja) * | 2020-09-29 | 2023-11-08 | 本田技研工業株式会社 | 学習済モデルの構築方法、及び、その学習済モデルを用いた設計支援装置 |
CN112529104B (zh) * | 2020-12-23 | 2024-06-18 | 东软睿驰汽车技术(沈阳)有限公司 | 一种车辆故障预测模型生成方法、故障预测方法及装置 |
WO2023170973A1 (ja) * | 2022-03-11 | 2023-09-14 | 日本電信電話株式会社 | 強化学習装置、強化学習方法、及び強化学習プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5361615B2 (ja) * | 2009-08-31 | 2013-12-04 | 日本電信電話株式会社 | 行動制御学習方法、行動制御学習装置、行動制御学習プログラム |
JP5874292B2 (ja) * | 2011-10-12 | 2016-03-02 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
-
2012
- 2012-04-20 JP JP2012096453A patent/JP5815458B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10896383B2 (en) | 2014-08-07 | 2021-01-19 | Okinawa Institute Of Science And Technology School Corporation | Direct inverse reinforcement learning with density ratio estimation |
US10831208B2 (en) | 2018-11-01 | 2020-11-10 | Ford Global Technologies, Llc | Vehicle neural network processing |
Also Published As
Publication number | Publication date |
---|---|
JP2013225192A (ja) | 2013-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5815458B2 (ja) | 報酬関数推定装置、報酬関数推定方法、およびプログラム | |
JP6182242B1 (ja) | データのラベリングモデルに係る機械学習方法、コンピュータおよびプログラム | |
CN110073369B (zh) | 时间差分模型的无监督学习技术 | |
CN108875776A (zh) | 模型训练方法和装置、业务推荐的方法和装置、电子设备 | |
CN113642659B (zh) | 一种训练样本集生成的方法、装置、电子设备及存储介质 | |
CN109978836B (zh) | 基于元学习的用户个性化图像美感评价方法、系统、介质和设备 | |
US20180285769A1 (en) | Artificial immune system for fuzzy cognitive map learning | |
Zheng et al. | Generalized ARMA models with martingale difference errors | |
US9727447B1 (en) | System, method, and computer program for automated exploratory testing | |
CN110689110B (zh) | 处理交互事件的方法及装置 | |
CN114072809A (zh) | 经由神经架构搜索的小且快速的视频处理网络 | |
WO2018143019A1 (ja) | 情報処理装置、情報処理方法およびプログラム記録媒体 | |
JP2021149842A (ja) | 機械学習システム及び機械学習方法 | |
WO2014087590A1 (ja) | 最適化装置、最適化方法および最適化プログラム | |
JP6744767B2 (ja) | 人流予測装置、パラメータ推定装置、方法、及びプログラム | |
JP7063274B2 (ja) | 情報処理装置、ニューラルネットワークの設計方法及びプログラム | |
Malhotra et al. | Comparative analysis of agile methods and iterative enhancement model in assessment of software maintenance | |
Chang et al. | Combining STRONG with screening designs for large-scale simulation optimization | |
JP2022531982A (ja) | 特徴ベクトル実現可能性推定 | |
JP2018106237A (ja) | 情報処理装置、情報処理方法及びプログラム | |
Dawid | Evolutionary game dynamics and the analysis of agent-based imitation models: The long run, the medium run and the importance of global analysis | |
WO2012032747A1 (ja) | 特徴点選択システム、特徴点選択方法および特徴点選択プログラム | |
US11860769B1 (en) | Automatic test maintenance leveraging machine learning algorithms | |
US20110225103A1 (en) | Efficiency of computer modeling and analysis of complex processes | |
JP2018195031A (ja) | シミュレーションプログラム、シミュレーション方法及びシミュレーション装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140626 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150915 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150924 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5815458 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |