(57)【要約】      （修正有）【課題】制御対象の制御特性を担保しつつ、深層強化学習による柔軟な制御を実現する。【解決手段】制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置であり、前記目標値の時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する手段と、前記先読み目標値と、前記制御対象又は制御対象モデルの現在の制御量との差である先読み目標偏差を算出する手段と、前記制御対象の応答モデルと、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み目標偏差を、前記制御量の前記先読み長後における予測値と前記先読み目標値との差へと補正した補正目標偏差を算出する手段と、前記補正目標偏差に基づいて、強化学習によって新たな前記操作量を学習及び算出する手段と、を有する。【選択図】図１
2020095352.tif 000002
【特許請求の範囲】
【請求項１】
制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置であって、
前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手段と、
前記先読み目標値と、前記制御対象又は前記制御対象をモデル化した制御対象モデルの現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手段と、
前記制御対象の応答モデルと、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み目標偏差を、前記制御量の前記先読み長後における予測値と前記先読み目標値との差へと補正した補正目標偏差を算出する補正目標偏差算出手段と、
前記補正目標偏差に基づいて、強化学習によって新たな前記操作量を学習及び算出する操作量計算手段と、
を有することを特徴とする制御装置。
【請求項２】
前記操作量計算手段は、
前記補正目標偏差が入力されると、前記補正目標偏差を用いて報酬を計算する報酬計算手段と、
前記補正目標偏差を含む状態変数と、前記報酬とを用いて強化学習を行って行動を出力する強化学習手段と、
前記行動を、前記操作量の変化量に変換する変換手段とを有し、
新たな前記操作量は、現在の操作量に対して、前記変換手段によって前記行動を変換した変化量を加算することで算出される、ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記強化学習手段は、
ニューラルネットワークで実現される行動価値関数を学習する、ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記行動は、任意の数の離散値である、ことを特徴とする請求項２又は３に記載の制御装置。
【請求項５】
前記変換手段は、
行動を入力として、操作量の変化量を出力とする所定の関数、又は、行動と操作量の変化量とを対応付けたテーブルのいずれかを用いて、前記行動を、前記操作量の変化量に変換する、ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記報酬計算手段は、
前記補正目標偏差の絶対値に−１を乗じた値、前記補正目標偏差の２乗に−１を乗じた値、又は前記補正目標偏差を入力する所定の関数の関数値のいずれかを前記報酬として計算する、ことを特徴とする請求項２に記載の制御装置。
【請求項７】
前記応答モデルは、
過去の操作量の変化量の時系列から、未来の制御量を予測する予測式であり、
前記予測式は、線形予測式、非線形予測式又はニューラルネットワークによる予測式のいずれかである、ことを特徴とする請求項１乃至６の何れか一項に記載の制御装置。
【請求項８】
前記予測式による予測結果の時系列を記憶する予測系列記憶手段を有し、
前記補正目標偏差算出手段は、
前記予測系列記憶手段に記憶されている予測結果を用いて、前記補正目標偏差を算出する、ことを特徴とする請求項７に記載の制御装置。
【請求項９】
制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置が、
前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手順と、
前記先読み目標値と、前記制御対象又は前記制御対象をモデル化した制御対象モデルの現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手順と、
前記制御対象の応答モデルと、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み目標偏差を、前記制御量の前記先読み長後における予測値と前記先読み目標値との差へと補正した補正目標偏差を算出する補正目標偏差算出手順と、
前記補正目標偏差に基づいて、強化学習によって新たな前記操作量を学習及び算出する操作量計算手順と、
を実行することを特徴とする制御方法。
【請求項１０】
制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置に、
前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手順と、
前記先読み目標値と、前記制御対象又は前記制御対象をモデル化した制御対象モデルの現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手順と、
前記制御対象の応答モデルと、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み目標偏差を、前記制御量の前記先読み長後における予測値と前記先読み目標値との差へと補正した補正目標偏差を算出する補正目標偏差算出手順と、
前記補正目標偏差に基づいて、強化学習によって新たな前記操作量を学習及び算出する操作量計算手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、機械学習の１つとして、深層強化学習と呼ばれる手法が広く知られるようになってきた。深層強化学習とは、従来から知られていた強化学習と、多層のニューラルネットワークを学習する手法である深層学習とを組み合わせることで、或る環境下における複雑な最適行動を獲得する手法である。
【０００３】
強化学習の産業分野への応用例としては、例えば、エネルギーマネジメント分野への応用（特許文献１）やプラント制御への応用（特許文献２）、自動車の自動運転への応用（特許文献３）等が知られている。
【０００４】
また、産業上広く利用されている制御装置として、温調制御装置やＰＬＣ（Programmable Logic Controller）、ＤＣＳ（Distributed Control System）等が知られている。このような制御装置に用いられる制御方式として、ＰＩＤ（Proportional-Integral-Differential）制御、モデル予測制御（ＭＰＣ：Model-Predictive-Control）、内部モデル制御、ＬＱＧ（Linear-Quadratic-Gaussian）制御、Ｈ２制御、Ｈ∞制御等が知られている。これらの制御方式は、制御対象の制御量を目標値に追従させることを目的とする制御方式である。
【０００５】
また、現在に至るまでの過去の操作量の変化に応じた制御量の収束値の予測値と、目標値との差である補正目標偏差に基づいて、新たな操作量を決定する技術が知られている（特許文献４）
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−４８７５０号公報
【特許文献２】特開２０１７−１５７１１２号公報
【特許文献３】特開２０１８−３７０６４号公報
【特許文献４】国際公開第２０１６／０９２８７２号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、例えば、従来のモデル予測制御は、制御対象のモデルを用いて最適な操作量を計算することで、制御対象の特性を担保した制御が可能となる手法であるが、モデルの経年変化や非線形性、その他予期しない特性等には対応することができなかった。一方で、上記の特許文献１〜３に記載されている応用例に鑑みると、深層強化学習を制御対象の制御に応用することで、これらの経年変化や非線形性、その他予期しない特性等にも対応可能な柔軟な制御を実現することができると考えられる。
【０００８】
しかしながら、深層強化学習では、状態の変化が既知の環境下で、十分なバリエーションのあるデータを用いて、十分な回数の学習を行う必要がある。したがって、制御対象の制御に深層強化学習を応用した場合、深層強化学習によって得られた制御則がブラックボックスになってしまうという問題がある。このため、得られた制御則が正しいものであるか否かの判定が困難な場合があった。
【０００９】
例えば、上記の特許文献１に記載されている応用例では、空調のシミュレーションに基づいて温度分布が正常になるまで学習を繰り返すが、一般に空調のシミュレーションは非常に計算時間の掛かる処理である。このため、深層強化学習を用いた場合、膨大な学習時間を要したり、学習が収束しなかったりすることがある。このとき、学習が十分に収束しない場合、得られた制御則がブラックボックスであるがゆえに、その制御則が正しいものであるかどうかの判定が困難であった。
【００１０】
本発明は、上記の点に鑑みてなされたもので、制御対象の制御特性を担保しつつ、深層強化学習による柔軟な制御を実現することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の実施の形態における制御装置は、制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置であって、前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手段と、前記先読み目標値と、前記制御対象又は前記制御対象をモデル化した制御対象モデルの現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手段と、前記制御対象の応答モデルと、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み目標偏差を、前記制御量の前記先読み長後における予測値と前記先読み目標値との差へと補正した補正目標偏差を算出する補正目標偏差算出手段と、前記補正目標偏差に基づいて、強化学習によって新たな前記操作量を学習及び算出する操作量計算手段と、を有することを特徴とする。
【発明の効果】
【００１２】
制御対象の制御特性を担保しつつ、深層強化学習による柔軟な制御を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る制御装置の構成の一例を示す図である。
【図２】目標値先読み部の動作の一例を説明するための図である。
【図３】応答補正部の動作の一例を説明するための図（その１）である。
【図４】応答補正部の動作の一例を説明するための図（その２）である。
【図５】制御対象応答モデル関数をニューラルネットワークで実現した場合の一例を模式的に示す図である。
【図６】操作量学習・計算部の動作の一例を説明するための図である。
【図７】強化学習部の動作の一例を説明するための図である。
【図８】行動評価関数を多層ニューラルネットワークで実現した場合の一例を模式的に示す図である。
【図９】変換テーブルの一例を示す図である。
【図１０】本実施形態に係る制御装置のハードウェア構成の一例を示す図である。
【図１１】実施例におけるステップ応答を示す図である。
【図１２】実施例における学習用の目標値時系列を示す図である。
【図１３】実施例における変換テーブルを示す図である。
【図１４】実施例における学習履歴の変化を示す図である。
【図１５】実施例における制御応答結果を示す図（その１）である。
【図１６】実施例における制御応答結果を示す図（その２）である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態（以降、「本実施形態」とも表す。）について、図面を参照しながら詳細に説明する。以降では、制御対象モデルを用いた応答予測により、完全なブラックボックスではなく、制御対象の特性を担保しつつ、かつ、深層強化学習により経年変化や非線形性、その他予期しない特性等にも対応可能な柔軟な制御を実現する制御装置１０について説明する。ここで、本実施形態に係る制御装置１０は、制御対象の運用開始前に制御対象モデルを用いて深層強化学習による学習を十分に行った上で、実際に制御対象を運用する際には、この事前学習の結果を初期値として、適宜、深層強化学習による学習を行う。これにより、制御対象の特性を担保しつつ、制御対象の経年変化（例えば、特性の変化等）や非線形性、その他予期しない特性等にも対応可能な柔軟な制御を実現することができる。
【００１５】
なお、本実施形態に係る制御装置１０は、例えば、ＰＬＣやＤＣＳ、組み込み型の計算機器等を想定するが、これらに限られず、制御対象を操作するための任意の機器又は装置を用いることができる。例えば、プラント制御、インバータ制御、機械制御、電気制御、信号制御、空調制御、温調制御等の各種制御に用いられる制御機器又は制御装置を用いることが可能である。
【００１６】
また、本実施形態では、一例として、ＳＩＳＯ（single-input and single-output）制御である場合について説明するが、これに限られず、例えば、ＭＩＭＯ（multiple-input and multiple-output）制御に対しても本実施形態を同様に適用することが可能である。
【００１７】
＜制御装置１０の構成＞
まず、本実施形態に係る制御装置１０の構成について、図１を参照しながら説明する。図１は、本実施形態に係る制御装置１０の構成の一例を示す図である。
【００１８】
図１に示すように、本実施形態に係る制御装置１０は、目標値先読み部１０１と、計測部１０２と、差分器１０３と、操作量更新部１０４と、タイマ１０５とを有する。これら各機能部は、例えば、制御装置１０にインストールされた１以上のプログラムがプロセッサ等に実行させる処理によって実現される。
【００１９】
目標値先読み部１０１は、所定の制御周期Ｔｃ毎に、目標値時系列｛ｒ（ｔ）｝と、先読み長Ｔｐとを入力して、現在時刻ｔから先読み長後の時刻ｔ＋Ｔｐにおける目標値ｒ（ｔ＋Ｔｐ）を出力する。先読み長Ｔｐとは、目標値時系列｛ｒ（ｔ）｝のうち、先読みする目標値ｒ（ｔ＋Ｔｐ）を決定するための時間長である。なお、以降では、目標値ｒ（ｔ＋Ｔｐ）を「先読み目標値ｒ（ｔ＋Ｔｐ）」とも表す。
【００２０】
計測部１０２は、制御周期Ｔｃ毎に、制御対象モデル２０又は制御対象３０の制御量ｙを計測する。そして、計測部１０２は、計測した制御量ｙの最新の値を、制御量現在値ｙ０として出力する。なお、ｙ０は計測部１０２によって計測された制御量であることから「制御量計測値ｙ０」とも表す。したがって、制御量現在値とは、制御量計測値のうち、最新の制御量計測値のことである。
【００２１】
ここで、制御対象３０は、実際の制御対象（すなわち、例えば、実際に制御の対象となるプラントやインバータ、機械、電気設備、信号設備、空調設備、温調設備等）である。一方で、制御対象モデル２０は、制御対象３０のモデル（すなわち、制御対象３０をモデル化したデータ）のことである。制御対象モデル２０は、制御装置１０が有する補助記憶装置等のメモリに格納されていてもよいし、制御装置１０とは異なる他の装置が有するメモリに格納されていてもよい。
【００２２】
なお、制御対象モデル２０の制御量ｙは、操作量ｕと疑似外乱ｖ´とに応じて決定される。一方で、制御対象３０の制御量ｙは、操作量ｕと外乱ｖとに応じて決定される。疑似外乱ｖ´とは外乱ｖに相当する値を制御対象モデル２０に与えたものである。外乱ｖとしては、例えば、制御対象３０が温調設備、制御量ｙが温度である場合における外気温の低下又は上昇等が挙げられる。
【００２３】
また、計測部１０２は、操作量更新部１０４から出力された操作量ｕを取得し、取得した操作量ｕの最新の値を、操作量現在値ｕ０として出力する。
【００２４】
差分器１０３は、目標値先読み部１０１から出力された先読み目標値ｒ（ｔ＋Ｔｐ）と、制御量現在値ｙ０との差（偏差）を目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）として出力する。目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）は、ｅ０（ｔ＋Ｔｐ｜ｔ）＝ｒ（ｔ＋Ｔｐ）−ｙ０（ｔ）で算出される。なお、以降では、目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）を「先読み目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）」とも表す。
【００２５】
操作量更新部１０４は、制御周期Ｔｃ毎に、制御対象モデル２０又は制御対象３０に対する操作量ｕを出力する。ここで、操作量更新部１０４には、応答補正部１１１と、操作量学習・計算部１１２と、加算器１１３とが含まれる。
【００２６】
応答補正部１１１は、制御対象３０の応答モデル（以降、「制御対象応答モデル」とも表す。）Ｓｍ，ｔと、先読み目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）と、先読み長Ｔｐと、過去の操作量ｕの変化量ｄｕ（以降では、これを「操作変化量ｄｕ」とも表す。）の時系列データである操作変化量時系列｛ｄｕ（ｔ）｝とに基づいて、操作変化量ｄｕの算出に用いられる補正目標偏差ｅ＊（ｔ）を算出する。制御対象応答モデルＳｍ，ｔは、時刻ｔにおいて、制御対象３０の時刻ｍにおける応答を予測するモデルである。なお、補正目標偏差ｅ＊（ｔ）の算出方法の詳細については後述する。
【００２７】
操作量学習・計算部１１２は、制御周期Ｔｃ毎に、応答補正部１１１により算出された補正目標偏差ｅ＊（ｔ）に基づいて、操作変化量ｄｕ（ｔ）を算出する。このとき、操作量学習・計算部１１２は、操作変化量ｄｕ（ｔ）の算出と同時に、深層強化学習による学習も行うことができる。操作変化量ｄｕ（ｔ）の算出と、深層強化学習による学習との詳細については後述する。
【００２８】
ここで、操作量学習・計算部１１２は、例えば、ｄｕ（ｔ−３Ｔｃ）、ｄｕ（ｔ−２Ｔｃ）、ｄｕ（ｔ−Ｔｃ）という順序で操作変化量ｄｕ（ｔ）を算出し、出力する。なお、操作変化量ｄｕは、制御周期Ｔｃ毎に操作量ｕが変化した量である。
【００２９】
加算器１１３は、計測部１０２から出力された操作量現在値ｕ０と、操作量学習・計算部１１２から出力された操作変化量ｄｕとを加算して、新たな操作量ｕを算出する。そして、加算器１１３は、この操作量ｕを制御対象モデル２０又は制御対象３０に出力する。この操作量ｕは、ｕ（ｔ）＝ｕ０＋ｄｕ（ｔ）＝ｕ（ｔ−Ｔｃ）＋ｄｕ（ｔ）で算出される。
【００３０】
なお、本実施形態に係る制御装置１０では、加算器１１３で算出した操作量ｕをそのまま制御対象モデル２０又は制御対象３０に出力しているが、例えば、操作量ｕに上下限制約が存在する場合等には、別途リミッター等を設けた上で、加算器１１３で算出した操作量ｕをリミッターに入力し、当該リミッターから出力された操作量を制御対象モデル２０又は制御対象３０に出力してもよい。
【００３１】
タイマ１０５は、制御周期Ｔｃ毎に、目標値先読み部１０１と計測部１０２とを動作させる。なお、目標値先読み部１０１と計測部１０２とが制御周期Ｔｃ毎に動作することで、操作量更新部１０４も制御周期Ｔｃ毎に動作する。
【００３２】
また、本実施形態に係る制御装置１０は、制御対象モデル２０と制御対象３０とを切り替えるための切替器４０及び切替器５０と接続されている。切替器４０及び切替器５０により、制御装置１０は、制御対象モデル２０又は制御対象３０のいずれかと閉ループを構成する。ここで、本実施形態に係る制御装置１０は、制御対象３０の運用開始前に、制御対象モデル２０と閉ループを構成した上で、深層強化学習による学習を行う。一方で、本実施形態に係る制御装置１０は、実際の運用では、制御対象３０と閉ループを構成した上で、適宜、深層強化学習による学習を行う。
【００３３】
このように、本実施形態に係る制御装置１０は、実際の運用開始前に制御対象モデル２０を用いて深層強化学習による学習を行う。そして、本実施形態に係る制御装置１０は、制御対象モデル２０を用いた学習結果を初期値として、制御対象３０の制御を行うと共に、適宜、深層強化学習による学習を行う。すなわち、本実施形態に係る制御装置１０では、操作量学習・計算部１１２が或る程度学習した状態から制御対象３０の運用を開始することができる。これにより、制御対象３０の特性を担保しつつ、制御対象３０の経年変化（例えば、特性の変化等）や非線形性、その他予期しない特性等にも対応可能な柔軟な制御を実現することができる。
【００３４】
＜目標値先読み部１０１の動作＞
次に、目標値先読み部１０１の動作について、図２を参照しながら説明する。図２は、目標値先読み部１０１の動作の一例を説明するための図である。
【００３５】
図２に示すように、目標値先読み部１０１は、目標値時系列｛ｒ（ｔ）｝と、先読み長Ｔｐとが入力されると、現在時刻ｔから先読み長後の時刻ｔ＋Ｔｐにおける先読み目標値ｒ（ｔ＋Ｔｐ）を出力する。なお、図２におけるＳＶは制御量の目標値を表す。
【００３６】
このように、目標値先読み部１０１は、目標値時系列｛ｒ（ｔ）｝のうち、先読み長後の時刻ｔ＋Ｔｐにおける目標値ｒ（ｔ＋Ｔｐ）を出力する。
【００３７】
なお、図２に示す例では、目標値時系列｛ｒ（ｔ）｝が直線によって表される場合を示しているが、これに限られない。目標値時系列｛ｒ（ｔ）｝は任意の曲線や矩形等によって表されてもよい。特に、目標値時系列｛ｒ（ｔ）｝は、時刻ｔに応じて周期的に変化する曲線によって表されてもよい。
【００３８】
また、目標値時系列｛ｒ（ｔ）｝は、予め設定されていてもよいし、未来の目標値ｒ（ｔ）が随時更新されてもよい。例えば、制御対象３０がプログラム制御されている場合、一定の時間が経過すると目標値ｒ（ｔ）が更新される、といった構成も可能である。
【００３９】
＜応答補正部１１１の動作＞
次に、応答補正部１１１の動作について、図３を参照しながら説明する。図３は、応答補正部１１１の動作の一例を説明するための図（その１）である。
【００４０】
図３に示すように、応答補正部１１１は、制御対象応答モデルＳｍ，ｔと、先読み目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）と、先読み長Ｔｐと、操作変化量時系列｛ｄｕ（ｔ）｝とが入力されると、以下のステップＳ１〜ステップＳ２により補正目標偏差ｅ＊（ｔ）を出力する。なお、図３におけるＳＶは制御量の目標値、ＰＶは制御量、ＭＶは操作量、ｄＭＶは操作変化量をそれぞれ表す。
【００４１】
ステップＳ１：応答補正部１１１は、過去の操作変化量ｄｕによって制御量現在値ｙ０がＴｐ後に変化すると予測される値を先読み応答補正値ｙｎ（ｔ）として算出する。なお、例えば、現在時刻をｔとした場合、過去の操作変化量ｄｕは、ｄｕ（ｔ−Ｔｃ）、ｄｕ（ｔ−２Ｔｃ）等と表される。
【００４２】
ステップＳ２：そして、応答補正部１１１は、先読み目標偏差ｅ０（ｔ＋Ｔｐ｜ｔ）を先読み応答補正値ｙｎ（ｔ）により補正することで補正目標偏差ｅ＊（ｔ）算出し、算出した補正目標偏差ｅ＊（ｔ）を出力する。このとき、補正目標偏差ｅ＊（ｔ）は、ｅ＊（ｔ）＝ｅ０（ｔ＋Ｔｐ｜ｔ）−ｙｎ（ｔ）＝ｒ（ｔ＋Ｔｐ）−（ｙ０（ｔ）＋ｙｎ（ｔ））により算出される。
【００４３】
ここで、一例として、制御対象応答モデルＳｍ，ｔを用いて先読み応答補正値ｙｎ（ｔ）を算出する場合について説明する。
【００４４】
制御対象応答モデルＳｍ，ｔは関数として表すことができる。この関数をｙｎ，Ｃ（ｍ｜ｔ）として、制御対象応答モデル関数と呼ぶことにすれば、制御対象応答モデル関数ｙｎ，Ｃ（ｍ｜ｔ）は、
【００４５】
【数１】
2020095352.tif 000003
と表すことができる。ここで、Ｋはモデルの長さ（モデル区間）である。すなわち、制御対象応答モデル関数ｙｎ，Ｃ（ｍ｜ｔ）は、過去の操作変化量時系列｛ｄｕ（ｔ），ｄｕ（ｔ−Ｔｃ），・・・，ｄｕ（ｔ−ＫＴｃ）｝を用いて、時刻ｔにおいて、時刻ｍにおける応答を制御対象応答モデルＳｍ，ｔによって予測する関数である。
【００４６】
このとき、過去の操作変化量時系列｛ｄｕ（ｔ），ｄｕ（ｔ−Ｔｃ），・・・，ｄｕ（ｔ−ＫＴｃ）｝を用いて、時刻ｔにおいて、時刻ｔ＋Ｔｐにおける応答を制御対象応答モデルＳｍ，ｔによって予測した予測値を先読み応答予測値ｙｎ，Ａ（ｔ）とする。すなわち、
【００４７】
【数２】
2020095352.tif 000004
とする。
【００４８】
また、過去の操作変化量時系列｛ｄｕ（ｔ），ｄｕ（ｔ−Ｔｃ），・・・，ｄｕ（ｔ−ＫＴｃ）｝を用いて、時刻ｔにおいて、時刻ｔにおける応答を制御対象応答モデルＳｍ，ｔによって予測した予測値を自由応答予測値ｙｎ，Ｂ（ｔ）とする。すなわち、
【００４９】
【数３】
2020095352.tif 000005
とする。
【００５０】
そして、先読み応答予測値ｙｎ，Ａ（ｔ）と自由応答予測値ｙｎ，Ｂ（ｔ）との差を先読み応答補正値ｙｎ（ｔ）とする。すなわち、ｙｎ（ｔ）＝ｙｎ，Ａ（ｔ）−ｙｎ，Ｂ（ｔ）とする。これにより、先読み応答補正値ｙｎ（ｔ）を算出することができる。
【００５１】
ここで、上記の数１に示す制御対象応答モデル関数ｙｎ，Ｃ（ｍ｜ｔ）を一般化予測値と呼ぶことにすれば、上記の数１と同様に、一般化予測値ｙｎ，Ｃ（ｍ｜ｔ）は、
【００５２】
【数４】
2020095352.tif 000006
である。このとき、一般化予測値ｙｎ，Ｃ（ｍ｜ｔ）と先読み応答予測値ｙｎ，Ａ（ｔ）との関係は、ｙｎ，Ａ（ｔ）＝ｙｎ，Ｃ（ｔ＋Ｔｐ｜ｔ）と表される。また、一般化予測値ｙｎ，Ｃ（ｍ｜ｔ）と自由応答予測値ｙｎ，Ｂ（ｔ）との関係は、ｙｎ，Ｂ（ｔ）＝ｙｎ，Ｃ（ｔ｜ｔ）と表される。
【００５３】
以降では、一例として、一般化予測値ｙｎ，Ｃ（ｍ｜ｔ）の時系列データ（以降、「予測時系列」とも表す。）を記憶する予測時系列記憶部１１４を応答補正部１１１が利用して、補正目標偏差ｅ＊（ｔ）を算出する場合について、図４を参照しながら説明する。図４は、応答補正部１１１の動作の一例を説明するための図（その２）である。なお、予測時系列記憶部１１４は、例えば、補助記憶装置やＲＡＭ（Random Access Memory）等の記憶装置を用いて実現可能である。
【００５４】
図４に示すように、予測時系列記憶部１１４には、現在時刻をｔとして、時刻ｔ−Δｔから未来の時刻ｔ＋Ｔｂまでの一般化予測値ｙｎ，Ｃ（ｔ−Δｔ｜ｔ），ｙｎ，Ｃ（ｔ｜ｔ），ｙｎ，Ｃ（ｔ＋Δｔ｜ｔ），・・・，ｙｎ，Ｃ（ｔ＋Ｔｐ｜ｔ），・・・，ｙｎ，Ｃ（ｔ＋Ｔｂ｜ｔ）が記憶されている。なお、Ｔｂは、予測時系列記憶部１１４に記憶される一般化予測値ｙｎ，Ｃの長さ（時間長）を決める定数であり、例えば、予め決められた任意の整数をＮとして、Ｔｂ＝Ｎ×Ｔｃ（ただし、Ｎは、Ｎ×Ｔｃ≧Ｔｐとなる整数）等と表すことができる。
【００５５】
このとき、図４に示すように、先読み応答補正値ｙｎ（ｔ）は、予測時系列記憶部１１４に記憶されているｙｎ，Ａ（ｔ）＝ｙｎ，Ｃ（ｔ＋Ｔｐ｜ｔ）と、ｙｎ，Ｂ（ｔ）＝ｙｎ，Ｃ（ｔ｜ｔ）とを用いて、ｙｎ（ｔ）＝ｙｎ，Ａ（ｔ）−ｙｎ，Ｂ（ｔ）により算出される。これにより、この先読み応答補正値ｙｎ（ｔ）を用いて、補正目標偏差ｅ＊（ｔ）は、ｅ＊（ｔ）＝ｅ０（ｔ＋Ｔｐ｜ｔ）−ｙｎ（ｔ）により算出される。このように、予測時系列記憶部１１４を用いることで、応答補正部１１１は、少ない計算量と少ないメモリとで補正目標偏差ｅ＊（ｔ）を計算することができる。なお、予測時系列記憶部１１４に記憶されている予測時系列は、新しい操作変化量ｄｕ（ｔ）が操作量学習・計算部１１２から出力される度に更新される。
【００５６】
＜制御対象応答モデル関数ｙｎ，Ｃ＞
ここで、上記の数１に示す制御対象応答モデル関数ｙｎ，Ｃとしては、例えば、以下の（１）〜（３）のいずれかを用いることができる。
【００５７】
（１）線形予測式
制御対象応答モデルＳｍ，ｔがステップ応答モデルである場合、制御対象応答モデル関数ｙｎ，Ｃとして、以下の線形予測式を用いることができる。
【００５８】
【数５】
2020095352.tif 000007
ここで、｛Ｓ（ｔ）｝は、ステップ応答モデルである場合の制御対象応答モデルＳｍ，ｔである。
【００５９】
（２）非線形予測式
制御対象応答モデル関数ｙｎ，Ｃとして、以下の非線形予測式を用いることができる。
【００６０】
【数６】
2020095352.tif 000008
ここで、制御対象応答モデルＳｍ，ｔは、必ずしも線形とは限らないモデルである。
【００６１】
（３）ニューラルネットワーク
例えば、図６に示すように、ｍと、ｔと、｛ｄｕ（ｔ），ｄｕ（ｔ−Ｔｃ），・・・，ｄｕ（ｔ−ＫＴｃ）｝とを入力とする任意のニューラルネットワークを制御対象応答モデル関数ｙｎ，Ｃとして用いることができる。
【００６２】
＜操作量学習・計算部１１２の動作＞
次に、操作量学習・計算部１１２の動作について、図６を参照しながら説明する。図６は、操作量学習・計算部１１２の動作の一例を説明するための図である。
【００６３】
図６に示すように、操作量学習・計算部１１２は、補正目標偏差ｅ＊（ｔ）を入力して、操作変化量ｄｕ（ｔ）を出力する。ここで、操作量学習・計算部１１２には、報酬計算部１２１と、目標偏差・状態変換部１２２と、強化学習部１２３と、行動・操作変化量変換部１２４とが含まれる。
【００６４】
報酬計算部１２１は、補正目標偏差ｅ＊（ｔ）を入力して、深層強化学習に必要な報酬Ｒ（ｔ）を計算する。
【００６５】
目標偏差・状態変換部１２２は、補正目標偏差ｅ＊（ｔ）を入力して、深層強化学習の状態ｓ（ｔ）を生成する。この状態ｓ（ｔ）には、補正目標偏差ｅ＊（ｔ）が含まれる。状態ｓ（ｔ）は、補正目標偏差ｅ＊（ｔ）そのものを状態ｓ（ｔ）としてもよいし、補正目標偏差ｅ＊（ｔ）の微分値、積分値、若しくはその他の任意の変換を施したものを用いてもよいし、又は補正目標偏差ｅ＊（ｔ）に加えて、制御量や操作量を含めたり、その他制御対象から観測される観測値を含めたりしてもよい。なお、状態ｓ（ｔ）は、「状態変数ｓ（ｔ）」と称されてもよい。
【００６６】
強化学習部１２３は、報酬Ｒ（ｔ）と状態ｓ（ｔ）とを入力して、行動ａ（ｔ）を出力すると共に学習を行う。学習の詳細については後述する。
【００６７】
ここで、例えば、学習を一定の間隔毎に周期的に行うような場合、強化学習部１２３には、学習周期を示す指令が入力されてもよい。また、例えば、学習の開始又は停止を制御するような場合、強化学習部１２３には、学習開始又は学習停止を示す指令が入力されてもよい。
【００６８】
行動・操作変化量変換部１２４は、強化学習部１２３により出力された行動ａ（ｔ）を操作変化量ｄｕ（ｔ）に変換する。
【００６９】
＜強化学習部１２３の動作＞
次に、強化学習部１２３の動作について、図７を参照しながら説明する。図７は、強化学習部１２３の動作の一例を説明するための図である。
【００７０】
図７に示すように、強化学習部１２３は、報酬Ｒ（ｔ）と状態ｓ（ｔ）とを入力して、行動ａ（ｔ）を出力する。また、強化学習部１２３は、行動価値関数Ｑ（ｓ，ａ）を更新することで学習を行う。行動価値関数Ｑ（ｓ，ａ）とは、状態ｓ（ｔ）において行動ａ（ｔ）をとった際に期待される価値を表す関数のことである。ここで、強化学習部１２３には、行動価値関数更新部１３１と、行動選択部１３２とが含まれる。
【００７１】
行動価値関数更新部１３１は、行動価値関数Ｑ（ｓ，ａ）を更新する。ここで、深層強化学習では、行動価値関数Ｑ（ｓ，ａ）が多層のニューラルネットワーク（多層のニューラルネットワークは「ディープニューラルネットワーク」とも称される。）で実現される。したがって、行動価値関数更新部１３１には、ニューラルネットワークのパラメータ（例えば、セル数、層数、入出力次元等）が与えられる。また、これ以外にも、行動価値関数更新部１３１には、将来の価値をどの程度割り引いて評価するかを示す割引率γも与えられる。なお、上述したように、学習周期や学習開始／終了を示す指令が与えられてもよい。
【００７２】
行動価値関数更新部１３１が行動価値関数Ｑ（ｓ，ａ）を更新するためのアルゴリズムとしては、例えば、ＴＤ（Temporal Difference）誤差法（又は、「ＴＤ学習」と称されることもある。）等の既知の深層強化学習の手法を用いることができる。
【００７３】
行動選択部１３２は、行動価値関数Ｑ（ｓ，ａ）を参照して、現在の状態ｓ（ｔ）に対して、適切な行動ａ（ｔ）を選択する。行動選択部１３２が行動ａ（ｔ）を選択するためのアルゴリズムとしては、例えば、ε−Ｇｒｅｅｄｙ法等の既知の深層強化学習の手法を用いることができる。なお、ε−Ｇｒｅｅｄｙ法を用いる場合、０以上１以下の値を取るεを行動選択パラメータとして設定する。
【００７４】
なお、本実施形態では、深層強化学習の手法として、ＤＱＮ（Deep Q-Network）法と呼ばれる手法を用いているが、これに限られず、例えば、ＰＧ（Policy Gradient）法やＡＣ（Actor Critic）法等の既知の深層強化学習の手法が用いられてもよい。
【００７５】
＜行動価値関数Ｑ（ｓ，ａ）の更新＞
ここで、一例として、或る時刻ｔにおいて、状態ｓ＝ｓ（ｔ）がｉ個の変数ｓ１，・・・ｓｉを要素するベクトルで表され、行動ａ＝ａ（ｔ）がｊ個の離散値ａ１，・・・，ａｊのいずれかを取り得る場合に、行動価値関数更新部１３１が行動価値関数Ｑ（ｓ，ａ）を更新する場合について説明する。なお、ａ１，・・・，ａｊの集合は行動集合とも称される。
【００７６】
図８に示すように、行動価値関数Ｑ（ｓ，ａ）は、ｓ１，・・・，ｓｉを入力として、Ｑ（ｓ，ａ１），・・・，Ｑ（ｓ，ａｊ）を出力する多層ニューラルネットワークで実現されているものとする。この多層ニューラルネットワークは、入力層と、１以上の中間層と、出力層とで構成されており、各層間のセルはセル間結合で接続されている。なお、入力層のセル数はｉ個、出力層のセル数はｊ個である必要があるが、中間層のセル数は任意としてよい。また、中間層の数も任意としてよい。
【００７７】
ここで、行動価値関数Ｑ（ｓ，ａ）をニューラルネットワークで実現した場合、セル間結合の重みとオフセット（このオフセットは「バイアス」とも称される。）とが改善されるように学習される。なお、各層の活性化関数としては、例えば、シグモイド関数やＲｅＬＵ関数等が用いられる。
【００７８】
このとき、行動価値関数更新部１３１は、例えば、ＴＤ誤差法等を用いて、行動価値関数Ｑ（ｓ，ａ）を更新すればよい。例えば、ＴＤ誤差法では、以下の更新式により行動価値関数Ｑ（ｓ，ａ）が更新される。
【００７９】
【数７】
2020095352.tif 000009
ここで、αは学習係数、ｓ´は状態ｓにおいて行動ａをとった場合の次の状態である。
【００８０】
本実施形態では、上述したように、状態ｓ＝ｓ（ｔ）の各要素ｓ１，・・・ｓｉは目標偏差ｅ＊（ｔ）から変換された値である。このため、本実施形態では、少ない要素数で効率的に学習（すなわち、行動価値関数Ｑ（ｓ，ａ）の更新）を行うことができる。
【００８１】
なお、行動価値関数更新部１３１は、上述したＴＤ誤差法の他、例えば、Ｓａｒｓａ法やモンテカルロ法、ＴＤ（λ）法、適格度トレース法等の既知の方法により行動価値関数Ｑ（ｓ，ａ）を更新してもよい。
【００８２】
＜行動ａの選択＞
次に、一例として、或る時刻ｔにおいて、ε−Ｇｒｅｅｄｙ法により行動選択部１３２が行動ａ＝ａ（ｔ）を選択する場合について説明する。
【００８３】
行動選択部１３２は、行動価値関数Ｑ（ｓ，ａ）を参照して、現在の状態ｓ（ｔ）に対して、適切な行動ａ（ｔ）を選択するが、一定の確率１−εで最適な行動をａ＊（ｔ）を選択する一方で、残りの一定の確率εでランダムな行動を選択する。すなわち、行動選択部１３２は、
【００８４】
【数８】
2020095352.tif 000010
により行動ａ（ｔ）を選択する。ここで、ａ＊（ｔ）は最適な行動（つまり、行動価値関数Ｑ（ｓ，ａ）が最大となる行動）のことであり、
【００８５】
【数９】
2020095352.tif 000011
と表される。
【００８６】
このように、ε−Ｇｒｅｅｄｙ法では、行動選択パラメータεはランダムに新しい行動を探索するための調整パラメータを意味する。
【００８７】
＜操作変化量ｄｕへの変換＞
次に、行動ａ（ｔ）を操作変化量ｄｕ（ｔ）に変換する場合について説明する。行動・操作変化量変換部１２４は、例えば、以下の（１）又は（２）により行動ａ（ｔ）を操作変化量ｄｕ（ｔ）に変換することができる。
【００８８】
（１）関数変換
行動・操作変化量変換部１２４は、所定の関数ｆを用いて、ｄｕ（ｔ）＝ｆ（ａ（ｔ））により行動ａ（ｔ）を操作変化量ｄｕ（ｔ）に変換することができる。
【００８９】
（２）変換テーブルによる変換
一例として、行動ａ（ｔ）のとり得る値が０〜ｊ−１であるものとする。このとき、行動・操作変化量変換部１２４は、例えば図９に示す変換テーブルを用いて、行動ａ（ｔ）を操作変化量ｄｕ（ｔ）に変換することができる。すなわち、行動・操作変化量変換部１２４は、ａ（ｔ）＝０である場合はｄｕ０に変換し、ａ（ｔ）＝１である場合はｄｕ１に変換する。以降も同様に、行動・操作変化量変換部１２４は、行動ａ（ｔ）の値に対応する操作変化量ｄｕ（ｔ）の値に、当該行動ａ（ｔ）を変換する。なお、変換テーブルは、例えば、補助記憶装置等の記憶装置に格納されている。
【００９０】
なお、操作量が複数ある場合においても、ｊ個の行動ａ（ｔ）を変換して適用することができる。例えば、操作量がＭ個ある場合、行動ａ（ｔ）をＭ桁のＮ進数を取るようにし、Ｍ番目の操作変化量を行動ａ（ｔ）のＮ進数としてのＭ桁目に対応させる、等の方法を用いることができる。具体例として、２つの操作量を３進数で表せば、００（＝０）、０１（＝１）、０２（＝２）、１０（＝３）、１１（＝４）、１２（＝５）、２０（＝６）、２１（＝７）、２２（＝８）の８つの３進数で表現でき、各桁が０であれば減少、１であれば維持、２であれば増加、といった対応を定義することもできる。この対応を行動・操作変化量変換部１２４に予め設定しておけばよい。
【００９１】
＜報酬Ｒの計算＞
次に、報酬計算部１２１が補正目標偏差ｅ＊（ｔ）から報酬Ｒ（ｔ）を計算する場合について説明する。報酬計算部１２１は、例えば、以下の（１）〜（３）のいずれかにより報酬Ｒ（ｔ）を計算することができる。
【００９２】
（１）絶対値
報酬計算部１２１は、Ｒ（ｔ）＝−｜ｅ＊（ｔ）｜により報酬Ｒ（ｔ）を計算することができる。
【００９３】
（２）２乗
報酬計算部１２１は、Ｒ（ｔ）＝−（ｅ＊（ｔ））２により報酬Ｒ（ｔ）を計算することができる。
【００９４】
（３）任意の関数
報酬計算部１２１は、任意の関数ｇを用いて、Ｒ（ｔ）＝ｇ（ｅ＊（ｔ））により報酬Ｒ（ｔ）を計算することができる。
【００９５】
なお、上記の（１）及び（２）でマイナスを乗じているのは、深層強化学習では、一般に報酬Ｒ（ｔ）の最大化を行う一方で、補正目標偏差ｅ＊（ｔ）は小さい方が望ましいためである。
【００９６】
また、報酬Ｒ（ｔ）の算出に補正目標偏差ｅ＊（ｔ）が用いられていればよく、上記の（１）〜（３）に対して、任意の項を含めて報酬Ｒ（ｔ）が計算されてもよい。例えば、操作量が大きすぎたり、操作変化の頻度が高すぎたりしないようにするためのペナルティ項を含めて報酬Ｒ（ｔ）が計算されてもよい。
【００９７】
＜制御装置１０のハードウェア構成＞
次に、本実施形態に係る制御装置１０のハードウェア構成について、図１０を参照しながら説明する。図１０は、本実施形態に係る制御装置１０のハードウェア構成の一例を示す図である。
【００９８】
図１０に示すように、本実施形態に係る制御装置１０は、入力装置２０１と、表示装置２０２と、外部Ｉ／Ｆ２０３と、通信Ｉ／Ｆ２０４と、ＲＯＭ（Read Only Memory）２０５と、ＲＡＭ２０６と、プロセッサ２０７と、補助記憶装置２０８とを有する。これら各ハードウェアは、バス２０９により相互に通信可能に接続されている。
【００９９】
入力装置２０１は、例えば各種ボタンやタッチパネル、キーボード、マウス等であり、制御装置１０に各種の操作を入力するのに用いられる。表示装置２０２は、例えばディスプレイ等であり、制御装置１０による各種の処理結果を表示する。なお、制御装置１０は、入力装置２０１及び表示装置２０２の少なくとも一方を有していなくてもよい。
【０１００】
外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。制御装置１０は、外部Ｉ／Ｆ２０３を介して、記録媒体２０３ａの読み取りや書き込みを行うことができる。記録媒体２０３ａには、例えば、ＳＤメモリカード(SD memory card）やＵＳＢメモリ、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）等がある。なお、制御装置１０が有する各機能部を実現する１以上のプログラムは、記録媒体２０３ａに格納されていてもよい。
【０１０１】
通信Ｉ／Ｆ２０４は、制御装置１０が他の装置とデータ通信を行うためのインタフェースである。なお、制御装置１０が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ２０４を介して、所定のサーバ等から取得（ダウンロード）されてもよい。
【０１０２】
ＲＯＭ２０５は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。ＲＡＭ２０６は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【０１０３】
プロセッサ２０７は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、補助記憶装置２０８やＲＯＭ２０５からプログラムやデータをＲＡＭ２０６に読み出して、各種処理を実行する演算装置である。なお、制御装置１０は、プロセッサ２０７として、ＣＰＵ又はＧＰＵのいずれか一方のみを有していてもよいし、ＣＰＵ及びＧＰＵの両方を有していてもよい。
【０１０４】
補助記憶装置２０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置２０８に格納されているプログラムやデータには、例えば、制御装置１０が有する各機能部を実現する１以上のプログラムや基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上で動作する各種アプリケーションプログラム等がある。
【０１０５】
本実施形態に係る制御装置１０は、図１０に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図１０では、制御装置１０が１台のコンピュータで実現される場合のハードウェア構成例を示したが、制御装置１０は複数台のコンピュータで実現されていてもよい。
【０１０６】
［実施例］
次に、本実施形態の実施例について説明する。以降の実施例では、本実施形態に係る制御装置１０（以下、実施例中では「本方式」と引用する。）と、従来技術とを比較する。比較対象の従来技術としては、比例方式と、比例・微分方式とを用いた。
【０１０７】
比例方式とは、目標値の先読みを行わずに、目標値ｒ（ｔ）と制御量現在値ｙ０との差を目標偏差ｅ（ｔ）とした上で、この目標偏差ｅ（ｔ）をそのまま状態ｓ（ｔ）として操作変化量ｄｕ（ｔ）を算出すると共に、深層強化学習による学習を行う方式である。
【０１０８】
また、比例・微分方式とは、目標値の先読みを行わずに、目標値ｒ（ｔ）と制御量現在値ｙ０との差を目標偏差ｅ（ｔ）とした上で、更にこの目標偏差ｅ（ｔ）の時間微分ｄ（ｅ（ｔ））／ｄｔを計算する。そして、目標偏差ｅ（ｔ）と目標偏差ｅ（ｔ）の時間微分ｄ（ｅ（ｔ））／ｄｔとを状態ｓ（ｔ）として操作変化量ｄｕ（ｔ）を算出すると共に、深層強化学習による学習を行う方式である。
【０１０９】
本実施例では、図１１に示すステップ応答の制御対象モデル２０及び制御対象３０を用いる。図１１に示すように、本実施例では、制御対象モデル２０のステップ応答と、制御対象３０のステップ応答との間で差があるものとする。
【０１１０】
また、本実施例では、操作量ｕ（ｔ）は離散値であり、＋１、０、−１のいずれかを取るものとする。すなわち、
【０１１１】
【数１０】
2020095352.tif 000012
であるものとする。このような場合は、例えば、温調におけるヒータのＯＮ／ＯＦＦ制御や２レベルインバータ、３レベルインバータ、化学プラントにおける加温／冷却制御、信号処理におけるＡ／Ｄ変換等、様々な産業分野で現れる。なお、深層強化学習の手法によっては連続値を学習可能であるため、この場合、操作量ｕ（ｔ）は連続値であってもよい。
【０１１２】
なお、一般に、モデル予測制御を用いて本実施例を扱おうとすると、予測ホライズンにおける離散時系列の最適化問題を解くことになる。このような最適化問題は、整数計画問題と呼ばれ、計算時間が掛かる問題となる。また、ＰＩＤ制御等の比較的簡易な制御を用いようとすると、連続値の離散化が必要となり、変調周期によって制御の精度が異なってしまい、その調整が困難となる。
【０１１３】
本実施例において、学習を行った際の目標値時系列｛ｒ（ｔ）｝を図１２に示す。図１２に示すように、目標値時系列｛ｒ（ｔ）｝は台形状に変化する値とした。また、制御パラメータとしては、制御周期Ｔｃ＝１、モデル区間Ｋ＝３００、先読み長Ｔｐ＝２とした。
【０１１４】
深層強化学習の学習条件としては、以下とした。
【０１１５】
・行動選択パラメータε＝０．３
・割引率γ＝０．９５
・行動集合｛０，１，２｝
・学習回数（エピソード回数）＝２００（回）
・ニューラルネットワークのパラメータとして、セル数＝５０、層数＝３、入出力次元＝１×３（本方式）、１×３（比例方式）、２×３（比例・微分方式）
なお、本方式では、補正目標偏差ｅ＊のみを入力としているため、比例・微分方式と比較して規模の小さいニューラルネットワークとなる。
【０１１６】
また、行動・操作変化量変換部１２４は、図１３に示す変換テーブルを用いて、行動集合｛０，１，２｝のいずれかの値を取る行動ａ（ｔ）を操作変化量ｄｕ（ｔ）に変換する。なお、本実施例では、操作量ｕ（ｔ）の取り得る値は−１、０、１のいずれかであるため、操作変化量ｄｕ（ｔ）によって操作量ｕ（ｔ）の取り得る値の範囲を逸脱しないように別途リミッターを設けている。
【０１１７】
また、報酬計算部１２１は、以下により報酬Ｒ（ｔ）を計算する。
【０１１８】
・本方式：Ｒ（ｔ）＝−｜ｅ＊（ｔ）｜
・比例方式：Ｒ（ｔ）＝−｜ｅ（ｔ）｜
・比例・微分方式：Ｒ（ｔ）＝−｜ｅ（ｔ）｜
以上の条件の下で、本方式、比例方式及び比例・微分方式のそれぞれでの学習履歴、すなわち、報酬総和のエピソード毎の変化を図１４に示す。ここで、１つのエピソードをｔ＝０〜ｔ＝５０とした場合、報酬総和Ｒｓｕｍは以下により計算される。
【０１１９】
【数１１】
2020095352.tif 000013
図１４（ａ）〜図１４（ｃ）に示すように、比例方式、比例・微分方式及び本方式のいずれにおいてもエピソードが進むにつれて報酬総和Ｒｓｕｍが上昇しているが、本方式では、比例方式及び比例・微分方式と比較して、早い段階で報酬総和Ｒｓｕｍが収束傾向になることがわかる。したがって、本方式では、比例方式及び比例・微分方式と比較して、より効率的な学習が実現できていることがわかる。
【０１２０】
次に、学習完了後の本方式、比例方式及び比例・微分方式のそれぞれで、図１２に示した目標値時系列｛ｒ（ｔ）｝を用いた場合（つまり、学習に使用した目標値時系列｛ｒ（ｔ）｝を用いた場合）の制御応答の結果を図１５に示す。
【０１２１】
図１５（ａ）に示すように、比例方式では、特に、時刻ｔ＝３０以降の後半でのＰＶとＳＶとの目標偏差が大きく、振動的になってしまっている。また、図１５（ｂ）に示すように、微分・比例方式では、比例方式よりも後半での目標偏差は改善されているものの、振動的な応答のままである。
【０１２２】
これらに対して、図１５（ｃ）に示すように、本方式では、後半の制御が非常にスムーズに追従し、振動的な応答がなく、良好な制御が実現できている。これは、本方式では、制御対象モデル２０に基づく制御応答の予測効果が考慮されているためである。
【０１２３】
次に、学習完了後の本方式、比例方式及び比例・微分方式のそれぞれで、図１２に示した目標値時系列｛ｒ（ｔ）｝とは異なる目標値時系列｛ｒ（ｔ）｝を用いた場合の制御結果を図１６に示す。図１６に示す例では、図１２に示した目標値時系列｛ｒ（ｔ）｝とは異なる目標値時系列｛ｒ（ｔ）｝として、図１２に示した目標値時系列｛ｒ（ｔ）｝の符号を反転させた目標値時系列｛ｒ（ｔ）｝を用いている。
【０１２４】
図１６（ａ）に示すように、比例方式では、図１５（ａ）と比較しても、前半や中間時刻でも目標偏差が大きく、振動的になってしまっている。また、図１６（ｂ）に示すように、微分・比例方式では、図１５（ｂ）とほぼ同等であるが、若干応答が悪化している。
【０１２５】
これらに対して、図１６（ｃ）に示すように、本方式では、振動的な応答がなく、良好な制御が実現できている。これは、本方式が、学習用のニューラルネットワークの入出力次元が小さいことにより効果的な学習ができており、かつ、補正目標偏差によって汎用的な学習ができているためである。
【０１２６】
以上のように、本実施形態に係る制御装置１０によれば、従来の制御手法（例えば、モデル予測制御等）では制御が難しい離散操作量の制御問題においても、制御対象モデルによって計算する補正目標偏差と深層強化学習とを組み合わせることで、少ない状態変数で効率的に学習を行うことができ、かつ、振動の少ない良好な制御を実現することができる。
【０１２７】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１２８】
１０        制御装置
２０        制御対象モデル
３０        制御対象
４０        切替器
５０        切替器
１０１      目標値先読み部
１０２      計測部
１０３      差分器
１０４      操作量更新部
１０５      タイマ
１１１      応答補正部
１１２      操作量学習・計算部
１１３      加算器
１１４      予測時系列記憶部
１２１      報酬計算部
１２２      目標偏差・状態変換部
１２３      強化学習部
１２４      行動・操作変化量変換部
１３１      行動価値関数更新部
１３２      行動選択部
【図１】
2020095352.tif 000014
【図２】
2020095352.tif 000015
【図３】
2020095352.tif 000016
【図４】
2020095352.tif 000017
【図５】
2020095352.tif 000018
【図６】
2020095352.tif 000019
【図７】
2020095352.tif 000020
【図８】
2020095352.tif 000021
【図９】
2020095352.tif 000022
【図１０】
2020095352.tif 000023
【図１１】
2020095352.tif 000024
【図１２】
2020095352.tif 000025
【図１３】
2020095352.tif 000026
【図１４】
2020095352.tif 000027
【図１５】
2020095352.tif 000028
【図１６】
2020095352.tif 000029