(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】強化学習方法、強化学習プログラム、および強化学習システム
(51)【国際特許分類】
G05B 13/02 20060101AFI20231108BHJP
【FI】
G05B13/02 L
(21)【出願番号】P 2019039031
(22)【出願日】2019-03-04
【審査請求日】2021-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】岩根 秀直
(72)【発明者】
【氏名】重住 淳一
(72)【発明者】
【氏名】大川 佳寛
(72)【発明者】
【氏名】佐々木 智丈
(72)【発明者】
【氏名】屋並 仁史
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2009-198137(JP,A)
【文献】特開2008-111077(JP,A)
【文献】特開2018-178900(JP,A)
【文献】特開2017-16391(JP,A)
【文献】特開平4-309700(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
(57)【特許請求の範囲】
【請求項1】
制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定ステップ数以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定ステップ数とを参照して、確率分布に従って前記制御対象の状態が前記制約条件を充足する時点における前記制御対象への制御入力を確率的に決定することにより、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器に関して、前記制御器が前記制御対象の状態を前記所定ステップ数以内で遷移させた後にも前記目標確率を満たすよう、前記所定確率を前記目標確率よりも高い確率に決定し、
いずれかの時点における前記制御対象の状態が、前記制約条件を充足する場合、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が前記制約条件を違反する
危険度が大きいほど分散が小さくなり、かつ、決定した前記所定確率が大きいほど分散が小さくなるよう、前記確率分布を制御した前記強化学習器により、前記いずれかの時点における前記制御対象への制御入力を決定し、前記いずれかの時点における前記制御対象の状態が、前記制約条件を充足しない場合、前記制御器により、前記いずれかの時点における前記制御対象への制御入力を決定する、
処理をコンピュータが実行することを特徴とする強化学習方法。
【請求項2】
前記所定確率を決定する処理は、
前記所定確率を、前記目標確率に対する前記ステップ数分の累乗根に決定する、ことを特徴とする請求項1に記載の強化学習方法。
【請求項3】
前記制御対象は、風力発電設備であり、
前記強化学習器は、前記風力発電設備の発電機トルクを制御入力とし、前記風力発電設備の発電量と前記風力発電設備のタービンの回転量と前記風力発電設備のタービンの回転速度と前記風力発電設備に対する風向と前記風力発電設備に対する風速との少なくともいずれかを状態とし、前記風力発電設備の発電量を報酬とし、前記制御対象を制御する方策を学習する強化学習を実施する、ことを特徴とする請求項1または2に記載の強化学習方法。
【請求項4】
制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定ステップ数以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定ステップ数とを参照して、確率分布に従って前記制御対象の状態が前記制約条件を充足する時点における前記制御対象への制御入力を確率的に決定することにより、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器に関して、前記制御器が前記制御対象の状態を前記ステップ数以内で遷移させた後にも前記目標確率を満たすよう、前記所定確率を前記目標確率よりも高い確率に決定し、
いずれかの時点における前記制御対象の状態が、前記制約条件を充足する場合、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が前記制約条件を違反する
危険度が大きいほど分散が小さくなり、かつ、決定した前記所定確率が大きいほど分散が小さくなるよう、前記確率分布を制御した前記強化学習器により、前記いずれかの時点における前記制御対象への制御入力を決定し、前記いずれかの時点における前記制御対象の状態が、前記制約条件を充足しない場合、前記制御器により、前記いずれかの時点における前記制御対象への制御入力を決定する、
処理をコンピュータに実行させることを特徴とする強化学習プログラム。
【請求項5】
制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定ステップ数以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定ステップ数とを参照して、確率分布に従って前記制御対象の状態が前記制約条件を充足する時点における前記制御対象への制御入力を確率的に決定することにより、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器に関して、前記制御器が前記制御対象の状態を前記ステップ数以内で遷移させた後にも前記目標確率を満たすよう、前記所定確率を前記目標確率よりも高い確率に決定し、
いずれかの時点における前記制御対象の状態が、前記制約条件を充足する場合、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が前記制約条件を違反する
危険度が大きいほど分散が小さくなり、かつ、決定した前記所定確率が大きいほど分散が小さくなるよう、前記確率分布を制御した前記強化学習器により、前記いずれかの時点における前記制御対象への制御入力を決定し、前記いずれかの時点における前記制御対象の状態が、前記制約条件を充足しない場合、前記制御器により、前記いずれかの時点における前記制御対象への制御入力を決定する、
ことを特徴とする強化学習システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、強化学習方法、強化学習プログラム、および強化学習システムに関する。
【背景技術】
【0002】
従来、制御対象への制御入力に応じた制御対象からの即時コストまたは即時報酬を参照して、制御対象からの累積コストまたは累積報酬に基づいて制御対象への制御入力の価値を規定する価値関数を最適化するような方策を学習していく強化学習の技術がある。価値関数は、状態行動価値関数(Q関数)または状態価値関数(V関数)などである。
【0003】
先行技術としては、例えば、プラントの運用コストを評価したコスト評価値が最適となるようにプラントに与える制御信号の生成方法を自律学習するものがある。また、例えば、操作信号を計算する際に用いる制御パラメータの変化量とプラントの状態変化量とを対応付けた知識情報に基づいて、制御パラメータの探索範囲を決定する技術がある。また、例えば、プラントの第1の計測信号の目標値との誤差である第1の誤差よりも、プラントの第2の計測信号の目標値との誤差である第2の誤差が大きい場合に操作信号の補正信号を生成する技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2012-53505号公報
【文献】特開2017-157112号公報
【文献】特開2009-128972号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、強化学習により方策を学習していく最中に、制御対象の状態が、制御対象の状態に関する制約条件に違反する確率が増大してしまうことがある。これは、従来技術においては、現在の制御対象の状態が制約条件を満たしていない場合に、次の時点の制御対象の状態が制約条件を充足する確率を保証できないためである。このため、現在の制御対象の状態に関わらず、次の時点の制御対象の状態が、制御対象の状態に関する制約条件を充足する確率を、一定以上に大きくすることを保証することができない。また、制御対象の状態が、制御対象の状態に関する制約条件に違反すると、制御対象に悪影響を及ぼすことがある。
【0006】
1つの側面では、本発明は、制約条件を充足する確率の向上を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定時間以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定時間とに基づいて、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器のパラメータを決定し、いずれかの時点における前記制御対象の状態が、前記制約条件を充足するか否かに基づいて、前記強化学習器および前記制御器のいずれか一方により、前記制御対象への制御入力を決定する強化学習方法、強化学習プログラム、および強化学習システムが提案される。
【発明の効果】
【0008】
一様態によれば、現在の制御対象の状態に関わらず、次の時点の制御対象の状態が制約条件を充足する確率が一定以上に大きくすることを保証することができる。さらに、一態様によれば、制約条件を充足する確率の向上を図ることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。
【
図2】
図2は、実施の形態にかかる強化学習方法の別の実施例を示す説明図である。
【
図3】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、情報処理装置100の機能的構成例を示すブロック図である。
【
図5】
図5は、情報処理装置100の動作例1を示す説明図(その1)である。
【
図6】
図6は、情報処理装置100の動作例1を示す説明図(その2)である。
【
図7】
図7は、情報処理装置100の動作例1を示す説明図(その3)である。
【
図8】
図8は、動作例1における情報処理装置100により得られた効果を示す説明図である。
【
図9】
図9は、制御対象110の具体例を示す説明図(その1)である。
【
図10】
図10は、制御対象110の具体例を示す説明図(その2)である。
【
図11】
図11は、制御対象110の具体例を示す説明図(その3)である。
【
図12】
図12は、動作例1における全体処理手順の一例を示すフローチャートである。
【
図13】
図13は、動作例1における決定処理手順の一例を示すフローチャートである。
【
図14】
図14は、情報処理装置100の動作例2を示す説明図(その1)である。
【
図15】
図15は、情報処理装置100の動作例2を示す説明図(その2)である。
【
図16】
図16は、動作例2における全体処理手順の一例を示すフローチャートである。
【
図17】
図17は、動作例2における決定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる強化学習方法、強化学習プログラム、および強化学習システムの実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる強化学習方法の一実施例)
図1は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。情報処理装置100は、強化学習により制御対象110を制御するためのコンピュータである。情報処理装置100は、例えば、サーバやPC(Personal Computer)、または、マイクロコントローラなどである。
【0012】
制御対象110は、何らかの事象であり、例えば、現実に存在する物理系である。制御対象110は、環境(environment)とも呼ばれる。制御対象110は、例えば、シミュレータ上に存在してもよい。制御対象110は、具体的には、自動車、自律移動ロボット、産業用ロボット、ドローン、ヘリコプター、サーバルーム、発電設備、化学プラント、または、ゲームなどである。
【0013】
強化学習は、制御対象110を制御する方策を学習していく手法である。方策は、制御対象110への制御入力を決定するための制御則である。制御入力は、行動(action)とも呼ばれる。強化学習は、例えば、制御対象110への制御入力を決定し、制御対象110の状態と、決定した制御入力と、決定した制御入力に応じて観測した制御対象110からの即時コストまたは即時報酬を参照して、価値関数を最適化するような方策を学習していく。
【0014】
価値関数は、制御対象110からの累積コストまたは累積報酬に基づいて、制御対象110への制御入力についての価値を規定する関数である。価値関数は、例えば、状態行動価値関数(Q関数)、または、状態価値関数(V関数)などである。価値関数は、例えば、状態基底関数を用いて表現される。最適化は、累積コストに基づく価値関数に関しては最小化に対応し、累積報酬に基づく価値関数に関しては最大化に対応する。強化学習は、例えば、制御対象110の性質が不明でも実現可能である。強化学習は、具体的には、Q学習、SARSA、または、actor-criticなどを利用する。
【0015】
ここで、制御対象110の状態に対する制約条件が存在する場合、制約条件を充足させつつ制御対象110を制御可能である方策を学習することが望まれる他に、強化学習により方策を学習していく最中にも、制約条件を充足させておくことが望まれる。また、強化学習により方策を学習していく最中に、制御対象110の状態が制約条件を違反する確率をどの程度まで抑制可能であるかを、強化学習を開始する前に評価可能にすることが望まれる場合がある。違反とは、制約条件を充足しないことである。
【0016】
例えば、強化学習を、シミュレータ上ではなく、実在する制御対象110に適用しようとする場合、制約条件を違反すると、実在する制御対象110に悪影響を及ぼすことがある。具体的には、制御対象110がサーバルームであり、サーバルームの温度を一定以下にする制約条件が存在する場合、制約条件を違反すると、サーバルームにあるサーバが故障しやすくなることがある。また、具体的には、制御対象110が風車であり、風車の回転速度を一定以下にする制約条件が存在する場合、制約条件を違反すると、風車が破損しやすくなることがある。
【0017】
このように、実在する制御対象110は、悪影響を受けることがある。このため、強化学習により方策を学習していく最中に、制約条件を充足させることが望まれる。また、このため、強化学習により方策を学習していく最中に、制御対象110の状態が制約条件を違反する確率をどの程度まで抑制可能であるかを、強化学習を開始する前に評価可能にすることが望まれる。そして、実在する制御対象110が受ける悪影響の大きさを、許容範囲に収められるかを予め評価可能にすることが望まれる。
【0018】
しかしながら、従来の強化学習では、方策を学習していく最中に、制御対象110への制御入力を決定するにあたり、制御対象110の状態が制約条件を充足するか否かを考慮していない。このため、方策を学習していく最中に、制御対象110の状態が制約条件を違反する確率が増大してしまう。また、学習された方策が、制約条件を充足するように制御対象110を制御可能にする方策ではないことがある。従来の強化学習については、例えば、下記非特許文献1が参照される。
【0019】
非特許文献1:Doya, Kenji. “Reinforcement learning in continuous time and space.” Neural computation 12.1 (2000): 219-245.
【0020】
これに対し、上記従来の強化学習において、制約条件を違反した場合にペナルティを与えるようにする改良手法が考えられる。この改良手法では、制約条件を充足するように制御対象110を制御可能にする方策を学習可能であるが、強化学習により方策を学習していく最中には、制約条件を充足させることはできない。
【0021】
一方で、強化学習により方策を学習していく最中に、制約条件を充足させることができても、学習効率の低下を招くことは好ましくない。例えば、強化学習により方策を学習していく最中に、制御入力を決定する範囲を比較的狭い範囲に固定することが考えられるが、学習効率の低下を招くことがあり、学習効率の観点から好ましくない。
【0022】
また、仮に、いずれかの時点における制御対象110の状態が制約条件を充足すれば、次の時点における制御対象110の状態が、所定確率で制約条件を充足することを保証可能である強化学習器が存在する場合が考えられる。この場合、強化学習器は、制御対象110の状態が制約条件を充足しなくなった以降の状況を考慮しないため、強化学習により方策を学習していく最中に、制約条件を充足する確率を一定以上に大きくすることを保証することが難しいことがある。具体的には、連続型の強化学習により方策を学習していく最中に、制約条件を充足する確率を一定以上に大きくすることを保証することが難しい。連続型は、制約条件を違反しても、制御対象110の状態を初期化せずに、方策の学習を続行する形式である。
【0023】
また、予備実験により制御対象110について正確なモデリングを実施し、制御対象110の正確なモデルを用いて、制御入力を決定する範囲を調整することにより、制約条件を違反する確率の低減化を図る手法が考えられる。この手法は、正確なモデリングを実施することが困難な場合には適用することができない。また、この手法は、制御対象110の正確なモデルが複雑なモデルである場合、強化学習にかかる計算負担の増大化を招く。この手法については、例えば、下記非特許文献2が参照される。
【0024】
非特許文献2:Summers, Tyler, et al. “Stochastic optimal power flow based on conditional value at risk and distributional robustness.” International Journal of Electrical Power & Energy Systems 72 (2015): 116-125.
【0025】
そこで、本実施の形態では、強化学習器101と固定制御器102とを使い分けて制御対象110への制御入力を決定することができる強化学習方法について説明する。この強化学習方法によれば、強化学習により方策を学習していく最中に、制御対象110の状態が制約条件を充足する確率の向上を図ることができる。
【0026】
図1に示すように、情報処理装置100は、強化学習器101と固定制御器102とを有する。強化学習器101は、第1の時点において制御対象110の状態が制約条件を充足する場合、第1の時点の次の第2の時点における制御対象110の状態が所定確率で制約条件を充足することを保証することができる。固定制御器102は、制約条件を充足しない制御対象110の状態から、所定時間以内で、制約条件を充足する制御対象110の状態に遷移させることができる。
【0027】
情報処理装置100は、制御対象110の状態に関する制約条件を充足する目標確率と、固定制御器102に関する所定時間とに基づいて、強化学習器101のパラメータを決定する。情報処理装置100は、例えば、所定確率が、所定時間と目標確率とに基づき算出される目標確率よりも高い確率になるように、強化学習器101のパラメータを決定する。パラメータは、所定確率として強化学習器101に指定される下限値である。
【0028】
そして、情報処理装置100は、制御対象110への制御入力を出力し、制御対象110の状態および制御対象110からの即時報酬を観測し、方策を更新する一連の処理を繰り返すことにより、強化学習を実施する。強化学習は、例えば、連続型である。情報処理装置100は、例えば、強化学習を実施する際、いずれかの時点における制御対象110の状態が、制約条件を充足するか否かに基づいて、強化学習器101および固定制御器102のいずれか一方により、制御対象110への制御入力を決定する。
【0029】
図1の例では、情報処理装置100は、具体的には、強化学習器101および固定制御器102のそれぞれに制御対象110への制御入力を決定させる。そして、情報処理装置100は、具体的には、切替手段103により、強化学習器101および固定制御器102のいずれかが決定した制御入力を、実際に出力する制御対象110への制御入力として決定する。
【0030】
これにより、情報処理装置100は、強化学習器101と固定制御器102とを使い分けて制御対象110への制御入力を決定することができる。ここで、情報処理装置100は、制御対象110の状態が制約条件を違反した場合、固定制御器102を利用して、制御入力を決定することを繰り返し、制御対象110の状態を、制約条件を違反する状態から、制約条件を充足する状態に戻すことができる。このため、情報処理装置100は、制約条件を違反し続けることを防止することができる。
【0031】
また、情報処理装置100は、制御対象110の状態を、制約条件を違反した状態から制約条件を充足する状態に戻す際に、所定時間がかかることにより、強化学習で制約条件を充足する確率の低下を招くことを考慮することができる。このため、情報処理装置100は、強化学習器101の利用時には、制御対象110の状態が制約条件を充足する確率が、予め設定された目標確率以上に大きくなることを保証するように、強化学習器101のパラメータを設定することができる。
【0032】
これらのことから、情報処理装置100は、強化学習全体で、制約条件を充足する確率の増大化を図ることができる。情報処理装置100は、例えば、強化学習全体で、制約条件を充足する確率を、目標確率以上に大きくすることを保証することができる。
【0033】
ここで、制約条件は、1または複数設定される。制約条件が1つ設定される場合に、情報処理装置100が制御対象110への制御入力を決定する一例については、具体的には、
図5~
図7を用いて後述する動作例1において、詳細に説明する。一方で、制約条件が複数設定される場合に、情報処理装置100が制御対象110への制御入力を決定する一例については、具体的には、
図14および
図15を用いて後述する動作例2において、詳細に説明する。
【0034】
ここでは、情報処理装置100が、強化学習器101と固定制御器102とを有する場合について説明したが、これに限らない。例えば、情報処理装置100以外に、強化学習器101と固定制御器102とを有する装置が存在する場合があってもよい。この場合、情報処理装置100は、強化学習器101と固定制御器102とを有する装置と連携して、制御対象110への制御入力を決定する。
【0035】
また、ここでは、情報処理装置100が、強化学習器101のパラメータを決定する場合について説明したが、これに限らない。例えば、情報処理装置100以外に、強化学習器101のパラメータを決定する装置が存在する場合があってもよい。この場合、情報処理装置100は、強化学習器101のパラメータを決定する装置から、強化学習器101のパラメータを取得することになる。
【0036】
ここでは、強化学習器101と固定制御器102との後段に、切替手段103が存在する場合について説明したが、これに限らない。
図2に示すように、強化学習器101と固定制御器102との前段に、切替手段103が存在する場合があってもよい。ここで、
図2の説明に移行し、強化学習器101と固定制御器102との前段に、切替手段103が存在する場合について説明する。
【0037】
(実施の形態にかかる強化学習方法の別の実施例)
図2は、実施の形態にかかる強化学習方法の別の実施例を示す説明図である。
図2に示すように、情報処理装置100は、強化学習器101と固定制御器102とを有する。
【0038】
情報処理装置100は、制御対象110の状態に関する制約条件を充足する目標確率と、固定制御器102に関する所定時間とに基づいて、強化学習器101のパラメータを決定する。情報処理装置100は、例えば、所定確率が、所定時間と目標確率とに基づき算出される目標確率よりも高い確率になるように、強化学習器101のパラメータを決定する。
【0039】
そして、情報処理装置100は、制御対象110への制御入力を出力し、制御対象110の状態および制御対象110からの即時報酬を観測し、方策を更新する一連の処理を繰り返すことにより、強化学習を実施する。強化学習は、例えば、連続型である。情報処理装置100は、例えば、強化学習を実施する際、いずれかの時点における制御対象110の状態が、制約条件を充足するか否かに基づいて、強化学習器101および固定制御器102のいずれか一方により、制御対象110への制御入力を決定する。
【0040】
図2の例では、情報処理装置100は、具体的には、切替手段103により、強化学習器101および固定制御器102のいずれかに、制御対象110への制御入力を決定させる。情報処理装置100は、より具体的には、切替手段103により、強化学習器101および固定制御器102のいずれかに、制御対象110への制御入力を決定するために用いる制御対象110の状態などの情報を送信し、制御対象110への制御入力を決定させる。そして、情報処理装置100は、具体的には、強化学習器101および固定制御器102のいずれかに決定された制御入力を、実際に出力する制御対象110への制御入力として決定する。
【0041】
これにより、情報処理装置100は、強化学習器101と固定制御器102とを使い分けて制御対象110への制御入力を決定することができる。ここで、情報処理装置100は、制御対象110の状態が制約条件を違反した場合、固定制御器102を利用して、制御入力を決定することを繰り返し、制御対象110の状態を、制約条件を違反する状態から、制約条件を充足する状態に戻すことができる。このため、情報処理装置100は、制約条件を違反し続けることを防止することができる。
【0042】
また、情報処理装置100は、制御対象110の状態を、制約条件を違反した状態から制約条件を充足する状態に戻す際に、所定時間がかかることにより、強化学習で制約条件を充足する確率の低下を招くことを考慮することができる。このため、情報処理装置100は、強化学習器101の利用時には、制御対象110の状態が制約条件を充足する確率が、予め設定された目標確率以上に大きくなることを保証するように、強化学習器101のパラメータを設定することができる。
【0043】
これらのことから、情報処理装置100は、強化学習全体で、制約条件を充足する確率の増大化を図ることができる。情報処理装置100は、例えば、強化学習全体で、制約条件を充足する確率を、目標確率以上に大きくすることを保証することができる。また、情報処理装置100は、強化学習器101および固定制御器102の一方に、制御対象110への制御入力を決定させた場合、他方は制御対象110への制御入力を決定せずに済むようにすることができ、処理負担の低減化を図ることができる。
【0044】
(情報処理装置100のハードウェア構成例)
次に、
図3を用いて、
図1または
図2に示した情報処理装置100のハードウェア構成例について説明する。
【0045】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0046】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0047】
ネットワークI/F303は、通信回線を通じてネットワーク310に接続され、ネットワーク310を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク310と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
【0048】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0049】
情報処理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0050】
(情報処理装置100の機能的構成例)
次に、
図4を用いて、情報処理装置100の機能的構成例について説明する。
【0051】
図4は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部400と、取得部401と、算出部402と、第1決定部403と、第2決定部404と、切替部405と、学習部406と、出力部407とを含む。
【0052】
記憶部400は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部400が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、情報処理装置100とは異なる装置に含まれ、記憶部400の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0053】
取得部401~出力部407は、制御部の一例として機能する。取得部401~出力部407は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0054】
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、制御対象110の状態と、制御対象110への制御入力と、制御対象110からの即時コストまたは即時報酬とを蓄積する。これにより、記憶部400は、各機能部が、制御対象110の状態と、制御対象110への制御入力と、制御対象110からの即時コストまたは即時報酬とを参照可能にすることができる。
【0055】
制御対象110は、例えば、発電設備である場合がある。発電設備は、例えば、風力発電設備である場合がある。この場合、制御入力は、例えば、発電設備の発電機トルクである。状態は、例えば、発電設備の発電量と、発電設備のタービンの回転量と、発電設備のタービンの回転速度と、発電設備に対する風向と、発電設備に対する風速となどの少なくともいずれかである。報酬は、例えば、発電設備の発電量である。発電設備は、例えば、火力発電設備、太陽光発電設備、または、原子力発電設備などである場合があってもよい。
【0056】
制御対象110は、例えば、産業用ロボットである場合がある。この場合、制御入力は、例えば、産業用ロボットのモータートルクである。状態は、例えば、産業用ロボットの撮影した画像と、産業用ロボットの関節位置と、産業用ロボットの関節角度と、産業用ロボットの関節角速度となどの少なくともいずれかである。報酬は、例えば、産業用ロボットによる製品の生産量である。生産量は、例えば、組み立て数である。組み立て数は、例えば、産業用ロボットが組み立てた製品の数である。
【0057】
制御対象110は、例えば、空調設備である場合がある。空調設備は、例えば、サーバルームにある。この場合、制御入力は、例えば、空調設備の設定温度と、空調設備の設定風量との少なくともいずれかである。状態は、例えば、空調設備がある部屋の内部の実際の温度と、空調設備がある部屋の外部の実際の温度と、気候との少なくともいずれかである。コストは、例えば、空調設備の消費電力量である。
【0058】
記憶部400は、モデル情報を記憶する。モデル情報は、制御対象110の状態と制御対象110への制御入力との関係を規定する。モデル情報は、例えば、第1の時点における制御対象110の状態を示す変数および第1の時点における制御対象110への制御入力を示す変数を用いて、第1の時点の次の第2の時点における制御対象110の状態についての関数を線形近似して表す。第2の時点は、例えば、第1の時点の単位時間後の時点である。
【0059】
記憶部400は、価値関数を記憶する。価値関数は、例えば、制御対象110からの累積コストまたは累積報酬に基づいて制御対象110への制御入力の価値を規定する。価値関数は、例えば、状態基底関数を用いて表現される。価値関数は、状態行動価値関数(Q関数)または状態価値関数(V関数)などである。記憶部400は、例えば、価値関数のパラメータを記憶する。これにより、記憶部400は、各機能部が価値関数を参照可能にすることができる。
【0060】
記憶部400は、制御対象110を制御する方策を記憶する。方策は、例えば、制御対象110への制御入力を決定するための制御則である。記憶部400は、例えば、方策のパラメータωを記憶する。これにより、記憶部400は、方策により制御対象110への制御入力を決定可能にすることができる。記憶部400は、制御対象110の状態に関する制約条件を1または複数記憶する。これにより、記憶部400は、各機能部が制約条件を参照可能にすることができる。
【0061】
記憶部400は、強化学習器101を記憶する。強化学習器101は、制御対象110を制御するための制御器である。強化学習器101は、第1の時点において制御対象110の状態が制約条件を充足する場合、第1の時点の次の第2の時点における制御対象110の状態が所定確率で制約条件を充足することを保証する。強化学習器101は、制約条件が複数あれば、第1の時点において制御対象110の状態が複数の制約条件を同時に充足する場合、第1の時点の次の第2の時点における制御対象110の状態が所定確率で複数の制約条件を同時に充足することを保証してもよい。記憶部400は、例えば、強化学習器101のパラメータを記憶する。これにより、記憶部400は、第1決定部403が強化学習器101を参照可能にすることができる。
【0062】
記憶部400は、固定制御器102を記憶する。固定制御器102は、制御対象110を制御するための制御器である。固定制御器102は、制約条件を充足しない制御対象110の状態から、所定時間以内で、制約条件を充足する制御対象110の状態に遷移させることができる。これにより、記憶部400は、第2決定部404が固定制御器102を参照可能にすることができる。
【0063】
記憶部400は、固定制御器102に関する所定時間を記憶する。所定時間は、例えば、制御入力を決定するステップの数により規定される。ステップは、例えば、強化学習における、制御入力を決定して即時報酬または即時コストを観測する処理単位に対応する。これにより、記憶部400は、第1決定部403が、固定制御器102に関する所定時間を参照可能にすることができる。以下の説明では、記憶部400が即時報酬を蓄積する場合を一例として説明する。
【0064】
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、ユーザの操作入力に基づき、各種情報を取得する。取得部401は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0065】
取得部401は、制御対象110の状態と、制御対象110への制御入力に応じた制御対象110からの即時報酬とを取得する。取得部401は、例えば、制御対象110の状態と、制御対象110への制御入力に応じた制御対象110からの即時報酬とを取得し、記憶部400に出力する。これにより、取得部401は、制御対象110の状態と、制御対象110への制御入力に応じた制御対象110からの即時報酬とを記憶部400に蓄積させることができる。また、取得部401は、算出部402および第1決定部403と、第2決定部404とに、制御対象110への制御入力を決定する際に用いられる情報を、取得させることができる。
【0066】
算出部402は、時点ごとに、モデル情報を参照して、将来の時点における制御対象110の状態の予測値を算出する。時点は、単位時間間隔である。将来の時点は、現在の時点の単位時間後の時点である。算出部402は、例えば、モデル情報と、将来の時点における制御対象110の状態の予測値に含まれる誤差の上限とに基づいて、将来の時点における制御対象110の状態の予測値を求める。誤差の上限は、ユーザにより予め設定される。これにより、算出部402は、制御対象110の状態に関する制約条件に対する、現在の時点における制御対象110の状態についての危険度を算出可能にすることができる。
【0067】
算出部402は、時点ごとに、将来の時点における制御対象110の状態の予測値に基づいて、制御対象110の状態に関する制約条件に対する、現在の時点における制御対象110の状態についての危険度を算出する。危険度は、例えば、現在の時点における制御対象110の状態が、将来の時点における制御対象110の状態が、制約条件に違反してしまう状況を、どの程度招きやすい状態であるのかを示す。
【0068】
算出部402は、将来の時点における制御対象110の状態の予測値に基づいて、制御対象110の状態に関する複数の制約条件のそれぞれの制約条件に対する、現在の時点における制御対象110の状態についての危険度を算出する。これにより、算出部402は、制御対象110への制御入力を決定する範囲を定めるための指標となる危険度を、第1決定部403が参照可能にすることができる。
【0069】
第1決定部403は、強化学習器101のパラメータを設定する。パラメータは、制約条件の充足に関する確率的な評価指標である。評価指標は、強化学習器101が制約条件を充足することを保証可能である所定確率に特定する指標である。評価指標は、具体的には、強化学習器101の利用中における、制御対象110の状態が制約条件を充足する確率の下限値ηである。評価指標は、具体的には、制約条件が複数あれば、強化学習器101の利用中における、制御対象110の状態が複数の制約条件を同時に充足する確率の下限値ηである。評価指標は、例えば、0~1であり、具体的には、確率の下限値が90%であれば、0.9である。
【0070】
評価指標は、例えば、目標確率に基づき決定される。目標確率は、ユーザにより設定された、強化学習中に、制御対象110の状態が制約条件を充足する確率の下限値ρである。目標確率は、制約条件が複数あれば、強化学習中に、制御対象110の状態が複数の制約条件を同時に充足する確率の下限値ρである。目標確率は、例えば、0~1であり、具体的には、確率の下限値が90%であれば、0.9である。ηは、ρより大きいことが好ましい。
【0071】
第1決定部403は、目標確率と、固定制御器102に関する所定時間とに基づいて、強化学習器101のパラメータを設定する。第1決定部403は、例えば、強化学習器101が制約条件を充足することを保証する所定確率が、所定時間と目標確率とに基づき算出される、目標確率よりも高い確率になるように、強化学習器101のパラメータを設定する。第1決定部403は、具体的には、制約条件の充足に関する確率的な評価指標を、所定時間と目標確率とに基づき算出される、目標確率よりも高い確率に設定する。これにより、第1決定部403は、制御対象110の状態を、制約条件を違反した状態から制約条件を充足する状態に戻す際に、強化学習で制約条件を充足する確率の低下を招くことを考慮して、強化学習器101のパラメータを設定することができる。
【0072】
第1決定部403は、時点ごとに、強化学習器101を利用して、現在の時点における制御対象110への制御入力を決定する。第1決定部403は、例えば、算出した危険度に応じて定まる範囲の中から、現在の時点における制御対象110への制御入力を決定する。範囲は、例えば、算出した危険度が小さいほど、広くなるように定まる。これにより、第1決定部403は、算出した危険度が大きいほど、制御対象110への制御入力を決定する範囲を狭め、将来の時点における制御対象110の状態が制約条件に違反してしまう確率の増大化を抑制することができる。
【0073】
第1決定部403は、例えば、制約条件が1つであれば、算出した危険度が閾値以上である場合、制御対象110への制御入力を所定値に決定する。制御対象110は、第1の時点における制御対象110の状態が制約条件を充足し、かつ、第1の時点における制御対象110への制御入力が0であれば、第2の時点における制御対象110の状態が制約条件を充足することが保証される性質を有することがある。第2の時点は、第1の時点の次の時点である。第2の時点は、例えば、第1の時点の単位時間後の時点である。このため、第1決定部403は、所定値として0を用いることが好ましい。これにより、第1決定部403は、将来の時点における制御対象110の状態が制約条件に違反することを防止することができる。
【0074】
第1決定部403は、例えば、制約条件が1つであれば、算出した危険度が閾値未満である場合、制約条件の充足に関する確率的な評価指標の下で、現在の時点における制御対象110への制御入力を確率的に決定する。確率的に決定するとは、設定された制御入力が取りうる範囲内から、確率分布に従って、ランダムに制御入力を決定することである。確率分布は、例えば、ガウス分布である。ガウス分布は、例えば、分散共分散行列と制御入力の平均値とにより規定される。
【0075】
第1決定部403は、具体的には、算出した危険度が閾値未満である場合、現在の時点における制御対象110への制御入力が取りうる平均値を算出し、評価指標の下で分散共分散行列を算出する。そして、第1決定部403は、具体的には、算出した平均値と分散共分散行列とを用いて、現在の時点における制御対象110への制御入力を確率的に決定する。第1決定部403は、より具体的には、
図5~
図7を用いて動作例1に後述するように、現在の時点における制御対象110への制御入力を確率的に決定する。これにより、第1決定部403は、強化学習器101の利用中における、将来の時点における制御対象110の状態が制約条件を充足する確率を、評価指標に基づく確率以上にすることができる。
【0076】
第1決定部403は、例えば、制約条件が複数であれば、複数の制約条件のいずれかの制約条件に対して算出した危険度が閾値以上である場合、制御対象110への制御入力を所定値に決定する。第1決定部403は、所定値として0を用いることが好ましい。これにより、第1決定部403は、将来の時点における制御対象110の状態が制約条件に違反することを防止することができる。
【0077】
第1決定部403は、例えば、制約条件が複数であれば、それぞれの制約条件に対して算出した危険度が閾値未満である場合、複数の制約条件を同時に充足する確率的な評価指標の下で、現在の時点における制御対象110への制御入力を確率的に決定する。第1決定部403は、具体的には、制約条件が複数であれば、
図16および
図17を用いて動作例2に後述するように、現在の時点における制御対象110への制御入力を確率的に決定する。これにより、第1決定部403は、強化学習器101の利用中における、将来の時点における制御対象110の状態が制約条件を充足する確率を、評価指標に基づく確率以上にすることができる。
【0078】
第2決定部404は、固定制御器102を利用して、現在の時点における制御対象110への制御入力を決定する。これにより、第2決定部404は、制約条件を違反する状態から、所定時間内に、制約条件を充足する状態に遷移させるための制御入力を決定することができる。第2決定部404は、例えば、制約条件を違反する状態から、所定数のステップ内に、制約条件を充足する状態に遷移させるための制御入力を決定することができる。このため、第2決定部404は、制約条件を違反し続けることを防止することができる。
【0079】
切替部405は、いずれかの時点における制御対象110の状態が、制約条件を充足するか否かに基づいて、強化学習器101および固定制御器102のいずれか一方により、制御対象110への制御入力を決定する。切替部405は、例えば、制約条件を充足する場合、第1決定部403が強化学習器101を用いて決定した制御入力を、実際の制御対象110への制御入力に決定する。一方で、切替部405は、例えば、制約条件を充足しない場合、第2決定部404が固定制御器102を用いて決定した制御入力を、実際の制御対象110への制御入力に決定する。
【0080】
これにより、切替部405は、強化学習器101と固定制御器102とを使い分けて制御対象110への制御入力を決定することができる。そして、切替部405は、強化学習全体で、制約条件を充足する確率の増大化を図ることができる。切替部405は、例えば、強化学習全体で、制約条件を充足する確率を、目標確率以上に大きくすることを保証することができる。
【0081】
切替部405は、制約条件が複数あれば、いずれかの時点における制御対象110の状態が、複数の制約条件を同時に充足するか否かに基づいて、強化学習器101および固定制御器102のいずれか一方により、制御対象110への制御入力を決定する。切替部405は、例えば、複数の制約条件を同時に充足する場合、第1決定部403が強化学習器101を用いて決定した制御入力を、実際の制御対象110への制御入力に決定する。一方で、切替部405は、例えば、いずれかの制約条件を充足しない場合、第2決定部404が固定制御器102を用いて決定した制御入力を、実際の制御対象110への制御入力に決定する。
【0082】
これにより、切替部405は、強化学習器101と固定制御器102とを使い分けて制御対象110への制御入力を決定することができる。そして、切替部405は、強化学習全体で、制約条件を充足する確率の増大化を図ることができる。切替部405は、例えば、強化学習全体で、制約条件を充足する確率を、目標確率以上に大きくすることを保証することができる。
【0083】
学習部406は、方策を学習する。学習部406は、第1決定部403または第2決定部404が決定した制御対象110への制御入力と、取得部401が取得した制御対象110の状態および制御対象110からの即時報酬とに基づいて、方策を更新する。学習部406は、例えば、方策のパラメータを更新する。これにより、学習部406は、制約条件を充足するように制御対象110を制御可能である方策を学習することができる。
【0084】
出力部407は、第1決定部403または第2決定部404が決定した制御対象110への制御入力を出力する。制御入力は、例えば、制御対象110に対する指令値である。出力部407は、例えば、制御対象110への指令値を、制御対象110に出力する。これにより、出力部407は、制御対象110を制御することができる。
【0085】
出力部407は、いずれかの機能部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部407は、いずれかの機能部の処理結果をユーザに通知可能にすることができる。
【0086】
ここでは、
図1と同様に、算出部402および第1決定部403と第2決定部404との後段に、切替部405が存在する場合について説明したが、これに限らない。例えば、
図2と同様に、算出部402および第1決定部403と第2決定部404との前段、かつ、取得部401の後段に、切替部405が存在する場合があってもよい。この場合、切替部405は、取得部401が取得した制御対象110への制御入力を決定する際に用いられる情報を、算出部402および第1決定部403と、第2決定部404とのいずれかに取得させ、制御入力を決定させる。
【0087】
(情報処理装置100の動作例1)
次に、
図5~
図7を用いて、情報処理装置100の動作例1について説明する。
【0088】
図5~
図7は、情報処理装置100の動作例1を示す説明図である。動作例1は、情報処理装置100が、連続型の強化学習により方策を学習していく最中に、制御対象110の状態が制約条件を充足する確率が一定以上に大きくなることを保証する場合に対応する。
【0089】
以下の説明では、まず、情報処理装置100の動作の流れについて説明する。そして、数式を用いて、情報処理装置100の動作のうち、強化学習器101を利用して行う動作の一例について説明し、実例を用いて、情報処理装置100の動作の具体例について説明する。
【0090】
<情報処理装置100の動作の流れ>
動作例1において制御目標は、累積コストを最小化する制御入力を決定するための方策を学習することである。また、制御目的は、方策を学習する強化学習中の、すべての時刻k≧1において、状態に関する制約条件{fi}iを充足する確率を、下限値ρ∈(0,1)以上とすることを保証することであり、下記式(1)および下記式(2)により規定される。制約条件{fi}iは、線形でなくてもよい。Pr(・)は、(・)内の条件が成立する確率を示す。
【0091】
【0092】
【0093】
また、状態xk=x∈Xである場合、時刻kにも状態xにも依存しない定数τが存在し、τステップ以内に状態をX内に移動させる制御入力列の算出方法が既知であることが仮定される。以下の説明では、制御入力列の算出方法が既知である仮定を「仮定1」と表記する場合がある。換言すれば、uk+j
back(x)∈X(j≦τ)となるようなuk
back(x),uk+1
back(x)・・・,uk+j
back(x)が存在することが仮定される。これによれば、固定制御器102が存在することが仮定される。
【0094】
また、強化学習および制御対象110に関しては、下記3つの特性が仮定される。1つ目の特性は、強化学習が、確率的に制御入力を決定する方策を利用可能であり、制御入力を決定する際に用いられる確率密度関数の分散共分散行列を、いずれのタイミングにも変更可能である性質である。2つ目の特性は、制御対象110が、制御入力に対して線形であり、制約条件が、状態に対して線形であるため、第1の時点において取りうる制御入力の分散が、第1の時点の次の第2の時点において取りうる制御対象110の状態に対して保存される性質である。3つ目の特性は、制御入力が0であれば、制約条件を充足する状態から制約条件を充足しない状態へと遷移することがない性質である。これによれば、強化学習器101が存在することが仮定される。
【0095】
情報処理装置100は、現在の状態が制約条件を充足すれば強化学習器101を利用し、現在の状態が制約条件を充足しなければ固定制御器102を利用して、連続型の強化学習を実施する。上述したように、強化学習器101は、制約充足率を下限値η以上とすることを保証し、固定制御器102は、τステップ以内に状態をX内に移動させることを保証する。この場合、強化学習器101および固定制御器102を組み合わせると、制約充足率を下限値ητ以上にすることを保証することができる。制約充足率を下限値ητ以上にすることの保証は、例えば、下記命題に基づき証明される。
【0096】
τを1以上の自然数とする。また、確率過程{Xk}が、{1,2,・・・,τ+1}を状態空間とし、下記式(3)が示す遷移確率行列を有する離散時間マルコフ連鎖であるとする。これに対し、初期状態X0が下記式(4)を満たすならば、すべてのk=0,1,・・・に対して、下記式(5)が成立するという命題が存在する。
【0097】
【0098】
【0099】
【0100】
従って、情報処理装置100は、制約条件を充足する場合、強化学習器101に関する下限値ηを、目標確率ρのτ乗根に設定して、強化学習器101を用いて制御入力を決定する。情報処理装置100は、制約条件を充足しない場合、固定制御器を用いて制御入力を決定する。これにより、情報処理装置100は、強化学習中に、制約充足率が目標確率ρ以上となることを保証することができる。
【0101】
<情報処理装置100が強化学習器101を利用して行う動作の一例>
動作例1において、下記式(6)~下記式(19)によって、制御対象110と、即時コストと、制約条件と、制御目的とが規定され、問題設定が行われる。また、下記式(20)~下記式(25)によって、動作例1において仮定される、強化学習および制御対象110に関する特性が規定される。
【0102】
【0103】
上記式(6)は、制御対象110の真のモデルを規定する。制御対象110の真のモデルは、既知でなくてもよい。制御対象110は、制御入力に関してアフィンな離散時間非線形システムである。kは、単位時間の倍数で示される時刻である。k+1は、時刻kから単位時間経過した次の時刻である。xk+1は、次の時刻k+1における状態である。xkは、時刻kにおける状態である。ukは、時刻kにおける制御入力である。上記式(6)は、次の時刻k+1における状態xk+1が、時刻kにおける状態xkと、時刻kにおける入力ukによって決定される関係があることを示す。関数fおよび関数gは、未知である。状態は、連続値である。制御入力は、連続値である。
【0104】
【0105】
【0106】
上記式(7)は、関数fが、n次元の配列をn次元の配列に変換する関数であることを示す。nは、既知である。上記式(8)は、関数gが、n次元の配列をn×m次元の行列に変換する関数であることを示す。中抜き文字のRは、実数空間を示す。中抜き文字のRの上付文字は次元数を示す。
【0107】
【0108】
【0109】
上記式(9)は、状態xkが、n次元であることを示す。nは、既知である。状態xkは、直接観測可能である。上記式(10)は、制御入力ukが、m次元であることを示す。
【0110】
【0111】
上記式(11)は、制御対象110の即時コストの方程式である。ck+1は、時刻kにおける入力ukに応じて単位時間後に発生する即時コストである。c(・)は、即時コストを求める関数である。上記式(11)は、即時コストck+1が、時刻kにおける状態xkと、時刻kにおける入力ukとによって決定される関係があることを示す。
【0112】
【0113】
上記式(12)は、関数c(・)が、n次元の配列とm次元の配列とに基づき正の値を求める関数であることを示す。
【0114】
【0115】
上記式(13)は、制約条件を規定する。xは、状態である。配列hは、ユーザにより設定される。上付き文字Tは、転置を示す。変数dは、ユーザにより設定される。制約条件は、既知であり、状態xに関して線形である。動作例1では、制約条件は1つである。
【0116】
【0117】
【0118】
上記式(14)は、配列hが、n次元であることを示す。上記式(15)は、変数dが、実数であることを示す。
【0119】
【0120】
上記式(16)は、制約条件を充足する状態xの集合Xを示す。以下の説明では、Xの内点を、Xintと表記する場合がある。f(x*)=x*となるx*∈Xint、および、c(x*,0)=0となるx*∈Xintが存在する。
【0121】
【0122】
【0123】
上記式(17)は、累積コストJを示す方程式であり、強化学習の制御目的を規定する。強化学習の制御目的は、累積コストJの最小化であり、累積コストJの最小化を図る制御入力を決定する方策の学習である。方策の学習は、方策を与えるパラメータωの更新である。γは、割引因子(discount rate)である。上記式(18)は、γが0~1の値であることを示す。
【0124】
【0125】
上記式(19)は、強化学習の制御目的として、制約条件に関して、強化学習器101の利用中、すべての時刻k≧1における制約充足率を、下限値η∈(0.5,1)以上とすることを保証することを規定する。Pr(・)は、(・)内の条件が成立する確率を示す。
【0126】
【0127】
上記式(20)は、制御対象110の線形近似モデルを規定する。線形近似モデルは、例えば、線形ノミナルモデルである。制御対象110の線形近似モデルは、既知であることが仮定される。以下の説明では、制御対象110の線形近似モデルが既知である仮定を「仮定2」と表記する場合がある。A,Bは、係数行列である。
【0128】
【0129】
【0130】
上記式(21)は、係数行列Aが、n×n次元である(n行n列である)ことを示す。上記式(22)は、係数行列Bが、n×m次元である(n行m列である)ことを示す。
【0131】
【0132】
【0133】
上記式(23)は、制御対象110の真のモデルに対する、制御対象110の線形近似モデルのモデル化誤差を示す誤差関数を規定する。eiは、誤差である。i=1,2,・・・,nである。上記式(23)に関し、上記式(24)を満たす、bar{ei}<∞が存在し、既知であることが仮定される。bar{}は、文字の上部にバーを付したことを示す。以下の説明では、上記式(24)を満たす、bar{ei}<∞が存在し、既知である仮定を「仮定3」と表記する場合がある。仮定3は、誤差eiに、既知の上界が存在することを示す。
【0134】
x∈Xであればf(x)∈Xであることが仮定される。以下の説明では、x∈Xであればf(x)∈Xである仮定を「仮定4」と表記する場合がある。
図5に示すように、仮定4は、いずれかの時刻において、状態xが制約条件を充足し、かつ、制御入力が0であれば、次の時刻において、遷移後の状態xも制約条件を充足することを示す。
【0135】
具体的には、実数空間500において、現時点が状態501である際に、制御入力を0とすれば、状態502のような集合Xの内点に遷移することはあるが、状態503のような集合Xの外点に遷移することはない。従って、強化学習器101の利用中、制御入力が0であれば、遷移後の状態についての制約充足率が、下限値η以上に大きくなることを保証可能である。
【0136】
【0137】
制御対象110の線形近似モデルの係数行列と、制約条件とに関して上記式(25)が成立することが仮定される。以下の説明では、制御対象110の線形近似モデルの係数行列と、制約条件とに関して上記式(25)が成立する仮定を「仮定5」と表記する場合がある。
【0138】
上記問題設定では、制御対象110が、制御入力に対して線形であり、制約条件が、状態に対して線形である。このため、いずれかの時刻において取りうる制御入力の分散度合いは、次の時刻において取りうる状態の分散度合いに相関することになる。従って、
図6に示すように、いずれかの時刻において取りうる制御入力の分散度合いを調整すれば、次の時刻において取りうる状態の分散度合いを制御可能であり、次の時刻における状態についての制約充足率を、下限値η以上に大きくすることが保証可能である。具体的には、例えば、グラフ600に示すように、状態xの確率密度を、強化学習器101を利用中の制約充足率が99%になるように、制御可能である。
【0139】
上記問題設定および上記仮定2~仮定5の下で、情報処理装置100の動作のうち、情報処理装置100が強化学習器101を利用して行う動作の一例について説明する。上記問題設定によれば、下記式(26)が成立する。
【0140】
【0141】
ここで、情報処理装置100は、ステップ1として、方策を与えるパラメータωと、状態基底関数φ(・)を用いて、現時刻の状態に対する、現時刻に出力する制御入力の平均値μkを、下記式(27)により算出する。μkは、m次元である。
【0142】
【0143】
情報処理装置100は、ステップ2として、制御対象110の線形近似モデルを示すモデル情報と、現時刻の状態とに基づいて、次の時刻の誤差を含む状態の予測値を、下記式(28)により算出する。そして、情報処理装置100は、次の時刻の誤差を含む状態の予測値に基づいて、現時刻の状態についての危険度を、下記式(29)により算出する。ここで、ε=[ε1,・・・,εn]Tである。εは、n次元である。εi=bar{ei} or -bar{ei}である。また、ε全体の集合をEと表記する。
【0144】
【0145】
【0146】
情報処理装置100は、ステップ3として、ステップ2において算出した危険度に関して下記式(30)が成立する場合、ステップ4の処理に移行し、下記式(30)が成立しない場合、ステップ5の処理に移行する。
【0147】
【0148】
情報処理装置100は、ステップ4として、制御入力uk=0に決定し、ステップ7の処理に移行する。
【0149】
情報処理装置100は、ステップ5として、ステップ2において算出した危険度と、制約充足率の下限値ηとに基づいて、分散共分散行列を下記式(31)および下記式(32)により算出する。Imは、m×m次元の単位行列である。Φ-1(・)は、逆正規累積分布関数である。
【0150】
【0151】
【0152】
情報処理装置100は、ステップ6として、ステップ1において算出したμkと、ステップ5において算出したΣkとを、それぞれ、平均値および分散共分散行列として設定し、ガウス型確率密度関数を生成する。情報処理装置100は、ガウス型確率密度関数を用いて、制御入力ukを、下記式(33)により確率的に決定する。
【0153】
【0154】
情報処理装置100は、ステップ7として、ステップ4またはステップ6において決定した、制御入力ukを、制御対象110に印加する。これにより、情報処理装置100は、強化学習器101の利用中、制御入力を決定する範囲を危険度に応じて自動調整することができる。制御入力を決定する範囲は、例えば、探索範囲と呼ばれる。このため、情報処理装置100は、強化学習器101の利用中、制御対象110の状態が制約条件を充足する確率が、予め設定された下限値η以上に大きくなることを保証することができる。
【0155】
ここでは、制御対象110が単体で仮定4を充足する場合について説明したが、これに限らない。例えば、予め、仮定4を充足するための制御器を設計し、制御対象110に組み合わせることにより、制御対象110が仮定4を充足するようにする場合があってもよい。これによれば、情報処理装置100が適用可能な制御対象110の数の増大化を図ることができる。
【0156】
ここでは、制御対象110の真のモデルが未知である場合について説明したが、これに限らない。例えば、制御対象110の真のモデルが既知である場合があってもよい。この場合、情報処理装置100は、線形近似モデルを用いずに済み、真のモデルを用いて、状態の予測値や危険度の算出を行うことができ、強化学習器101の利用中、制約充足率を下限値η以上にする精度を向上させることができる。
【0157】
ここでは、誤差の正確な上限が既知である場合について説明したが、これに限らない。例えば、誤差の正確な上限が既知でないが、誤差の正確な上限よりも大きい上限が既知である場合があってもよい。この場合でも、情報処理装置100は、強化学習器101の利用中、制約充足率を下限値η以上にするように、強化学習を実施することができる。
【0158】
<実例を用いた情報処理装置100の動作の具体例>
次に、制御問題の実例を用いて、情報処理装置100の動作の具体例について説明する。ここで、下記式(34)および下記式(35)で規定される2変数関数を一例として、情報処理装置100の動作の具体例について説明する。下記式(34)は、f(0)=0を満たす。
【0159】
【0160】
【0161】
またδfi/δxjを、ij成分とする行列δf/δx(x)は、下記式(36)で規定される。従って、行列δf/δx(x)のフロベニウスノルム||δf/δx(x)||Fは、下記式(37)で規定される。
【0162】
【0163】
【0164】
さらに、|sin(x1)|≦1および|cos(x2)|≦1より、任意のxに関して下記式(38)が成立する。xは、2次元である。これにより、関数fは、2次元の実数空間の全域で縮小写像である。
【0165】
【0166】
ここで、時刻kにおける状態をxk=[x1k,x2k]Tとし、同じ時刻kの制御入力をukとすると、制御対象110の真のモデルは、関数fを用いた下記式(39)により、離散時間非線形システムとして規定される。g=[1,1]Tである。状態xkは、2次元である。制御入力ukは、実数である。
【0167】
【0168】
また、制御対象110の線形近似モデルは、下記式(40)および下記式(41)により規定される。fとgとは、未知である。AとBとは既知である。
【0169】
【0170】
【0171】
誤差関数eiの上限は、下記式(42)および下記式(43)により規定される。ここで、bar{e1}=0.4とし、bar{e2}=0.4とし、既知であるとする。換言すれば、上記仮定3が成立する。
【0172】
【0173】
【0174】
また、状態に対する制約条件は、x
1≦10とする。換言すれば、h
T=[1,0]とd=10とを用いて、制約条件を充足する状態の集合Xは、下記式(44)により規定される。
【数44】
【0175】
関数fが、2次元の実数空間の全域で縮小写像であり、原点が不動点であることと、Xの形状とから、上記仮定4が成立する。初期状態は、x0=[5,5]Tであるとする。また、hTB≠0であるため、上記線形近似モデルの係数行列および上記制約条件は、仮定5を充足する。また、即時コストは、下記式(45)により規定される。Q=1.0×105I2とし、R=1とする。
【0176】
【0177】
情報処理装置100は、上記制御入力の決定手法を、one-step actor-criticに組み込んだ強化学習器101および固定制御器102を利用して、連続型の強化学習を実施する。情報処理装置100は、具体的には、T=100stepとし、即時コストの累積コストJの最小化を図る制御入力を決定するための方策を学習する。stepは、単位時間の倍数で示される各時刻における、制御入力を決定して即時コストを観測する処理単位に対応する。
【0178】
θを下記式(46)により規定し、ωを下記式(47)により規定したため、価値関数の推定値bar{V(x;θ)}、および、制御入力uの平均値μ(x;ω)は、下記式(48)および下記式(49)により規定される。重みθは、Nθ次元である。ωは、Nω次元である。
【0179】
【0180】
【0181】
【0182】
【0183】
φi(・)は、2次元の配列を1次元の配列に変換する。φi(・)は、下記式(50)により規定される、ガウス型放射基底関数である。また、ciおよびsi
2>0は、それぞれ、各基底関数の中心点および分散である。ciは、2次元である。
【0184】
【0185】
情報処理装置100は、上記式(50)に従って、各時刻の状態xkおよびパラメータωを用いて算出した平均値μ(xk;ω)を適用し、各時刻の制御入力を決定したとする。そして、情報処理装置100は、重みθおよびパラメータωを、各時刻の即時コストck+1を用いて、下記式(51)~下記式(53)により更新したとする。
【0186】
【0187】
【0188】
【0189】
α∈[0,1)およびβ∈[0,1)は、学習率であり、Π(・)は、μkを平均値としΣkを分散共分散行列としたガウス型確率密度関数である。情報処理装置100は、固定制御器102として、制約条件を充足しない状態から、2回以内で制約条件を充足する状態xsafe=[5,-5]∈Xに遷移可能にする下記式(54)を利用する。
【0190】
【0191】
強化学習中の制約充足率の下限値ρは、下記式(55)により規定され、ρ=0.97となる。このため、強化学習器101の利用中の制約充足率の下限値ηは、下記式(56)により規定され、η=0.985となり、下記式(57)の不等式が成立する。
【0192】
【0193】
【0194】
【0195】
これにより、情報処理装置100は、制約条件を充足しない場合、固定制御器102により、制約条件を充足する状態に復帰することができる。そして、情報処理装置100は、制約条件を充足する状態に復帰される際に制約充足率の低下を招くことを考慮して、強化学習器101の利用中は、制約充足率が予め設定された下限値ρより大きい下限値η以上に大きくすることができる。このため、情報処理装置100は、強化学習中のすべての時点において、制約充足率が予め設定された下限値ρ以上に大きくなることを保証することができる。次に、
図7の説明に移行する。
【0196】
図7の例では、η=0.97とする。
図7に示すように、実数空間500において、情報処理装置100は、現時点が状態701である際には、確率η=0.985で状態702のような集合Xの内点に遷移させ、確率1-η=0.015で状態703のような集合Xの外点に遷移させることになる。また、実数空間500において、情報処理装置100は、状態703のような集合Xの外点に遷移した場合、τステップ以内で、状態706のような集合Xの内点に復帰させることになる。このように、情報処理装置100は、状態703のような集合Xの外点に遷移したことによる、強化学習中の制約充足率の低下を考慮して、強化学習器101の利用中の制約充足率を確率η以上にすることができる。
【0197】
一方で、実数空間500において、情報処理装置100は、現時点が状態704である際には、制御入力を0とするため、状態705のような集合Xの内点に遷移させることになり、制約条件を必ず充足することを保証することができる。これらのことから、情報処理装置100は、強化学習中のすべての時点において、制約条件を確率ρ以上で充足することを保証することができる。次に、
図9を用いて、動作例1における上記実例において、情報処理装置100により得られた効果について説明する。
【0198】
図8は、動作例1における情報処理装置100により得られた効果を示す説明図である。
図8において、情報処理装置100による強化学習と、強化学習器101のみを用いた強化学習とを比較する。強化学習器101のみを用いた強化学習においては、制約充足率の下限値ηは、下記式(58)に示すように、η=0.97とした。
【0199】
【0200】
図8のグラフ800は、強化学習を複数回実施した際の、複数の強化学習における同じ時刻のstepの制約充足率の平均値を示す。横軸は、stepである。縦軸は、制約充足率の平均値である。グラフ800に示すように、情報処理装置100による強化学習は、強化学習中のすべての時点において、制約充足率が予め設定された下限値ρ以上に大きくなることを保証することができる。一方で、強化学習器101のみを用いた強化学習は、制約充足率を、予め設定された下限値ρ以上に大きくすることができない。
【0201】
このように、情報処理装置100は、強化学習により方策を学習していく最中に、制約充足率が予め設定された下限値ρ以上に大きくなることを保証することができ、かつ、学習効率の低減化を抑制することができる。
【0202】
ここでは、制約条件が1つ設定される場合について説明したが、これに限らない。例えば、制約条件が複数設定される場合があってもよい。複数の制約条件がそれぞれ独立であれば、情報処理装置100は、動作例1と同様に、それぞれの制約条件についての制約充足率を下限値η以上にすることを保証する強化学習器101を利用するようにする。これにより、情報処理装置100は、強化学習中に複数の制約条件を同時に充足する確率を、下限値ρ以上にすることができる。以下の説明では、複数の制約条件を同時に充足する確率を「同時充足率」と表記する場合がある。
【0203】
(強化学習を適用する制御対象110の具体例)
次に、
図9~
図11を用いて、強化学習を適用する制御対象110の具体例について説明する。
【0204】
図9~
図11は、制御対象110の具体例を示す説明図である。
図9の例では、制御対象110は、熱源であるサーバ901と、CRACやChillerなどの冷却器902とを含むサーバルーム900である。制御入力は、冷却器902に対する設定温度や設定風量である。状態は、サーバルーム900に設けられたセンサ装置からのセンサデータなどであり、例えば、温度などである。状態は、制御対象110以外から得られる制御対象110に関するデータであってもよく、例えば、気温や天気などであってもよい。即時コストは、例えば、サーバルーム900の単位時間ごとの消費電力量である。単位時間は、例えば、5分である。目標は、サーバルーム900の累積消費電力量の最小化である。状態価値関数は、例えば、サーバルーム900の累積消費電力量についての制御入力の価値を表す。
【0205】
図10の例では、制御対象110は、発電設備1000である。発電設備1000は、例えば、風力発電設備である。制御入力は、発電設備1000に対する指令値である。指令値は、例えば、発電設備1000にある発電機の発電機トルクである。状態は、発電設備1000に設けられたセンサ装置からのセンサデータであり、例えば、発電設備1000の発電量や発電設備1000のタービンの回転量または回転速度などである。状態は、発電設備1000に対する風向や風速などであってもよい。即時報酬は、例えば、発電設備1000の単位時間ごとの発電量である。単位時間は、例えば、5分である。目標は、例えば、発電設備1000の累積発電量の最大化である。状態価値関数は、例えば、発電設備1000の累積発電量についての制御入力の価値を表す。これに対し、固定制御器102は、例えば、制約条件として回転速度を上限以下にすることが示されていれば、発電機トルクを一定以上にしたり、ブレーキをかけたりすることにより回転速度を低下させる制御器であってもよい。
【0206】
図11の例では、制御対象110は、産業用ロボット1100である。産業用ロボット1100は、例えば、ロボットアームである。制御入力は、産業用ロボット1100に対する指令値である。指令値は、例えば、産業用ロボット1100のモータートルクなどである。状態は、産業用ロボット1100に設けられたセンサ装置からのセンサデータであり、例えば、産業用ロボット1100の撮影した画像、産業用ロボット1100の関節位置や関節角度や関節角速度などである。即時報酬は、例えば、産業用ロボット1100の単位時間ごとの組み立て数などである。目標は、産業用ロボット1100の生産性の最大化である。状態価値関数は、例えば、産業用ロボット1100の累積組み立て数についての制御入力の価値を表す。
【0207】
また、制御対象110は、上述した具体例のシミュレータであってもよい。また、制御対象110は、風力発電以外の発電設備であってもよい。また、制御対象110は、例えば、化学プラントや自律移動ロボットなどであってもよい。また、制御対象110は、自動車などの乗り物であってもよい。また、制御対象110は、例えば、ドローンやヘリコプターなどの飛行物体であってもよい。また、制御対象110は、例えば、ゲームであってもよい。
【0208】
(動作例1における全体処理手順)
次に、
図12を用いて、情報処理装置100が実行する、動作例1における全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0209】
図12は、動作例1における全体処理手順の一例を示すフローチャートである。
図12において、情報処理装置100は、方策を与えるパラメータを初期化する(ステップS1201)。
【0210】
次に、情報処理装置100は、現時刻における制御対象110の状態を観測する(ステップS1202)。そして、情報処理装置100は、現時刻>初期時刻であるか否かを判定する(ステップS1203)。ここで、現時刻>初期時刻ではない場合(ステップS1203:No)、情報処理装置100は、ステップS1208の処理に移行する。一方で、現時刻>初期時刻である場合(ステップS1203:Yes)、情報処理装置100は、ステップS1204の処理に移行する。
【0211】
ステップS1204では、情報処理装置100は、制御対象110からの即時報酬を取得する(ステップS1204)。次に、情報処理装置100は、方策を与えるパラメータを更新する(ステップS1205)。そして、情報処理装置100は、現時刻における制御対象110の状態が制約条件を満たすか否かを判定する(ステップS1206)。ここで、制約条件を満たす場合(ステップS1206:Yes)、情報処理装置100は、ステップS1208の処理に移行する。一方で、制約条件を満たさない場合(ステップS1206:No)、情報処理装置100は、ステップS1207の処理に移行する。
【0212】
ステップS1207では、情報処理装置100は、固定制御器により、現時点における制御対象110への制御入力を決定する(ステップS1207)。そして、情報処理装置100は、ステップS1209の処理に移行する。
【0213】
ステップS1208では、情報処理装置100は、
図13に後述する決定処理を実行し、現時点における制御対象110への制御入力を決定する(ステップS1208)。そして、情報処理装置100は、ステップS1209の処理に移行する。
【0214】
ステップS1209では、情報処理装置100は、決定した制御入力を、制御対象110に印加する(ステップS1209)。次に、情報処理装置100は、次の時刻まで待機する(ステップS1210)。そして、情報処理装置100は、ステップS1202の処理に戻る。
【0215】
(動作例1における決定処理手順)
次に、
図13を用いて、情報処理装置100が実行する、動作例1における決定処理手順の一例について説明する。決定処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0216】
図13は、動作例1における決定処理手順の一例を示すフローチャートである。
図13において、情報処理装置100は、方策を与えるパラメータを参照して、現時点における制御対象110への制御入力の平均値を算出する(ステップS1301)。
【0217】
次に、情報処理装置100は、制御対象110の線形近似モデルを参照して、次の時刻における制御対象110の状態の予測値を算出し、制約条件に対する、現時点における制御対象110の状態についての危険度を算出する(ステップS1302)。
【0218】
そして、情報処理装置100は、算出した危険度が閾値未満であるか否かを判定する(ステップS1303)。ここで、閾値以上である場合(ステップS1303:No)、情報処理装置100は、ステップS1306の処理に移行する。一方で、閾値未満である場合(ステップS1303:Yes)、情報処理装置100は、ステップS1304の処理に移行する。
【0219】
ステップS1304では、情報処理装置100は、強化学習器101のパラメータとして設定された制約充足率の下限値ηを参照して、分散共分散行列を算出する(ステップS1304)。次に、情報処理装置100は、算出した平均値および分散共分散行列に基づく確率分布に従って、現時点における制御対象110への制御入力を確率的に決定する(ステップS1305)。そして、情報処理装置100は、決定処理を終了する。
【0220】
ステップS1306では、情報処理装置100は、制御入力を0に決定する(ステップS1306)。そして、情報処理装置100は、決定処理を終了する。
【0221】
(情報処理装置100の動作例2)
次に、
図14および
図15を用いて、情報処理装置100の動作例2について説明する。
【0222】
図14および
図15は、情報処理装置100の動作例2を示す説明図である。上述した動作例1は、制約条件が1つ設定される場合に対応する。これに対し、動作例2は、制約条件が複数設定される場合に対応する。以下の説明では、まず、情報処理装置100の動作の流れについて説明する。そして、数式を用いて、情報処理装置100の動作のうち、強化学習器101を利用して行う動作の一例について説明する。
【0223】
<情報処理装置100の動作の流れ>
動作例1において制御目標は、累積コストを最小化する制御入力を決定するための方策を学習することである。また、制御目的は、方策を学習する強化学習中の、すべての時刻k≧1において、状態に関する制約条件{fi}iを充足する確率を、下限値ρ∈(0,1)以上とすることを保証することであり、上記式(1)および上記式(2)により規定される。制約条件{fi}iは、線形でなくてもよい。制約条件{fi}iは、複数存在する。Pr(・)は、(・)内の条件が成立する確率を示す。
【0224】
また、状態xk=x∈Xである場合、時刻kにも状態xにも依存しない定数τが存在し、τステップ以内に状態をX内に移動させる制御入力列の算出方法が既知であることが仮定される。以下の説明では、制御入力列の算出方法が既知である仮定を「仮定1」と表記する場合がある。換言すれば、uk+j
back(x)∈X(j≦τ)となるようなuk
back(x),uk+1
back(x)・・・,uk+j
back(x)が存在することが仮定される。これによれば、固定制御器102が存在することが仮定される。
【0225】
また、強化学習および制御対象110に関しては、下記4つの特性が仮定される。1つ目の特性は、強化学習が、確率的に制御入力を決定する方策を利用可能であり、制御入力を決定する際に用いられる確率密度関数の分散共分散行列を、いずれのタイミングにも変更可能である性質である。2つ目の特性は、制御対象110が、制御入力に対して線形であり、制約条件が、状態に対して線形であるため、第1の時点において取りうる制御入力の分散が、第1の時点の次の第2の時点において取りうる制御対象110の状態に対して保存される性質である。3つ目の特性は、制御入力が0であれば、制約条件を充足する状態から制約条件を充足しない状態へと遷移することがない性質である。4つ目の特性は、複数の事象が少なくとも1つ発生する確率は、それぞれの事象が発生する確率の和以下である性質である。これによれば、強化学習器101が存在することが仮定される。
【0226】
情報処理装置100は、同時充足率をη以上にするため、各制約条件に関する制約充足率の下限値η’を設定し、強化学習器101を利用することになる。各制約条件に関する制約充足率の下限値η’は、下記式(59)により算出される。ncは、制約条件数である。
【0227】
【0228】
情報処理装置100は、現在の状態が制約条件を充足すれば強化学習器101を利用し、現在の状態が制約条件を充足しなければ固定制御器102を利用して、連続型の強化学習を実施する。上述したように、強化学習器101は、同時充足率を下限値η以上とすることを保証し、固定制御器102は、τステップ以内に状態をX内に移動させることを保証する。この場合、強化学習器101および固定制御器102を組み合わせると、制約充足率を下限値ητ以上にすることを保証することができる。
【0229】
従って、情報処理装置100は、制約条件を充足する場合、強化学習器101に関する同時充足率の下限値ηを、目標確率ρのτ乗根に設定して、強化学習器101を用いて制御入力を決定する。情報処理装置100は、制約条件を充足しない場合、固定制御器を用いて制御入力を決定する。これにより、情報処理装置100は、強化学習中に、制約充足率が目標確率ρ以上となることを保証することができる。
【0230】
<情報処理装置100が強化学習器101を利用して行う動作の一例>
動作例2において、上記式(6)~上記式(12)、上記式(17)、上記式(18)、および、下記式(60)~下記式(64)によって、制御対象110と、即時コストと、制約条件と、制御目的とが規定され、問題設定が行われる。また、上記式(20)~上記式(24)、下記式(65)および下記式(66)によって、動作例2において仮定される、強化学習および制御対象110に関する特性が規定される。
【0231】
以下の説明では、上記式(6)~上記式(12)、上記式(17)、および、上記式(18)は、動作例1と同様であるため、説明を省略する。また、上記式(20)~上記式(24)は、動作例1と同様であるため、説明を省略する。
【0232】
【0233】
【0234】
【0235】
上記式(60)は、複数の制約条件を規定する。xは、状態である。行列Hは、ユーザにより設定される。配列dは、ユーザにより設定される。制約条件は、既知であり、状態xに関して線形である。動作例2では、制約条件は複数である。上記式(61)は、行列Hが、n次元であることを示す。上記式(62)は、配列dが、実数であることを示す。
【0236】
【0237】
上記式(63)は、複数の制約条件を同時に充足する状態xの集合Xを示す。以下の説明では、Xの内点を、Xintと表記する場合がある。f(x*)=x*となるx*∈Xint、および、c(x*,0)=0となるx*∈Xintが存在する。
【0238】
【0239】
上記式(64)は、強化学習の制御目的として、複数の制約条件に関して、すべての時刻k≧1における同時充足率を、下限値η∈(0.5,1)以上とすることを保証することを規定する。Pr(・)は、(・)内の条件が成立する確率を示す。
【0240】
また、x∈Xであればf(x)∈Xであることが仮定される。以下の説明では、x∈Xであればf(x)∈Xである仮定を「仮定4」と表記する場合がある。
図14に示すように、仮定4は、いずれかの時刻において、状態xが複数の制約条件を同時に充足し、かつ、制御入力が0であれば、次の時刻において、遷移後の状態xも複数の制約条件を同時に充足することを示す。具体的には、実数空間1400において、現時点が状態1401である際に、制御入力を0とすれば、状態1402のような集合Xの内点に遷移することはあるが、状態1403のような集合Xの外点に遷移することはない。従って、制御入力が0であれば、遷移後の状態についての同時充足率を、下限値以上に大きくすることが保証可能である。
【0241】
【0242】
【0243】
制御対象110の線形近似モデルの係数行列と、制約条件とに関して上記式(65)および上記式(66)が成立することが仮定される。以下の説明では、制御対象110の線形近似モデルの係数行列と、制約条件とに関して上記式(65)および上記式(66)が成立する仮定を「仮定5」と表記する場合がある。
【0244】
上記問題設定では、制御対象110が、制御入力に対して線形であり、制約条件が、状態に対して線形である。このため、いずれかの時刻における制御入力の分散度合いは、次の時刻の制御対象110の状態の分散度合いに相関することになる。従って、いずれかの時刻における制御入力の分散度合いを調整すれば、次の時刻における状態の分散度合いを制御可能であり、次の時刻における状態についての制約充足率を、下限値以上に大きくすることが保証可能である。
【0245】
上記問題設定および上記仮定2~仮定5の下で、情報処理装置100の動作の一例について説明する。上記問題設定によれば、上記式(26)が成立する。ここで、情報処理装置100は、ステップ1として、方策を与えるパラメータωと、状態基底関数φ(・)を用いて、現時刻の状態に対する、現時刻に出力する制御入力の平均値μkを、上記式(27)により算出する。μkは、m次元である。
【0246】
情報処理装置100は、ステップ2として、制御対象110の線形近似モデルを示すモデル情報と、現時刻の状態とに基づいて、次の時刻の誤差を含む状態の予測値を、上記式(28)により算出する。そして、情報処理装置100は、次の時刻の誤差を含む状態の予測値に基づいて、制約条件ごとに現時刻の状態についての危険度を、下記式(67)により算出する。ここで、ε=[ε1,・・・,εn]Tである。εは、n次元である。εi=bar{ei} or -bar{ei}である。また、ε全体の集合をEと表記する。
【0247】
【0248】
情報処理装置100は、ステップ3として、ステップ2において算出した危険度に関して下記式(68)が成立する場合、ステップ4の処理に移行し、下記式(68)が成立しない場合、ステップ5の処理に移行する。
【0249】
【0250】
情報処理装置100は、ステップ4として、制御入力uk=0に決定し、ステップ7の処理に移行する。情報処理装置100は、ステップ5として、ステップ2において算出した危険度と、各制約条件の制約充足率の下限値η’とに基づいて、分散共分散行列を上記式(31)、上記式(56)および下記式(69)により算出する。Imは、m×m次元の単位行列である。Φ-1(・)は、逆正規累積分布関数である。
【0251】
【0252】
情報処理装置100は、ステップ6として、ステップ1において算出したμkと、ステップ5において算出したΣkとを、それぞれ、平均値および分散共分散行列として設定し、ガウス型確率密度関数を生成する。情報処理装置100は、ガウス型確率密度関数を用いて、制御入力ukを、上記式(33)により確率的に決定する。
【0253】
情報処理装置100は、ステップ7として、ステップ4またはステップ6において決定した、制御入力ukを、制御対象110に印加する。これにより、情報処理装置100は、制御入力を決定する範囲を危険度に応じて自動調整することができる。このため、情報処理装置100は、強化学習器101を利用中に、同時充足率が、予め設定された下限値η以上に大きくなることを保証することができる。
【0254】
結果として、情報処理装置100は、強化学習器101および固定制御器102を利用して、強化学習中に、同時充足率を確率ρ以上に大きくすることを保証することができる。次に、
図15の説明に移行し、情報処理装置100が、強化学習器101および固定制御器102を利用して、強化学習中に、同時充足率を確率ρ以上に大きくすることを保証することについて説明する。
【0255】
図15の例では、η=0.97とする。
図15に示すように、実数空間1400において、情報処理装置100は、現時点の状態が状態1501である際には、確率η=0.985で状態1502のような集合Xの内点に遷移させることになる。また、実数空間1400において、情報処理装置100は、現時点の状態が状態1501である際には、確率1-η=0.015で状態1503のような集合Xの外点に遷移させることになる。また、実数空間1400において、情報処理装置100は、状態1503のような集合Xの外点に遷移した場合、τステップ以内で、状態1506のような集合Xの内点に復帰させることになる。このように、情報処理装置100は、状態1503のような集合Xの外点に遷移したことによる、強化学習中の同時充足率の低下を考慮して、強化学習器101の利用中の同時充足率を確率η以上にすることができる。
【0256】
一方で、実数空間1400において、情報処理装置100は、現時点が状態1504である際には、制御入力を0とするため、状態1505のような集合Xの内点に遷移することになり、制約条件を必ず充足することを保証することができる。これらのことから、情報処理装置100は、強化学習中のすべての時点において、同時充足率を確率ρ以上に大きくすることを保証することができる。
【0257】
(動作例2における全体処理手順)
次に、
図20を用いて、情報処理装置100が実行する、動作例2における全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0258】
図16は、動作例2における全体処理手順の一例を示すフローチャートである。
図16において、情報処理装置100は、方策を与えるパラメータを初期化する(ステップS1601)。次に、情報処理装置100は、現時刻における制御対象110の状態を観測する(ステップS1602)。
【0259】
そして、情報処理装置100は、現時刻>初期時刻であるか否かを判定する(ステップS1603)。ここで、現時刻>初期時刻ではない場合(ステップS1603:No)、情報処理装置100は、ステップS1608の処理に移行する。一方で、現時刻>初期時刻である場合(ステップS1603:Yes)、情報処理装置100は、ステップS1604の処理に移行する。
【0260】
ステップS1604では、情報処理装置100は、制御対象110からの即時報酬を取得する(ステップS1604)。次に、情報処理装置100は、方策を与えるパラメータを更新する(ステップS1605)。そして、情報処理装置100は、現時刻における制御対象110の状態がすべての制約条件を満たすか否かを判定する(ステップS1606)。
【0261】
ここで、いずれかの制約条件を満たさない場合(ステップS1606:No)、情報処理装置100は、ステップS1607の処理に移行する。一方で、すべての制約条件を満たす場合(ステップS1606:Yes)、情報処理装置100は、ステップS1608の処理に移行する。
【0262】
ステップS1607では、情報処理装置100は、固定制御器により、現時点における制御対象110への制御入力を決定する(ステップS1607)。そして、情報処理装置100は、ステップS1609の処理に移行する。
【0263】
ステップS1608では、情報処理装置100は、
図17に後述する決定処理を実行し、現時点における制御対象110への制御入力を決定する(ステップS1608)。そして、情報処理装置100は、ステップS1609の処理に移行する。
【0264】
ステップS1609では、情報処理装置100は、決定した制御入力を、制御対象110に印加する(ステップS1609)。次に、情報処理装置100は、次の時刻まで待機する(ステップS1610)。そして、情報処理装置100は、ステップS1602の処理に戻る。
【0265】
(動作例2における決定処理手順)
次に、
図17を用いて、情報処理装置100が実行する、動作例2における決定処理手順の一例について説明する。決定処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0266】
図17は、動作例2における決定処理手順の一例を示すフローチャートである。
図17において、情報処理装置100は、方策を与えるパラメータを参照して、現時点における制御対象110への制御入力の平均値を算出する(ステップS1701)。
【0267】
次に、情報処理装置100は、制御対象110の線形近似モデルを参照して、次の時刻における制御対象110の状態の予測値を算出し、複数の制約条件のそれぞれの制約条件に対する、現時点における制御対象110の状態についての危険度を算出する(ステップS1702)。
【0268】
そして、情報処理装置100は、算出した複数の危険度のすべてが閾値未満であるか否かを判定する(ステップS1703)。ここで、いずれかの危険度が閾値以上である場合(ステップS1703:No)、情報処理装置100は、ステップS1707の処理に移行する。一方で、すべての危険度が閾値未満である場合(ステップS1703:Yes)、情報処理装置100は、ステップS1704の処理に移行する。
【0269】
ステップS1704では、情報処理装置100は、強化学習器101のパラメータとして設定された同時充足率の下限値ηを参照して、それぞれの制約条件に関する危険度に基づいて、それぞれの制約条件に関する標準偏差を算出する(ステップS1704)。そして、情報処理装置100は、算出した標準偏差の最小値に基づいて、分散共分散行列を算出する(ステップS1705)。
【0270】
次に、情報処理装置100は、算出した平均値および分散共分散行列に基づく確率分布に従って、現時点における制御対象110への制御入力を確率的に決定する(ステップS1706)。そして、情報処理装置100は、決定処理を終了する。
【0271】
ステップS1707では、情報処理装置100は、制御入力を0に決定する(ステップS1707)。そして、情報処理装置100は、決定処理を終了する。
【0272】
以上説明したように、情報処理装置100によれば、目標確率と、固定制御器102に関する所定時間とに基づいて、強化学習器101のパラメータを決定することができる。情報処理装置100によれば、いずれかの時点における制御対象110の状態が、制約条件を充足するか否かに基づいて、強化学習器101および固定制御器102のいずれか一方により、制御対象110への制御入力を決定することができる。これにより、情報処理装置100は、強化学習器101と固定制御器102とを使い分けて制御対象110への制御入力を決定することができ、強化学習全体で、制約条件を充足する確率の増大化を図ることができる。
【0273】
情報処理装置100によれば、所定確率が、所定時間と目標確率とに基づき算出される目標確率よりも高い確率になるように、強化学習器のパラメータを決定することができる。これにより、情報処理装置100は、制約条件を充足する確率を一定以上に大きくすることを保証しやすくすることができる。
【0274】
情報処理装置100によれば、制御対象110を、風力発電設備とし、制御対象110を制御する方策を学習する強化学習を実施することができる。これにより、情報処理装置100は、強化学習により、風力発電設備を制御する方策を学習していく最中に、制約条件を充足する確率を一定以上に大きくすることを保証しやすくすることができる。
【0275】
情報処理装置100によれば、所定時間を、制御入力を決定するステップの数により規定し、所定確率を、目標確率に対するステップの数分の累乗根に決定することができる。これにより、情報処理装置100は、制約条件を充足する確率を一定以上に大きくすることを保証するように所定確率を設定することができる。
【0276】
なお、本実施の形態で説明した強化学習方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した強化学習プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した強化学習プログラムは、インターネット等のネットワークを介して配布してもよい。
【0277】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0278】
(付記1)制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定時間以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定時間とに基づいて、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器のパラメータを決定し、
いずれかの時点における前記制御対象の状態が、前記制約条件を充足するか否かに基づいて、前記強化学習器および前記制御器のいずれか一方により、前記制御対象への制御入力を決定する、
処理をコンピュータが実行することを特徴とする強化学習方法。
【0279】
(付記2)前記強化学習器のパラメータを決定する処理は、
前記所定確率が、前記所定時間と前記目標確率とに基づき算出される、前記目標確率よりも高い確率になるように、前記強化学習器のパラメータを決定する、ことを特徴とする付記1に記載の強化学習方法。
【0280】
(付記3)前記強化学習器は、
前記所定確率で前記制約条件を充足するように制御入力の探索範囲を自動で調整することを特徴とする付記1または2に記載の強化学習方法。
【0281】
(付記4)前記制御対象は、風力発電設備であり、
前記強化学習器は、前記風力発電設備の発電機トルクを制御入力とし、前記風力発電設備の発電量と前記風力発電設備のタービンの回転量と前記風力発電設備のタービンの回転速度と前記風力発電設備に対する風向と前記風力発電設備に対する風速との少なくともいずれかを状態とし、前記風力発電設備の発電量を報酬とし、前記制御対象を制御する方策を学習する強化学習を実施する、ことを特徴とする付記1~3のいずれか一つに記載の強化学習方法。
【0282】
(付記5)前記所定時間は、制御入力を決定するステップの数により規定され、
前記強化学習器のパラメータを決定する処理は、
前記所定確率を、前記目標確率に対する前記ステップの数分の累乗根に決定する、ことを特徴とする付記1~4のいずれか一つに記載の強化学習方法。
【0283】
(付記6)制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定時間以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定時間とに基づいて、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器のパラメータを決定し、
いずれかの時点における前記制御対象の状態が、前記制約条件を充足するか否かに基づいて、前記強化学習器および前記制御器のいずれか一方により、前記制御対象への制御入力を決定する、
処理をコンピュータに実行させることを特徴とする強化学習プログラム。
【0284】
(付記7)制御対象の状態に関する制約条件を充足する目標確率と、前記制約条件を充足しない前記制御対象の状態から所定時間以内で前記制約条件を充足する前記制御対象の状態に遷移可能にする制御器に関する前記所定時間とに基づいて、前記制御対象の状態が前記制約条件を充足する時点の次の時点における前記制御対象の状態が所定確率で前記制約条件を充足することを保証可能にする強化学習器のパラメータを決定し、
いずれかの時点における前記制御対象の状態が、前記制約条件を充足するか否かに基づいて、前記強化学習器および前記制御器のいずれか一方により、前記制御対象への制御入力を決定する、
ことを特徴とする強化学習システム。
【符号の説明】
【0285】
100 情報処理装置
101 強化学習器
102 固定制御器
103 切替手段
110 制御対象
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
310 ネットワーク
400 記憶部
401 取得部
402 算出部
403 第1決定部
404 第2決定部
405 切替部
406 学習部
407 出力部
500,1400 実数空間
501~503,701~706,1401~1403,1501~1506 状態
600,800 グラフ
900 サーバルーム
901 サーバ
902 冷却器
1000 発電設備
1100 産業用ロボット