IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7505563学習装置、学習方法、制御システムおよびプログラム
<>
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図1
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図2
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図3
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図4
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図5
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図6
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図7
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図8
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図9
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図10
  • 特許-学習装置、学習方法、制御システムおよびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】学習装置、学習方法、制御システムおよびプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240618BHJP
   G06N 3/092 20230101ALI20240618BHJP
【FI】
G06N20/00
G06N3/092
【請求項の数】 5
(21)【出願番号】P 2022546778
(86)(22)【出願日】2020-09-02
(86)【国際出願番号】 JP2020033265
(87)【国際公開番号】W WO2022049672
(87)【国際公開日】2022-03-10
【審査請求日】2023-02-27
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】森 達哉
【審査官】佐藤 実
(56)【参考文献】
【文献】FUJIMOTO, Scott, et al.,"Addressing Function Approximation Error in Actor-Critic Methods",arXiv:1802.09477v3,version v3,[online], arXiv (Cornell University),2018年10月22日,Pages 1-15,[retrieved on 2020.10.09], Retrieved from the Internet: <URL: https://arxiv.org/abs/1802.09477v3> and <URL: https://arxiv.org/pdf/1802.09477v3.pdf>.
【文献】SCHAUL, Tom, et al.,"PRIORITIZED EXPERIENCE REPLAY",arXiv:1511.05952v4,version v4,[online], arXiv (Cornell University),2016年02月25日,Pages 1-21,[retrieved on 2020.10.08], Retrieved from the Internet: <URL: https://arxiv.org/abs/1511.05952v4> and <URL: https://arxiv.org/pdf/1511.05952v4.pdf>.
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/092
(57)【特許請求の範囲】
【請求項1】
制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づける優先度設定手段と、
前記優先度に基づいて経験を取得する経験取得手段と、
前記経験取得手段が取得した経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出するモデル計算手段と、
前記モデル計算手段が評価モデル毎に算出した評価値のうち最小の評価値と、前記経験取得手段が取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新するモデル更新手段と
を備える学習装置。
【請求項2】
前記経験取得手段は、前記優先度に基づいて前記経験をサンプリングしたミニバッチを取得する、
請求項に記載の学習装置。
【請求項3】
制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づける優先度設定手段と、
前記優先度に基づいて経験を取得する経験取得手段と、
前記経験取得手段が取得した経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出するモデル計算手段と、
前記モデル計算手段が評価モデル毎に算出した評価値のうち最小の評価値と、前記経験取得手段が取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新する評価モデル更新手段と、
前記評価モデルを用いて前記方策モデルを更新する方策モデル更新手段と、
前記方策モデルを用いて制御値を算出する制御決定手段と、
前記制御値に基づいて制御対象を制御する制御実施手段と、
を備える制御システム。
【請求項4】
コンピュータが、
制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づけ、
前記優先度に基づいて経験を取得し、
取得した経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出し、
評価モデル毎に算出した評価値のうち最小の評価値と、取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新する
ことを含む学習方法。
【請求項5】
コンピュータに、
制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づけることと、
前記優先度に基づいて経験を取得することと、
取得した経験に示される第2状態と、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出することと、
評価モデル毎に算出した評価値のうち最小の評価値と、取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新することと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、制御システムおよびプログラムに関する。
【背景技術】
【0002】
機械学習の1つに強化学習がある。
例えば、特許文献1には、Q学習と呼ばれる強化学習を実行して、メンテナンスが求められる対象のメンテナンス範囲の最適化を図ることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2019/050014号
【発明の概要】
【発明が解決しようとする課題】
【0004】
強化学習に必要な時間が比較的短く済むことが好ましい。
【0005】
本発明の目的の1つは、上述の課題を解決することのできる学習装置、学習方法、制御システムおよびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、学習装置は、制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づける優先度設定手段と、前記優先度に基づいて経験を取得する経験取得手段と、前記経験取得手段が取得した経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出するモデル計算手段と、前記モデル計算手段が評価モデル毎に算出した評価値のうち最小の評価値と、前記経験取得手段が取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新するモデル更新手段とを備える。
【0007】
本発明の第2の態様によれば、制御システムは、制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づける優先度設定手段と、前記優先度に基づいて経験を取得する経験取得手段と、前記経験取得手段が取得した経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出するモデル計算手段と、前記モデル計算手段が評価モデル毎に算出した評価値のうち最小の評価値と、前記経験取得手段が取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新する評価モデル更新手段と、前記評価モデルを用いて前記方策モデルを更新する方策モデル更新手段と、前記方策モデルを用いて制御値を算出する制御決定手段と、前記制御値に基づいて制御対象を制御する制御実施手段と、を備える。
【0008】
本発明の第3の態様によれば、学習方法は、コンピュータが、制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づけ、前記優先度に基づいて経験を取得し、取得した経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出し、評価モデル毎に算出した評価値のうち最小の評価値と、取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新することを含む。
【0009】
本発明の第4の態様によれば、プログラムは、コンピュータに、制御対象の第1状態と、前記第1状態における前記制御対象の第1行動と、前記第1状態における前記第1行動に応じた報酬と、前記第1状態における前記第1行動に応じた第2状態との組み合わせである経験毎に、その経験に示される報酬と、その経験に示される第2状態、および、その第2状態から方策モデルを用いて算出される第2行動を、評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第2状態におけるその第2行動に対する評価値のうち最小の評価値とに基づいて算出される、その経験に示される第1状態における、その経験に示される第1行動に対する評価値と、その経験に示される第1状態およびその経験に示される第1行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して評価モデル毎に得られる、その第1状態におけるその第1行動に対する評価値のうち最大の評価値との誤差の大きさに基づく優先度を紐づけることと、前記優先度に基づいて経験を取得することと、取得した経験に示される第2状態と、および、その第2状態から方策モデルを用いて算出される第2行動を、前記評価モデル本体に複数のパラメータ値を設定して得られる複数の評価モデルに適用して、その第2状態におけるその第2行動に対する評価値を評価モデル毎に算出することと、評価モデル毎に算出した評価値のうち最小の評価値と、取得した経験に示される第1状態における、その経験に示される第1行動に対する評価値とに基づいて、前記評価モデルを更新することとを実行させるためのプログラムである。
【発明の効果】
【0010】
上記した学習装置、制御システム、学習方法およびプログラムによれば、強化学習に必要な時間の短縮を図ることができる。
【図面の簡単な説明】
【0011】
図1】実施形態に係る制御システムの構成例を示す図である。
図2】実施形態に係る評価モデル記憶装置の構成例を示す図である。
図3】実施形態に係る学習装置の構成例を示す図である。
図4】実施形態に係る制御システムが行う処理の手順の例を示すフローチャートである。
図5】実施形態に係る制御システムがモデルを更新する処理手順の例を示すフローチャートである。
図6】実施例1における制御対象の振り子の例を示す図である。
図7】実施例2に係るVAMプラントにおけるセクションの構成例を示す図である。
図8】実施形態に係る学習装置の構成例を示す図である。
図9】実施形態に係る制御システムの構成例を示す図である。
図10】実施形態に係る学習方法における処理手順の例を示す図である。
図11】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0012】
実施例2にて後述するように、実施形態に係る制御装置は、例えば、化学プラントを制御する制御内容を、強化学習に従い算出された方策モデルに基づき決定する。化学プラントには、温度、圧力および流量等を測定する観測装置が設置されている。制御装置は、観測装置が測定した測定結果に基づき、化学プラントにおける各装置についての制御内容を決定するための方策モデルを決定する。そして、制御装置は、決定した方策モデルに従い制御内容を決定し、決定した内容に従い各装置を制御する。
【0013】
実施例3にて後述するように、実施形態に係る制御装置は、例えば、ロボットを制御する制御内容を、強化学習に従い算出された方策モデルに基づき決定する。制御対象のロボットは、複数の関節を有する。ロボットを制御するシステムには、関節の角度等を測定するための観測装置が設置されている。制御装置は、観測装置が測定した測定結果に基づき、ロボットについての制御内容を決定するための方策モデルを決定する。そして、制御装置は、決定した方策モデルに従い制御内容を決定し、決定した内容に従いロボットを制御する。
実施形態に係る制御装置の適用先は、上述した例に限定されず、例えば、製造工場における製造装置、または、輸送装置等であってもよい。
【0014】
<用語および概念の説明>
実施形態の説明をするための用語および概念について説明する。
強化学習は、マルコフ決定過程において状態遷移確率が未知の状況下で、累積報酬(Cumulative Reward)の期待値を最大化する行動決定則(Decision Rule)を得る手法である。行動決定則を、方策(Policy)、または、制御則(Control Rule)とも称する。
【0015】
マルコフ決定過程は、「ある状態sのときに、方策πに従い行動aが選択・実行され、状態遷移確率ρ(s’,r|s,a)に従って状態sから新しい状態s’に遷移し、報酬rが与えられる」、という一連の事象が繰り返し行われる過程を表す。
方策は、確率的に行動を算出するものであってもよい。あるいは、デルタ分布を用いて行動を一意に算出する方策を記述することもできる。行動を一意に算出する方策は決定論的方策と呼ばれ、a=π(s)のように関数的に表される。aは、時刻tにおける行動を示す。πは、方策を示す関数である。sは、時刻tにおける状態を示す。すなわち、方策は、時刻tにおける状態sから時刻tにおける行動aを算出(または、決定、選択)するモデル(または、関数)であるということができる。
【0016】
累積報酬とは、ある期間に得られる報酬の和である。例えば、ある時刻tから(t+T)までの累積報酬Rは、式(1)のように表される。
【0017】
【数1】
【0018】
γはγ∈[0,1]の実数定数である。γを割引率とも称する。rは時刻tにおける報酬である。この累積報酬について、時刻tにおける状態s、行動aが与えられたときの、状態遷移確率ρ、方策πに関する累積報酬の条件付き期待値をQπ(s,a)と表記し、式(2)のように定義する。
【0019】
【数2】
【0020】
式(2)のQπ(s,a)はQ関数(または行動価値関数)と呼ばれる。Eは期待値を示す。
また、あらゆる状態sについて式(3)の値が最大となる方策πは最適方策と呼ばれる。
【0021】
【数3】
【0022】
ここで、行動aは方策πからサンプリングされるものとし、これをa~π(・|s)と表記する。最適方策をπと表す。
方策が最適方策πのときのQ関数は最適Q関数と呼ばれる。最適Q関数をQ(s,a)と表す。
基本的には「最適Q関数を最大化する行動aを出力」する決定論的方策が最適方策πとなる。つまり、式(4)のように書ける。
【0023】
【数4】
【0024】
強化学習ではQ関数のモデルおよび方策のモデルを用意し、学習を通してQ関数のモデルを最適Q関数に近づけ、そのQ関数のモデルを元に方策のモデルを最適方策に近づける。以下では、Q関数のモデルをQ関数モデルと呼び、方策のモデルを方策モデルと呼ぶことにする。
【0025】
<Q関数モデルを複数用いることの説明>
実施形態では、方策が決定論的方策である場合を例に説明するが、非決定論的方策を用いるようにしてもよい。
実施形態ではQ関数モデルを複数用いて、Q関数モデルが過大に推定されることを緩和する。Q関数モデルを2つ用いる場合を例に説明するが、3つ以上のQ関数モデルを用いるようにしてもよい。
【0026】
Q関数モデルを2つ用意することが、Q関数モデルが過大に推定されることの緩和に繋がる理由を説明する。例えば、行動が連続値のマルコフ決定過程に対し、経験再生(Experience Replay)の手法を用い、平均二乗TD誤差をベースにQ関数モデルを最適化することを考える。
TD誤差(Temporal Difference Error)δTDを式(5)のように定義する。
【0027】
【数5】
【0028】
TD誤差δTDは、報酬の見込みと実際の報酬との差を示す。
yは式(6)のように示され、機械学習における教師あり学習の教師信号に近い役割を果たす。
【0029】
【数6】
【0030】
yを教師信号とも称する。
φは、方策モデルのパラメータである。
θは、Q関数モデルのパラメータである。θ’はQ関数モデルの更新を安定化させるためのターゲットパラメータである。ターゲットパラメータθ’には、基本的には過去のθの値が使われ、定期的に最新のθの値に更新される。学習中にパラメータθの値が更新され、θを用いたQ関数が変化するのに対し、ターゲットパラメータθ’の値の更新をθの更新に対して遅らせることで、教師信号yの値の急激な変動を抑えることができ、学習が安定すると期待される。
パラメータの値を更新することを、パラメータを更新するとも称する。モデルのパラメータが更新されることで、モデルも更新される。
【0031】
Q関数モデルのパラメータθを明示して「Qθ」と表記している。Q関数モデルQθが示すQ関数を、Q関数Qθとも称する。「Qθ」の「θ」をパラメータ変数と捉える場合、「Qθ」は、Q関数モデルを示す。一方、「Qθ」の「θ」をパラメータ値と捉える場合、「Qθ」は、Q関数を示す。
【0032】
方策πのパラメータφを明示して「πφ」と表記している。方策モデルπφが示す方策を、方策πφとも称する。「πφ」の「φ」をパラメータ変数と捉える場合、「πφ」は、方策モデルを示す。一方、「πφ」の「φ」をパラメータ値と捉える場合、「πφ」は、方策を示す。
Q関数モデルのパラメータθの学習のために、式(7)の損失関数J(θ)を用いることができる。
【0033】
【数7】
【0034】
Bは、経験を記憶する経験記憶装置からサンプルされる経験のミニバッチである。「経験」とは過去に起きた状態遷移のことである。この経験は、状態sと、状態sに対する行動aと、行動aに応じた報酬rと、行動aに応じた次の状態s’とを組み合わせた(s,a,r,s’)で表される。(s,a,r,s’)~Bは、ミニバッチBに含まれる経験(s,a,r,s’)を示す。
【0035】
教師信号yが学習中に変化するパラメータθ’に依存することから、Q関数モデルの最適化の実行中に教師信号yは変化する。
方策モデルπφについて決定論的方策を仮定しており、別の更新則でQθを最大化するaを出力するようにパラメータφが更新される。
【0036】
ここでいう別の更新則として、方策πが、Qθの値を最大化するような行動aを出力するように、パラメータφの値を更新するいろいろな更新則を用いることができる。
例えば、目的関数Jπ(φ)=[Qθ(s,πφ(s))]として、この目的関数Jπ(φ)の値を最大化するように確率的勾配法を適用する更新則を用いるようにしてもよいが、これに限定されない。
【0037】
Q関数の学習に時間を要する要因の1つに、Q関数の過大推定問題と呼ばれる問題がある。Q関数の過大推定で問題となるのは式(6)のQθ’(s’,πφ(s’))の部分である。ターゲットパラメータθ’および同期元のパラメータθが、方策πφに関する累積報酬の期待値としての真のQ関数Qπφを上手く近似できていない場合、πφ(s)が「上手く近似ができていないQθを最大化するaを出力する」ため、Q関数モデルの出力値が真のQ関数の出力値よりも大きくなるような過大バイアスが入ってしまう。結果として、式(5)から(7)までを用いた学習でθは誤った方向に更新されてしまう。
【0038】
そこで、実施形態では、2つのQ関数モデルを用意し、出力値を比較して小さい方の出力値を採用することでQ関数の過大推定を緩和する。言い換えると、これにより、モデル更新が安定するため学習に必要な時間が短縮されると期待される。
実施形態では、同じQ関数モデル本体に異なるパラメータ値を適用することで、複数のQ関数モデルを構成する場合を例に説明する。
【0039】
具体的には、実施形態に係る制御システムは、2つのQ関数モデルに共通のQ関数モデル本体にパラメータθを適用して第1Q関数モデルを構成する。また、制御システムは、Q関数モデル本体にパラメータθを適用して第2Q関数モデルを構成する。
【0040】
そして、制御システムは、第1Q関数モデルの値と、第1Q関数モデルおよび第2Q関数モデルのうち何れか小さい方の値とを用いる損失関数を用いて、第1Q関数モデルのパラメータθの値を更新する。また、制御システムは、第2Q関数モデルの値と、第1Q関数モデルおよび第2Q関数モデルのうち何れか小さい方の値とを用いる損失関数を用いて、第2Q関数モデルのパラメータθの値を更新する。
例えば上記の式(5)を式(8)のように変更する。
【0041】
【数8】
【0042】
式(8)のQ関数Qθ1(s,a)を表すモデルは、第1Q関数モデルの例に該当する。Q関数Qθ2(s,a)を表すモデルは、第2Q関数モデルの例に該当する。Q関数Qθ2(s,a)は、Q関数モデルQθ1(s,a)のパラメータθをパラメータθに置き換えたQ関数モデルQθ2(s,a)が示すQ関数である。
CDQは、式(9)のように示される。
【0043】
【数9】
【0044】
CDQを教師信号とも称する。
上記の式(7)の損失関数J(θ)を、式(10)の損失関数JQM(θ)のように変更する。
【0045】
【数10】
【0046】
式(8)から(10)まではQ関数モデルの2つのパラメータθ、θのうちのθの更新則である。θも、式(8)から(10)においてθをθに置き換えた更新則で最適化される。Q関数モデルが2つになるのでターゲットパラメータもそれぞれθ’、θ’が用いられ、出力値の小さい方のターゲットパラメータが教師信号の計算に使われる。
【0047】
ただし、制御システムが、Q関数毎に異なるQ関数モデル本体を用いて複数のQ関数モデルを構成するようにしてもよい。この場合も、制御システムは、個々のQ関数モデルの値と、複数のQ関数モデルの最小値とを用いた損失関数を用いて、Q関数モデル毎にパラメータを更新する。
【0048】
式(9)の「Qθ’i(s’,πφ(s’))」は、状態s’と、状態s’を方策πφに適用して得られる行動πφ(s’)とをQ関数モデルQθ’iに適用することを示している。この「Qθ’i(s’,πφ(s’))」は、状態s’が与えられ、状態s’に応じて行動πφ(s’)が得られた場合の、累積報酬の条件付き期待値を示す。この点で、Q関数モデルQθ’iは、状態s’における行動πφ(s’)の良さ(または、価値、有効性、好ましさ)を評価(または、推定)するモデルであるということができる。Q関数モデルQθ’iの値は、状態s’における行動πφ(s’)の良さ(または、価値、有効性、好ましさ)の指標値であるということができる。
【0049】
状態sは、第1状態の例に該当する。行動aは、第1行動の例に該当する。制御対象が、第1状態である状態sにて第1行動である行動aを行った場合の遷移先の状態s’は、第2状態の例に該当する。第2状態である状態s’を方策πφに適用して得られる行動πφ(s’)は、第2行動の例に該当する。
【0050】
Q関数Qθ’iは、第2行動評価関数の例に該当する。ここでいう第2行動評価関数は、第2状態における第2行動の評価値を算出する関数である。
Q関数に状態s’と行動πφ(s’)と適用したQ関数値Qθ’i(s’,πφ(s’))は、第2行動評価値の例に該当する。ここでいう第2行動評価値は、第2状態における第2行動の評価値である。第2行動評価値を第2評価値とも称する。
【0051】
Q関数モデルQθ’iは、第2行動評価関数モデルの例に該当する。ここでいう第2行動評価関数モデルは、第2行動評価関数のモデルである。第2行動評価関数モデルのパラメータ値が定まることで、第2行動評価関数モデルが、1つの第2行動評価関数を示す。
【0052】
ただし、実施形態における第2行動の評価手段は、関数の形式で示されるもの(第2行動評価関数)に限定されない。第2状態と第2行動との入力に対して第2行動の評価値を出力可能ないろいろな手段を、第2行動の評価手段として用いることができる。例えば、第2行動の評価手段が、ホワイトノイズなどの揺らぎを持った評価値を出力するものであってもよい。この場合、第2行動の評価手段が、同じ第2状態および第2行動の入力に対して異なる評価値を出力するものであってもよい。
【0053】
第2行動の評価手段が、関数の形式で示されるものに限定されないことから、実施形態における第2行動の評価モデルも、関数を示すモデル(第2行動評価関数モデル)に限定されない。このように、関数を表すモデルに限定されない第2行動の評価モデルを、第2行動評価モデル、または単に評価モデルと称する。
Q関数モデルQθ’iは、関数モデルの例にも該当する。
【0054】
また、実施形態では、Q関数モデルの過大推定を更に緩和するために、経験に優先度を付して、優先度の高い経験を優先的に学習に用いる。この手法を、優先度付き経験再生法(Prioritized Experience Replay; PER)と称する。
具体的には、過去の経験に対しそれぞれ「優先度」を紐付けて「優先度記憶装置」に記憶する。そして、経験取得部が優先度に基づいて経験を選択し、ミニバッチを構築する。ミニバッチ内の経験がモデル更新に用いられるため、優先度の高い経験ほど更新に用いられ易い。また、ミニバッチ内の経験に対し、新しい優先度の値を算出して優先度を更新する。
【0055】
<実施形態における構成>
図1は、実施形態に係る制御システムの構成例を示す図である。図1に示す構成で、制御システム10は、観測器12、状態推定装置13、報酬計算装置14、制御実施装置15、制御決定装置20、方策モデル記憶装置21、学習装置30、経験記憶装置31、および、評価モデル記憶装置40を備える。
【0056】
制御対象11は、制御システム10による制御の対象である。制御可能ないろいろな事物を制御対象11とすることができる。制御対象11が、制御システム10の一部となっていてもよい。あるいは、制御対象11が、制御システム10の外部の構成となっていてもよい。
【0057】
観測器12は、制御対象11の状態推定に用いられる情報を観測する。
状態推定装置13は、観測器12から得た情報を元に制御対象11の状態を推定する。
報酬計算装置14は、例えばユーザーが指定する「状態に対する点数(報酬)計算則」に従い、報酬を計算する。ただし、報酬計算装置14が報酬を取得する方法は、特定の方法に限定されない。報酬計算装置14が報酬を取得する方法として、状態に応じた報酬を取得可能ないろいろな方法を用いることができる。
【0058】
ある状態sとある行動aとが決まると、行動aによる状態sからの遷移先の状態s’が決まる。すると、報酬計算装置14は、状態s’に応じた報酬を算出することができる。この点で報酬は、ある状態におけるある行動の良さ(または、有効性、価値、好ましさ)を表す指標値であるということができる。
報酬は、第1行動評価値の例に該当する。ここでいう第1行動評価値は、第1状態における第1行動の評価値である。第1行動評価値を第1評価値とも称する。
【0059】
制御実施装置15は、制御決定装置20が出力する制御値に従い、制御対象11を制御する。
制御実施装置15は、制御実施手段の例に該当する。
制御決定装置20は、状態推定装置13が推定する状態と、方策モデル記憶装置21が記憶する方策モデルとを参照し、方策πの演算を行い制御値を出力する。
制御決定装置20は、制御決定手段の例に該当する。
【0060】
方策モデル記憶装置21は、状態の入力に対して制御値を出力する方策モデルを記憶する。例えば、方策モデル記憶装置21は、方策モデル本体と、方策モデルのパラメータφとを記憶する。方策モデル本体にパラメータφを適用することで、方策モデルを得られる。
学習装置30は、状態推定装置13が出力する状態s、制御決定装置20が出力する制御値による制御対象の行動a、報酬計算装置14が出力する報酬r、および、制御実施装置15の制御により行動aが行われた直後に状態推定装置13が出力する状態、すなわち状態遷移後の状態s’の組(s,a,r,s’)、すなわち経験を経験記憶装置31に逐一追加・記録する。ここでの逐一は、例えば、制御実施装置15が制御対象11に対する制御を行う毎である。
【0061】
また、学習装置30は、方策モデル記憶装置21、評価モデル記憶装置40、および、経験記憶装置31を参照して、方策モデル記憶装置21および評価モデル記憶装置40の更新も行う。具体的には、学習装置30は、これらの記憶装置が記憶するモデルおよび経験を参照して、これらのモデルのパラメータを更新する。
【0062】
図2は、評価モデル記憶装置40の構成例を示す図である。図2に示す構成で、評価モデル記憶装置40は、第1Q関数モデル記憶装置41と、第2Q関数モデル記憶装置42とを備える。
【0063】
第1Q関数モデル記憶装置41は、上述した第1Q関数モデルのパラメータθを記憶する。第2Q関数モデル記憶装置42は、上述した第2Q関数モデルのパラメータθを記憶する。
また、評価モデル記憶装置40は、第1Q関数モデルと第2Q関数モデルとに共通のQ関数モデル本体を記憶する。第1Q関数モデル記憶装置41および第2Q関数モデル記憶装置42のうち何れか一方、または両方が、Q関数モデル本体を記憶するようにしてもよい。あるいは、評価モデル記憶装置40が、第1Q関数モデル記憶装置41および第2Q関数モデル記憶装置42とは異なる記憶領域を有してQ関数モデル本体を記憶するようにしてもよい。
【0064】
これにより、評価モデル記憶装置40は、方策モデル記憶装置21に記録される方策の性能の評価、および、前述のQ関数モデルの過大推定問題の緩和に用いられる、2つのQ関数モデルを記憶する。特に、評価モデル記憶装置40は、これら2つのQ関数モデルそれぞれのパラメータを記憶する。
【0065】
図3は、学習装置30の構成例を示す図である。図3に示す構成で、学習装置30は、優先度記憶装置33、経験取得部34、ミニバッチ記憶装置35、優先度算出部37、優先度設定部38、モデル更新部50、および、モデル計算部53を備える。モデル更新部50は、Q関数モデル更新部51、および、方策モデル更新部52を備える。
優先度記憶装置33は、経験記憶装置31が記憶する経験それぞれに対応する優先度を記憶する。この優先度は、優先度算出部37が算出する。
【0066】
経験取得部34は、優先度記憶装置33が記憶する優先度に従い、経験記憶装置31から経験を優先度付きサンプリングでサンプリングしミニバッチを構成する。なおミニバッチを構成する際、各経験のインデックスiも併せる。これはミニバッチ内の経験が経験記憶装置31内のどの経験に対応するのかを確認できるようにするためである。構成されたミニバッチは、次回のサンプリングまではミニバッチ記憶装置35に一時的に保存される。
経験取得部34は、経験取得手段の例に該当する。
【0067】
優先度算出部37は第1Q関数モデル記憶装置41、および、第2Q関数モデル記憶装置42を用いて、ミニバッチ内の経験についてそれぞれ優先度を算出する。具体的には、優先度算出部37は、式(11)を用いて、パラメータθおよびθのうち何れかQ関数値が大きくなるほうのインデックスをκに設定する。
【0068】
【数11】
【0069】
そして、優先度算出部37は、式(12)を用いて新たな優先度P’を算出する。
【0070】
【数12】
【0071】
ここでインデックスbは経験のインデックスであり、その経験がミニバッチ内に格納されていることを示している。インデックスbで識別される経験を、インデックスbの経験とも称する。
は、インデックスbの経験における状態を示す。aは、インデックスbの経験における状態sに対する行動を示す。rは、インデックスbの経験における状態sの下での行動aに応じた報酬を示す。s’は、インデックスbの経験における状態sでの行動aによる遷移先の状態を示す。
優先度算出部37は、2つのQ関数モデルそれぞれに(s,a)を入力し、得られる出力値を比較して大きい方のモデルを用いて(式(11)参照)、TD誤差の絶対値を新しい優先度P’として算出する(式(12)参照)。
【0072】
算出された新たな優先度P’は優先度設定部38に出力される。優先度設定部38はミニバッチ内の経験のインデックスを参照し、優先度記憶装置33内の経験のインデックスに対応する各優先度を上書き更新する。すなわち、優先度設定部38は、インデックスbの経験の優先度を更新する。
また、優先度設定部38は、新規に追加され優先度が紐付けられていない経験に対し、優先度記憶装置33を参照して優先度の初期値を付与する。例えば、優先度設定部38は、優先度記憶装置33が記憶する全ての経験に紐付けられている各優先度を参照し、最大の値をとる優先度(すなわち、最も高い優先度)を、新規に追加された経験に紐付ける。
優先度設定部38は、優先度設定手段の例に該当する。
【0073】
モデル更新部50はミニバッチ記憶装置35が記憶するミニバッチと、優先度算出部37が算出する経験の優先度とを参照して、パラメータθ、θおよびφを更新する。モデル更新部50は、モデル更新手段の例に該当する。
上記のように、パラメータθは、第1Q関数モデルのパラメータである。第1Q関数モデル記憶装置41がパラメータθを記憶する。パラメータθは、第2Q関数モデルのパラメータである。第2Q関数モデル記憶装置42がパラメータθを記憶する。方策モデル記憶装置21がパラメータφを記憶する。
【0074】
Q関数モデル更新部51は、パラメータθおよびθを更新する。具体的には、Q関数モデル更新部51は、式(10)に示される損失関数JQM(θ)の値を小さくするように、パラメータθを更新する。また、Q関数モデル更新部51は、式(10)のパラメータθ1をパラメータθに置き換えて得られる損失関数JQM(θ)の値を小さくするように、パラメータθを更新する。
Q関数モデル更新部51は、評価モデル更新手段の例に該当する。
【0075】
方策モデル更新部52は、パラメータφを更新する。具体的には、方策モデル更新部52は、上述した目的関数Jπ(φ)の値を大きくするように、パラメータφを更新する。実施形態ではQ関数が2つあるので、方策モデル更新部52は、Qθ1(s,πφ(s))およびQθ2(s,πφ(s))のうち値が小さい方を目的関数「Jπ(φ)=[Qθ(s,πφ(s))]」の「Qθ(s,πφ(s))」に適用して、パラメータφを更新する。
方策モデル更新部52は、方策モデル更新手段の例に該当する。
【0076】
モデル計算部53は、第1Q関数モデル、第2Q関数モデル、方策モデルの各々の値を計算する。例えば、モデル計算部53は、Q関数モデル更新部51が第1Q関数モデル、第2Q関数モデルの各々を更新する際、式(8)から(10)までにおける第1Q関数モデル、第2Q関数モデル、方策モデルの各々の値を算出する。また、モデル計算部53は、方策モデル更新部52が方策モデルを更新する際、目的関数Jπ(φ)の値を算出するために、第1Q関数モデル、第2Q関数モデル、方策モデルの各々の値を算出する。また、モデル計算部53は、優先度算出部37が経験の優先度を算出する際に参照する、第1Q関数モデル、第2Q関数モデルの各々の値を算出する。
モデル計算部53は、モデル計算手段の例に該当する。
【0077】
<実施形態における処理>
図4は、制御システム10が行う処理の手順の例を示すフローチャートである。制御システム10は、図4の処理を繰り返し行う。
図4の処理で、観測器12が制御対象11に関する観測を行う(ステップS101)。例えば、観測器12は、制御対象11とその周囲環境とを観測する。
【0078】
次に状態推定装置13が観測器12の観測情報を元に、制御対象11に関する状態を推定する(ステップS102)。例えば、状態推定装置13は、制御対象11とその周囲環境とを含んだ状態を推定するなど、制御対象11の制御に影響し得る状態を推定する。
次に制御決定装置20が、状態推定装置13が推定する状態と、方策モデル記憶装置21とを参照して、制御値を算出し出力する(ステップS103)。次に制御実施装置15が、制御決定装置20が出力する制御値に従い制御対象11の制御を実施する(ステップS104)。
【0079】
次に報酬計算装置14が、状態推定装置13が推定する状態と、制御決定装置20が出力する制御値とを参照して報酬を算出し出力する(ステップS105)。
次に学習装置30が、状態推定装置13が推定する状態と、制御決定装置20が出力する制御値と、報酬計算装置14が出力する報酬とを、経験として経験記憶装置31に追加、記録する(ステップS106)。
【0080】
次に学習装置30が、方策モデル記憶装置21が記憶する方策モデル、評価モデル記憶装置40が記憶するQ関数モデル、および、経験記憶装置31が記憶する経験を参照して、これらのモデルを更新する(ステップS107)。具体的には、方策モデル更新部52が、方策モデル記憶装置21が記憶する方策モデルのパラメータφを更新する。Q関数モデル更新部51は、評価モデル記憶装置40が記憶するQ関数モデルのパラメータθおよびθを更新する。
ステップS107の後、制御システム10は、図4の処理を終了する。上述したように、制御システム10は、ステップS101からS107までの一連の処理を再度繰り返す。
【0081】
図5は、制御システム10がモデルを更新する処理手順の例を示すフローチャートである。制御システム10は、図4のステップS107で図5の処理を行う。
図5の処理で、優先度設定部38が経験記憶装置31に追加された経験に対する優先度の初期値を優先度記憶装置33に追加記録する(ステップS1071)。
次に経験取得部34が優先度付き経験再生を行いミニバッチを構成し(ステップS1072)、ミニバッチ記憶装置35に記録する(ステップS1073)。
【0082】
次にモデル計算部53が、ミニバッチ記憶装置35内のミニバッチ、第1Q関数モデル記憶装置41が記憶する第1Q関数モデル、および、第2Q関数モデル記憶装置42が記憶する第2Q関数モデルを参照し、ミニバッチ内の各経験に内包される状態、制御値の組(s,a)を入力にしたときの第1Q関数モデルの値および第2Q関数モデルの値を算出し出力する(ステップS1074)。
【0083】
続いて優先度算出部37は、各経験について、第1Q関数モデルおよび第2Q関数モデルのうち出力値が最大のQ関数モデルを選択し(ステップS1075)、選択されたQ関数モデル用のTD誤差を算出する(ステップS1076)。ステップS1075は式(11)に相当する。ステップS1076は式(12)に相当する。
【0084】
次に優先度算出部37は算出されたTD誤差の絶対値を新たな優先度として算出する(ステップS1077)。続いて優先度設定部38は優先度算出部37により算出された新たな優先度を参照し、優先度記憶装置33内の対応する経験について優先度を新たな優先度に更新する(ステップS1078)。
【0085】
そして、モデル更新部50は、ミニバッチ記憶装置35内のミニバッチ、および、優先度算出部37を用いて、方策モデル記憶装置21、第1Q関数モデル記憶装置41、および、第2Q関数モデル記憶装置42、に保存される各パラメータを更新する(ステップS1079)。
【0086】
具体的には、モデル計算部53が、ミニバッチ記憶装置35内のミニバッチから優先度に従って経験を読み出し、読み出した経験を用いて第1Q関数モデル、第2Q関数モデル、方策モデルの各々の値を算出する。Q関数モデル更新部51は、第1Q関数モデル、第2Q関数モデル、方策モデルの各々の値を参照して、第1Q関数モデルおよび第2Q関数モデルを更新する。方策モデル更新部52は、第1Q関数モデル、第2Q関数モデル、方策モデルの各々の値を参照して、方策モデルを更新する。
ステップS1079の後、制御システム10は、図5の処理を終了する。
【0087】
ステップS1077で優先度算出部37の算出する優先度は、過大推定を起こしている可能性の高い方のQ関数モデルのTD誤差の絶対値である。これにより、優先度付き経験再生にて過大推定を起こしている可能性の高い経験ほどモデル更新に使用され易くなる。これにより、Q関数モデルの過大推定問題を積極的に緩和することができ、結果として学習が安定するため、必要な演算処理時間を短縮できる。
【0088】
以上のように、モデル計算部53は、制御対象11の状態sにおける行動aに応じた状態s’と、状態s’から方策モデルπφを用いて算出される行動πφ(s’)とに基づいて、状態s’における行動πφ(s’)の良さの指標値であるQ関数値Qθ’1(s’,πφ(s’))およびQθ’2(s’,πφ(s’))を算出する2つのQ関数モデルQθ’1およびQθ’2を用いて、それぞれQ関数値を算出する。
【0089】
上述したように、状態sは、第1状態の例に該当する。行動aは、第1行動の例に該当する。状態s’は、第2状態の例に該当する。行動πφ(s’)は、第2行動の例に該当する。Q関数値Qθ’1(s’,πφ(s’))およびQθ’2(s’,πφ(s’))は、第2評価値の例に該当する。Q関数モデルQθ’1およびQθ’2は、評価モデルの例に該当する。
【0090】
モデル更新部50は、Q関数値Qθ’1(s’,πφ(s’))およびQθ’2(s’,πφ(s’))のうち何れか小さい方のQ関数値と、報酬rとに基づいて、Q関数モデルQθ’1およびQθ’2を更新する。報酬rは、状態sにおける行動aの良さの指標値である第1評価値の例に該当する。
【0091】
このように、学習装置30では、複数のQ関数モデルを用いてQ関数モデルの学習を行うことで、値が比較的小さいQ関数を用いて行動の評価を推定することができる。これにより、Q関数モデルの過大推定など行動の評価が過大に推定されることを緩和することができる。学習装置30によれば、この点で、強化学習に必要な時間の短縮を図ることができる。
【0092】
また、優先度設定部38は、経験毎に、その経験を用いた場合のQ関数値の誤差の大きさに基づく優先度を紐づける。経験取得部34は、優先度に基づいて経験を取得する。
これにより、学習装置30は、Q関数値の誤差が大きくなる経験を優先的に用いてQ関数モデルの学習を行うことができ、誤差を効率的に改善できることが期待される。
学習装置30によれば、この点で、強化学習に必要な時間の短縮を図ることができる。
【0093】
また、経験取得部34は、優先度に基づいて経験をサンプリングしたミニバッチを取得する。
これにより、学習装置30は、優先度が高い複数の経験を用いて評価関数の学習を行うことができる。
学習装置30によれば、複数の経験を用いて学習を行う点で学習が安定し、かつ、優先度が高い経験を用いる点で、強化学習に必要な時間の短縮を図ることができる。
【実施例1】
【0094】
図6は、実施例1における制御対象の振り子の例を示す図である。
実施例1では、制御システム10が、図6のような振り子を倒立させる例について説明する。図6の振り子11Aは、制御対象11の例に該当する。この振り子11Aは軸にモーターが付いており、振り子11Aの動きをモーターで制御できる。
ここで、実施例1の目的は、モーターの制御により、制限時間100秒の間に振り子11Aを倒立させ(図6の位置POS3)、倒立状態をできるだけ長く維持させる自動制御則(自動制御のための方策)を学習により獲得することとする。
【0095】
ただし、このモーターのトルクはあまり強くなく、例えば振り子11Aを位置POS1から直接位置POS3へ移動させて倒立させることはできない。このため、位置POS1にある振り子11Aを倒立させるには、まずトルクを掛けて例えば位置POS2まで移動させある程度位置エネルギーを蓄えてから、逆方向に適度なトルクを掛けて位置POS3まで持っていく必要がある。
実施例1では、特に断らない場合は、「π」は円周率を示し、「θ」は角度を示す。
【0096】
実施例1では、観測器12は振り子11Aの角度θを測定するセンサーである。ここで角度はy軸の正の向きを基準としてθ∈[-π,π]と定義する。なお、図6の位置POS1はθ=-5π/6に相当する。位置POS2はθ=5π/12に相当する。位置POS3はθ=0に相当する。
【0097】
振り子11Aの状態sを、角度θ、角速度θ′、および、各加速度θ”で表すものとし、(θ,θ′,θ”)と表記する。また、実施例1では位置POS1を振り子11Aの初期位置とし、初期角度-5π/6とする。初期角速度、初期角加速度は共に0とする。
【0098】
状態推定装置13は観測器12のセンサー情報から真の軸の角度θ、角速度θ′、角加速度θ”を推定し、状態s=(θ,θ′,θ”)の情報を構成する。状態推定装置13は、0.1秒毎に状態推定を行い、状態の情報を0.1秒毎に出力するものとする。状態推定装置13のアルゴリズムとして例えばカルマンフィルタ等を使うこととする。
【0099】
報酬計算装置14は状態推定装置13から状態sの情報を受け取り、報酬関数r(s)=-θを算出する。この報酬関数は実施例1の目的に合わせて、倒立時間が長くなるほど累積報酬が高くなるように設計されているものとする。
【0100】
制御実施装置15は制御決定装置20から制御値cを受け取り、振り子11Aを制御する。実施例1での制御値cは、モーターに掛ける電圧Vであり、制御値cの値域は[-2V,+2V]であるとする。また制御実施装置15は新たな制御値cを受け取るまでは同じ電圧をモーターに掛け続けるものとする。制御値cは、振り子11Aの行動aを示す。
【0101】
また、状態推定装置13の状態算出(図4のステップS102)から0.01秒間で、制御決定装置20の処理(図4のステップS103)、制御実施装置15の処理(図4のステップS104)、および、報酬計算装置14の処理(図4のステップS105)が完了するものとする。これにより、状態推定装置13における状態推定の0.01秒後に制御値が変更されるものとする。制御決定間隔は状態推定間隔と同様に0.1秒とする。
【0102】
離散時間ラベルt=0、1、2、3、...を、制御開始時刻、(制御開始時刻+0.1秒後)、(制御開始時刻+0.2秒後)、(制御開始時刻+0.3秒後)、...と定義する。制御開始時刻、(制御開始時刻+0.1秒後)、(制御開始時刻+0.2秒後)、(制御開始時刻+0.3秒後)、...について推定される状態ベクトルをs、s、s、s、...と表記する。制御開始時刻、(制御開始時刻+0.1秒後)、(制御開始時刻+0.2秒後)、(制御開始時刻+0.3秒後)、...について算出される制御値をc、c、c、c、...と表記する。制御値c、c、c、c、...が示す振り子11Aの行動を、a、a、a、a、...と表記する。制御開始時刻、(制御開始時刻+0.1秒後)、(制御開始時刻+0.2秒後)、(制御開始時刻+0.3秒後)、...について算出される報酬値をr、r、r、r、...と表記する。
【0103】
制御決定装置20は状態推定装置13から状態sを受け取り、方策モデル記憶装置21が記憶する方策モデルを参照して方策モデルの演算を行い、演算結果を制御値cとして制御実施装置15に送信する。
実施例1では、方策モデルは隠れ層2層の全結合型のニューラルネットワークで、入力層が状態sを受け取り、出力層が制御値cを出力する。また隠れ層1層あたりのノード数は256個とし、活性化関数としてtanh関数を使用することとする。このニューラルネットワークモデルの全パラメータは方策モデル記憶装置21に保持される。
【0104】
経験記憶装置31は各時刻tにおける、状態推定装置13が推定する状態s、制御決定装置20が出力する制御値c、報酬計算装置14が出力する報酬値r、および、次の時刻(t+1)にて状態推定装置13が推定する状態st+1の組(s,c,r,st+1)、すなわち「経験」を逐次記録していく。上記のように、制御値cは、行動aを示す。
【0105】
評価モデル記憶装置40の第1Q関数モデル記憶装置41が記憶するモデル、および、第2Q関数モデル記憶装置42が記憶するモデルは、何れも方策モデルと同様に、隠れ層2層の全結合型のニューラルネットワークで、隠れ層1層あたりのノード数は256個とし、活性化関数としてtanh関数を使用することとする。ただし、入力層は状態と制御値の組(s,c)を受け取り、出力層はQ(s,c)の値を出力する。
【0106】
学習装置30では、新たに追加された経験に対して優先度設定部38が初期優先度を優先度記憶装置33に記録する(図5のステップS1071)。優先度設定部38は、初期優先度として、最初の経験に対しては1を割り当て、それ以降は「これまで算出された優先度のうちの最大値」を割り当てる。
経験取得部34は、式(13)に示す確率に従って経験をサンプリングする。
【0107】
【数13】
【0108】
iは経験記憶装置31内の経験のインデックスである。pは経験iに対する優先度である。Kはサンプリング時における経験記憶装置31内の全経験数である。αはサンプリング時における優先度pの重みを調整するハイパーパラメータである。αの値として、例えば0.6などの値を用いる。また、ここではミニバッチが含む経験数を256個とし、これを優先度付きサンプリングで構築する。
【0109】
このミニバッチに対して優先度算出部37は実施形態で述べた方法で新たな優先度を算出する。優先度設定部38は、対象となる経験に紐付けられる優先度を、新たな優先度に更新する。
【0110】
モデル更新部50はミニバッチ内の全経験を用いて、以下の3つの目的関数を確率的勾配降下法で最小化することでモデルを更新する。
1つ目の目的関数は、Q関数モデルのパラメータθを調整するための目的関数であり、式(14)のように示される。
【0111】
【数14】
【0112】
式(14)の「θ」は、Q関数モデルのパラメータを示す。「πφ」は、方策を示す。
bは、経験のインデックスであり、ミニバッチに含まれている経験であることを示す。Nは、ミニバッチ内の経験の個数を示す。ωは、経験の優先度に応じた重み(重み係数)を示す。
式(14)は、式(10)に示される損失関数の例に該当する。具体的には、式(14)で、式(10)に示される損失関数に重みωを導入し具体化した例に該当する。
2つ目の目的関数は、Q関数モデルのパラメータθを調整するための目的関数であり、式(15)のように示される。
【0113】
【数15】
【0114】
式(15)の「θ」は、Q関数モデルのパラメータを示す。「πφ」は、方策を示す。
式(15)は、式(10)においてθをθに置き換えた損失関数の例に該当する。具体的には、式(15)は、式(10)においてθをθに置き換えた損失関数に重みωを導入し具体化した例に該当する。
3つ目の目的関数は、方策モデルのパラメータφを調整するための目的関数であり、式(16)のように示される。
【0115】
【数16】
【0116】
式(16)の「θ」は、Q関数モデルのパラメータを示す。「πφ」は、方策を示す。
式(16)は、上述した目的関数Jπ(φ)の式「Jπ(φ)=[Qθ(s,πφ(s))]」の最大化の例に該当する。具体的には、式(16)は、式「Jπ(φ)=[Qθ(s,πφ(s))]」に重みωを導入し具体化した例に該当する。式(16)の値を最大化するように、方策モデルのパラメータφの値を調整する。
優先度算出部37は、例えば式(17)に基づいて、インデックスbの経験の重みωを算出する。
【0117】
【数17】
【0118】
式(17)に示される重みωは、優先度付きサンプリングを重要度サンプリングと見なしたときの重要度重みを表す。この重要度重みを用いることで、優先度付きサンプリングによるバイアスを補正する効果が得られる。
【0119】
実施例1では、確率的勾配降下法を用いる際の学習率は0.003とし、エポック数は1とする。
重みω(重要度重み)の影響の度合いはハイパーパラメータβで調整可能である。この場合、優先度算出部37は、式(17)を用いて算出する重みωの値を、式(14)から(16)までのωに入力する。
【0120】
βの値域は[0,1]であり、βが0に近い程、重要度重みの影響を弱め、βが1に近い程、重要度重みの影響を忠実に再現する。優先度付きサンプリングによるバイアスはある程度残しておいた方が学習初期の学習効率が良いので、ここではβ=0.4を用いる。優先度算出部37が、例えば図4の処理の実行回数に応じて、ハイパーパラメータβの値を変更するようにしてもよい。
【0121】
優先度算出部37が、ハイパーパラメータβの適用とは別に、重みωのスケーリングを行うようにしてもよい。ここでは学習の安定性を保つために、ωをωmaxで割ったものを、実際の重要度重みの値とする。ωmaxは優先度記憶装置33内の全優先度に関して最大の値を用いて計算した値を取る。
優先度算出部37は、式(17)を用いて算出する重みωをωmaxで割った値を、式(14)から(16)までのωに入力する。
【0122】
実施例1における1つ目の効果として、Q関数の過大推定問題の緩和のために2つのQ関数を用いる際に適した優先度付きサンプリングを導入できる。
実施例1における2つ目の効果として、経験の優先度を定義することで、Q関数モデルの過大推定問題が積極的に緩和され、より少ない経験数で良好なQ関数モデルおよび方策モデルを獲得できると期待される。
上記2つの効果により、「倒立振り子」問題において、本発明技術を使用しない場合と比較して「少ない経験数」で倒立する方策モデルを獲得できると期待される。
【実施例2】
【0123】
実施例2では、制御システム10が、化学プラントの一種であるVAM(Vinyl Acetate Monomer)プラントの自動制御を行う例について説明する。
ここではVAMプラントシミュレータを制御対象11とするが、VAMプラントシミュレータが十分現実を再現している場合は、方策モデルを学習後に制御対象11を実際のVAMプラントに置き換えて適用してもよい。実施例2では、制御対象11を実際のVAMプラントに置き換えることを前提に説明をする。
【0124】
図7は、VAMプラントにおけるセクションの構成例を示す図である。VAMプラントは7つの異なる役割を果たすセクションで構成されている。
セクション1でVAMの原材料を混合する。セクション2で化学反応を起こしVAMを生成する。セクション3から5まででVAMの分離、圧縮および収集を行う。セクション6から7まででVAMの蒸留および沈殿を行う。これら一連の工程で得られるVAMが製品として売り出される。
【0125】
実施例2のVAMプラント全体として、圧力・温度・流量などを測定する観測機器が約100個、圧力・温度・流量などを調整するPID制御器(Proportional-Integral-Differential Controller)が約30個備え付けられている。実施例2では、このVAMプラントの全体収益を上げるような方策モデルを獲得することを目的とする。ここで全体収益とは、製品利益(VAM)から消費コスト(エチレン、酢酸酸素、電気、水など)を差し引いたものである。
【0126】
なおVAMプラントの制御時間は100時間とし、この制御時間の中で全体収益の累計が初期状態を継続するときの値よりも改善することを最終目的とする。ここでの初期状態とは、人手で各PID制御器の目標値を調整し、VAMプラント全体として定常状態になった状態のこととする。この初期状態はVAMプラントシミュレータで予め用意されているものを使用する。
【0127】
実施例2では、観測器12は上述した観測機器約100個を用いて構成される。使用したVAMプラントシミュレータでは、観測機器では測定できない重要な物理量も取得できるが、それらは使用しない。VAMプラントシミュレータを実際のVAMプラントに置き換えるためである。
【0128】
状態推定装置13は観測器12の情報から真の温度、圧力、流量などの物理量を推定し、状態を構成する。状態推定は30分毎に行われるものとし、状態の情報も30分毎に出力されるとする。状態推定装置13のアルゴリズムは例えばカルマンフィルタ等を使うこととする。
【0129】
報酬計算装置14は状態推定装置13から状態sを受け取り、上述の全体収益、r(s)を算出する。計算方法はVAMプラントシミュレータに準拠する。全体収益が上がるほど報酬も高くなる。
制御実施装置15は制御決定装置20から制御値cを受け取り、VAMプラントシミュレータを制御する。実施例2での制御値cは、各PID制御器の目標値である。制御実施装置15は新たな制御値cを受け取るまでは同じ目標値を維持する。制御値cは、VAMプラントの行動aを示す。
【0130】
また、状態推定装置13の状態算出(図4のステップS102)から1秒間で、制御決定装置20の処理(図4のステップS103)、制御実施装置15の処理(図4のステップS104)、および、報酬計算装置14の処理(図4のステップS105)が完了するものとする。これにより、状態推定装置13における状態推定の1秒後に制御値が変更されるものとする。制御決定間隔は状態推定間隔と同様に30分とする。
【0131】
離散時間ラベルt=0、1、2、3、...を、制御開始時刻、(制御開始時刻+30分後)、(制御開始時刻+60分後)、(制御開始時刻+90分後)、...と定義する。
【0132】
制御決定装置20、方策モデル記憶装置21、学習装置30、経験記憶装置31、評価モデル記憶装置40、については実施例1の場合と同様であり、説明を省略する。
【0133】
実施例2における2つの効果は実施例1の場合と同様である。その結果として、本発明技術を使用しない場合と比較して「少ない経験数」で全体収益を改善する方策モデルを獲得でき、VAMプラントシミュレータが十分現実を再現している場合は、実際のVAMプラントに方策モデルを適用しても同等の全体収益改善を出すことができる。
【実施例3】
【0134】
実施例3では、制御システム10が、人型ロボットを自動制御する場合について説明する。実施例3でも実施例2と同様にシミュレーションで学習した方策モデルを実際の制御対象に適用することを念頭に置いて説明する。つまり、ここでは制御対象11はシミュレータ上の人型ロボットであり、シミュレータを用いて得られた方策を実際の人型ロボットに適用することを考える。
【0135】
実施例3では、人型ロボットが制御時間100秒の間に、転ばずに二足歩行し続けるような方策モデルを獲得することを最終目的とする。制御対象の人型ロボットには17個の関節があり、それぞれにモーターが付いている。観測器12は各関節の角度およびトルクを測定するセンサーと、頭部に搭載されるLIDAR(Light Detection and Ranging)とを含む。使用したシミュレータでは観測器12では測定できない重要な物理量も取得できるが、それらは使用しない。実際の人型ロボットにも適用するためである。
【0136】
状態推定装置13は観測器12の情報から真の各関節の角度、角速度、角加速度、トルク、ロボットの重心の絶対座標、重心速度、各関節に掛かる負荷、を推定し、状態を構成する。状態推定は0.1秒毎に行われるものとし、状態の情報も0.1 秒毎に出力されるとする。状態推定装置13のアルゴリズムは例えばカルマンフィルタやSLAM(Simultaneous Localization And Mapping)等を使うこととする。
【0137】
報酬計算装置14は、状態推定装置13が出力する状態s、制御決定装置20が出力する制御値c、制御値cが制御実施装置15により実施された直後に状態推定装置13が出力する状態、すなわち状態遷移後の状態s′、の組(s,c,s′)を入力とし、報酬関数r(s,c,s′)を算出する。制御値cは、ロボットの行動を示す。
【0138】
報酬の計算方法はOpenAI社のgymに準拠する。基本は人型ロボットの重心速度が前方向に速いほど高い報酬を与える。また、可能な限り省電力にするためにモーターに強いトルクが出るほど減点する。また、人型ロボットが転ばないように、重心が高い位置に維持されるとボーナス点を与える。
【0139】
制御実施装置15は制御決定装置20から制御値cを受け取り、各関節のモーターのトルクを制御する。また、状態推定装置13の状態算出(図4のステップS102)から0.01秒間で、制御決定装置20の処理(図4のステップS103)、制御実施装置15の処理(図4のステップS104)、および、報酬計算装置14の処理(図4のステップS105)、が完了するものとする。これにより、状態推定装置13における状態推定の0.01秒後に制御値が変更されるものとする。制御決定間隔は状態推定間隔と同様に0.1秒とする。また、離散時間ラベルtを、実施例1と同様に状態推定のタイミングに合わせて定義する。
【0140】
制御決定装置20、方策モデル記憶装置21、学習装置30、経験記憶装置31、および、評価モデル記憶装置40、については実施例1の場合と同様であり、ここでは説明を省略する。
【0141】
実施例3における2つの効果は実施例1の場合と同様である。その結果として、本発明技術を使用しない場合と比較して「少ない経験数」で人型ロボットが転ばずに二足歩行する方策モデルを獲得でき、人型ロボットモデルが十分現実を再現している場合は、実際の人型ロボットに方策モデルを適用しても同等の全体収益改善を出すことができる。
【0142】
図8は、実施形態に係る学習装置の構成例を示す図である。図8に示す構成で、学習装置510は、モデル計算部511と、モデル更新部512とを備える。
かかる構成で、モデル計算部511は、制御対象の第1状態における第1行動に応じた第2状態と、第2状態から方策モデルを用いて算出される第2行動とに基づいて、第2状態における第2行動の良さの指標値である第2評価値を算出する評価モデルを複数用いて、それぞれ第2評価値を算出する。モデル更新部512は、複数の第2評価値のうち最も小さい第2評価値と、第1状態における第1行動の良さの指標値である第1評価値とに基づいて、評価モデルを更新する。
モデル計算部511は、モデル計算手段の例に該当する。モデル更新部512は、モデル更新手段の例に該当する。
【0143】
このように、学習装置510では、複数の評価関数を用いて評価関数の学習を行うことで、値が比較的小さい評価関数を用いて評価関数を推定することができる。これにより、例えばQ関数モデルの過大推定など、評価関数が過大に推定されることを緩和することができる。学習装置510によれば、この点で、強化学習に必要な時間の短縮を図ることができる。
【0144】
モデル計算部511は、例えば、図3に例示されているようなモデル計算部53等の機能を用いて実現することができる。モデル更新部512は、例えば、図3に例示されているようなモデル更新部50等の機能を用いて実現することができる。よって、学習装置510は、図3に例示されているような学習装置30等の機能を用いて実現することができる。
【0145】
図9は、実施形態に係る制御システムの構成例を示す図である。図9に示す構成で、制御システム520は、モデル計算部521と、評価モデル更新部522と、方策モデル更新部523と、制御決定部524と、制御実施部525とを備える。
【0146】
かかる構成で、モデル計算部521は、制御対象の第1状態における第1行動に応じた第2状態と、第2状態から方策モデルを用いて算出される第2行動とに基づいて、第2状態における第2行動の良さの指標値である第2評価値を算出する評価モデルを複数用いて、それぞれ第2評価値を算出する。評価モデル更新部522は、複数の第2評価値のうち最も小さい第2評価値と、第1状態における第1行動の良さの指標値である第1評価値とに基づいて、評価モデルを更新する。方策モデル更新部523は、評価モデルを用いて方策モデルを更新する。制御決定部524は、方策モデルを用いて制御値を算出する。制御実施部525は、制御値に基づいて制御対象を制御する。
【0147】
モデル計算部521は、モデル計算手段の例に該当する。評価モデル更新部522は、評価モデル更新手段の例に該当する。方策モデル更新部523は、方策モデル更新手段の例に該当する。制御決定部524は、制御決定手段の例に該当する。制御実施部525は、制御実施手段の例に該当する。
【0148】
このように、制御システム520では、複数の評価関数を用いて評価関数の学習を行うことで、値が比較的小さい評価関数を用いて評価関数を推定することができる。これにより、例えばQ関数モデルの過大推定など、評価関数が過大に推定されることを緩和することができる。制御システム520によれば、この点で、強化学習に必要な時間の短縮を図ることができる。
【0149】
モデル計算部521は、例えば、図3に例示されているようなモデル計算部53等の機能を用いて実現することができる。評価モデル更新部522は、例えば、図3に例示されているようなQ関数モデル更新部51等の機能を用いて実現することができる。方策モデル更新部523は、例えば、図3に例示されているような方策モデル更新部52等の機能を用いて実現することができる。制御決定部524は、例えば、図1に例示されているような制御決定装置20等の機能を用いて実現することができる。制御実施部525は、例えば、図1に例示されているような制御実施装置15等の機能を用いて実現することができる。よって、制御システム520は、図1から3までに例示されているような制御システム10等の機能を用いて実現することができる。
【0150】
図10は、実施形態に係る学習方法における処理手順の例を示す図である。図10に示す学習方法は、モデル計算工程(ステップS511)と、モデル更新工程(ステップS512)をと含む。
モデル計算工程(ステップS511)では、制御対象の第1状態における第1行動に応じた第2状態と、第2状態から方策モデルを用いて算出される第2行動とに基づいて、第2状態における第2行動の良さの指標値である第2評価値を算出する評価モデルを複数用いて、それぞれ第2評価値を算出する。モデル更新工程(ステップS512)では、複数の第2評価値のうち最も小さい第2評価値と、第1状態における第1行動の良さの指標値である第1評価値とに基づいて、評価モデルを更新する。
【0151】
図10の学習方法では、複数の評価関数を用いて評価関数の学習を行うことで、値が比較的小さい評価関数を用いて評価関数を推定することができる。これにより、Q関数モデルの過大推定など、評価関数が過大に推定されることを緩和することができる。図10の学習方法によれば、この点で、強化学習に必要な時間の短縮を図ることができる。
【0152】
図11は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図11に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
上記の学習装置30、学習装置510、および、制御システム520のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0153】
学習装置30がコンピュータ700に実装される場合、経験取得部34、優先度算出部37、優先度設定部38、モデル更新部50、Q関数モデル更新部51、および、方策モデル更新部52の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0154】
また、CPU710は、プログラムに従って、優先度記憶装置33、および、ミニバッチ記憶装置35に対応する記憶領域を主記憶装置720に確保する。
学習装置30と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0155】
学習装置510がコンピュータ700に実装される場合、モデル計算部511、および、モデル更新部512の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0156】
また、CPU710は、プログラムに従って、学習装置510が行う処理のための記憶領域を主記憶装置720に確保する。
学習装置510と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0157】
制御システム520がコンピュータ700に実装される場合、モデル計算部521、評価モデル更新部522、方策モデル更新部523、制御決定部524、および、制御実施部525の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0158】
また、CPU710は、プログラムに従って、制御システム520が行う処理のための記憶領域を主記憶装置720に確保する。
制御実施部525から制御対象への制御信号の送信など、制御システム520と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0159】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、首記億装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0160】
なお、学習装置30、学習装置510、および、制御システム520が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0161】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0162】
本発明の実施形態は、学習装置、学習方法、制御システムおよび記録媒体に適用してもよい。
【符号の説明】
【0163】
10、520 制御システム
11 制御対象
12 観測器
13 状態推定装置
14 報酬計算装置
15 制御実施装置
20 制御決定装置
21 方策モデル記憶装置
30、510 学習装置
31 経験記憶装置
33 優先度記憶装置
34 経験取得部
35 ミニバッチ記憶装置
37 優先度算出部
38 優先度設定部
40 評価モデル記憶装置
41 第1Q関数モデル記憶装置
42 第2Q関数モデル記憶装置
50、512 モデル更新部
51 Q関数モデル更新部
52、523 方策モデル更新部
53、511、521 モデル計算部
522 評価モデル更新部
524 制御決定部
525 制御実施部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11