(57)【要約】【課題】強化学習による学習効率の向上を図ること。【解決手段】強化学習装置１００は、複数ステップ先までの環境１１０への一連の制御入力と、複数ステップ先までの環境１１０への一連の制御入力に応じた環境１１０からの一連の報酬とに基づいて、強化学習を実施する。ここで、強化学習装置１００は、複数ステップ先までの環境１１０への一連の制御入力を、強化学習における行動として定義して利用する。これにより、強化学習装置１００は、強化学習による学習効率の向上を図ることができる。【選択図】図１
2020119008.tif 000002
【特許請求の範囲】
【請求項１】
環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する、
処理をコンピュータが実行することを特徴とする強化学習方法。
【請求項２】
前記強化学習は、風力発電にかかる風車の動作点を制御する、ことを特徴とする請求項１に記載の強化学習方法。
【請求項３】
前記行動の価値を規定する行動価値関数を表現する数式を用いて、前記強化学習を実施する、ことを特徴とする請求項１または２に記載の強化学習方法。
【請求項４】
前記行動の価値を規定するテーブルを用いて、前記強化学習を実施する、ことを特徴とする請求項１または２に記載の強化学習方法。
【請求項５】
前記実施する処理は、
前記ステップごとに、前記複数ステップ先までの前記環境への一連の制御入力を決定し、決定した前記一連の制御入力のうちの最初の制御入力を前記環境に与え、前記最初の制御入力に応じた前記環境からの報酬を取得し、
実際に前記環境に与えた前記複数ステップ分の一連の制御入力と、実際に前記環境に与えた前記複数ステップ分の一連の制御入力に応じて取得された前記複数ステップ分の一連の報酬とに基づいて、前記環境を制御する制御器を更新する、ことを特徴とする請求項１〜４のいずれか一つに記載の強化学習方法。
【請求項６】
環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する、
処理をコンピュータに実行させることを特徴とする強化学習プログラム。
【請求項７】
環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する、
制御部を有することを特徴とする強化学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、強化学習方法、強化学習プログラム、および強化学習装置に関する。
【背景技術】
【０００２】
従来、強化学習の分野では、例えば、環境への行動を行い、行動に応じて観測された環境からの報酬に基づき、環境への行動として最適であると判断される方策を決定するための制御器を学習する一連の処理が繰り返し行われ、環境が制御される。
【０００３】
先行技術としては、例えば、強化学習によりユーザの情動遷移モデルを構築するものがある。また、例えば、状態、活動および連続状態を含むトレーニングデータに基づいて、品質関数と活動選択ルールを学習する技術がある。また、例えば、火力発電プラントを制御する技術がある。また、例えば、可動部の周期運動の制御に引き込み特性を利用する技術がある。また、例えば、対人距離および人間の顔の向きからインタラクションパラメータの快・不快を最適化するように、インタラクションパラメータを更新する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３８４２２号公報
【特許文献２】特開２０１１−０６０２９０号公報
【特許文献３】特開２００８−２４９１８７号公報
【特許文献４】特開２００６−２８９６０２号公報
【特許文献５】特開２００６−２４７７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、強化学習による学習効率が低下することがある。例えば、何らかの行動を行った直後に観測される報酬が比較的大きいと、その行動が利得を増大させる観点からは不適切であっても、好ましい行動であると判断してしまい、局所解に陥り、性能のよい制御器を学習することができないことがある。ここで、利得は割引累積報酬や平均報酬など、報酬によって規定される関数である。
【０００６】
１つの側面では、本発明は、強化学習による学習効率の向上を図ることを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する強化学習方法、強化学習プログラム、および強化学習装置が提案される。
【発明の効果】
【０００８】
一態様によれば、強化学習による学習効率の向上を図ることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。
【図２】図２は、強化学習装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、履歴テーブル３００の記憶内容の一例を示す説明図である。
【図４】図４は、強化学習装置１００の機能的構成例を示すブロック図である。
【図５】図５は、強化学習装置１００の動作例１を示す説明図である。
【図６】図６は、特定の環境１１０の一例を示す説明図（その１）である。
【図７】図７は、特定の環境１１０の一例を示す説明図（その２）である。
【図８】図８は、特定の環境１１０の一例を示す説明図（その３）である。
【図９】図９は、特定の環境１１０の一例を示す説明図（その４）である。
【図１０】図１０は、特定の環境１１０の一例を示す説明図（その５）である。
【図１１】図１１は、強化学習装置１００により得られる効果を示す説明図（その１）である。
【図１２】図１２は、強化学習装置１００により得られる効果を示す説明図（その２）である。
【図１３】図１３は、強化学習装置１００により得られる効果を示す説明図（その３）である。
【図１４】図１４は、強化学習処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる強化学習方法、強化学習プログラム、および強化学習装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる強化学習方法の一実施例）
図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。強化学習装置１００は、環境１１０を制御するためのコンピュータである。強化学習装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、または、マイクロコントローラなどである。
【００１２】
環境１１０は、制御対象となる何らかの事象であり、例えば、現実に存在する物理系である。環境１１０は、例えば、シミュレータ上にあってもよい。環境１１０は、具体的には、自動車、自律移動ロボット、産業用ロボット、ドローン、ヘリコプター、サーバルーム、発電機、化学プラント、または、ゲームなどである。
【００１３】
従来、環境１１０を制御する制御手法として、例えば、モデル予測制御（ｍｏｄｅｌ  ｐｒｅｄｉｃｔｉｖｅ  ｃｏｎｔｒｏｌ）があるが、モデル予測制御では、人手でモデルを用意するため、人間にかかる作業負担の増大化を招くという問題がある。作業負担は、作業コストまたは作業時間である。また、モデル予測制御では、用意したモデルが、実際の環境１１０を正確に表現していなければ、環境１１０を効率よく制御することができないという問題があり、環境１１０が有する性質を人間が知っていることが望まれる。
【００１４】
これに対し、人手でモデルを用意せずに済み、環境１１０が有する性質を人間が知らずとも環境１１０に適用可能な、環境１１０を制御する制御手法として、例えば、強化学習がある。従来の強化学習では、例えば、現在の制御器よりも性能のよい制御器を見つけるために、環境１１０への行動を行い、行動に応じて観測された環境１１０からの報酬に基づき、制御器を学習することにより、環境１１０が制御される。
【００１５】
ここで、従来の強化学習では、行動は、環境１１０への制御入力の１回分単位で定義される。制御器は、行動を決定するための制御則である。制御器の性能は、利得に対する寄与がどの程度大きい行動を決定可能であるかを示す。利得は、割引累積報酬または平均報酬などによって規定される。割引累積報酬は、長期的な期間における一連の報酬を、時系列が後の報酬ほど小さくなるように補正した場合の合計値である。平均報酬は、長期的な期間における一連の報酬の平均値である。相対的に性能のよい制御器は、相対的に性能が悪い制御器よりも、最適な行動に近い行動を決定することができ、決定した行動により利得を増大させやすく、報酬を増大させやすい。最適な行動は、例えば、環境１１０における利得を最大化すると判断される行動である。最適な行動は、人間が知ることができない場合がある。
【００１６】
しかしながら、従来の強化学習では、制御器を効率よく学習することができない。従来の強化学習としては、複数のバリエーションが存在し、具体的には、下記バリエーション１〜下記バリエーション３などが存在するが、いずれのバリエーションでも制御器を効率よく学習することが難しい場合がある。
【００１７】
例えば、バリエーション１として、行動価値関数を用意し、Ｑ学習またはＳＡＲＳＡの更新則により行動価値関数を更新し、制御器を学習する強化学習が考えられる。バリエーション１は、例えば、環境１１０への行動を行い、行動に応じて観測された環境１１０からの報酬に基づき行動価値関数を更新し、行動価値関数に基づき制御器を更新するといった一連の処理を繰り返し行うことにより、環境１１０を制御する。
【００１８】
ここで、環境１１０への行動が行われた際、環境１１０からの短期的な報酬は増加するものの長期的な報酬は減少する性質、または、環境１１０からの短期的な報酬は減少するものの長期的な報酬は増加する性質を示すような特定の環境１１０が存在する。特定の環境１１０は、例えば、利得を最大化させる観点からは不適切な行動が行われた際、行動を行った直後に観測される報酬が比較的大きくなる性質を示す。
【００１９】
具体的には、特定の環境１１０は、風力発電にかかる風車である場合が考えられる。この場合、行動は、風車に接続された発電機の負荷トルクに関する制御入力であり、報酬は、発電機の発電量である。この場合、負荷トルクを高める方向の行動が行われた際、風力が風車の回転よりも発電機の発電に大きく用いられるため、短期的な発電量は増大することもあるが、風車の回転速度の低下を招くことにより、長期的な発電量の低下を招くおそれがある。特定の環境１１０の具体例については、例えば、図６〜図８を用いて後述する。
【００２０】
バリエーション１は、上記特定の環境１１０の制御に適用された場合、行動が、利得を最大化させる観点から適切な行動であるか、または、不適切な行動であるかを判断することが難しく、性能のよい制御器を学習することが難しい。
【００２１】
例えば、バリエーション１は、行動が、利得を最大化させる観点から不適切な行動であっても、その行動を行った直後に観測される報酬が比較的大きい場合、その行動を適切な行動であると誤って判断しやすい。結果として、バリエーション１は、どのような行動が、適切な行動であるかを学習することができず、性能のよい制御器を学習することができないことがある。
【００２２】
また、バリエーション１は、環境１１０への行動を環境１１０への制御入力の１回分単位で定義している。このため、バリエーション１は、どのような行動が、適切な行動であるかを学習する際、環境１１０への制御入力の１回分単位で学習することになり、環境１１０への制御入力をどのように変化させたかは考慮することができない。結果として、バリエーション１は、性能のよい制御器を学習することが難しい。
【００２３】
また、バリエーション１でも、環境１１０の種々の状態について様々な行動を試し、どのような行動が適切な行動であるかを学習し、局所解から脱出することができれば、性能のよい制御器を学習することができる可能性はあるが、処理時間の増大化を招くことになる。また、環境１１０が、シミュレータ上ではなく実在する場合、環境１１０の状態を任意に変更することは難しく、バリエーション１は、環境１１０の種々の状態について様々な行動を試すことが難しく、性能のよい制御器を学習することが難しくなる。
【００２４】
また、バリエーション２として、過去の複数の時点のそれぞれの時点での、環境１１０の状態、環境１１０への行動、または、環境１１０からの報酬などに基づいて、制御器を学習する強化学習が考えられる。バリエーション２は、具体的には、下記参考文献１などに基づく強化学習である。
【００２５】
参考文献１：Ｓａｓａｋｉ，  Ｔｏｍｏｔａｋｅ，  ｅｔ  ａｌ．  “Ｄｅｒｉｖａｔｉｏｎ  ｏｆ  ｉｎｔｅｇｒａｔｅｄ  ｓｔａｔｅ  ｅｑｕａｔｉｏｎ  ｆｏｒ  ｃｏｍｂｉｎｅｄ  ｏｕｔｐｕｔｓ−ｉｎｐｕｔｓ  ｖｅｃｔｏｒ  ｏｆ  ｄｉｓｃｒｅｔｅ−ｔｉｍｅ  ｌｉｎｅａｒ  ｔｉｍｅ−ｉｎｖａｒｉａｎｔ  ｓｙｓｔｅｍ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ．”  Ｓｏｃｉｅｔｙ  ｏｆ  Ｉｎｓｔｒｕｍｅｎｔ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅｅｒｓ  ｏｆ  Ｊａｐａｎ  （ＳＩＣＥ），  ２０１７  ５６ｔｈ  Ａｎｎｕａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｆ  ｔｈｅ．  ＩＥＥＥ，  ２０１７．
【００２６】
バリエーション２も、上記特定の環境１１０の制御に適用された場合、行動が、適切な行動であるか、または、不適切な行動であるかを判断することが難しく、性能のよい制御器を学習することが難しい。例えば、バリエーション２も、行動が不適切な行動であっても、行動を行った直後に観測される報酬が比較的大きい場合、行動を適切な行動であると誤って判断しやすい。また、バリエーション２も、環境１１０への行動を環境１１０への制御入力の１回分単位で定義しているため、どのような行動が、適切な行動であるかを学習する際、環境１１０への制御入力をどのように変化させたかは考慮することができない。
【００２７】
また、バリエーション３として、適応的トレース（ｅｌｉｇｉｂｉｌｉｔｙ  ｔｒａｃｅ）を利用する強化学習が考えられる。適応的トレースを利用する強化学習は、オン方策（ｏｎ−ｐｏｌｉｃｙ）型、または、オフ方策（ｏｆｆ−ｐｏｌｉｃｙ）型のいずれも考えられる。バリエーション３は、具体的には、下記参考文献２および下記参考文献３などに基づく強化学習である。
【００２８】
参考文献２：Ｓｕｔｔｏｎ，  Ｒｉｃｈａｒｄ  Ｓ．，  ａｎｄ  Ａｎｄｒｅｗ  Ｇ．  Ｂａｒｔｏ．  “Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ：  Ａｎ  ｉｎｔｒｏｄｕｃｔｉｏｎ．”  ＭＩＴ  ｐｒｅｓｓ，  ２０１２．
【００２９】
参考文献３：ＪＩＮＧ．  ＰＥＮＧ，  ａｎｄ  ＲＯＮＡＬＤ  Ｊ．  ＷＩＬＬＩＡＭＳ．  “Ｉｎｃｒｅｍｅｎｔａｌ  Ｍｕｌｔｉ−Ｓｔｅｐ  Ｑ−Ｌｅａｒｎｉｎｇ．”  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ２２  （１９９６）：  ２８３−２９０．
【００３０】
バリエーション３は、オフ方策型である場合、重点サンプリングを利用したり、そのときの制御器が最適と判断する貪欲行動のみのサンプリングを利用したりする。このため、バリエーション３も、上記特定の環境１１０の制御に適用された場合、行動が、適切であるか、または、不適切であるかを判断することが難しく、性能のよい制御器を学習することが難しいことがある。
【００３１】
そこで、本実施の形態では、環境１１０への一連の制御入力を、強化学習における行動と定義することにより、短期的な報酬の変化だけに左右されることなく、性能のよい制御器を学習しやすくすることができる強化学習方法について説明する。
【００３２】
図１において、強化学習装置１００は、複数ステップ先までの環境１１０への一連の制御入力と、複数ステップ先までの環境１１０への一連の制御入力に応じた環境１１０からの一連の報酬とに基づいて、強化学習を実施する。ここで、強化学習装置１００は、複数ステップ先までの環境１１０への一連の制御入力を、強化学習における行動として定義して利用する。
【００３３】
ステップは、環境１１０に与える制御入力を決定する処理である。ステップは、例えば、複数ステップ先までの環境１１０への一連の制御入力を環境１１０への行動に決定し、行動に決定した一連の制御入力のうち最初の制御入力を、環境１１０に与える制御入力に決定する処理である。強化学習は、例えば、Ｑ学習、ＳＡＲＳＡなどを利用する。
【００３４】
強化学習装置１００は、例えば、ステップごとに、ｋステップ先までの環境１１０への一連の制御入力を、環境１１０への行動に決定して記憶する。以下の説明では、あるステップでの「ｋステップ先まで」とは、当該ステップを１ステップ目とした場合の、１ステップ目からｋステップ目までの複数ステップを意味する。ここで、ｋ≧２である。
【００３５】
強化学習装置１００は、ステップごとに、行動に決定した一連の制御入力のうちの最初の制御入力を、環境１１０に与える制御入力に決定して記憶し、環境１１０に与える。強化学習装置１００は、制御入力を環境１１０に与える都度、制御入力に応じた環境１１０からの報酬を取得して記憶する。強化学習装置１００は、実際に環境１１０に与えたｋステップ分の一連の制御入力と、実際に環境１１０に与えたｋステップ分の一連の制御入力に応じて取得されたｋステップ分の一連の報酬とに基づいて、制御器を更新する。
【００３６】
これにより、強化学習装置１００は、強化学習による学習効率の向上を図ることができる。強化学習装置１００は、例えば、短期的な報酬の変化だけに左右されることなく、長期的な報酬の変化を考慮し、制御器を学習することができる。また、強化学習装置１００は、例えば、制御入力の１回分単位ではなく、制御入力をどのように変化させたかを考慮し、制御器を学習することができる。このため、強化学習装置１００は、例えば、上記特定の環境１１０の制御に、強化学習を適用する場合も、性能のよい制御器を学習することができる。
【００３７】
また、強化学習装置１００は、環境１１０の種々の状態について直近の報酬に惑わされず、局所解に陥りにくいため、処理時間の増大化を抑制することができる。また、強化学習装置１００は、シミュレータ上ではなく実在する環境１１０の制御に、強化学習を適用しやすくすることができる。また、強化学習装置１００は、オン方策型、および、オフ方策型のいずれの強化学習も実現することができる。
【００３８】
ここでは、強化学習が、Ｑ学習、ＳＡＲＳＡなどを利用する場合について説明したが、これに限らない。例えば、強化学習が、Ｑ学習、ＳＡＲＳＡ以外の手法を利用する場合があってもよい。ここでは、ｋが固定である場合について説明したが、これに限らない。例えば、ｋが可変である場合があってもよい。
【００３９】
（強化学習装置１００のハードウェア構成例）
次に、図２を用いて、強化学習装置１００のハードウェア構成例について説明する。
【００４０】
図２は、強化学習装置１００のハードウェア構成例を示すブロック図である。図２において、強化学習装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００４１】
ここで、ＣＰＵ２０１は、強化学習装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００４２】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３は、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどである。
【００４３】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、強化学習装置１００から着脱可能であってもよい。
【００４４】
強化学習装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を複数有していてもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００４５】
（履歴テーブル３００の記憶内容）
次に、図３を用いて、履歴テーブル３００の記憶内容について説明する。履歴テーブル３００は、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４６】
図３は、履歴テーブル３００の記憶内容の一例を示す説明図である。図３に示すように、履歴テーブル３００は、時点のフィールドに対応付けて、状態と、行動と、制御入力と、報酬とのフィールドを有する。履歴テーブル３００は、時点ごとに各フィールドに情報を設定することにより、履歴情報が記憶される。
【００４７】
時点のフィールドには、単位時間の倍数で示される時点が設定される。状態のフィールドには、時点のフィールドに設定された時点における環境１１０の状態が設定される。行動のフィールドには、時点のフィールドに設定された時点における環境１１０への行動として、時点のフィールドに設定された時点のステップを１ステップ目とした場合の、ｋステップ先までの一連の制御入力が設定される。制御入力のフィールドには、時点のフィールドに設定された時点における環境１１０に与えた制御入力であり、行動のうち最初の制御入力が設定される。報酬のフィールドには、時点のフィールドに設定された時点における環境１１０からの報酬が設定される。
【００４８】
（強化学習装置１００の機能的構成例）
次に、図４を用いて、強化学習装置１００の機能的構成例について説明する。
【００４９】
図４は、強化学習装置１００の機能的構成例を示すブロック図である。強化学習装置１００は、記憶部４００と、設定部４１１と、状態取得部４１２と、行動決定部４１３と、報酬取得部４１４と、更新部４１５と、出力部４１６とを含む。
【００５０】
記憶部４００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。以下では、記憶部４００が、強化学習装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部４００が、強化学習装置１００とは異なる装置に含まれ、記憶部４００の記憶内容が強化学習装置１００から参照可能である場合があってもよい。
【００５１】
設定部４１１〜出力部４１６は、制御部４１０の一例として機能する。設定部４１１〜出力部４１６は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００５２】
記憶部４００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部４００は、環境１１０への行動と、環境１１０へ与えた制御入力と、環境１１０の状態と、環境１１０からの報酬とを蓄積する。行動は、複数ステップ先までの一連の制御入力である。制御入力は、例えば、環境１１０に与える指令値である。制御入力は、例えば、連続量である実数値である。制御入力は、例えば、離散値であってもよい。記憶部４００は、例えば、時点ごとに、環境１１０への行動と、環境１１０へ与えた制御入力と、環境１１０の状態と、環境１１０からの報酬とを、図３に示した履歴テーブル３００を用いて記憶する。
【００５３】
環境１１０は、例えば、発電設備である場合がある。発電設備は、例えば、風力発電設備である。この場合、制御入力は、例えば、発電設備の発電機トルクの制御モードである。状態は、例えば、発電設備のタービンの回転速度［ｒａｄ／ｓ］と、発電設備に対する風向と、発電設備に対する風速［ｍ／ｓ］となどの少なくともいずれかである。報酬は、例えば、発電設備の発電量［Ｗｈ］である。
【００５４】
また、環境１１０は、例えば、空調設備である場合がある。この場合、制御入力は、例えば、空調設備の設定温度と、空調設備の設定風量となどの少なくともいずれかである。状態は、例えば、空調設備がある部屋の内部の温度と、空調設備がある部屋の外部の温度と、気候となどの少なくともいずれかである。報酬は、例えば、空調設備の消費電力量にマイナスをかけた値である。
【００５５】
また、環境１１０は、例えば、産業用ロボットである場合がある。この場合、制御入力は、例えば、産業用ロボットのモータートルクである。状態は、例えば、産業用ロボットの撮影した画像と、産業用ロボットの関節位置と、産業用ロボットの関節角度と、産業用ロボットの関節角速度となどの少なくともいずれかである。報酬は、例えば、産業用ロボットの生産量である。生産量は、例えば、組み立て数である。組み立て数は、例えば、産業用ロボットが組み立てた製品の数である。また、環境１１０は、例えば、自動車、自律移動ロボット、ドローン、ヘリコプター、化学プラント、または、ゲームなどであってもよい。
【００５６】
記憶部４００は、強化学習に利用される強化学習器πを記憶する。強化学習器πは、制御器と更新器とを含む。制御器は、環境１１０の状態に対し、行動を決定するための制御則である。更新器は、制御器を更新するための更新則である。記憶部４００は、価値関数型の強化学習を実施する場合、強化学習器πに利用される行動価値関数を記憶する。行動価値関数は、行動の価値を示す値を算出する関数である。
【００５７】
行動の価値は、環境１１０からの割引累積報酬または平均報酬などの利得の最大化を図るため、環境１１０からの利得が大きくなるほど、高くなるように設定される。行動の価値は、具体的には、環境１１０への行動が、報酬にどの程度寄与するかを示すＱ値である。行動価値関数は、多項式などを用いて表現される。行動価値関数は、多項式を用いて表現される場合は、状態および行動を表す変数を用いて記述される。記憶部４００は、例えば、行動価値関数を表現する多項式、および、多項式にかけられる係数を記憶する。これにより、記憶部４００は、各種情報を、各処理部が参照可能にすることができる。
【００５８】
（制御部４１０全体による各種処理についての説明）
以下の説明では、制御部４１０全体による各種処理について説明した後、制御部４１０の一例として機能する設定部４１１〜出力部４１６のそれぞれの機能部による各種処理について説明する。まず、制御部４１０全体による各種処理について説明する。
【００５９】
制御部４１０は、複数ステップ先までの環境１１０への一連の制御入力と、複数ステップ先までの環境１１０への一連の制御入力に応じた環境１１０からの一連の報酬とに基づいて、強化学習を実施する。ここで、制御部４１０は、複数ステップ先までの環境１１０への一連の制御入力を、強化学習における行動として定義して利用する。
【００６０】
ステップは、環境１１０に与える制御入力を決定する処理である。ステップは、例えば、複数ステップ先までの環境１１０への一連の制御入力を環境１１０への行動に決定し、行動に決定した一連の制御入力のうち最初の制御入力を、環境１１０に与える制御入力に決定する処理である。強化学習は、例えば、Ｑ学習、ＳＡＲＳＡなどを利用する。強化学習は、例えば、価値関数型または方策勾配型である。
【００６１】
制御部４１０は、例えば、ステップごとに、複数ステップ先までの環境１１０への一連の制御入力を、環境１１０への行動に決定し、履歴テーブル３００に記憶する。制御部４１０は、ステップごとに、行動に決定した一連の制御入力のうちの最初の制御入力を、環境１１０に与える制御入力に決定し、履歴テーブル３００に記憶し、環境１１０に与える。制御部４１０は、制御入力を環境１１０に与える都度、制御入力に応じた環境１１０からの報酬を取得し、履歴テーブル３００に記憶する。そして、制御部４１０は、実際に環境１１０に与えた複数ステップ分の一連の制御入力と、実際に環境１１０に与えた複数ステップ分の一連の制御入力に応じて取得された複数ステップ分の一連の報酬とに基づいて、制御器を更新する。
【００６２】
制御部４１０は、具体的には、ステップごとに、ｋステップ先までの環境１１０への一連の制御入力を、環境１１０への行動に決定し、記憶する。制御部４１０は、ステップごとに、行動に決定した一連の制御入力のうちの最初の制御入力を、環境１１０に与える制御入力に決定し、記憶し、環境１１０に与える。制御部４１０は、制御入力を環境１１０に与える都度、制御入力に応じた環境１１０からの報酬を取得し、記憶する。制御部４１０は、実際に環境１１０に与えたｋステップ分の一連の制御入力と、実際に環境１１０に与えたｋステップ分の一連の制御入力に応じて取得されたｋステップ分の一連の報酬とに基づいて、制御器を更新する。ここで、ｋ≧２である。
【００６３】
制御部４１０は、具体的には、価値関数型の強化学習器の場合、行動の価値を規定する行動価値関数を表現する数式を用いて、強化学習を実施する。また、制御部４１０は、具体的には、行動の価値を規定するテーブルを用いて、強化学習を実施してもよい。強化学習は、例えば、Ｑ学習、ＳＡＲＳＡなどを利用する。これにより、制御部４１０は、強化学習による学習効率の向上を図ることができる。制御部４１０は、例えば、短期的な報酬の変化だけに左右されることなく、長期的な報酬の変化を考慮し、制御器を学習することができる。また、強化学習装置１００は、例えば、制御入力の１回分単位ではなく、制御入力をどのように変化させたかを考慮し、制御器を学習することができる。
【００６４】
（設定部４１１〜出力部４１６のそれぞれの機能部による各種処理についての説明）
次に、制御部４１０の一例として機能する設定部４１１〜出力部４１６のそれぞれの機能部による各種処理について説明する。
【００６５】
以下の説明では、ｔは、単位時間の倍数で示される時点を表す記号である。ｓは、環境１１０の状態を表す記号である。ｓは、時点ｔにおける環境１１０の状態であることを明示する場合、下付文字ｔを付して表される。また、ａは、環境１１０への制御入力を表す記号である。ａは、時点ｔにおける環境１１０への制御入力であることを明示する場合、下付文字ｔを付して表される。また、Ａは、行動を表す記号である。Ａは、時点ｔを起点とする環境１１０への行動であることを明示する場合、下付文字ｔを付して表される。また、ｒは、報酬を表す記号である。ｒは、スカラー値である。ｒは、時点ｔにおける環境１１０からの報酬であることを明示する場合、下付文字ｔを付して表される。
【００６６】
設定部４１１は、各処理部が用いる変数などの各種情報を設定する。設定部４１１は、例えば、履歴テーブル３００を初期化する。設定部４１１は、例えば、利用者の操作入力に基づき、変数ｋを設定する。設定部４１１は、例えば、利用者の操作入力に基づき、強化学習器πを設定する。強化学習器πは、更新器と制御器とを含む。強化学習器πは、例えば、更新器を示す関数ｌｅａｒｎ（ｐ）と、制御器を示す関数ａｃｔｉｏｎ（ｓ）とを含む。これにより、設定部４１１は、変数などを各処理部に利用させることができる。
【００６７】
状態取得部４１２は、単位時間ごとに、環境１１０の状態ｓを取得し、取得した状態ｓを記憶部４００に記憶する。状態取得部４１２は、例えば、単位時間ごとに、現在の時点ｔにおける環境１１０の状態ｓtを取得し、時点ｔに対応付けて履歴テーブル３００に記憶する。これにより、状態取得部４１２は、行動決定部４１３や更新部４１５に、環境１１０の状態ｓを参照させることができる。
【００６８】
行動決定部４１３は、強化学習器πを用いて、行動Ａを決定し、行動Ａに基づき実際に環境１１０に与える制御入力ａを決定し、行動Ａと制御入力ａとを、記憶部４００に記憶する。行動Ａの決定は、例えば、ε貪欲法やボルツマン選択などが利用される。行動は、例えば、貪欲行動またはランダム行動である。
【００６９】
行動決定部４１３は、例えば、強化学習器πを用いて、状態ｓtに基づいて、行動Ａtを決定し、履歴テーブル３００に記憶する。行動Ａtは、例えば、時点ｔでのステップを１ステップ目とした場合の、ｋステップ先までの制御入力ａt〜ａt+k-1を並べた制御入力列である。行動決定部４１３は、行動Ａtの最初の制御入力ａtを、実際に環境１１０に与える制御入力ａtに決定し、履歴テーブル３００に記憶する。これにより、行動決定部４１３は、環境１１０に対して好ましい制御入力を決定し、環境１１０を効率よく制御可能にすることができる。
【００７０】
報酬取得部４１４は、制御入力ａが環境１１０に与えられる都度、制御入力ａに応じた環境１１０からの報酬ｒを取得し、記憶部４００に記憶する。報酬は、コストにマイナスをかけた値であってもよい。報酬取得部４１４は、例えば、制御入力ａtが環境１１０に与えられる都度、制御入力ａtを環境１１０に与えてから単位時間の経過を待ち、経過後の時点ｔ＋１における環境１１０からの報酬ｒt+1を取得し、履歴テーブル３００に記憶する。これにより、報酬取得部４１４は、報酬を更新部４１５に参照させることができる。
【００７１】
更新部４１５は、強化学習器πの更新器を用いて、制御器を更新する。更新部４１５は、例えば、Ｑ学習、ＳＡＲＳＡなどに従って、行動価値関数を更新し、更新した行動価値関数に基づいて、制御器を更新する。更新部４１５は、例えば、Ｑ学習の場合、状態ｓt、状態ｓt+k、時刻ｔから時刻ｔ＋ｋ−１までの制御入力から構成される行動Ａt＝（ａt，…，ａt+k-1）、および、報酬群Ｒt+1に基づいて、行動価値関数を更新し、更新した行動価値関数に基づいて、制御器を更新する。報酬群Ｒt+1は、行動Ａtとなるｋステップ先までの制御入力ａt〜ａt+k-1に応じた報酬ｒt+1〜ｒt+kを含む。ここでのｔは、実際に更新器を利用する際の「現在の時点」とは異なる。
【００７２】
また、更新部４１５は、例えば、ＳＡＲＳＡの場合、さらに行動Ａt+kに基づいて、行動価値関数を更新し、更新した行動価値関数に基づいて、制御器を更新する。行動Ａt+kは、例えば、時点ｔ＋ｋでのステップを１ステップ目とした場合の、ｋステップ先までの制御入力ａt+k〜ａt+2k-1を並べた制御入力列である。これにより、更新部４１５は、制御対象をさらに効率よく制御可能に、制御器を更新することができる。
【００７３】
出力部４１６は、行動決定部４１３が決定した制御入力ａtを出力し、環境１１０に与える。これにより、出力部４１６は、環境１１０を制御することができる。また、出力部４１６は、いずれかの処理部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。これにより、出力部４１６は、いずれかの機能部の処理結果を利用者に通知可能にし、強化学習装置１００の利便性の向上を図ることができる。
【００７４】
（強化学習装置１００の動作例１）
次に、図５を用いて、強化学習装置１００の動作例１について説明する。
【００７５】
図５は、強化学習装置１００の動作例１を示す説明図である。動作例１は、強化学習装置１００が、行動価値を表現するＱテーブル５００を用いたＱ学習により、強化学習を実施する一例である。動作例１では、強化学習装置１００は、下記式（１）により、ｋステップ先までの一連の制御入力を、強化学習における行動として定義して利用する。
【００７６】
【数１】
2020119008.tif 000003
【００７７】
また、動作例１では、強化学習装置１００は、Ｑテーブル５００を用いて、Ｑ値を記憶する。図５に示すように、Ｑテーブル５００は、状態と、行動と、Ｑ値とのフィールドを有する。状態のフィールドは、Ｑテーブル５００の最上行である。状態のフィールドには、環境１１０の状態が設定される。状態のフィールドには、例えば、環境１１０の状態を識別する識別子が設定される。識別子は、例えば、ｓ1〜ｓ3などである。行動のフィールドは、Ｑテーブル５００の最左列である。行動のフィールドには、環境１１０への行動を表す情報が設定される。行動のフィールドには、例えば、環境１１０への一連の制御入力を含む環境１１０への行動を識別する識別子が設定される。識別子は、例えば、Ａ1〜Ａ3などである。
【００７８】
識別子Ａ1は、例えば、一連の制御入力（１，１，１，・・・，１）を含む行動を識別する。識別子Ａ2は、例えば、一連の制御入力（１，１，０，・・・，１）を含む行動を識別する。識別子Ａ3は、例えば、一連の制御入力（１，０，０，・・・，１）を含む行動を識別する。Ｑ値のフィールドには、状態のフィールドが示す状態である場合に、行動のフィールドが示す行動を行うと、報酬にどの程度寄与するかを示すＱ値が設定される。
【００７９】
また、動作例１では、強化学習装置１００は、Ｑテーブル５００に記憶するＱ値の更新に、下記式（２）により定義される更新器を利用する。下記式（２）における時点ｔは、実際に更新器を利用する際の「現在の時点」とは異なる。下記式（２）は、利得として割引累積報酬を利用しており、下記式（２）のγは、割引率である。割引率は、将来的な報酬に対する重みである。
【００８０】
【数２】
2020119008.tif 000004
【００８１】
また、動作例１では、強化学習装置１００は、行動の決定に、ε貪欲法やボルツマン選択などを利用する。強化学習装置１００は、ε貪欲法で、行動を決定する。行動は、貪欲行動またはランダム行動である。強化学習装置１００は、行動を貪欲行動にする場合、下記式（３）により、貪欲行動を決定する。
【００８２】
【数３】
2020119008.tif 000005
【００８３】
これにより、強化学習装置１００は、Ｑテーブル５００を用いたＱ学習による強化学習を実現することができる。そして、強化学習装置１００は、強化学習による学習効率の向上を図ることができる。強化学習装置１００は、例えば、短期的な報酬の変化だけに左右されることなく、長期的な報酬の変化を考慮し、制御器を学習することができる。
【００８４】
ここで、従来の強化学習では、環境１１０への行動は、環境１１０への制御入力の１回分単位で定義される。このため、従来の強化学習を、Ｑ学習により実施する場合、Ｑテーブル５０１を利用し、制御入力１回分単位でＱ値を記憶することになる。識別子ａ1は、制御入力０を識別する。識別子ａ2は、制御入力１を識別する。従って、従来の強化学習は、上記識別子Ａ1〜Ａ3が識別する一連の制御入力を区別せず、制御入力０のＱ値と制御入力１のＱ値とに集約してしまう。
【００８５】
これに対し、強化学習装置１００は、上記識別子Ａ1〜Ａ3が識別する一連の制御入力を区別し、Ｑ値を更新することができる。このため、強化学習装置１００は、例えば、制御入力の１回分単位ではなく、制御入力をどのように変化させたかを考慮し、制御器を学習することができる。結果として、強化学習装置１００は、性能のよい制御器を得ることができる。
【００８６】
（強化学習装置１００の動作例２）
次に、強化学習装置１００の動作例２について説明する。動作例２は、強化学習装置１００が、行動価値関数を表現する関数近似器を用いたＱ学習により、強化学習を実施する一例である。動作例２では、強化学習装置１００は、上記式（１）により、ｋステップ先までの一連の制御入力を、強化学習における行動として定義して利用する。
【００８７】
また、動作例２では、強化学習装置１００は、関数近似器の更新に、下記式（４）により定義される更新器を利用する。ここで、行動Ａに対する行動価値を表現する関数近似器は、θAをパラメータとする関数であり、強化学習装置１００は、下記式（４）により、θAを更新することにより関数近似器を更新する。下記式（４）における時点ｔは、実際に更新器を利用する際の「現在の時点」とは異なる。下記式（４）における行動Ａtは、例えば、時点ｔでのステップを１ステップ目とした場合の、ｋステップ先までの制御入力ａt〜ａt+k-1を並べた制御入力列である。
【００８８】
【数４】
2020119008.tif 000006
【００８９】
また、動作例２では、強化学習装置１００は、行動の決定に、ε貪欲法やボルツマン選択などを利用する。強化学習装置１００は、ε貪欲法で、行動を決定する。行動は、貪欲行動またはランダム行動である。強化学習装置１００は、行動を貪欲行動にする場合、上記式（３）により、貪欲行動を決定する。
【００９０】
これにより、強化学習装置１００は、関数近似器を用いたＱ学習による強化学習を実現することができる。そして、強化学習装置１００は、強化学習による学習効率の向上を図ることができる。強化学習装置１００は、例えば、短期的な報酬の変化だけに左右されることなく、長期的な報酬の変化を考慮し、制御器を学習することができる。また、強化学習装置１００は、例えば、制御入力の１回分単位ではなく、制御入力をどのように変化させたかを考慮し、制御器を学習することができる。結果として、強化学習装置１００は、性能のよい制御器を得ることができる。
【００９１】
（強化学習装置１００の動作例３）
次に、強化学習装置１００の動作例３について説明する。動作例３は、強化学習装置１００が、行動価値関数を表現するＱテーブル５００を用いたＳＡＲＳＡにより、強化学習を実施する一例である。動作例３では、強化学習装置１００は、上記式（１）により、ｋステップ先までの一連の制御入力を、強化学習における行動として定義して利用する。
【００９２】
また、動作例３では、強化学習装置１００は、Ｑテーブル５００を用いて、Ｑ値を記憶する。また、動作例３では、強化学習装置１００は、Ｑテーブル５００に記憶するＱ値の更新に、下記式（５）により定義される更新器を利用する。下記式（５）における時点ｔは、実際に更新器を利用する際の「現在の時点」とは異なる。
【００９３】
【数５】
2020119008.tif 000007
【００９４】
また、動作例３では、強化学習装置１００は、行動の決定に、ε貪欲法やボルツマン選択などを利用する。強化学習装置１００は、ε貪欲法で、行動を決定する。行動は、貪欲行動またはランダム行動である。強化学習装置１００は、行動を貪欲行動にする場合、上記式（３）により、貪欲行動を決定する。
【００９５】
これにより、強化学習装置１００は、ＳＡＲＳＡによる強化学習を実現することができる。そして、強化学習装置１００は、強化学習による学習効率の向上を図ることができる。強化学習装置１００は、例えば、短期的な報酬の変化だけに左右されることなく、長期的な報酬の変化を考慮し、制御器を学習することができる。また、強化学習装置１００は、例えば、制御入力の１回分単位ではなく、制御入力をどのように変化させたかを考慮し、制御器を学習することができる。結果として、強化学習装置１００は、性能のよい制御器を得ることができる。
【００９６】
（強化学習装置１００により得られる効果）
次に、図６〜図１３を用いて、強化学習装置１００により得られる効果について説明する。まず、図６〜図１０を用いて、行動により、環境１１０からの短期的な報酬は増加するが長期的な報酬は減少する場合、または、環境１１０からの短期的な報酬は減少するが長期的な報酬は増加する場合などがある特定の環境１１０の一例について説明する。
【００９７】
図６〜図１０は、特定の環境１１０の一例を示す説明図である。図６の例では、特定の環境１１０は、風力発電システム６０１である。風力発電システム６０１は、風車６１０と発電機６２０とを有する。風を受けた風車６１０により風力は風車トルクに変換され、発電機６２０の軸に伝達される。風車６１０の受ける風の風速は、時間に応じて変動しうる。風車６１０が受ける風の風力は、風車トルクに変換する際の変換損失を発生させながら、風車トルクに変換される。また、風車６１０は、風車の回転を抑制するブレーキを有する。
【００９８】
発電機６２０は、風車６１０を用いて発電を行う。発電機６２０は、例えば、風車６１０から軸に伝達された風車トルクを用いて発電を行う。すなわち、発電機６２０は、軸に伝達された風車トルクを用いて発電を行うことにより、風力により生じた風車トルクとは逆方向の、負荷トルクを風車にかけることができる。また、発電機６２０を電動機としても機能させることにより負荷トルクを発生することができる。負荷トルクは、例えば、０から負荷トルク上限までの値をとる。
【００９９】
発電機６２０に供給されたエネルギーが余ると、風車６１０の回転速度が増加する。回転速度は、例えば、単位時間当たりの回転角度であり、角速度である。回転速度の単位は、例えば、ｒａｄ／ｓである。発電機６２０に供給されたエネルギーが、発電機６２０で消費されるエネルギーよりも不足すると、風車６１０の回転速度が減少する。
【０１００】
次に、図７の説明に移行し、風車６１０の風車トルクと風車６１０の回転速度との関係を表すトルク特性、および、風車６１０の風車トルクと発電機６２０の発電量との関係を表す発電量特性について説明する。
【０１０１】
図７の例では、風速ごとの風車６１０のトルク特性と、風速ごとの発電量特性とを示す。風速ごとの風車６１０のトルク特性は、曲線７２１〜７２３である。風車６１０のトルク特性は、山なりの特性である。風速ごとの発電量特性は、曲線７１１〜７１３である。発電量特性は、山なりの特性である。一定の風速に対する、発電機６２０の発電量を最大化することができる風車６１０の回転速度および風車６１０の風車トルクの組み合わせを示す最大発電量点は、曲線７０１上にある。
【０１０２】
このため、風車６１０の動作点を、山の右側に移動し、山の右側の最大発電量点に近づけることが、発電機６２０の発電量を増加させる観点から好ましい。一方で、風速が増して回転速度が上がりすぎると、風車６１０が破損するおそれがあり、回転速度が上がりすぎる前に、風車６１０の動作点を、山の左側に移動することが好ましい場合もある。
【０１０３】
このため、風力発電システム６０１への制御入力には、例えば、風車６１０の動作点を山の右側の最大発電量点に近づける効率重視モードと、風車６１０の動作点を山の左側に移動する速度抑止モードとが利用される場合がある。風力発電システム６０１への制御入力には、具体的には、効率重視モードを示す指令値「１」と、速度抑止モードを示す指令値「０」とが利用される場合がある。
【０１０４】
次に、図８〜図１０を用いて、制御入力を上記指令値とした場合について、制御入力を変化させると、状態となる風車６１０の回転速度、および、報酬となる発電機６２０の発電量がどのように変化するのかについて説明する。図８〜図１０の例では、具体的には、制御入力を、ｔ＝０から１に設定し続け、ｔ＝６０付近で一度０に設定し、再び１に設定し続け、ｔ＝１００付近から０に設定し続けて変化させる。
【０１０５】
図８の表８００は、制御入力の上記変化に応じた回転速度の変化を示す。表８００の○は、制御入力を示す。表８００の●は、回転速度を示す。ここでは、制御入力を、ｔ＝０から１に設定し続けたことにより、回転速度が上昇し、最適な回転速度で動作する。次に、制御入力を、ｔ＝６０付近で一度０に設定したことにより、回転速度の低下を招く。そして、制御入力を、再び１に設定し続けたことにより、回転速度が回復する。回転速度の回復には、数ステップ分の時間がかかる。最後に、制御入力を、ｔ＝１００付近から０に設定し続けたことにより、回転速度が０になり停止する。
【０１０６】
また、図９の表９００は、制御入力の上記変化に応じた発電量の変化を示す。表９００の○は、制御入力を示す。表９００の●は、発電量を示す。ここでは、制御入力を、ｔ＝０から１に設定し続けたことにより、発電量が上昇する。次に、制御入力を、ｔ＝６０付近で一度０に設定したことにより、発電量が短期的に増加するが、回転速度の低下に伴い発電量が減少し始める。そして、制御入力を、再び１に設定し続けたことにより、発電量が回復する。発電量の回復には、数ステップ分の時間がかかる。最後に、制御入力を、ｔ＝１００付近から０に設定し続けたことにより、発電量が０になる。ここで、図１０の説明に移行し、表８００および表９００のｔ＝６０〜７０の範囲について詳細に説明する。
【０１０７】
図１０の表１０００は、ｔ＝６０〜７０の範囲における制御入力の上記変化に応じた回転速度および発電量の変化の詳細を示す。表１０００の○は、発電量を示す。表１０００の●は、回転速度を示す。表１０００に示すように、制御入力を一度０に設定した場合、風力が風車の回転よりも発電機の発電に大きく用いられ、短期的な発電量は増大する。一方で、表１０００に示すように、風車の回転速度の低下を招き、風車の回転速度を回復するまでの数ステップ分の時間は、発電量が減少してしまい、発電量が減少した結果、長期的な発電量の低下を招くことになる。
【０１０８】
しかしながら、従来の強化学習では、短期的な発電量が増大したことにより、速度抑止モードを示す指令値「０」の方が、好ましい制御入力であると判断してしまう場合があり、性能のよい制御器を学習することができないことがある。また、従来の強化学習では、初期段階で、速度抑止モードを示す指令値「０」の方が、好ましい制御入力であると判断した結果、速度抑止モードを示す指令値「０」を重点的に風力発電システム６０１に与えることがある。このため、従来の強化学習では、回転速度を増加させにくく、風車６１０の動作点が山の右側にある状態に関して学習することができなくなることがある。
【０１０９】
これに対し、図１１〜図１３の説明に移行し、従来の強化学習と比較して、強化学習装置１００が、風力発電システム６０１の制御について強化学習を適用した場合に、強化学習装置１００により得られる効果について説明する。
【０１１０】
図１１〜図１３は、強化学習装置１００により得られる効果を示す説明図である。図１１のグラフ１１０１〜１１０４は、従来の強化学習に対応する。グラフ１１０１の横軸は、時間である。グラフ１１０１のプロット１１１１は、風速である。グラフ１１０１のプロット１１１２は、回転速度である。
【０１１１】
グラフ１１０２の横軸は、回転速度である。グラフ１１０２の縦軸は、風速である。グラフ１１０２のプロット１１２１は、効率重視モードにおける回転速度と風速の組み合わせを示す点である。グラフ１１０２のプロット１１２２は、速度抑止モードにおける回転速度と風速の組み合わせを示す点である。
【０１１２】
グラフ１１０３の横軸は、時間である。グラフ１１０３の縦軸は、報酬である。グラフ１１０３のプロット１１３１は、風車６１０の停止時のペナルティありの報酬である。グラフ１１０４の横軸は、時間である。グラフ１１０４の縦軸は、報酬である。グラフ１１０４のプロット１１４１は、風車６１０の停止時のペナルティなしの報酬である。
【０１１３】
グラフ１１０１，１１０２に示すように、従来の強化学習では、回転速度が比較的小さいままであり、風車６１０の動作点が山の右側にある状態に関して学習することができない。そして、グラフ１１０３，１１０４に示すように、従来の強化学習では、報酬も比較的小さいままになる。次に、図１２の説明に移行する。
【０１１４】
図１２のグラフ１２０１〜１２０４は、ｋ＝３に設定した場合の強化学習装置１００による強化学習に対応する。グラフ１２０１の横軸は、時間である。グラフ１２０１のプロット１２１１は、風速である。グラフ１２０１のプロット１２１２は、回転速度である。
【０１１５】
グラフ１２０２の横軸は、回転速度である。グラフ１２０２の縦軸は、風速である。グラフ１２０２のプロット１２２１は、効率重視モードにおける回転速度と風速の組み合わせを示す点である。グラフ１２０２のプロット１２２２は、速度抑止モードにおける回転速度と風速の組み合わせを示す点である。
【０１１６】
グラフ１２０３の横軸は、時間である。グラフ１２０３の縦軸は、報酬である。グラフ１２０３のプロット１２３１は、風車６１０の停止時のペナルティありの報酬である。グラフ１２０４の横軸は、時間である。グラフ１２０４の縦軸は、報酬である。グラフ１２０４のプロット１２４１は、風車６１０の停止時のペナルティなしの報酬である。
【０１１７】
グラフ１２０１，１２０２に示すように、従来の強化学習と比べて、強化学習装置１００は、回転速度を比較的大きくすることができ、風車６１０の動作点が山の右側にある状態に関して学習しやすくすることができる。そして、グラフ１２０３，１２０４に示すように、従来の強化学習と比べて、強化学習装置１００は、報酬も比較的大きくすることができる。これにより、強化学習装置１００は、性能のよい制御器を学習することができる。次に、図１３の説明に移行する。
【０１１８】
図１３のグラフ１３０１〜１３０４は、ｋ＝５に設定した場合の強化学習装置１００による強化学習に対応する。グラフ１３０１の横軸は、時間である。グラフ１３０１のプロット１３１１は、風速である。グラフ１３０１のプロット１３１２は、回転速度である。
【０１１９】
グラフ１３０２の横軸は、回転速度である。グラフ１３０２の縦軸は、風速である。グラフ１３０２のプロット１３２１は、効率重視モードにおける回転速度と風速の組み合わせを示す点である。グラフ１３０２のプロット１３２２は、速度抑止モードにおける回転速度と風速の組み合わせを示す点である。
【０１２０】
グラフ１３０３の横軸は、時間である。グラフ１３０３の縦軸は、報酬である。グラフ１３０３のプロット１３３１は、風車６１０の停止時のペナルティありの報酬である。グラフ１３０４の横軸は、時間である。グラフ１３０４の縦軸は、報酬である。グラフ１３０４のプロット１３４１は、風車６１０の停止時のペナルティなしの報酬である。
【０１２１】
グラフ１３０１，１３０２に示すように、ｋ＝３に設定した場合と比べて、強化学習装置１００は、さらに回転速度を大きくすることができ、風車６１０の動作点が山の右側にある状態に関して学習することができる。そして、グラフ１３０３，１３０４に示すように、ｋ＝３に設定した場合と比べて、強化学習装置１００は、さらに報酬を大きくすることができる。これにより、強化学習装置１００は、性能のよい制御器を学習することができる。
【０１２２】
（強化学習処理手順）
次に、図１４を用いて、強化学習装置１００が実行する、強化学習処理手順の一例について説明する。強化学習処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１２３】
図１４は、強化学習処理手順の一例を示すフローチャートである。図１４において、強化学習装置１００は、変数ｔ、強化学習器π、および、履歴テーブル３００を初期化する（ステップＳ１４０１）。
【０１２４】
次に、強化学習装置１００は、状態ｓtを観測し、履歴テーブル３００を用いて記憶する（ステップＳ１４０２）。そして、強化学習装置１００は、状態ｓtに基づいて、行動Ａtを決定し、行動Ａtのうちの制御入力ａtを選択し、履歴テーブル３００を用いて記憶する（ステップＳ１４０３）。
【０１２５】
次に、強化学習装置１００は、単位時間の経過を待ち、ｔをｔ＋１に設定する（ステップＳ１４０４）。そして、強化学習装置１００は、制御入力ａt-1に対応する報酬ｒtを取得し、履歴テーブル３００を用いて記憶する（ステップＳ１４０５）。
【０１２６】
次に、強化学習装置１００は、強化学習器πを更新するか否かを判定する（ステップＳ１４０６）。更新は、例えば、Ｑ学習であれば、ｋ組の制御入力と報酬とのデータが蓄積されている場合に行われる。このため、更新は、ｋ組の制御入力と報酬とのデータが一旦蓄積された後は、新しく１組の制御入力と報酬とのデータが得られる都度行われる。更新は、例えば、ＳＡＲＳＡであれば、２ｋ組の制御入力と報酬とのデータが蓄積されている場合に行われる。
【０１２７】
ここで、更新しない場合（ステップＳ１４０６：Ｎｏ）、強化学習装置１００は、ステップＳ１４０８の処理に移行する。一方で、更新する場合（ステップＳ１４０６：Ｙｅｓ）、強化学習装置１００は、ステップＳ１４０７の処理に移行する。
【０１２８】
ステップＳ１４０７では、強化学習装置１００は、履歴テーブル３００を参照して、強化学習器πを更新する（ステップＳ１４０７）。そして、強化学習装置１００は、ステップＳ１４０８の処理に移行する。
【０１２９】
ステップＳ１４０８では、強化学習装置１００は、環境１１０の制御を終了するか否かを判定する（ステップＳ１４０８）。ここで、環境１１０の制御を終了しない場合（ステップＳ１４０８：Ｎｏ）、強化学習装置１００は、ステップＳ１４０２の処理に戻る。一方で、環境１１０の制御を終了する場合（ステップＳ１４０８：Ｙｅｓ）、強化学習装置１００は、強化学習処理を終了する。
【０１３０】
図１４の例では、強化学習装置１００が、バッチ処理形式で強化学習処理を実行する場合について説明したが、これに限らない。例えば、強化学習装置１００が、逐次処理形式で強化学習処理を実行する場合があってもよい。
【０１３１】
以上説明したように、強化学習装置１００によれば、複数ステップ先までの環境１１０への一連の制御入力を、強化学習における行動として定義することができる。強化学習装置１００によれば、複数ステップ先までの環境１１０への一連の制御入力と、複数ステップ先までの環境１１０への一連の制御入力に応じた環境１１０からの一連の報酬とに基づいて、強化学習を実施することができる。これにより、強化学習装置１００は、強化学習による学習効率の向上を図ることができる。
【０１３２】
強化学習装置１００によれば、強化学習により、風力発電にかかる風車の動作点を制御することができる。これにより、強化学習装置１００は、環境１１０への行動により、環境１１０からの短期的な報酬は増加するものの長期的な報酬は減少する性質を示すような、風力発電にかかる特定の環境１１０についても、強化学習による学習効率の向上を図ることができる。
【０１３３】
強化学習装置１００によれば、行動の価値を規定する行動価値関数を表現する数式を用いることができる。これにより、強化学習装置１００は、行動の価値を規定する行動価値関数を表現する数式を用いた関数近似型の強化学習を実現することができる。
【０１３４】
強化学習装置１００によれば、行動の価値を規定するテーブルを用いることができる。これにより、強化学習装置１００は、行動の価値を規定するテーブルを用いたテーブル型の強化学習を実現することができる。
【０１３５】
強化学習装置１００によれば、ステップごとに、複数ステップ先までの環境１１０への一連の制御入力を決定し、決定した一連の制御入力のうちの最初の制御入力を環境１１０に与え、最初の制御入力に応じた環境１１０からの報酬を取得することができる。強化学習装置１００によれば、実際に環境１１０に与えた複数ステップ分の一連の制御入力と、複数ステップ分の一連の制御入力に応じて取得された複数ステップ分の一連の報酬とに基づいて、環境１１０を制御する制御器を更新することができる。これにより、強化学習装置１００は、制御器を効率よく更新することができる。
【０１３６】
強化学習装置１００によれば、Ｑ学習を用いることができる。これにより、強化学習装置１００は、Ｑ学習を利用した強化学習を実現することができる。
【０１３７】
なお、本実施の形態で説明した強化学習方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した強化学習プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した強化学習プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３８】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３９】
（付記１）環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する、
処理をコンピュータが実行することを特徴とする強化学習方法。
【０１４０】
（付記２）前記強化学習は、風力発電にかかる風車の動作点を制御する、ことを特徴とする付記１に記載の強化学習方法。
【０１４１】
（付記３）前記行動の価値を規定する行動価値関数を表現する数式を用いて、前記強化学習を実施する、ことを特徴とする付記１または２に記載の強化学習方法。
【０１４２】
（付記４）前記行動の価値を規定するテーブルを用いて、前記強化学習を実施する、ことを特徴とする付記１または２に記載の強化学習方法。
【０１４３】
（付記５）前記強化学習は、方策勾配型である、ことを特徴とする付記１または２に記載の強化学習方法。
【０１４４】
（付記６）前記実施する処理は、
前記ステップごとに、前記複数ステップ先までの前記環境への一連の制御入力を決定し、決定した前記一連の制御入力のうちの最初の制御入力を前記環境に与え、前記最初の制御入力に応じた前記環境からの報酬を取得し、
実際に前記環境に与えた前記複数ステップ分の一連の制御入力と、実際に前記環境に与えた前記複数ステップ分の一連の制御入力に応じて取得された前記複数ステップ分の一連の報酬とに基づいて、前記環境を制御する制御器を更新する、ことを特徴とする付記１〜５のいずれか一つに記載の強化学習方法。
【０１４５】
（付記７）前記強化学習は、Ｑ学習を利用する、ことを特徴とする付記１〜６のいずれか一つに記載の強化学習方法。
【０１４６】
（付記８）環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する、
処理をコンピュータに実行させることを特徴とする強化学習プログラム。
【０１４７】
（付記９）環境に与える制御入力を決定するステップごとに複数ステップ先までの前記環境への一連の制御入力を行動として、前記複数ステップ先までの前記環境への一連の制御入力と、前記複数ステップ先までの前記環境への一連の制御入力に応じた前記環境からの一連の報酬とに基づいて、強化学習を実施する、
制御部を有することを特徴とする強化学習装置。
【符号の説明】
【０１４８】
１００  強化学習装置
１１０  環境
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
３００  履歴テーブル
４００  記憶部
４１０  制御部
４１１  設定部
４１２  状態取得部
４１３  行動決定部
４１４  報酬取得部
４１５  更新部
４１６  出力部
５００，５０１  Ｑテーブル
６０１  風力発電システム
６１０  風車
６２０  発電機
７０１，７１１〜７１３，７２１〜７２３  曲線
８００，９００，１０００  表
１１０１〜１１０４，１２０１〜１２０４，１３０１〜１３０４  グラフ
１１１１，１１１２，１１２１，１１２２，１１３１，１１４１，１２１１，１２１２，１２２１，１２２２，１２３１，１２４１，１３１１，１３１２，１３２１，１３２２，１３３１，１３４１  プロット
【図１】
2020119008.tif 000008
【図２】
2020119008.tif 000009
【図３】
2020119008.tif 000010
【図４】
2020119008.tif 000011
【図５】
2020119008.tif 000012
【図６】
2020119008.tif 000013
【図７】
2020119008.tif 000014
【図８】
2020119008.tif 000015
【図９】
2020119008.tif 000016
【図１０】
2020119008.tif 000017
【図１１】
2020119008.tif 000018
【図１２】
2020119008.tif 000019
【図１３】
2020119008.tif 000020
【図１４】
2020119008.tif 000021