(57)【特許請求の範囲】
【請求項１】
報酬を得た直前の状態・行動対及び報酬を得たときの状態に至る、一連の状態・行動対の集合をイベント・リストとして、複数のイベント・リストを保持するイベント・リスト・データベースと、
状態・行動対を、前記複数のイベント・リストに分類して該イベント・リスト・データベースに記憶させるイベント・リスト管理部と、
各イベント・リストの要素である状態・行動対の報酬期待値を更新するイベント・リスト学習制御部と、
該イベント・リスト・データベースのイベント・リストを使用して第１の行動価値関数を求める行動計画部と、
強化学習に基づいて第２の行動価値関数を求める強化学習部と、
該行動計画部から受け取った第１の行動価値関数及び該強化学習部から受け取った第２の行動価値関数に基づいて行動を選択する行動選択部と、
を備え、
前記イベント・リスト管理部は、観測された状態、行動、及び報酬を、それぞれ、一の報酬を得た直前の時刻における状態と、当該状態に対してとった行動と、当該行動の結果生じた、当該報酬を得たときの状態と、で構成される集合で表された状態行動連鎖に、当該状態行動連鎖に至るまでの一連の状態・行動対の集合を対応付けて構成したリストを一のイベント・リストとして分類し、当該一のイベント・リストを前記一の報酬に対応付けて、前記イベント・リスト・データベースに記憶させ、
前記第１及び第２の行動価値関数は、それぞれ、前記行動計画部及び前記強化学習部が決定した行動を実行したならば現在から将来にわたって得られるであろう報酬の期待値を表すものであり、
前記第１の行動価値関数は、一の時刻における状態に対し当該一の時刻においてとった行動に起因してその後の他の時刻において得られる報酬の期待値である報酬期待値を、複数の前記他の時刻にわたって重みづけ加算した値として定義され、
前記報酬期待値は、前記一の時刻における状態に対し当該一の時刻においてとった行動に起因してその後の他の時刻において一の状態行動連鎖を経て報酬が得られる確率を、複数の前記他の時刻にわたって重みづけ加算した値である部分距離期待値と、前記一の時刻における状態に対し当該一の時刻においてとった行動に起因してその後の他の時刻において前記一の状態行動連鎖を経て一の報酬が得られる期待値を、当該一の状態行動連鎖を経て得られるすべての報酬について重みづけ加算した値である部分報酬期待値と、の積を、与えられた目標状態に至るまでの経路を構成する一の前記状態行動連鎖のセットについて加算した値として算出される、
学習制御システム。
【請求項２】
報酬を得た直前の状態・行動対及び報酬を得たときの状態に至る、一連の状態・行動対の集合をイベント・リストとして、複数のイベント・リストを保持するイベント・リスト・データベースと、イベント・リスト管理部と、イベント・リスト学習制御部と、行動計画部と、強化学習部と、行動選択部と、を備えた学習制御システムによって、学習を行なって行動を選択する学習制御方法であって、
該イベント・リスト管理部が、状態・行動対を、前記複数のイベント・リストに分類して該イベント・リスト・データベースに記憶させるステップと、
該イベント・リスト学習制御部が、各イベント・リストの要素である状態・行動対の報酬期待値を更新するステップと、
該行動計画部が、該イベント・リスト・データベースのイベント・リストを使用して第１の行動価値関数を求めるステップと、
該強化学習部が、強化学習に基づいて第２の行動価値関数を求めるステップと、
該行動選択部が、該行動計画部から受け取った第１の行動価値関数及び該強化学習部から受け取った第２の行動価値関数に基づいて行動を選択するステップと、
を含み、
前記記憶させるステップでは、観測された状態、行動、及び報酬を、それぞれ、一の報酬を得た直前の時刻における状態と、当該状態に対してとった行動と、当該行動の結果生じた、当該報酬を得たときの状態と、で構成される集合で表された状態行動連鎖に、当該状態行動連鎖に至るまでの一連の状態・行動対の集合を対応付けて構成したリストを一のイベント・リストとして分類し、当該一のイベント・リストを前記一の報酬に対応付けて、前記イベント・リスト・データベースに記憶させ、
前記第１及び第２の行動価値関数は、それぞれ、前記行動計画部及び前記強化学習部が決定した行動を実行したならば現在から将来にわたって得られるであろう報酬の期待値を表すものであり、
前記第１の行動価値関数は、一の時刻における状態に対し当該一の時刻においてとった行動に起因してその後の他の時刻において得られる報酬の期待値である報酬期待値を、複数の前記他の時刻にわたって重みづけ加算した値として定義され、
前記報酬期待値は、前記一の時刻における状態に対し当該一の時刻においてとった行動に起因してその後の他の時刻において一の状態行動連鎖を経て報酬が得られる確率を、複数の前記他の時刻にわたって重みづけ加算した値である部分距離期待値と、前記一の時刻における状態に対し当該一の時刻においてとった行動に起因してその後の他の時刻において前記一の状態行動連鎖を経て一の報酬が得られる期待値を、当該一の状態行動連鎖を経て得られるすべての報酬について重みづけ加算した値である部分報酬期待値と、の積を、目標状態に至るまでの経路を構成する一の前記状態行動連鎖のセットについて加算した値として算出される、
学習制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、強化学習を利用した学習システム及び学習方法に関する。
【背景技術】
【０００２】
ロボットなどの機械が学習によって自己の制御規則を改善する学習方法として強化学習が知られている（たとえば、非特許文献１）。一方、他からの明示的な教示によって学習する教師付き学習と呼ばれる方法がある。この両者を組み合わせることで、たとえば、ロボットが人から教示されたことを覚えて、教示されたことを試行錯誤しながら自分で状況に合わせて巧みに使用することができるようになることが期待できる。しかし、他からの教示を効率的に覚えることができ、かつ、教示された内容を試行錯誤に組み合わせながら学習を行なうことができる学習制御システム及び学習制御方法は開発されていない。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】N.D. Daw & K. Doya, “The computational neurobiology of learning and reward”, Current Opinion in Neurobiology, 2006, 16, pp199-204
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、他からの教示を効率的に覚えることができ、かつ、教示された内容を試行錯誤に組み合わせながら学習を行なうことができる学習制御システム及び学習制御方法は開発に対するニーズがある。
【課題を解決するための手段】
【０００５】
本発明の一つの態様による学習制御システムは、報酬を得た直前の状態・行動対及び報酬を得たときの状態に至る、一連の状態・行動対の集合をイベント・リストとして、複数のイベント・リストを保持するイベント・リスト・データベースと、状態・行動対を、前記複数のイベント・リストに分類して該イベント・リスト・データベースに記憶させるイベント・リスト管理部と、各イベント・リストの要素である状態・行動対の報酬期待値を更新するイベント・リスト学習制御部と、該イベント・リスト・データベースのイベント・リストを使用して第１の行動価値関数を求める行動計画部と、強化学習に基づいて第２の行動価値関数を求める強化学習部と、該行動計画部から受け取った第１の行動価値関数及び該強化学習部から受け取った第２の行動価値関数に基づいて行動を選択する行動選択部と、を備えている。
【０００６】
本態様による学習制御システムによれば、イベント・リスト学習制御部が、報酬を得た直前の状態・行動対及び報酬を得たときの状態によって分類されたイベント・リストごとに状態・行動対の報酬期待値を更新するので、他からの教示を効率的に覚えることができる。また、本態様による学習制御システムによれば、上記他からの教示に加えて、強化学習部が行う試行錯誤の学習の結果も、該イベント・リストに反映されるので、教示された内容を試行錯誤に組み合わせながら学習を行なうことができる。
【０００７】
本発明の一つの実施形態による学習制御システムにおいて、該行動計画部は、目標の状態が与えられた場合に、該イベント・リスト・データベースのイベント・リストを使用して、現在の状態から該目標の状態に至る経路を探索し、経路探索が成功した場合には、経路探索の結果に基づいて行動価値関数を求める。
【０００８】
本実施形態においては、該行動計画部は、目標の状態が与えられた場合に、該イベント・リスト・データベースのイベント・リストを使用して経路探索を行うので、より効率的に行動価値関数を求めることができる。したがって、教示された内容をより効率的に試行錯誤に組み合わせることができる。
【０００９】
本発明の一つの実施形態による学習制御システムにおいて、該イベント・リスト学習制御部が、各イベント・リストの要素である状態・行動対の報酬期待値を、報酬の値に対する期待値である部分報酬期待値と報酬を得る状態に至るまでの距離の期待値である部分距離期待値との積の和で表し、該部分報酬期待値及び該部分距離期待値を別個に更新するように構成されている。
【００１０】
本実施形態によれば、該部分報酬期待値及び該部分距離期待値を別個に更新するので、より効率的に学習を行うことができる。
【００１１】
本発明の一つの実施形態による学習制御システムにおいて、該部分報酬期待値を求めるための単純移動平均値及び該部分距離期待値を求めるための単純移動平均値をイベント・リスト・データベースに記憶するように構成されている。
【００１２】
本実施形態によれば、該部分報酬期待値及び該部分距離期待値を求めるために単純移動平均値を使用するので、低い計算コストで効率的に学習を行うことができる。
【００１３】
本発明の一つの態様による学習制御方法は、報酬を得た直前の状態・行動対及び報酬を得たときの状態に至る、一連の状態・行動対の集合をイベント・リストとして、複数のイベント・リストを保持するイベント・リスト・データベースと、イベント・リスト管理部と、イベント・リスト学習制御部と、行動計画部と、強化学習部と、を備えた学習制御システムによって、学習を行なって行動を選択する学習制御方法である。本方法は、該イベント・リスト管理部が、状態・行動対を、前記複数のイベント・リストに分類して該イベント・リスト・データベースに記憶させるステップと、該イベント・リスト学習制御部が、各イベント・リストの要素である状態・行動対の報酬期待値を更新するステップと、を含む。本方法は、該行動計画部が、該イベント・リスト・データベースのイベント・リストを使用して第１の行動価値関数を求めるステップと、該強化学習部が、強化学習に基づいて第２の行動価値関数を求めるステップと、該行動選択部が、該行動計画部から受け取った第１の行動価値関数及び該強化学習部から受け取った第２の行動価値関数に基づいて行動を選択するステップと、をさらに含む。
【００１４】
本態様による学習制御方法によれば、イベント・リスト学習制御部が、報酬を得た直前の状態・行動対及び報酬を得たときの状態によって分類されたイベント・リストごとに状態・行動対の報酬期待値を更新するので、他からの教示を効率的に覚えることができる。また、本態様による学習制御方法によれば、上記他からの教示に加えて、強化学習部が行う試行錯誤の学習の結果も、該イベント・リストに反映されるので、教示された内容を試行錯誤に組み合わせながら学習を行なうことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態による学習制御システムを含む装置の構成を示す図である。
【図２】イベント・リスト・データベースのデータ構造を説明するための図である。
【図３】イベント・リスト管理部の動作を説明するための流れ図である。
【図４】イベント・リスト学習制御部の動作を説明するための流れ図である。
【図５】図４のステップＳ２０３０の詳細な動作を説明するための図である。
【図６】図４のステップＳ２０３５の詳細な動作を説明するための図である。
【図７Ａ】行動計画部の動作を説明するための流れ図である。
【図７Ｂ】イベント・リスト・データベースの情報を使用して、初期状態から目標状態に至る経路を探索する方法を説明するための図である。
【図８】行動選択部の動作を説明するための流れ図である。
【図９】シミュレーション実験の手順を説明するための図である。
【図１０】第１のシミュレーションの結果を示す図である。
【図１１】第２のシミュレーションの結果を示す図である。
【図１２】第３のシミュレーションの結果を示す図である。
【図１３】第４のシミュレーションの結果を示す図である。
【図１４】第５のシミュレーションの結果を示す図である。
【図１５】第５のシミュレーション環境である高次マルコフ決定過程（ＨＯＭＤＰ： High Order Markov Decision Process）を説明するための図である。
【発明を実施するための形態】
【００１６】
図１は、本発明の一実施形態による学習制御システム１５０を含む装置２００の構成を示す図である。装置２００は、たとえばロボットであってもよい。装置２００は、情報取得部２０１、行動出力部２０３、目標取得部２０５、教示取得部２０７及び学習システム１５０を含む。
【００１７】
情報取得部２０１は、環境３００から入力情報を取得し、また、装置２００自身の状態情報を取得する。装置２００がロボットである場合に、情報取得部２０１は、カメラを含み、該カメラによって撮影した環境３００の画像によって、環境３００の情報を取得してもよい。また、情報取得部２０１は、ロボットの位置及び向きを含む、装置２００の状態情報を取得してもよい。情報取得部２０１は、取得したこれらの情報を学習制御システム１５０に送る。
【００１８】
行動出力部２０３は、学習制御システム１５０の選択した行動を出力する。行動の結果としての環境３００の変化は、情報取得部２０１によって情報として取得される。
【００１９】
教示取得部２０５は、装置２００のおかれた状態に対して、後で説明する報酬が最速で得られるような一連の行動の教示をユーザなどから取得し、その教示を学習制御システム１５０に送る。教示は、学習の初期の段階において学習システム１５０の学習を援助するのに使用される。
【００２０】
目標取得部２０７は、ユーザなどから装置２００が達成すべき目標を受け取り、その目標を学習制御システム１５０に送る。
【００２１】
学習制御システム１５０は、取得情報処理部１０９、強化学習部１１１、行動選択部１１３及びイベント・リスト学習制御システム１００を含む。
【００２２】
取得情報処理部１０９は、情報取得部２０１から受け取った情報を処理し、装置２００の「状態」を定める。また、装置２００の「行動」の結果の評価である「報酬」を定める。
【００２３】
イベント・リスト学習制御システム１００及び強化学習部１１１は、一連の状態、行動及び報酬の情報に基づいて、行動の価値を評価する行動価値関数を定める。イベント・リスト学習制御システム１００の詳細は後で説明する。強化学習部１１１は、従来の強化学習システムであり、たとえば、ＳＡＲＳＡ（State-Action-Reward-State-Action）アルゴリズムを使用したシステムであってもよい。ＳＡＲＳＡアルゴリズムについては、たとえば、文献（R. S. Sutton, A. G. Barto, Reinforcement Learning: Introduction, MIT Press）に詳細に記載されている。
【００２４】
行動選択部１１３は、イベント・リスト学習制御システム１００から受け取った第１の行動価値関数及び強化学習部１１１から受け取った第２の行動価値関数に基づいて装置の行動を選択する。また、行動選択部１１３は、教示取得部２０５から行動を教示された場合には、教示された行動を選択する。
【００２５】
ここで、イベント・リスト学習制御システム１００の基本的な考え方について説明する。
【００２６】
最初に行動価値関数について説明する。観測される状態の空間（状態空間）をSとし行動の選択肢の空間（行動空間）をAとする。|S|を状態空間の要素数、|A|を行動空間の要素数とする。状態空間の要素をs, 行動空間の要素をaであらわす。このときstは時刻tにおいて観測された状態空間の要素であり、atも同様である。行動価値関数は、現在時刻tに状態stを観測し、行動atをとったときに時間的に現在tから将来渡って得られる報酬rの期待値であり、以下のようにあらわされる。
【数１】
0005528214.tif 000002
ここで、γは割引率と呼ばれる定数であり、E[]は期待値を意味する。
【００２７】
式（１）は、以下のように展開することができる。
【数２】
0005528214.tif 000003
ここで、
【数３】
0005528214.tif 000004
を報酬期待値と呼称する。
【００２８】
式（３）は、マルコフ決定過程(Markov Decision Process)という一般的な仮定のもとで以下のように変形することができる。
【数４】
0005528214.tif 000005
ここで、Pr(|)は、条件付確率を示す。Pr(k|)は、一連の状態が現在時刻からkステップ後に終端に達する確率である。ここで、「終端」とは、上記一連の状態の最後の状態（この場合は、報酬を得た状態）を指す。Pr(rt+k|)は、t+kで報酬rを得る確率である。
【００２９】
(S,A,S’)は(st+k-1,at+k-1,st+k)を表し、報酬rt+kを得る直前の状態・行動対(st+k-1,at+k-1)と報酬rt+kを得たときの状態st+kからなるデータの組である。ここで、状態・行動対とは、装置２００が、ある状態において、ある行動を選択した場合に、その状態とその行動との対を指す。
【００３０】
定義から、以下の式が成立する。
【数５】
0005528214.tif 000006
式（５）の左辺を部分距離期待値と呼称する。「部分」とは、(S,A,S’)の場合に限定された期待値であることを意味する。「距離」とは、現在の状態から報酬を得る状態までの距離の期待値であることを意味する。
【００３１】
また、定義から、以下の式が成立する。
【数６】
0005528214.tif 000007
式（６）の左辺を部分報酬期待値と呼称する。「部分」とは、(S,A,S’)の場合に限定された期待値であることを意味する。「報酬」とは、報酬の値の期待値であることを意味する。
【００３２】
式（４）は、報酬期待値が、式（５）で表される部分距離期待値と式（６）で表される部分距離期待値との積の和で表せることを示す。また、報酬を得た状態を終端とする一連の状態行動対は、「部分」、すなわち、(S,A,S’)ごとのグループ（集合）に分類できることを示す。そこで、一連の状態・行動対を(S,A,S’)ごとの集合に分類し、該集合ごとに状態・行動対を記憶し、それぞれの状態・行動対の報酬期待値を各部分距離期待値ならびに各部分報酬期待値ごとに学習することができる。
【００３３】
式（５）で表される部分距離期待値と式（６）で表される部分距離期待値を計算するために、直近のm個のデータの平均である単純移動平均(Simple Moving Average)を使用してもよい。単純移動平均は、以下の式で表せる。
【数７】
0005528214.tif 000008
ここで、mの値は、環境３００の変化にすばやく追随するために、１０などの比較的小さい値が望ましい。また初期状態でデータの個数がm以下の場合は通常の平均値を計算する。
【００３４】
式（５）で表される部分距離期待値に対して、
【数８】
0005528214.tif 000009
の場合に、
【数９】
0005528214.tif 000010
である。それ以外の場合には、
【数１０】
0005528214.tif 000011
である。
【００３５】
式（６）で表される部分報酬期待値に対して、
【数１１】
0005528214.tif 000012
の場合に、
【数１２】
0005528214.tif 000013
である。それ以外の場合には、
【数１３】
0005528214.tif 000014
である。
【００３６】
部分距離期待値に対する単純移動平均をmaSAS’[γ|s,a]と表し、部分報酬期待値に対する単純移動平均をma[r|SAS’]と表す。  
つぎに、イベント・リスト学習制御システム１００の構成について説明する。図１に示すように、イベント・リスト学習制御システム１００は、イベント・リスト管理部１０１、一時的リスト記憶部１０３、イベント・リスト・データベース１０５、イベント・リスト学習制御部１０７及び行動計画部１０８を含む。
【００３７】
イベント・リスト管理部１０１は、一連の状態・行動対を一時的記憶部１０３に記憶させ、報酬を受け取った際に、該一連の状態・行動対を、(S,A,S’)ごとの集合に分類し、該集合ごとにイベント・リスト・データベース１０５に記憶させる。イベント・リスト・データベース１０５には、(S,A,S’)ごとの集合の、部分報酬期待値に対する単純移動平均ma[r|SAS’]及び部分距離期待値に対する単純移動平均maSAS’[γ|s,a]も記憶される。
【００３８】
イベント・リスト学習制御システム１００は、新たな状態・行動対を受け取るごとに、(S,A,S’)ごとの集合の、分報酬期待値に対する単純移動平均をma[r|SAS’]及び部分距離期待値に対する単純移動平均を更新（学習）する。
【００３９】
行動計画部１０８は、目標取得部２０７から目標の状態が与えられた場合に、イベント・リスト・データベース１０５のデータを使用して、現在の状態から該目標の状態に至る経路を探索し、経路探索が成功した場合には、経路探索の結果に基づいて行動価値関数を求める。それ以外の場合には、イベント・リスト・データベース１０５のデータを使用して、行動価値関数を求める。
【００４０】
イベント・リスト学習制御システム１００の各構成要素その詳細については以下に説明する。
【００４１】
図２はイベント・リスト・データベース１０５のデータ構造を説明するための図である。図２において、(S,A,S’)nは報酬を得る直前の状態・行動対ならびに報酬を得たときの状態を示す。(S,A,S’)nは(S,A,S’)nに至るまでの一連の状態・行動対とともに集合を形成する。この集合をイベント・リストと呼称する。(si,aj)はイベント・リストに含まれる状態・行動対を示す。なお(S,A)もこの集合に含まれる。(si,aj)に関連付けて、その部分距離期待値の単純移動平均maSAS’[γ|s,a]もイベント・リストに保持されている。さらに、この部分距離期待値の単純移動平均を更新するための補助変数e[si,aj]も保持されている。この補助変数については後に説明する。またそれぞれの(S,A,S’)nに関連付けて、対応する部分報酬期待値の単純移動平均ma[r|(S,A,S’)n]が保持されている。
【００４２】
このようにイベント・リスト・データベース１０５のデータは報酬を得る直前の状態・行動対ならびに報酬を得たときの状態(S,A,S’)ごとのデータ、すなわちイベント・リストに分類される。
【００４３】
図３は、イベント・リスト管理部１０１の動作を説明するための流れ図である。
【００４４】
図３のステップＳ１００５において、イベント・リスト管理部１０１は、行動選択部１１３から状態・行動対(s,a)を受け取ったかどうか判断する。ここで、行動選択部１１３は、行動を選択するごとに状態・行動対(s,a)をイベント・リスト管理部１０１に送る。状態・行動対(s,a)を受け取っていればステップＳ１０１０に進む。状態・行動対(s,a)を受け取っていなければ、待機する。
【００４５】
図３のステップＳ１０１０において、イベント・リスト管理部１０１は、状態・行動対(s,a)を一時的リスト記憶部１０３に記憶させる。
【００４６】
図３のステップＳ１０１５において、イベント・リスト管理部１０１は、取得情報処理部１０９から報酬及び報酬を得たときの状態s’を受け取ったかどうか判断する。ここで、取得情報処理部１０９は、行動出力部２０７が行動を出力してから所定の時間経過後に情報取得部２０１が取得した情報に基づいて報酬を定め、イベント・リスト管理部１０１に送る。報酬を受け取っていればステップＳ１０２０に進む。報酬を受け取っていなければ、所定の時間経過後ステップＳ１００５に戻る。
【００４７】
図３のステップＳ１０２０において、イベント・リスト管理部１０１は、一時的リスト記憶部１０３に最後に記憶された状態・行動対(s,a)を、報酬を得た直前の状態・行動対(S,A)とし、報酬を得たときの状態s’をS’として、報酬を得た直前の状態・行動対及び報酬を得たときの状態(S,A,S’)を生成する。
【００４８】
図３のステップＳ１０２５において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５に (S,A,S’)が存在するかどうか判断する。(S,A,S’)が存在すれば、ステップＳ１０３５に進む。(S,A,S’)が存在しなければ、ステップＳ１０３０に進む。
【００４９】
図３のステップＳ１０３０において、イベント・リスト管理部１０１は、(S,A,S’)をイベント・リスト・データベース１０５に記憶させる。
【００５０】
図３のステップＳ１０３５において、イベント・リスト管理部１０１は、一時的リスト記憶部１０３に記憶された状態・行動対(s,a)のそれぞれが、イベント・リスト・データベース１０５の(S,A,S’)のイベント・リストに含まれているかどうか判断する。(S,A,S’)のイベント・リストに含まれていれば、ステップＳ１０４５に進む。(S,A,S’)のイベント・リストに含まれていなければ、ステップＳ１０４０に進む。
【００５１】
図３のステップＳ１０４０において、イベント・リスト管理部１０１は、(S,A,S’)のイベント・リストに含まれていない状態・行動対(s,a)を(S,A,S’)のイベント・リストに追加する。このとき、追加される状態・行動対の数は、あらかじめ決められた数を上限とする。
【００５２】
図３のステップＳ１０４５において、イベント・リスト管理部１０１は、一時的リスト記憶部１０３に記憶された全ての状態・行動対(s,a)についてステップＳ１０３５の処理を行ったかどうか判断する。全ての状態・行動対(s,a)についてステップＳ１０３５の処理を行っていれば、ステップＳ１０５０に進む。全ての状態・行動対(s,a)についてステップＳ１０３５の処理を行っていなければ、ステップＳ１０３５に戻る。
【００５３】
図３のステップＳ１０５０において、イベント・リスト管理部１０１は、一時的リスト記憶部１０３に記憶された全ての状態・行動対(s,a)をクリア（消去）する。
【００５４】
図４は、イベント・リスト学習制御部１０７の動作を説明するための流れ図である。
【００５５】
図４のステップＳ２００５において、イベント・リスト管理部１０１は、行動選択部１１３から状態・行動対(s,a)を受け取ったかどうか判断する。状態・行動対(s,a)を受け取っていればステップＳ２０１０に進む。状態・行動対(s,a)を受け取っていなければ、待機する。
【００５６】
図４のステップＳ２０１０において、イベント・リスト管理部１０１は、取得情報処理部１０９から次の状態s’を受け取ったかどうか判断する。次の状態s’を受け取っていれば、ステップＳ２０１５に進む。次の状態s’を受け取っていなければ待機する。
【００５７】
図４のステップＳ２０１５において、イベント・リスト管理部１０１は、そのときの報酬を受け取ったかどうか判断する。報酬を受け取っていれば、ステップＳ２０２０に進む。報酬を受け取っていなければ、ステップＳ２０２５に進む。
【００５８】
図４のステップＳ２０２０において、イベント・リスト管理部１０１は、報酬の値をｒに代入する。
【００５９】
図４のステップＳ２０２５において、イベント・リスト管理部１０１は、ゼロをｒに代入する。
【００６０】
図４のステップＳ２０３０において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５中の各イベント・リストの補助変数e[s,a]を更新する。
【００６１】
図４のステップＳ２０３５において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５中の各イベント・リストの単純移動平均の値を更新する。
【００６２】
図５は、図４のステップＳ２０３０の詳細な動作を説明するための図である。
【００６３】
図５のステップＳ３００５において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５から一つのイベント・リスト(S,A,S’)nを取り出す。
【００６４】
図５のステップＳ３０１０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nから一つの状態・行動対(s”,a”)を取り出す。
【００６５】
図５のステップＳ３０１５において、イベント・リスト管理部１０１は、取り出した状態・行動対(s”,a”)が、受け取った状態・行動対(s,a)と同じであるかどうか判断する。同じであれば、ステップＳ３０２０に進む。同じでなければ、ステップＳ３０２５に進む。
【００６６】
図５のステップＳ３０２０において、イベント・リスト管理部１０１は、状態・行動対(s”,a”)の補助変数e[s”,a”]を以下の式にしたがって更新する。ここで、補助変数の初期値は、すべてゼロである。
【数１４】
0005528214.tif 000015
【００６７】
図５のステップＳ３０２５において、イベント・リスト管理部１０１は、状態・行動対(s”,a”)の補助変数e[s”,a”]を以下の式にしたがって更新する。
【数１５】
0005528214.tif 000016
ここで、γは割引率と呼ばれる定数である。
【００６８】
図５のステップＳ３０３０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの全ての状態・行動対(s”,a”)をチェックしたかどうか判断する。全ての状態・行動対(s”,a”)をチェックしていれば、ステップＳ３０３５に進む。全ての状態・行動対(s”,a”)をチェックしていなければ、ステップＳ３０１０に戻る。
【００６９】
図５のステップＳ３０３５において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５の全てのイベント・リスト(S,A,S’)n をチェックしたかどうか判断する。全てのイベント・リスト(S,A,S’)n をチェックしていれば、処理を終了する。全てのイベント・リスト(S,A,S’)n をチェックしていなければ、ステップＳ３００５に戻る。
【００７０】
図６は、図４のステップＳ２０３５の詳細な動作を説明するための図である。
【００７１】
図６のステップＳ４００５において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５のイベント・リスト(S,A,S’)nのうちから、その状態・行動対にsを含むものだけを取り出す。
【００７２】
図６のステップＳ４０１０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの(S,A,S’)が、(s,a,s’)と同じであるかどうか判断する。同じであれば、ステップＳ４０１５に進む。同じでなければステップＳ４０２０に進む。
【００７３】
図６のステップＳ４０１５において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの、部分報酬期待値に対する単純移動平均ma[r|SAS’]を以下の式にしたがって更新する。
【数１６】
0005528214.tif 000017
ただし、上述にように
【数１７】
0005528214.tif 000018
である。
【００７４】
図６のステップＳ４０２０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nから一つの状態・行動対(s”,a”)を取り出す。
【００７５】
図６のステップＳ４０２５において、イベント・リスト管理部１０１は、状態・行動対(s”,a”)の補助変数e[s”,a”]が正であるかどうか判断する。補助変数e[s”,a”]が正であれば、ステップＳ４０３０に進む。補助変数e[s”,a”]が正でなければ、ステップＳ４０５０に進む。
【００７６】
図６のステップＳ４０３０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの(S,A,S’)が、(s,a,s’)と同じであるかどうか判断する。同じであれば、ステップＳ４０３５に進む。同じでなければステップＳ４０４０に進む。
【００７７】
図６のステップＳ４０３５において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの要素の、部分距離期待値に対する単純移動平均maSAS’[γ|s,a]を以下の式にしたがって更新する。
【数１８】
0005528214.tif 000019
ただし、上述にように
【数１９】
0005528214.tif 000020
である。
【００７８】
図６のステップＳ４０４０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの要素の、部分距離期待値に対する単純移動平均maSAS’[γ|s,a]を以下の式にしたがって更新する。
【数２０】
0005528214.tif 000021
ただし、上述にように
【数２１】
0005528214.tif 000022
である。
【００７９】
図６のステップＳ４０４５において、イベント・リスト管理部１０１は、状態・行動対(s”,a”)の補助変数e[s”,a”]を以下の式にしたがって更新する。
【数２２】
0005528214.tif 000023
【００８０】
図６のステップＳ４０５０において、イベント・リスト管理部１０１は、取り出したイベント・リスト(S,A,S’)nの全ての状態・行動対(s”,a”)をチェックしたかどうか判断する。全ての状態・行動対(s”,a”)をチェックしていれば、ステップＳ４０５５に進む。全ての状態・行動対(s”,a”)をチェックしていなければ、ステップＳ４０２０に戻る。
【００８１】
図６のステップＳ４０５５において、イベント・リスト管理部１０１は、イベント・リスト・データベース１０５の全てのイベント・リスト(S,A,S’)n をチェックしたかどうか判断する。全てのイベント・リスト(S,A,S’)n をチェックしていれば、処理を終了する。全てのイベント・リスト(S,A,S’)n をチェックしていなければ、ステップＳ４００５に戻る。
【００８２】
図７Ａは、行動計画部１０８の動作を説明するための流れ図である。
【００８３】
図７ＡのステップＳ５００５において、行動計画部１０８は、取得情報処理部１０９から状態s’を受け取ったかどうか判断する。状態s’を受け取っていれば、ステップＳ５０１０に進む。状態s’を受け取っていなければ待機する。
【００８４】
図７ＡのステップＳ５０１０において、行動計画部１０８は、目標取得部２０７から目標S’を受け取ったかどうか判断する。目標S’を受け取っていれば、ステップＳ５０１５に進む。目標S’を受け取っていなければ、ステップＳ５０３０に進む。
【００８５】
図７ＡのステップＳ５０１５において、行動計画部１０８は、行動計画部１０８は、イベント・リスト・データベース１０５の情報を使用して、初期状態s’から目標状態S’に至る経路を探索する。
【００８６】
図７Ｂは、イベント・リスト・データベース１０５の情報を使用して、初期状態から目標状態に至る経路を探索する方法を説明するための図である。図７Ｂ（ａ）は、S0からS3に至る状態遷移を示す図である。図７Ｂ（ｂ）は、図７Ｂ（ａ）の状態遷移に対応するイベント・リストを示す図である。図７Ｂ（ｂ）のイベント・リストにおいて、(S,A,S’)は、(S2,a3,S3)である。図７Ｂ（ｃ）は、イベント・リストの組み合わせを示す図である。図７Ｂ（ｃ）に示されるように、複数のイベント・リストを組み合わせて初期状態から目標状態に至る経路を探索する。経路探索の方法は、たとえば、最良優先探索法（たとえば、人工知能学会編、人工知能学辞典、２００６年、共立出版）によってもよい。
【００８７】
図７ＡのステップＳ５０２０において、行動計画部１０８は、経路探索は成功したかどうか判断する。経路探索が成功していれば、ステップＳ５０２５に進む。経路探索が成功していなければ、ステップＳ５０３０に進む。
【００８８】
図７ＡのステップＳ５０２５において、行動計画部１０８は、経路探索の結果に基づいて、推奨される行動aに対応した行動価値関数をイベント・リスト・データベース１０５中の対応する単純移動平均の値を使って、以下の式にしたがって求め、出力する。
【数２３】
0005528214.tif 000024
式（８）は、図７Ｂ（ｃ）のイベント・リストの組合せに対応し、初期状態は、sである。
【００８９】
図７ＡのステップＳ５０３０において、行動計画部１０８は、イベント・リスト・データベース１０５の情報を使用して、状態s’に対応する行動価値関数を求め、出力する。具体的に、行動計画部１０８は、イベント・リスト・データベース１０５に記憶されたイベント・リストの内、状態s’に対応する部分の部分報酬期待値および部分距離期待値から、以下の式にしたがって式（４）によって示される状態s’に対する報酬期待値を求める。
【数２４】
0005528214.tif 000025
【００９０】
図８は、行動選択部１１３の動作を説明するための流れ図である。
【００９１】
図８のステップＳ６００５において、行動選択部１１３は、取得情報処理部１０９から状態s’を受け取ったかどうか判断する。状態s’を受け取っていれば、ステップＳ６０１０に進む。状態s’を受け取っていなければ待機する。
【００９２】
図８のステップＳ６０１０において、行動選択部１１３は、教示取得部２０５から教示を受け取ったかどうか判断する。教示を受け取っていれば、ステップＳ６０１５に進む。教示を受け取っていなければステップＳ６０２０に進む。
【００９３】
図８のステップＳ６０１５において、行動選択部１１３は、教示された行動aを選択して出力し、処理を終了する。
【００９４】
図８のステップＳ６０２０において、行動選択部１１３は、強化学習部１１１から行動価値関数Qを受け取ったかどうか判断する。行動価値関数Qを受け取っていれば、ステップＳ６０２５に進む。行動価値関数Qを受け取っていなければステップＳ６００５に戻る。
【００９５】
図８のステップＳ６０２５において、行動選択部１１３は、行動計画部１０８から行動価値関数tQを受け取ったかどうか判断する。行動価値関数tQを受け取っていれば、ステップＳ６０３０に進む。行動価値関数tQを受け取っていなければステップＳ６０３５に進む。
【００９６】
図８のステップＳ６０３０において、行動選択部１１３は、tQとQとの和をtQとする。
【００９７】
図８のステップＳ６０３５において、行動選択部１１３は、QをtQとする。
【００９８】
図８のステップＳ６０４０において、行動選択部１１３は、tQに基づいて、確率的に行動aを選択し、出力する。
【００９９】
以下に、本実施形態による学習制御システム１５０のシミュレーション実験について説明する。
【０１００】
図９は、シミュレーション実験の手順を説明するための図である。s0からs7までの８個の観察される状態が存在する。また、a0からa7までの８個の行動が存在する。「教示されるエピソード」は、学習制御システム１５０を備えた装置２００に、たとえば教示取得部２０５を介して教示されるエピソードを示す。ここで、エピソードとは、連続して生じる一連の状態及び行動を指す。以下において、装置２００をエージェントと呼称する。
【０１０１】
たとえば、エピソードＡでは、最初に観測状態はs0が観測される。このとき行動a1をとるように教示される。そして行動a1をエージェントが選択すると、その結果観測状態がs1に代わる。以下同様にして観測状態s3までたどり着くと、正の報酬値がエージェントに与えられる。同様にしてエピソードＢ、エピソードＣ、エピソードＤが各一回ずつ教示される。エピソードＢ及びエピソードＣの終端においては正の報酬値が与えられる。しかし、エピソードＤの終端においては負の報酬値が与えられ、エピソードＤは望ましくないものとして教示される。
【０１０２】
つぎに、エージェントに問題が与えられる。図９の問題１の場合に、エージェントは、観測状態s0におかれ、目標とする状態がs6であると提示される。エージェントは、状態s0から状態がs6まで、状態を最短のステップで遷移させることが要求される。ここで、ステップとは、状態に対してとられる行動の数である。図９の問題２の場合に、エージェントは、観測状態s0におかれ、目標とする状態がs７であると提示される。エージェントは、状態s0から状態がs７まで、状態を最短のステップで遷移させることが要求される。
【０１０３】
実際のシミュレーションにおいては、２０のトライアルからなるシミュレーションを行なった。ここで、トライアルとは、エージェントが、状態に応じて終端にいたるまで実施する一連の行動である。ただし、トライアルのステップ数は最大５０とする。換言すれば、エージェントの行動が、５０ステップを経てもなお終端に至らない場合には、トライアルを終了する。最初の４個のトライアル、すなわち、第１乃至第４のトライアルは、エピソード教示期間であり教示が与えられる。具体的に、第１乃至第４のトライアルにおいては、エピソードＡ乃至Ｄが上述のように教示される。第５乃至第２０のトライアルは、問題対処期間である。問題対処期間には、エージェントに問題１及び問題２が交互に与えられる。具体的に第５のトライアルにおいては、問題１、第６のトライアルにおいては問題２、第７のトライアルにおいては問題１、第８のトライアルにおいては問題２がそれぞれ与えられる。このようにして、第２０のトライアルに至るまで、問題１及び問題２が交互に与えられる。
【０１０４】
図１０は、第１のシミュレーションの結果を示す図である。ここで、図１０乃至図１３のグラフの横軸はトライアル数を示し、縦軸は各トライアルのステップ数を示す。各トライアルのステップ数は、１０００回繰り返した結果の平均である。図１０乃至図１３には、本発明の本実施形態による学習制御システム１５０の他、ＳＡＲＳＡ（０．１）のアルゴリズム及びＳＡＲＳＡ（０．５）のアルゴリズムによる結果を示した。０．１及び０．５は、λで表されるＳＡＲＳＡアルゴリズムのパラメータである（R. S. Sutton, A. G. Barto, Reinforcement Learning: Introduction, MIT Press）。なお、本実施形態による学習制御システム１５０の強化学習部１１１は、ＳＡＲＳＡ（０．５）のアルゴリズムを使用している。
【０１０５】
図１０において、ＳＡＲＳＡ（０．１）のアルゴリズムによる結果は、問題対処期間においてステップ数が減少しないので全く学習が行なわれていないことを示している。ＳＡＲＳＡ（０．５）のアルゴリズムによる結果は、問題１に対してのみステップ数が減少しているので、問題１に対してのみ学習が行なわれていることを示している。本実施形態による学習制御システム１５０による結果は、問題１及び２に対して正しく学習が行なわれていることを示している。
【０１０６】
図１１は、第２のシミュレーション結果を示す図である。本シミュレーションにおいて、問題対処期間には、第１のシミュレーションの場合と同様に、エージェントに問題１及び問題２が交互に与えられる。ただし、第２のシミュレーションにおいては、問題対処期間のトライアルが確率的である。具体的に、たとえ、エージェントの選んだ行動が正しくても確率0.8の割合でしか正しく次の状態に遷移しない。図１１によれば、この場合でも、本実施形態による学習制御システム１５０は、正しく学習を行なう。
【０１０７】
図１２は、第３のシミュレーション結果を示す図である。本シミュレーションにおいて、問題対処期間の環境が、エピソード教示期間の環境と変わってしまっている。具体的に、エピソード教示期間の、問題１に対応するエピソードＡでは、エージェントが行動a2を状態s1で選ぶと、状態s2になったが、問題１のトライアルではs7になってしまうようことが起きるとする。この時の遷移は確率的ではなく、「決定論的」である。図１２において、「１’」は、問題１が変わってしまっていることを示す。問題２は、エピソード教示期間と同じである。図１２によれば、この場合でも、本実施形態による学習制御システム１５０は、イベント・リスト学習制御システム１００による学習を強化学習部１１１による学習と効果的に組み合わせることにより、教示されていない問題１’に対しても正しく学習を行なう。
【０１０８】
図１３は、第４のシミュレーション結果を示す図である。本シミュレーションにおいて、第２のシミュレーションと同様に、問題対処期間のトライアルが確率的であり、且つ、第３のシミュレーションと同様に、問題１が変わってしまっている。この場合でも、本実施形態による学習制御システム１５０は、イベント・リスト学習制御システム１００による学習を強化学習部１１１による学習と効果的に組み合わせることにより、問題１’及び問題２に対して正しく学習を行なう。
【０１０９】
図１４は、第５のシミュレーション結果を示す図である。第５のシミュレーションにおいては、教示が一切なく目標も与えられない。
【０１１０】
図１５は、第５のシミュレーション環境である高次マルコフ決定過程（ＨＯＭＤＰ： High Order Markov Decision Process）を説明するための図である。選択しうる行動は、a0,a1,…a9の１０個であり、そのうち報酬に関係するのはa0,a1,…a5の６個である。本過程は、過程Ａと過程Ｂとを含む。過程Ａで報酬を得た場合につぎに報酬を得るためには過程Ｂを選択する必要があり、過程Ｂで報酬を得た場合につぎに報酬を得るためには過程Ａを選択する必要がある。すなわち、同じ観測信号に対して、過程Ａと過程Ｂで異なる行動を選択する必要がある。各遷移は確率的である。過程Ａにおいて、s0からs2へは確率０．３で遷移する。その他の場合は、確率０．９で遷移する。過程Ｂにおいて、s1からs2へは確率０．３で遷移する。その他の場合は、確率０．９で遷移する。さらに、各状態に対して観測できる信号は２個存在する。たとえば、s0に対しては、O00とO01の信号が存在し、いずれかが確率０．５で観測される。
【０１１１】
図１４のグラフの横軸はトライアル数を示し、縦軸は各トライアルのステップ数を示す。各トライアルのステップ数は、１０００回繰り返した結果の平均である。図１４には、本発明の本実施形態による学習制御システム１５０の他、ＳＡＲＳＡ（０．５）のアルゴリズムによる結果を示した。図１４において、実線は、学習制御システム１５０によるステップ数の平均値を示し、一点鎖線は、ＳＡＲＳＡ（０．５）のアルゴリズムによるステップ数の平均値を示す。また、点線は、学習制御システム１５０によるステップ数の標準偏差を示し、二点鎖線は、ＳＡＲＳＡ（０．５）のアルゴリズムによるステップ数の標準偏差を示す。図１４によれば、本発明の本実施形態による学習制御システム１５０は、ＳＡＲＳＡ（０．５）のアルゴリズムより少ないステップ数で収束している。この結果、全く教示や目標の提示がない場合でも、イベント・リスト学習制御システム１００は、強化学習部１１１の学習を助けていることがわかる。
【符号の説明】
【０１１２】
１００…イベント・リスト学習制御システム、１０１…イベント・リスト管理部、１０３…一時的リスト記憶、１０５…イベント・リスト・データベース、１０７…イベント・リスト学習制御部、１０８…行動計画部
【図１】
0005528214.tif 000026
【図２】
0005528214.tif 000027
【図３】
0005528214.tif 000028
【図４】
0005528214.tif 000029
【図５】
0005528214.tif 000030
【図６】
0005528214.tif 000031
【図７Ａ】
0005528214.tif 000032
【図７Ｂ】
0005528214.tif 000033
【図８】
0005528214.tif 000034
【図９】
0005528214.tif 000035
【図１０】
0005528214.tif 000036
【図１１】
0005528214.tif 000037
【図１２】
0005528214.tif 000038
【図１３】
0005528214.tif 000039
【図１４】
0005528214.tif 000040
【図１５】
0005528214.tif 000041