(57)【要約】【課題】複数の目的を同時に満たすことが要求される行動を適切に学習する。【解決手段】機械学習システムは、環境の現在の状態に基づき行動を決定する、エージェント部と、前記現在の状態及び前記行動に基づき前記行動の異なる目的における評価値をそれぞれ生成する複数の評価関数を含む、評価部と、前記エージェント部を訓練する、学習部と、を含む。前記評価部は、より正確な評価値を生成することができるように、前記複数の評価関数のそれぞれを、前記複数の評価関数それぞれが生成した前記評価値と前記評価値それぞれの目標値との差に基づき、更新する。前記学習部は、前記エージェント部がより適切な行動を決定することができるように、前記複数の評価関数それぞれの更新による勾配を順次選択し、前記勾配に基づき前記エージェント部を順次更新する。【選択図】図２
2019159888.tif 000002
【特許請求の範囲】
【請求項１】
環境の現在の状態に基づき行動を決定する、エージェント部と、
前記現在の状態及び前記行動に基づき前記行動の異なる目的における評価値をそれぞれ生成する複数の評価関数を含む、評価部と、
前記エージェント部を訓練する、学習部と、を含み、
前記評価部は、より正確な評価値を生成することができるように、前記複数の評価関数のそれぞれを、前記複数の評価関数それぞれが生成した前記評価値と前記評価値それぞれの目標値との差に基づき、更新し、
前記学習部は、前記エージェント部がより適切な行動を決定することができるように、前記複数の評関数それぞれの更新による勾配を順次選択し、前記勾配に基づき前記エージェント部を順次更新する、機械学習システム。
【請求項２】
請求項１に記載の機械学習システムであって、
前記エージェント部は、連続的な値で示される行動を決定する、機械学習システム。
【請求項３】
請求項１又は２に記載の機械学習システムであって、
前記評価値は、それぞれ、前記環境からの報酬に基づく値であり、
前記複数の評価関数それぞれの報酬のスケールを予め設定されている基準に従って調整する報酬調整部をさらに含む、機械学習システム。
【請求項４】
請求項３に記載の機械学習システムであって、
前記報酬調整部は、より高い優先度の評価関数の報酬のスケールが、より低い優先度の評価関数の報酬のスケールより小さくなるように、前記複数の評価関数それぞれの報酬をスケーリングする、機械学習システム。
【請求項５】
請求項３に記載の機械学習システムであって、
前記報酬調整部は、前記複数の評価関数それぞれの報酬のスケールを共通のスケールに変換する、機械学習システム。
【請求項６】
メモリと、前記メモリに格納されているプロセッサとを含む計算機システムにおいて、機械学習システムの訓練を行う方法であって、
前記機械学習システムは、
環境の現在の状態に基づき行動を決定する、エージェントプログラムと、
前記現在の状態及び前記行動に基づき前記行動の異なる目的における評価値をそれぞれ生成する複数の評価関数を含む、評価プログラムと、
を含み、
前記方法は、前記プロセッサが、
前記評価プログラムがより正確な評価値を生成することができるように、前記複数の評価関数のそれぞれを、前記複数の評価関数それぞれが生成した前記評価値と前記評価値それぞれの目標値との差に基づき、更新し、
前記エージェントプログラムがより適切な行動を決定することができるように、前記複数の評価関数それぞれの更新による勾配を順次選択し、前記勾配に基づき前記エージェントプログラムを順次更新する、
ことを含む、方法。
【請求項７】
請求項６に記載の方法であって、
前記エージェントプログラムは、連続的な値で示される行動を決定する、方法。
【請求項８】
請求項６又は７に記載の方法であって、
前記評価値は、それぞれ、前記環境からの報酬に基づく値であり、
前記方法は、前記プロセッサが、前記複数の評価関数それぞれの報酬のスケールを予め設定されている基準に従って調整することをさらに含む、方法。
【請求項９】
請求項６又は７に記載の方法であって、
前記評価値は、それぞれ、前記環境からの報酬に基づく値であり、
前記方法は、前記プロセッサが、より高い優先度の評価関数の報酬のスケールが、より低い優先度の評価関数の報酬のスケールより小さくなるように、前記複数の評価関数それぞれの報酬をスケーリングすることをさらに含む、方法。
【請求項１０】
請求項６又は７に記載の方法であって、
前記評価値は、それぞれ、前記環境からの報酬に基づく値であり、
前記方法は、前記プロセッサが、前記複数の評価関数それぞれの報酬のスケールを共通のスケールに変換することをさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習システムに関する。
【背景技術】
【０００２】
浄水施設、発電施設、工場等の施設におけるオートメーションは、通常、規定のルールに基づきプログラミングされる。一般に、専門家が、前もって、ルールを定義する。しかし、多くのケースにおいて、ルールを基礎とするシステムは、十分に機能することが困難である。なぜなら、多くの判定が、ルールとして予め定義されていない経験に基づき行われる必要があるからである。
【０００３】
強化学習及びＡｃｔｏｒ−Ｃｒｉｔｉｃアルゴリズムを使用することで、システムを、自動的かつ効率的に動作するように学習させることができる。従来の方法として、Ｄｅｅｐ  Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｐｏｌｉｃｙ  Ｇｒａｄｉｅｎｔ（ＤＤＰＧ）法が知られている。ＤＤＰＧ法において、一つの関数は、連続的な行動を出力する。例えば、浄水施設において、行動は、システムが取水レートをどの程度増減させるか（＋／−ｘｘｍ３／ｈ：ｘｘは連続的な値）である。もう一つの関数は、実行された行動を評価し、実行された行動の価値を示すＱ値を出力する。
【０００４】
Ｑ値が高い程、より適切な行動であることを示す。Ｃｒｉｔｉｃ関数は、通常、目標値として、総割引将来報酬を使用し、報酬は行動の目的に応じて与えられるスカラ数である。例えば、浄水施設において、目的は十分な水量を給水槽に維持することであり、水量レベルが低くなる、例えば０になる、又は、水量レベルが高過ぎる、例えば最大値に達すると、報酬は負の数（−１）である。他のケースにおいて、水位が規定の範囲内にあると、報酬は正の数（＋１）となる。
【０００５】
強化学習において、ｃｒｉｔｉｃニューラルネットワークを使用して、ａｃｔｏｒニューラルネットワークを訓練する技術が知られており、例えば、米国出願公開第２０１７／００２４６４３号に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国出願公開第２０１７／００２４６４３号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、実際の運用において、システムは通常、複数の目的を満たすことが必要である。例えば、浄水施設において、システムは十分な量の水を取り込むと共に、ポンプの電力コストを最小化することが必要とされる。例えば、電気料金はオフピーク時よりもピークの時の方が高いので、オフピーク時により多くの水を取り込む方がよい。他の目的も潜在的に必要となり得る。例えば、原水の濁度が高い場合、大量の原水を浄水するための薬品コストが高くなる。したがって、雨の時には、原水の取り込み量を少なくすることが好ましい。
【０００８】
したがって、複数の目的を同時に満たすことが要求される行動を適切に学習及び決定することができる手法が望まれる。
【課題を解決するための手段】
【０００９】
本開示の一例は、環境の現在の状態に基づき行動を決定する、エージェント部と、前記現在の状態及び前記行動に基づき前記行動の異なる目的における評価値をそれぞれ生成する複数の評価関数を含む、評価部と、前記エージェント部を訓練する、学習部と、を含み、前記評価部は、より正確な評価値を生成することができるように、前記複数の評価関数のそれぞれを、前記複数の評価関数それぞれが生成した前記評価値と前記評価値それぞれの目標値との差に基づき、更新し、前記学習部は、前記ａｃｔｏｒ部がより適切な行動を決定することができるように、前記複数の評価関数それぞれの更新による勾配を順次選択し、前記勾配に基づき前記エージェント部を順次更新する、機械学習システムである。
【発明の効果】
【００１０】
本開示の一態様によれば、複数の目的を同時に満たすことが要求される行動を適切に学習することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る学習システムの構成例を模式的に示す。
【図２】第１実施形態に係る学習システムの機能ブロック図である。
【図３】第１実施形態に係るメモリデータベースの構成例を模式的に示す。
【図４】第１実施形態に係る環境部のフローチャートを示す。
【図５】第１実施形態に係るａｃｔｏｒネットワーク部のフローチャートを示す。
【図６】第１実施形態に係る複数ｃｒｉｔｉｃネットワーク部のフローチャートを示す。
【図７】第１実施形態に係る学習部のフローチャートを示す。
【図８】第２実施形態に係る学習システムの構成例を模式的に示す。
【図９】第２実施形態に係る環境部のフローチャートを示す。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１３】
以下において、単一の行動に対する複数の目的が存在する構成、例えば、単一の行動が複数の基準を満たすことが必要である構成における、機械学習システムを開示する。機械学習システムは、例えば、浄水施設、発電施設、工場等の施設における自動動作システムに適用できる。
【００１４】
本開示において、複数のｃｒｉｔｉｃ関数（評価関数）が使用され、強化学習のエージェントであるａｃｔｏｒ関数を訓練する。各ｃｒｉｔｉｃ関数は、ａｃｔｏｒ関数の出力を評価する単一の目的又は単一の基準を表す。ａｃｔｏｒ関数の出力は、強化学習エージェントの行動である。ａｃｔｏｒ関数は、行動を示す値を出力する。ａｃｔｏｒ関数が出力する行動は、連続値で表わされてよい。
【００１５】
ａｃｔｏｒ関数は、例えば、線形回帰関数又はニューラルネットワークである。以下の説明においては、ａｃｔｏｒ関数は、ニューラルネットワークである。ａｃｔｏｒ関数は、環境と相互作用する装置又はシステムで実行可能であり、例えば、連続値で表わされる行動を出力する。本開示の手法により、複数の目的を有し、連続値で表わされる行動を出力するａｃｔｏｒ関数を適切に学習することができる。
【００１６】
環境は、実世界又はシミュレートされた世界の環境であってよい。ａｃｔｏｒ関数は、例えばニューラルネットワークであり、２又はそれより多くのｃｒｉｔｉｃ関数の勾配を使用して訓練される。
【００１７】
ｃｒｉｔｉｃ関数は、例えば、線形回帰関数又はニューラルネットワークである。以下の説明においては、ｃｒｉｔｉｃ関数は、ニューラルネットワークである。複数のｃｒｉｔｉｃ関数は、それぞれ、行動の異なる目的の観点から、行動の価値（行動価値）を評価する。各ｃｒｉｔｉｃ関数は、単一の行動価値を目標とし、各行動価値は単一の目的から決まる。
【００１８】
強化学習エージェントは、環境の現在の状態を示す観測値を受信し、そして、環境の現在の状態を入力として受け取り適切な行動を出力するａｃｔｏｒ関数を使用して、環境と相互作用する。ａｃｔｏｒ関数の出力する行動は、連続する数値で表わされ得る。複数のｃｒｉｔｉｃ関数は、それぞれ、現在の状態とａｃｔｏｒ関数の行動の情報を使用して、その行動の価値を評価する。
【００１９】
ｃｒｉｔｉｃ関数は、訓練されて、より正確な行動価値（行動価値の評価値）を出力するようになる。各行動価値は、単一の目的に対応する。ｃｒｉｔｉｃ関数それぞれにおける勾配を使用して、ｃｒｉｔｉｃ関数毎に、ａｃｔｏｒ関数を更新する。これにより、ａｃｔｏｒ関数は、複数のｃｒｉｔｉｃ関数の評価から、全ての基準をできる限り満たすことができる一つの行動を出力する。
【００２０】
ｃｒｉｔｉｃ関数に基づきａｃｔｏｒ関数を訓練するため、各訓練回において、ａｃｔｏｒ関数の単一更新ではなく、ａｃｔｏｒ関数の更新シーケンスが実行される。ａｃｔｏｒ関数の訓練は、複数のｃｒｉｔｉｃ関数それぞれの勾配を使用して順次行われる。単一のｃｒｉｔｉｃ関数の代わりに、異なる目的に対応する複数のｃｒｉｔｉｃ関数を使用することで、効果的かつ効率的に、ａｃｔｏｒ関数を訓練することができる。
【００２１】
＜第１実施形態＞
図１から７を参照して、第１実施形態を説明する。学習システムは、環境プログラム、ａｃｔｏｒネットワークプログラム、複数ｃｒｉｔｉｃネットワークプログラム（複数ｃｒｉｔｉｃネットワークのプログラム）、そして、学習プログラムを含む。ａｃｔｏｒネットワークプログラムは、ニューラルネットワーク（単にネットワークとも呼ぶ）を使用し、環境プログラムからの現在状態を入力として受け取り、行動を出力する。
【００２２】
複数ｃｒｉｔｉｃネットワークプログラムは、複数のｃｒｉｔｉｃニューラルネットワークを含み、環境プログラムからの現在の状態とａｃｔｏｒネットワークプログラムからの行動とを、入力として受け取る。各ｃｒｉｔｉｃニューラルネットワークは、ａｃｔｏｒネットワークプログラムからの行動を評価する独自の基準又は目的を有している。学習プログラムは、例えばミニバッチ学習によって、ｃｒｉｔｉｃネットワークプログラムを更新する。学習プログラムは、ｃｒｉｔｉｃネットワークプログラム毎に、ｃｒｉｔｉｃネットワークプログラムから得られる勾配を使用して、ａｃｔｏｒネットワークプログラムを更新する。
【００２３】
図１は、第１実施形態に係る学習システムの構成例を模式的に示す。サーバ１００は、プロセッサ１１０、メモリ１２０、及び補助記憶装置１３０を含む。メモリ１２０及び／又は補助記憶装置１３０は、記憶装置である。これら構成要素は、バスを介して互いに接続されている。プロセッサ１１０は、メモリ１２０を参照して、様々な演算処理を実行する。
【００２４】
メモリ１２０は、環境プログラム１２１、ａｃｔｏｒネットワークプログラム１２２、複数ｃｒｉｔｉｃネットワークプログラム１２３、そして、学習プログラム１２４を格納している。メモリ１２０に格納されるプログラム及びプログラムが使用するデータは、例えば、補助記憶装置１３０又は外部からネットワークを介してロードされる。
【００２５】
環境プログラム１２１は、実世界の特徴を観測又は実世界の環境をシミュレートする。例えば、実世界の浄水施設において、環境プログラム１２１は、施設の特徴量を観測する。環境プログラム１２１は、例えば、水の特性値、水量及び水位を感知することができるセンサアレイからの値を観測する。シミュレーションにおける浄水施設において、環境プログラム１２１は、浄水施設でのオペレーションがなされた後の水の特性値の変化、水量の変化及び水位の変化をシミュレートする。
【００２６】
環境のこれらの特徴量に基づいて、システムは、環境の現在状態、及び、オペレーションにおいてなされた行動の後の環境の次の状態を観測し、そして、異なる目的の全ての基準を参照して、行動の各目的に対する良否を判定する。
【００２７】
ａｃｔｏｒネットワークプログラム１２２は、環境の現在状態を入力として受け取り、関数を使用して行動を出力する。訓練において、ａｃｔｏｒネットワークプログラム１２２は、パラメータεを使用して、ランダムな行動を行うか、その関数から最適と推定される行動を行うか判定する。ａｃｔｏｒネットワークプログラム１２２の関数は、例えば、ニューラルネットワークである。ａｃｔｏｒネットワークプログラム１２２の処理フローは、図５を参照して、後に詳述される。
【００２８】
複数ｃｒｉｔｉｃネットワークプログラム１２３は、複数のｃｒｉｔｉｃ関数を含む。複数のｃｒｉｔｉｃ関数は、それぞれ、例えば、ニューラルネットワークである。各ｃｒｉｔｉｃ関数は、行動が満足すべき一つの目的を表す。例えば、浄水施設において、取水レートを変更する行動は、貯水池における水量及び取水のための電力消費量を変化させることになる。この行動は水の需要（十分な水）を満たすと共に、取水のための電力消費量のコストができるだけ低くする（ローコスト）ことが要求される。
【００２９】
ある一つのｃｒｉｔｉｃネットワークは、行動が需要を満たすか否かを判定し、他のｃｒｉｔｉｃネットワークは、行動が電力のコストを削減するか否か判定する。これらｃｒｉｔｉｃネットワークは、バックプロパゲーションによって、できるだけ正確に判定することができるように訓練される。複数ｃｒｉｔｉｃネットワークプログラム１２３の処理フローは、図６を参照して、後に詳述される。
【００３０】
学習プログラム１２４は、複数ｃｒｉｔｉｃネットワークプログラム１２３を使用して、複数のｃｒｉｔｉｃ関数を訓練し、また、それらの勾配を使用して、ｃｒｉｔｉｃ関数毎に、ａｃｔｏｒネットワークプログラム１２２を訓練する。学習プログラム１２４の処理フローは、図７を参照して、後に詳述される。
【００３１】
補助記憶装置１３０は、メモリデータベース１３１を格納している。メモリデータベース１３１は、４要素からなるタプル、の集合を格納している。４要素は、現在の状態、行動、報酬、そして、次の状態である。これらは、例えば、訓練フェーズにおけるａｃｔｏｒネットワークプログラム１２２の経験値である。メモリデータベース１３１の容量は、規定値（例えば１００万タプル）であり、予め設定されている。メモリデータベース１３１が一杯になると、最初の経験値の組（タプル）が削除され、次の経験のための空き領域が形成される。メモリデータベース１３１の構成は、図３を参照して、後に詳述される。
【００３２】
図２は、第１実施形態に係る学習システムの機能ブロック図である。環境部１２１０は、実世界の環境の現在の状態を観測する、又は、実世界をシミュレートすることができる。環境部１２１０は、環境プログラム１２１を実行するプロセッサ１１０で実現される。環境部１２１０は、ａｃｔｏｒネットワーク部１２２０から行動を受け取り、その行動を実行して次の状態に移行する。報酬は、環境部１２１０において計算される。一つの経験は、一つのタプルであり、現在の状態、行動、異なる目的それぞれの報酬、そして新しい状態、の情報を含む。経験は、メモリデータベース１３１に格納される。
【００３３】
ａｃｔｏｒネットワーク部１２２０は、システムの行動を決定する。ａｃｔｏｒネットワーク部１２２０は、ａｃｔｏｒネットワークプログラム１２２を実行するプロセッサ１１０によって実現される。ａｃｔｏｒネットワーク部１２２０は、センサデータを環境部１２１０から現在の状態として受信し、ニューラルネットワークのフィードフォワード法を使用して、行動を得る。ａｃｔｏｒネットワーク部１２２０は、ニューラルネットワークにより得た行動を使用することもあれば、使用しないこともある。ａｃｔｏｒネットワーク部１２２０は、パラメータεを有しており、それを使用して、ニューラルネットワークからの行動を利用するか、ランダムな行動を探索するか決定する。
【００３４】
パラメータεは、予め設定されており、例えば、固定値（例えば、０．５）、又は、訓練時間に応じて１から０まで線形減少する数値である。ａｃｔｏｒネットワーク部１２２０は、乱数とパラメータεとを比較し、ニューラルネットワークにより決定される行動を利用するか、ランダムな行動を探索するか決定する。ａｃｔｏｒネットワーク部１２２０は、決定した行動を、その行動の実行のために、環境部１２１０に送信する。
【００３５】
複数ｃｒｉｔｉｃネットワーク部１２３０は、所与の状態における行動を評価する。複数ｃｒｉｔｉｃネットワーク部１２３０は、複数ｃｒｉｔｉｃネットワークプログラム１２３を実行するプロセッサ１１０によって実現される。その評価は、Ｑ値（行動価値）として与えられる。Ｑ値が高い程、より適切な動作であることを示す。複数ｃｒｉｔｉｃネットワーク部１２３０は、２又はそれより多くのｃｒｉｔｉｃ関数を含み、それらは、例えば、ニューラルネットワークである。各ｃｒｉｔｉｃネットワークは、以下の数式で与えられる正確なＱ値（目標値）を出力しようとする。
【００３６】
Q(st,at)=reward+γQ(st+1,at+1)    (1)
ｓ＿ｔ、ａ＿ｔ、はそれぞれ、現時点での状態と行動を示す。ｒｅｗａｒｄは報酬を表し、γは割引率を表す。ｓ＿ｔ＋１、ａ＿ｔ＋１、はそれぞれ、次の時点での状態と行動を示す。
【００３７】
各ｃｒｉｔｉｃニューラルネットワークは、バックプロパゲーション法を使用して、実際に出力されたＱ値（推定値）と目標Ｑ値との誤差の二乗平均の損失関数が最少となるように、訓練される。ｃｒｉｔｉｃネットワークは、状態と当該状態において取られた行動を入力として、Ｑ値を出力する。
【００３８】
損失関数は、例えば、以下の数式で表わされる。
Loss=1/2[reward + γQ(st+1,at+1)−Q(st,at)]2             (2)
【００３９】
重要な点は、ｃｒｉｔｉｃネットワークは、それぞれ、一つの行動が満たすべき異なる目的（基準）を表すことである。
【００４０】
学習部１２４０は、学習プログラム１２４を実行するプロセッサ１１０により実現される。学習部１２４０は、メモリデータベース１３１から規定数の経験をサンプリングし、全てのｃｒｉｔｉｃネットワークを、上述のように、バックプロパゲーション法によって訓練する。学習部１２４０は、ｃｒｉｔｉｃネットワーク毎に、ｃｒｉｔｉｃネットワークからの勾配を使用してａｃｔｏｒネットワーク部１２２０（のａｃｔｏｒネットワーク）を訓練する。
【００４１】
図３は、第１実施形態に係るメモリデータベース１３１の構成例を模式的に示す。メモリデータベース１３１は、インデックス欄３０１、現在の状態欄３０２、行動欄３０３、報酬欄３０４、及び次の状態欄３０５を含む。一つのレコードが、一つの経験を示す。
【００４２】
インデックス欄３０１は、メモリデータベース１３１に格納されている経験（レコード）の順序を示す整数を格納している。インデックスは、メモリデータベース１３１に格納されている経験において、メモリデータベース１３１が一杯であって、さらに新しい経験を格納する場合に、削除すべき最も古い経験を同定する情報を与える。
【００４３】
現在の状態欄３０２の各セルは、現在の状態（元の状態）を定義する、実世界の環境又はシミュレートされた世界の環境においてセンサが感知した値の集合を示す。
【００４４】
行動欄３０３の各セルは、システムが取る行動を表す連続する値を示す。行動は、実世界のシステムの仕様に依存する。例えば、行動は、浄水施設における取水レートの増加又は減少の度合いを示す、−１から＋１までの間のいずれかの値で表わされる。
【００４５】
報酬欄３０４の各セルは、システムが行動を実行して次の状態に移行した後の、異なる目的それぞれの報酬を示す数値のセットを格納する。例えば、取水レートを増加する行動の一つの報酬は、貯水池の水位が所望範囲にない場合に、０である。また、取水レートを増加する行動の他の一つの報酬は、その行動が夜に実行され、省消費電力である場合に、＋１である。
【００４６】
次の状態欄３０５は、システムが、現在の状態欄３０２が示す状態から、行動欄３０３が示す行動を取ることで遷移した状態を示す。次の状態から、システムは、報酬欄３０４のセルの各値を決定することができる。次の状態欄３０５の各セルは、実世界の環境又はシミュレートされた世界の環境においてセンサが感知した値の集合を示す。
【００４７】
図４は、第１実施形態に係る、環境部１２１０のフローチャートを示す。サーバ１００のプロセッサ１１０が、環境プログラム１２１に従って、この処理を実行する。
【００４８】
ステップ４０１において、環境部１２１０は、環境の現在の状態について観測を行う。環境部１２１０が実世界から情報を取得する場合、現在のセンサアレイデータは、実世界の環境の現在の状態を示す。環境部１２１０がシミュレーションによって情報を取得する場合、現在のセンサアレイデータは、シミュレートされている環境におけるセンサデータの現在の観測値である。
【００４９】
ステップ４０２において、環境部１２１０は、ａｃｔｏｒネットワーク部１２２０から、行動を取得する。ステップ４０３において、実世界又はシミュレートされている世界において、取得した行動を実行することによって、環境における現在の状態から次の状態に遷移する。次の状態はセンサデータにより同定される。ステップ４０４において、新しい状態において、環境部１２１０は、各ｃｒｉｔｉｃネットワークの目的に対する報酬を決定する。状態に対する各ｃｒｉｔｉｃネットワークの報酬は、予めシステム設計者によって設定されている。
【００５０】
ステップ４０５において、環境部１２１０は、取得した全ての情報を一つのタプルにまとめる。情報は、移行前の現在の状態、行動、目的に応じた異なる報酬、そして新しい次の状態である。ステップ４０６において、環境部１２１０は、ステップ４０５でタプルに纏めた情報を、メモリデータベース１３１に格納する。以上により、環境部１２１０の処理は終了する。
【００５１】
図５は、ａｃｔｏｒネットワーク部１２２０のフローチャートを示す。サーバ１００のプロセッサ１１０が、ａｃｔｏｒネットワークプログラム１２２に従って、この処理を実行する。図５は、ａｃｔｏｒネットワーク部１２２０が行動を生成（出力）する処理を示す。
【００５２】
ステップ５０１において、ａｃｔｏｒネットワーク部１２２０は、環境部１２１０から、現在の状態を示すデータを取得する。ステップ５０２において、ａｃｔｏｒネットワーク部１２２０は、０から１までの一つの乱数を生成する。
【００５３】
ステップ５０３において、ａｃｔｏｒネットワーク部１２２０は、生成した乱数をパラメータεと比較する。乱数がパラメータεより大きくない場合（５０３：ＮＯ）、ステップ５０４において、ａｃｔｏｒネットワーク部１２２０は、ランダムな行動を生成する。乱数がパラメータεより大きい場合（５０３：ＹＥＳ）、ステップ５０５において、ａｃｔｏｒネットワーク部１２２０は、ａｃｔｏｒニューラルネットワークに現在の状態を入力して、フィードフォワードにより、行動を示す出力を得る。
【００５４】
ステップ５０６において、ａｃｔｏｒネットワーク部１２２０は、選択した行動を、環境部１２１０に送信する。以上により、ａｃｔｏｒネットワーク部１２２０の処理は終了する。
【００５５】
図６は、複数ｃｒｉｔｉｃネットワーク部１２３０のフローチャートを示す。サーバ１００のプロセッサ１１０が、複数ｃｒｉｔｉｃネットワークプログラム１２３に従って、この処理を実行する。図６は、複数ｃｒｉｔｉｃネットワーク部１２３０の訓練（学習）の処理を示す。
【００５６】
ステップ６０１において、複数ｃｒｉｔｉｃネットワーク部１２３０は、メモリデータベース１３１からのＮサンプル（Ｎは自然数）の経験のミニバッチデータを、学習部１２４０から受け取る。
【００５７】
ステップ６０２において、複数ｃｒｉｔｉｃネットワーク部１２３０は、全てのｃｒｉｔｉｃネットワークを更新したか判定する。全てのｃｒｉｔｉｃネットワークの更新が終了している場合（６０２：ＹＥＳ）、複数ｃｒｉｔｉｃネットワーク部１２３０の処理は終了する。
【００５８】
未更新のｃｒｉｔｉｃネットワークが存在する場合（６０２：ＮＯ）、ステップ６０３において、複数ｃｒｉｔｉｃネットワーク部１２３０は、一つの未更新のｃｒｉｔｉｃネットワークを選択し、当該ｃｒｉｔｉｃネットワークに対する、Ｎ個の経験に対応する目標値を計算する。各目標値は、上記数式１により計算される。
【００５９】
ステップ６０４において、複数ｃｒｉｔｉｃネットワーク部１２３０は、選択したｃｒｉｔｉｃネットワークにおいて、上記目標値に基づくバックプロパゲーションを実行し、上記数式２が示す損失関数の値が最小化されるように、当該ｃｒｉｔｉｃネットワークの重み（学習パラメータ）を更新する。その後、複数ｃｒｉｔｉｃネットワーク部１２３０は、ステップ６０２に戻る。
【００６０】
図７は、学習部１２４０のフローチャートを示す。サーバ１００のプロセッサ１１０が、学習プログラム１２４に従って、この処理を実行する。
【００６１】
ステップ７０１において、学習部１２４０は、メモリデータベース１３１に、十分な数の経験（レコード）が格納されているか判定する。十分な数を示す閾値は、予め設定されており、例えば、少なくとも５０００の経験が格納されていると、十分な経験が格納されていると判定される。十分な経験が格納されていない場合（７０１：ＮＯ）、複数ｃｒｉｔｉｃネットワーク部１２３０及びａｃｔｏｒネットワーク部１２２０の訓練（学習又は更新）を行うことなく、本処理は終了する。
【００６２】
十分な経験がメモリデータベース１３１に格納されていると判定されると（７０１：ＹＥＳ）、ステップ７０２において、学習部１２４０は、メモリデータベース１３１からＮ個の経験をサンプリングする。Ｎは自然数であって、予め設定された値である。Ｎは例えば３２である。サンプリングされたＮ個の経験は、それぞれ、＜ｓ、ａ、ｒ、ｓ´＞と表わされる。ここで、ｓは現在の状態、ａは現在の状態で取られた行動、ｒは異なる目的それぞれの報酬、ｓ´は行動により移行した新しい次の状態である。
【００６３】
ステップ７０３において、学習部１２４０は、これらサンプリングされた経験を、複数ｃｒｉｔｉｃネットワーク部１２３０に送信する。複数ｃｒｉｔｉｃネットワーク部１２３０は、図６を参照して説明したように、ｃｒｉｔｉｃネットワークを更新する。学習部１２４０は、これらｃｒｉｔｉｃネットワークの更新により得られる勾配を取得する。ｃｒｉｔｉｃネットワークの勾配は、更新前の複数の重みと更新後の複数の重みとの差により決まる。
【００６４】
ステップ７０４及び７０５において、学習部１２４０は、ループに入り、ｃｒｉｔｉｃネットワークの勾配を一つずつ使用して、ａｃｔｏｒネットワーク部１２２０（のａｃｔｏｒネットワーク）を、訓練する。具体的には、ステップ７０４において、学習部１２４０は、全てのｃｒｉｔｉｃネットワークの勾配によって、ａｃｔｏｒネットワーク部１２２０のａｃｔｏｒネットワークを訓練（更新）したか判定する。全てのｃｒｉｔｉｃネットワークの勾配によってａｃｔｏｒネットワークを既に訓練している場合（７０４：ＹＥＳ）、学習部１２４０の処理は終了する。
【００６５】
未使用のｃｒｉｔｉｃネットワークの勾配が存在する場合（７０４：ＮＯ）、学習部１２４０は、一つの未使用のｃｒｉｔｉｃネットワークの勾配を選択し、それを使用して、例えば公知の勾配降下法により、ａｃｔｏｒネットワークを訓練する。その後、学習部１２４０は、ステップ７０４に戻る。
【００６６】
以上のように、本実施形態によれば、Ａｃｔｏｒ−Ｃｒｉｔｉｃ法による機械学習システムにおいて、複数の目的（基準）を満たすことを要求される行動を効果的に学習し、出力することができる。
【００６７】
＜第２実施形態＞
第２実施形態を図８及ぶ図９を参照して説明する。第１実施形態において、各ｃｒｉｔｉｃネットワークでの報酬は、システム設計者によって任意に設定される。例えば、成功と失敗とに対する報酬は、それぞれ、＋１と−１（離散値）とすることができる。また、低い又は高いコストに対する報酬は、（１０００００−コスト）（連続値）とすることができる。
【００６８】
したがって、学習システムがａｃｔｏｒネットワークを訓練するとき、より大きいスケールの報酬が、より大きい勾配を与え得る。そのため、ａｃｔｏｒネットワークの訓練において偏りが生まれる。本実施形態においては、報酬調整プログラム１２５が機械学習システムに加えられている。報酬調整プログラム１２５は、予め設定されている基準に従って報酬を調整する。
【００６９】
図８は、第２実施形態に係る学習システムの構成例を模式的に示す。報酬調整プログラム１２５が追加されている点を除き、図１を参照して説明した第１実施形態の構成と同様である。サーバ１００のプロセッサ１１０は、報酬調整プログラム１２５に従って動作することで、報酬調整部として機能する。
【００７０】
報酬調整プログラム１２５は、全ての報酬を、特定の範囲、例えば、−１から＋１の範囲にスケーリングする。報酬（目的）それぞれに対する優先度が、割合（％）のスケールで予め設定される。例えば、浄水施設において、水の需要を満たすことの優先度が、最も高いことが必要である。
【００７１】
したがって、それに対する報酬に対して、最も高い割合、例えば、７０％が割り当てられる。消費電力におけるコスト低減は、より低い優先度を有し、例えば、３０％が割り当てられる。報酬調整プログラム１２５は、目的それぞれの報酬を、割り当てられている割合との積により、再スケーリングする。このように、より高い優先度のｃｒｉｔｉｃネットワークの報酬のスケールが、より低い優先度のｃｒｉｔｉｃネットワークの報酬のスケールより大きくなる。
【００７２】
例えば、優先度を付与する前の水の需要に対する報酬は、貯水池の水位が所定範囲にある場合に成功を示す＋１であり、所定範囲外にある場合に失敗を示す−１であるとする。優先度を付与した後、成功の場合の報酬は＋０．７であり、失敗の場合の報酬は−０．７である。電力コストに対する報酬は、優先度を付与する前は、−１から＋１までのスケールを有する。電力コストに対する最も高い報酬は、例えばコストが０のときに、０．３となる。
【００７３】
優先度の設定方法は、システム設計者により予め設定する方法に限定されない。例えば、学習システムが、自動的に優先度を決定してもよい。学習システムは、力任せ法（ｂｒｕｔｅ  ｆｏｒｃｅ  ｍｅｔｈｏｄ）を使用して、全ての優先度の組み合わせを試して最善の優先度を見付けてもよい。なお、優先度は設定されていない、つまり、全ての優先度が同一であってもよい。
【００７４】
図９は、第２実施形態に係る、環境部１２１０のフローチャートを示す。サーバ１００のプロセッサ１１０が、環境プログラム１２１に従って、この処理を実行する。
【００７５】
ステップ９０１から９０４、９０６、９０７は、それぞれ、図４に示すフステップ９０５において、環境部１２１０が各目的の報酬を決定した後、上述のように、割り当てられている優先度に従って、各報酬をスケーリングする。これら報酬は、ステップ９０６において、他の情報と共にメモリデータベース１３１に格納される。本実施形態によって、ａｃｔｏｒネットワークをより適切に訓練（更新）できるように、異なるスケールを有する報酬を、それらの目的に応じて適切に再スケーリングできる。
【００７６】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００７７】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００７８】
１００  サーバ、１１０  プロセッサ、１２０  メモリ、１２１  環境プログラム、１２２  ａｃｔｏｒネットワークプログラム、１２３  複数ｃｒｉｔｉｃネットワークプログラム、１２４  学習プログラム、１２５  報酬調整プログラム、１３０  補助記憶、１３１  メモリデータベース、３０１  インデックス欄、３０２  現在の状態欄、３０３  行動欄、３０４  報酬欄、３０５  次の状態欄、１２１０  環境部、１２２０  ａｃｔｏｒネットワーク部、１２３０  複数ｃｒｉｔｉｃネットワーク部、１２４０  学習部
【図１】
2019159888.tif 000003
【図２】
2019159888.tif 000004
【図３】
2019159888.tif 000005
【図４】
2019159888.tif 000006
【図５】
2019159888.tif 000007
【図６】
2019159888.tif 000008
【図７】
2019159888.tif 000009
【図８】
2019159888.tif 000010
【図９】
2019159888.tif 000011