(57)【要約】【課題】限られた記憶領域において効果的に学習を行う。【解決手段】機械学習システムは、経験を格納する第１のメモリデータベースと、経験を格納する第２のメモリデータベースと、前記第１のメモリデータベース及び前記第２のメモリデータベースからサンプリングした経験により、環境における行動の価値を決定する関数を訓練し更新する、学習部と、経験が重要であるかを予め設定された規則に基づき判定し、重要と判定した経験を前記第２のメモリデータベースに格納する、重要経験評価部と、前記関数の訓練期間において、前記関数の出力に基づく決定又は任意決定の一方を選択して、前記環境における行動を決定する、学習エージェント部と、前記環境を前記学習エージェント部に提供し、前記学習エージェント部により決定された行動の経験を前記第１のメモリデータベースに格納する環境部と、を含む。【選択図】図１
2019175194.tif 000002
【特許請求の範囲】
【請求項１】
経験を格納する第１のメモリデータベースと、
経験を格納する第２のメモリデータベースと、
前記第１のメモリデータベース及び前記第２のメモリデータベースからサンプリングした経験により、環境における行動の価値を決定する関数を訓練し更新する、学習部と、
経験が重要であるかを予め設定された規則に基づき判定し、重要と判定した経験を前記第２のメモリデータベースに格納する、重要経験評価部と、
前記関数の訓練期間において、前記関数の出力に基づく決定又は任意決定の一方を選択して、前記環境における行動を決定する、学習エージェント部と、
前記環境を前記学習エージェント部に提供し、前記学習エージェント部により決定された行動の経験を前記第１のメモリデータベースに格納する環境部と、
を含む機械学習システム。
【請求項２】
請求項１に記載の機械学習システムであって、
前記重要経験評価部は、前記環境部から経験を取得し、当該取得した経験の重要度が閾値を超える場合に、当該取得した経験を前記第２のメモリデータベースに格納する、機械学習システム。
【請求項３】
請求項１又は２に記載の機械学習システムであって、
さらに、前記関数の前記訓練期間において、前記関数の特定のスナップショットの出力に基づき行動を決定するテストエージェント部を含み、
前記重要経験評価部は、前記テストエージェント部の決定した行動の経験を前記第２のメモリデータベースに格納する、機械学習システム。
【請求項４】
請求項１、２又は３に記載の機械学習システムであって、
前記訓練期間内での前記環境における人為操作による行動の経験を収集する人為操作部をさらに含み、
前記重要経験評価部は、前記人為操作による行動の経験を前記第２のメモリデータベースに格納する、機械学習システム。
【請求項５】
請求項１〜４のいずれかに記載の機械学習システムであって、
前記重要経験評価部は、人為操作により過去に決定された行動の経験を、前記第２のメモリデータベースに格納する、機械学習システム。
【請求項６】
請求項５に記載の機械学習システムであって、
前記環境において人為操作により過去に決定された行動の経験を格納する第３のデータベースをさらに含み、
前記重要経験評価部は、前記第３のデータベースから取得した経験を前記第２のメモリデータベースに格納する、機械学習システム。
【請求項７】
請求項６に記載の機械学習システムであって、
前記重要経験評価部は、前記第３のデータベースから取得した経験から重要度に基づき選択した経験を前記第２のメモリデータベースに格納する、機械学習システム。
【請求項８】
記憶装置と、前記記憶装置に格納されているプログラムに従って動作するプロセッサと、を含む計算機システムが、機械学習を行う方法であって、
前記記憶装置は、
経験を格納している第１のメモリデータベースと、
経験を格納している第２のメモリデータベースと、を含み、
前記方法は、前記プロセッサが、
前記第１のメモリデータベース及び前記第２のメモリデータベースからサンプリングした経験により、環境における行動の価値を決定する関数を訓練し更新し、
経験が重要であるかを予め設定された規則に基づき判定し、重要と判定した経験を前記第２のメモリデータベースに格納し、
前記関数の訓練期間において、前記関数の出力に基づく決定又は任意決定の一方を選択して、前記環境における行動を決定し、
前記環境を提供し、前記決定された行動の経験を前記第１のメモリデータベースに格納する、
ことを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械学習システムに関する。
【背景技術】
【０００２】
浄水場、発電所、工場、又は、任意の機械運転を行う施設での自動化は、通常、規則に基づいてプログラムされる。人間の専門家は、通常、規則を事前に定義する。しかし、多くの場合、規則ベースのシステムは十分ではない。なぜなら、多くの決定は、規則としてあらかじめ定義されていない専門家の経験から生じることがあるからである。また、人口の高齢化により専門家が減少しているため、今後はスマートオートメーションやスマートオートメーションシステムが不可欠である。
【０００３】
強化学習方法を使用することにより、システムが自動的かつ効率的に動作するように訓練することが可能になる。従来の方法は、深層強化学習法（ＤＲＬ）としてよく知られている。ＤＲＬは、行動価値を示すＱ値を学習し、最も高いＱ値に基づいて動作するニューラルネットワークを有している。例えば、浄水場の場合、行動は、システムが取水量をどれだけ増減させるべきか、というものである。取水レートは、＋／−ｘｘｍ３／ｈで表わされる（ｘｘは正の数値）。ニューラルネットワークは、各動作のＱ値を学習する。Ｑ値が高いほど、より良い行動を意味する。
【０００４】
従来のＤＲＬ法は、システムの行動を制御するエージェントが経験した経験を、リプレイ・メモリ（データベース）からサンプリングし、バックプロパゲーション法によってそれらの経験から学習する。これらの経験は、学習中に生成され、リプレイ・メモリに記憶される。リプレイ・メモリが満杯になると、最も古い経験が削除される（例えば、米国出願公開第２０１５／０１００５３０号）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国出願公開第２０１５／０１００５３０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
リプレイ・メモリに格納される経験は、稀でユニークな経験を含む。例えば、浄水場の場合、暴風雨は数年に１回しか起こらず、頻繁には発生しない。限られたサイズ（最大レコード数）のリプレイ・メモリでは、稀でユニークな経験をリプレイ・メモリ内に保持し続けることができず、ニューラルネットワークが学習する前に消去されてしまう。
【０００７】
他の観点において、（訓練の初期において）リプレイ・メモリがランダムな行動で満たされている場合、良い結果又は悪い結果につながる一連の訓練に好適な行動を得ることは困難である。したがって、訓練においてニューラルネットワークが実際に様々な経験に「晒される」ために長い時間がかかる。一方、（訓練の終了時に）リプレイ・メモリが良好な行動だけで満たされている場合、ニューラルネットワークは良好な行動の経験のみに晒され、悪い行動の経験を忘れる可能性がある。したがって、訓練されたニューラルネットワークの信頼性が低下する可能性がある。
【０００８】
しかし、全ての可能な経験を保存するために無限の記憶領域を用意することは不可能である。したがって、限られた記憶領域において効果的に学習を行うことができる経験を維持できる技術が望まれる。
【課題を解決するための手段】
【０００９】
本開示の一態様の機械学習システムは、経験を格納する第１のメモリデータベースと、経験を格納する第２のメモリデータベースと、前記第１のメモリデータベース及び前記第２のメモリデータベースからサンプリングした経験により、環境における行動の価値を決定する関数を訓練し更新する、学習部と、経験が重要であるかを予め設定された規則に基づき判定し、重要と判定した経験を前記第２のメモリデータベースに格納する、重要経験評価部と、前記関数の訓練期間において、前記関数の出力に基づく決定又は任意決定の一方を選択して、前記環境における行動を決定する、学習エージェント部と、前記環境を前記学習エージェント部に提供し、前記学習エージェント部により決定された行動の経験を前記第１のメモリデータベースに格納する環境部と、を含む。
【発明の効果】
【００１０】
本開示の一態様によれば、限られた記憶領域において効果的に学習を行うことができる経験を維持できる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る学習システムの構成の説明図である。
【図２】第１実施形態に係る学習システムの機能ブロック図である。
【図３】第１実施形態に係るメモリデータベースの説明図である。
【図４】第１実施形態に係る重要経験メモリデータベースの説明図である。
【図５】第１実施形態に係る環境部のフローチャートである。
【図６】第１実施形態に係る重要経験評価部のフローチャートである。
【図７】第１実施形態に係る学習部のフローチャートである。
【図８】第１実施形態に係る学習エージェント部のフローチャートである。
【図９】第２実施形態に係る学習システムの構成の説明図である。
【図１０】第２実施形態に係る学習システムの機能ブロック図である。
【図１１】第２実施形態に係る試験エージェント部のフローチャートである。
【図１２】第２実施形態に係る重要経験評価部のフローチャートである。
【図１３】第３実施形態に係る学習システムの構成の説明図である。
【図１４】第３実施形態による学習システムの機能ブロック図である。
【図１５】第３実施形態に係る人為操作部のフローチャートである。
【図１６】第４実施形態に係る学習システムの構成の説明図である。
【図１７】第４実施形態による学習システムの機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１３】
以下において、複数のメモリデータベース（単にメモリ又はデータベースとも呼ぶ）を含む安定した学習システムが開示される。本開示の技術は、例えば、浄水場、発電所、工場のような施設、に限らず、任意の機械運転を行う施設において、自動運転システムに適用することができる。
【００１４】
学習システムは、訓練の効率を上げるために、重要な経験のための分離したメモリデータベースを含む。重要な経験は、訓練期間中に稀に起こる良い（適切な）行動又は悪い（不適切な）行動の経験、又は、人間の操作から収集された経験も含みえる。重要な経験を独立のメモリデータベースに格納することで、他の経験を格納するメモリデータベースが満杯になった後も、重要な経験を維持することができ、再利用することができる。
【００１５】
深層強化学習のエージェントは、重要な経験を格納するメモリデータベースを含む、複数のメモリデータベースから学習する。使用されるメモリデータベースの数は、２又はそれより多い。重要な経験は、エントロピ又は経験を収集するいくつかの特定の方法に基づいて収集してもよい。
【００１６】
重要な経験を生成するための行動を実行するエージェントが、学習するエージェントとは別に生成、使用されてもよい。人間の専門家の決定を重要な経験として使用してもよい。学習プロセスは、例えば、複数のメモリデータベースから同時に学習する、又は、異なる時に異なるメモリデータベースから学習する。
【００１７】
＜第１実施形態＞
図１〜８を参照して、第１実施形態を説明する。学習システムは、第１のメモリデータベースの経験から学習するだけでなく、第２のメモリデータベースである重要経験メモリデータベースから学習する。重要経験評価プログラムは、どの経験が学習プロセスにとって重要であるかを決定し、それらを重要経験メモリデータベースに格納する。
【００１８】
図１は、第１実施形態に係る学習システムの構成の説明図である。サーバ１００は、プロセッサ１１０と、メモリ１２０と、補助記憶装置１３０とを備えている。メモリ１２０及び／又は補助記憶装置１３０は、記憶装置である。以上の構成要素は、バスによって相互に接続されている。プロセッサ１１０は、メモリ１２０を参照して各種の演算処理を実行する。
【００１９】
メモリ１２０は、環境プログラム１２１、重要経験評価プログラム１２２、学習プログラム１２３、及び学習エージェントプログラム１２４を含む。メモリ１２０に格納されるプログラム及びプログラムが使用するデータは、例えば、補助記憶装置１３０又は外部からネットワークを介してロードされる。
【００２０】
環境プログラム１２１は、実世界の特性を観測すること、又は、実環境をシミュレートすることができる。例えば、現実世界の浄水場の場合、環境プログラム１２１は、すべての水の性質と水量と水位を感知するセンサアレイにより観測されるような浄水場の全ての特徴を観測することができる。シミュレーションにおける浄水場の場合、環境プログラム１２１は、操作が行われた後の、水の特性の変化、水量の変化、及び水位の変化をシミュレートすることができる。
【００２１】
環境のこれらの特性に基づいて、システムは、環境の現在の状態、オペレーションにおいて行動が行われた後の環境の次の状態を特定することができ、さらに、行動が目的に対して良いものであるか悪いものであるかを判定するための基準を保持している。
【００２２】
重要経験評価プログラム１２２は、４つの情報要素のタプルとして定義される経験を評価する。４つの情報要素は、元の状態（現在の状態）、エージェントの行動、エージェントが受け取った報酬、及び次の状態である。重要経験評価プログラム１２２は、経験が重要であるか評価し、重要経験メモリデータベースと呼ばれる、特定のデータベースにその経験を格納するか決定する。
【００２３】
学習プログラム１２３は、行動価値を学習するための、ニューラルネットワークを含む。ニューラルネットワークは、現在の状態（センサの示度の集合）の入力を受けて、行動それぞれの価値（行動価値）を出力する。価値が高いほど、行動が良好であることを意味する。また、学習プログラム１２３は、ニューラルネットワークのパラメータを更新および最適化する。学習プログラム１２３は、ニューラルネットワークと異なる関数を使用してもよく、例えば、線形回帰関数を使用してもよい。
【００２４】
学習プログラム１２３は、補助記憶装置１３０からメモリデータベース１３１及び重要経験メモリデータベース１３２に記憶された経験をサンプリングし、バックプロパゲーションによりニューラルネットワークのパラメータを最適化する。そうすることによって、ニューラルネットワークは、所与の状態における各行動の行動価値（またはＱ値）をより正確に推定することができ、したがって、システムは、より賢明に行動を実行することができる。
【００２５】
学習プログラム１２３は、ニューラルネットワークのパラメータを最適化するためにパックプロパゲーションを実行する。重要経験メモリデータベース１３２から学習することにより、ニューラルネットワークを、より速く、より安定して学習させることができる。
【００２６】
学習エージェントプログラム１２４は、システムの行動を決定する。例えば、浄水場の場合、水の取水レートを変化させると、貯水池の水量が変化する。そのため、この行動の結果、貯水池に十分な水を確保できる必要がある。サーバ１００は、また、メモリデータベース１３１及び重要経験メモリデータベース１３２を格納するための補助記憶装置１３０を含む。
【００２７】
メモリデータベース１３１は、４つの要素を有するタプルの集合を格納する。４つの要素は、元の状態、行動、報酬、及び次の状態（新しい状態）であり、タプルは、訓練期間中のエージェントの経験である。メモリデータベース１３１は、エンジニアによって予め定義された限られた容量（例えば、１００経験）を有する。メモリデータベース１３１が満杯になると、メモリデータベース１３１の最初の経験が削除され、新しい経験のためのスペースが生成される。メモリデータベース１３１の構造については、図３を参照して後述する。
【００２８】
重要経験メモリデータベース１３２は、メモリデータベース１３１の構造に対して経験の重要度の追加情報を加えた構造を有する。重要度は、重要経験評価プログラム１２２によって計算され、経験がどれほど重要であるかを示す。重要経験メモリデータベース１３２も限られた容量しか持たず、満杯になると、重要度が相対的に低い経験が削除される。
【００２９】
図２は、第１実施形態に係る学習システムの機能ブロック図である。環境部１２１０は、環境プログラム１２１を実行するプロセッサ１１０により実現される。環境部１２１０は、現実環境の現状を観察する、又は、現実世界の環境をシミュレートすることができる。環境部１２１０は、学習エージェント部１２４０から行動を受け取り、当該行動を実行して次の状態に移行する。次に、環境部１２１０は次の状態に基づき報酬を決定し、元の状態、行動、報酬、及び次の状態の情報を含むタプルである経験を、メモリデータベース１３１に格納する。また、環境部１２１０は、経験を重要経験評価部１２２０にも送る。環境部１２１０の処理フローについては、後に図５を参照して詳細に説明する。
【００３０】
重要経験評価部１２２０は、経験の重要度を評価する。経験の重要度が高いと評価された場合、重要経験メモリデータベース１３２に格納される。重要経験評価部１２２０の処理フローについては、後に図６を参照して詳細に説明する。
【００３１】
学習部１２３０は、ニューラルネットワークが、訓練時間中に、与えられた現在の状態に対して各動作のＱ値をより正確に推定できるように、ニューラルネットワークの重み及びバイアス（パラメータ）を最適化する。学習部１２３０は、プロセッサ１１０による学習プログラム１２３の実行によって実現される。
【００３２】
学習部１２３０は、メモリデータベース１３１からの一定数の経験をサンプリングし、バックプロパゲーションを行ってニューラルネットワークの重み及びバイアスを最適化する。さらに、所定の間隔で、学習部１２３０は、重要経験メモリデータベース１３２の所定数の経験をサンプリングして、バックプロパゲーションを行ってニューラルネットワークの重み及びバイアスを最適化する。学習部１２３０の処理フローについては、後に図７を参照して詳細に説明する。
【００３３】
学習エージェント部１２４０は、学習システムの行動を決定する。学習エージェント部１２４０は、プロセッサ１１０による学習エージェントプログラム１２４の実行によって実現される。学習エージェント部１２４０は、環境部１２１０から現在の状態としてセンサデータ（センサの示度の集合）を受信し、学習部１２３０に含まれるニューラルネットワークのフィードフォワードを使用して、取る得る行動それぞれのＱ値を得る。
【００３４】
ただし、学習エージェント部１２４０は、訓練期間において、Ｑ値の情報を使用する場合と使用しない場合がある。学習エージェント部１２４０は、イプシロン（ε）と呼ばれるパラメータを有し、Ｑ値からの情報を利用すべきか、又は、ランダムな行動を探索すべきか、を決定する。パラメータεは、事前に固定値（例えば、ε＝０．５）でエンジニアによって設定されるか、又は、訓練期間中に１から０まで直線的に減少する。
【００３５】
学習エージェント部１２４０は、数字をランダム化してε値と比較し、ｅｘｐｌｏｉｔａｔｉｏｎ（利用）又はｅｘｐｌｏｒａｔｉｏｎ（探索）を決定する。最後に、学習エージェント部１２４０は、決定した行動を環境部１２１０に送る。学習エージェント部１２４０の処理フローは、図８を参照して後に詳述する。
【００３６】
図３は、第１実施形態に係るメモリデータベース１３１の説明図である。メモリデータベース１３１は、インデックス欄３０１、状態欄３０２、行動欄３０３、報酬欄３０４、及び次の状態欄３０５を含む。
【００３７】
インデックス欄３０１は、メモリデータベース１３１に記憶された経験のシーケンスを示す整数である、インデックスを示す。インデックスは、メモリに格納されている最も古い経験がどれであり、メモリが満杯になって新しい経験を格納するために削除すべきかの情報を提供する。
【００３８】
状態欄３０２の各セルは、現在の状態（元の状態）を定義する現実世界又はシミュレーション世界からのセンサ示度の集合（センサデータ）を格納している。
【００３９】
行動欄３０３は、システムが取ることができる行動を示す数値を示す。行動は、実世界システムの仕様に基づく。例えば、浄水場からの水の取水レートを増減するためには、行動は、−１〜１におけるいずれかの値をとることができる。
【００４０】
報酬欄３０４は、学習エージェント部１２４０が次の状態に遷移する行動を取った後に得ることができる報酬を定義する数字を示す。例えば、浄水場の場合、需要が高い時間に取水レートを増やすと、貯水池に十分な水が供給され、＋１のような肯定的な報酬を得ることになる。または、需要が高い時間に水の取水レートを増加させないようにすると、貯水池に十分な水が供給されず、水位が危険な水準まで低下し、−０．５のようなマイナスの報酬を得る、又は、水位がゼロになると、−１のような高い負の報酬を得る。
【００４１】
次の状態欄３０５は、システムが状態欄３０２のいずれかの状態から、行動欄３０３のいずれかの行動を受けた後の遷移状態を示す。次の状態により、システムは報酬３０４に示す報酬を定義することができる。次の状態欄３０５の各セルは、実世界環境またはシミュレーション環境からのセンサ示度の集合を格納している。
【００４２】
図４は、第１実施形態に係る重要経験メモリデータベース１３２の説明図である。重要経験メモリデータベース１３２は、インデックス欄４０１、状態欄４０２、行動欄４０３、報酬欄４０４、次の状態欄４０５、及び、重要度欄４０６を含む。最初の５つの欄４０１〜４０５は、メモリデータベース１３１と同様の構造を有する。第６の欄である重要度欄４０６は、関連する経験の重要度を格納する。本例において、重要度は、０から１の範囲で正規化されている。０は重要度が非常に低いことを意味し、１は重要度が非常に高いことを意味する。
【００４３】
図５は、第１実施形態に係る環境部１２１０のフローチャートである。最初に、環境部１２１０は、ステップ５０１で、環境の現在の状態を観測する。環境部１２１０が実世界から情報を取得する場合、現在のセンサアレイデータは環境の現在の状態を示す。環境部１２１０がシミュレーションから情報を取得する場合、現在のセンサアレイデータは、シミュレーション環境におけるセンサデータの現在の観測値である。
【００４４】
次に、ステップ５０２において、環境部１２１０は、学習エージェント部１２４０から行動を受信する。次に、ステップ５０３において、環境部１２１０は、現実世界又はシミュレーションで行動を実行することにより、環境内の現在の状態から次の状態への遷移を行う。ステップ５０４において、環境部１２１０は、次の新しい状態における報酬を決定する。ステップ５０５において、環境部１２１０は、元の状態、行動、報酬、及び次の状態の情報をタプルにまとめる。
【００４５】
ステップ５０６において、環境部１２１０は、元の状態、行動、報酬、及び次の状態を含む、ステップ５０５でタプルにまとめた情報を、メモリデータベース１３１に格納する。最後に、ステップ５０７において、環境部１２１０は、同じタプルを重要経験評価部１２２０に送る。以上で、環境部１２１０の処理が終了する。
【００４６】
図６は、第１実施形態に係る重要経験評価部１２２０のフローチャートである。まず、重要経験評価部１２２０は、ステップ６０１において、現在の状態、行動、報酬、及び次の状態の４つの情報を有するタプルの形で、環境部１２１０から経験を受け取る。次に、ステップ６０２において、重要経験評価部１２２０は、経験の重要度を評価する。経験の重要度を評価するいくつかの方法が存在する。以下に、評価方法の例を記載するが、他の方法も利用可能である。
【００４７】
一つの方法は、受け取った報酬に基づく評価である。通常、高い肯定的な報酬又は低い否定的な報酬は、システムが学習するために不可欠である。したがって、高い肯定的な報酬又は低い否定的な報酬を含む経験の重要度は高くなり、逆もまた同様である。
【００４８】
他の方法は、経験のエントロピに基づく評価である。通常、エントロピ（情報理論）は、受信前に欠落している情報の量を測定することであり、経験の重要度を評価するために使用することができる。経験のエントロピは、経験の重要度であり、以下のエントロピの式に従って計算される。
【００４９】
【数１】
2019175194.tif 000003
【００５０】
ｂは通常２に等しく、ｘｉは経験のタプルにおける各情報要素であり、ｎは４に等しい。
【００５１】
経験の重要度を評価した後、重要経験評価部１２２０は、ステップ６０３において、その結果と閾値とを比較する。閾値は、通常、予めエンジニアによって設定される。経験の重要度が閾値よりも大きいと判定された場合（６０３：ＹＥＳ）、経験情報は、ステップ６０４において、重要経験メモリデータベース１３２に格納され、重要経験評価部１２２０の処理は終了する。経験の重要度が閾値以下であると判定された場合（６０３：ＮＯ）、重要経験評価部１２２０の処理は終了する。
【００５２】
図７は、第１実施形態に係る学習部１２３０のフローチャートである。学習部１２３０は、例えば、新たな経験がメモリデータベース１３１に格納される度に、本フローチャートの処理を開始する。まず、学習部１２３０は、ステップ７００において、重要経験メモリデータベース１３２から学習するかを決定する。
【００５３】
例えば、重要経験メモリデータベース１３２から学習することが、周期的に決定される。学習部１２３０は、例えば、本処理の実行の規定回数に１回、重要経験メモリデータベース１３２からサンプリングすると決定する。一例において、メモリデータベース１３１からのサンプリング頻度は、重要経験メモリデータベース１３２からのサンプリング頻度より大きい。重要経験メモリデータベース１３２が格納している経験は、メモリデータベース１３１が格納している経験よりも偏っているので、これにより適切な経験に基づく学習が可能となる。
【００５４】
重要経験メモリデータベース１３２から学ばないと判定された場合（７００：ＮＯ）、学習部１２３０は、通常のメモリデータベース１３１から学習すると決定する。次に、ステップ７０１において、学習部１２３０は、学習する前にメモリデータベース１３１に十分な経験が格納されているかチェックする。通常、サンプリング及び学習の前に、ある程度の経験をメモリデータベース１３１に持たせる必要がある。格納されているべき経験数は、システムエンジニアによって事前に決定されている。
【００５５】
ステップ７０１においてメモリデータベース１３１に十分な経験が格納されていないと判定された場合（７０１：ＮＯ）、学習部１２３０の処理は終了する。ステップ７０１でメモリデータベース１３１に十分な経験が格納されていると判定された場合（７０１：ＹＥＳ）、学習部１２３０は、ステップ７０２において、メモリデータベース１３１からＮ個の経験を、ランダムにサンプリングする。Ｎは、エンジニアによって予め決定された整数（例えば、Ｎ＝３２）である。
【００５６】
サンプリングされた各経験は、＜ｓｓ、ａａ、ｒｒ、ｓｓ´＞と表わされる。ｓｓは元の状態であり、ａａは元の状態において取られた行動であり、ｒｒは次の新しい状態における報酬であり、ｓｓ´は次の新しい状態である。
【００５７】
ステップ７０３において、学習部１２３０は、メモリデータベース１３１からサンプリングした各経験に基づいて、ニューラルネットワークを訓練するための各経験の目標値（望ましい出力）ｔｔを、次の規則に従って計算する。ｓｓ´が最後の状態の場合、ｔｔ＝ｒｒである。他の場合は、ｔｔ＝ｒｒ＋γｍａｘａａ’［Ｑ（ｓｓ´，ａａ´）］である。ａａ´は、次の状態で取り得る行動である。γは割引率である。γはエンジニアによって予め設定された０から１の値であり、例えば、０．９である。
【００５８】
次に、ステップ７０４において、学習部１２３０は、損失関数（ｔｔ−Ｑ（ｓｓ、ａａ））２を使用して、ミニバッチバックプロパゲーションを実行して、ニューラルネットワークの重み及びバイアスの変化を計算する。そして、ステップ７０５において、学習部１２３０は、ニューラルネットワークの重み及びバイアスを更新する。
【００５９】
ステップ７００において、重要経験メモリデータベース１３２から学習すると判定された場合（７００：ＹＥＳ）、学習部１２３０は、メモリデータベース１３１を用いて上述したステップ７０１〜７０５の処理と同様に、重要経験メモリデータベース１３２を用いてステップ７０６〜７１０を実行する。以上で、学習部１２３０の処理を終了する。
【００６０】
図８は、第１実施形態による学習エージェント部１２４０のフローチャートである。まず、学習エージェント部１２４０は、ステップ８０１において、現在の状態として、環境部１２１０からセンサデータを受信する。次に、ステップ８０２において、学習エージェント部１２４０は、この状態を学習部１２３０のニューラルネットワークに転送し、ニューラルネットワークから各行動のＱ値を受け取る。
【００６１】
次に、学習エージェント部１２４０は、ステップ８０３において、０から１までの乱数を生成する。そして、ステップ８０４において、学習エージェント部１２４０は、ステップ８０３で生成された乱数をパラメータεと比較する。
【００６２】
ステップ８０４で乱数がεより大きくないと判定された場合（８０４：ＮＯ）、学習エージェント部１２４０は、ステップ８０５において、ランダムに行動を選択する。ステップ８０４において、乱数がεより大きいと判定された場合（８０４：ＹＥＳ）、学習エージェント部１２４０は、ステップ８０６において、最も高いＱ値を有する行動を選択する。最後に、ステップ８０７において、学習エージェント部１２４０は、選択された行動を環境部１２１０に送り、行動を実行する。以上で、学習エージェント部１２４０の処理が終了する。
【００６３】
以上のように、第１実施形態によれば、重要経験メモリデータベースを含む複数のメモリデータベースを用意し、複数のメモリデータベースそれぞれからサンプリングして学習を行うことで、効率的かつ安定した学習が実現される。
【００６４】
上記例は、二つのメモリデータベースから学習のために経験をサンプリングするが、システムは、３以上のメモリデータから学習のために経験をサンプリングしてもよい。例えば、システムは、二つの重要経験メモリデータベースを含んでもよい。第１重要経験メモリデータベースは、重要度が第１閾値と第２閾値の経験を格納し、第２重要経験メモリデータベースは、重要度が第２閾値より高い経験を格納する。これらのサンプリング周期は、同一でも異なっていてもよい。
【００６５】
上記例において、重要度が高い経験は、二つのメモリデータベースの双方に格納されているが、重要度の高い経験が、重要経験メモリデータベースのみに格納されていてもよい。
【００６６】
＜第２実施形態＞
次に、第２実施形態について、図９〜１２を参照して説明する。第１実施形態では、訓練期間中の経験のみが、評価されて重要経験メモリデータベース１３２に格納される機会を有する。しかし、訓練期間では、εが高いときにランダムに行動が取られる。したがって、εが０であり、εがニューラルネットワークの行動に影響を与えない場合の経験は、重要な経験と考えることができる。
【００６７】
この観点から、重要な経験を集めるため、訓練期間において所定間隔で、テストエージェントが作成される。テストエージェントが特定時点に収集した経験は、訓練期間における当該時点でニューラルネットワークが使用されていれば、どの程度上手く行動できるのかを示すと解釈することができる。テストエージェントからのそれら経験は、高い重要度を有していると考えることができ、重要経験メモリデータベース１３２に格納される。
【００６８】
図９は、第２実施形態に係る学習システムの構成の説明図である。当該構成は、メモリ１２０内の追加されたテストエージェントプログラム１２５以外の構成要素は、第１実施形態による学習システムの構成要素と同様である。テストエージェントプログラム１２５は、ｅｘｐｌｏｉｔａｔｉｏｎ（利用）規則に従ってのみ動作する。つまり、テストエージェントプログラム１２５は、ニューラルネットワークからのＱ値が最も高い行動を選択するのみである。テストエージェントプログラム１２５の処理フローは、図１１を参照して後述する。
【００６９】
図１０は、第２実施形態に係る学習システムの機能ブロック図である。新たに追加されたテストエージェント部１２５０以外の構成要素は、第１実施形態による学習システムの機能ブロック図の構成要素と同一である。テストエージェント部１２５０は、テストエージェントプログラム１２５を実行するプロセッサ１１０により実現される。
【００７０】
テストエージェント部１２５０は、訓練の特定のスナップショットにおけるニューラルネットワークの能力をテストするために定期的に作成される。テストエージェント部１２５０は、ｅｘｐｌｏｉｔａｔｉｏｎ（利用）規則を使ってのみ行動する（ε＝０）点を除き、学習エージェント部１２４０と同様に行動を決定する。テストエージェント部１２５０の行動により得られる経験は、重要経験評価部１２２０に送られ、重要な経験と判定されて、重要経験メモリデータベース１３２に格納される。
【００７１】
図１１は、第２実施形態によるテストエージェント部１２５０のフローチャートである。まず、テストエージェント部１２５０は、ステップ１１０１において、現在の状態として環境部１２１０からセンサデータを受信する。次に、ステップ１１０２において、テストエージェント部１２５０は、この状態を学習部１２３０のニューラルネットワークに転送し、ニューラルネットワークから各行動のＱ値を受け取る。
【００７２】
ステップ１１０３において、テストエージェント部１２５０は、最も高いＱ値を有する行動を選択する。テストエージェント部１２５０は、ステップ１１０４において、選択された行動を環境部１２１０に送り、行動を実行する。最後に、テストエージェント部１２５０は、環境部１２１０から経験を得て、この経験を重要経験評価部１２２０に送る。以上により、テストエージェント部１２５０の処理が終了する。
【００７３】
図１２は、第２実施形態に係る重要経験評価部１２２０のフローチャートである。まず、重要経験評価部１２２０は、ステップ１２０１において、現在の状態、行動、報酬、及び次の状態の４つの情報を有するタプルの形で、環境部１２１０またはテストエージェント部１２５０から、経験を受け取る。
【００７４】
次に、重要経験評価部１２２０は、ステップ１２０２において、経験がテストエージェント部１２５０から来たかどうかをチェックする。経験がテストエージェント部１２５０からのものであると判定された場合（１２０２：ＹＥＳ）、ステップ１２０５において、重要経験評価部１２２０は、当該経験の情報を重要経験メモリデータベース１３２に直接送り、格納する。経験がテストエージェントからのものではないと判定された場合（１２０２：ＮＯ）、重要経験評価部１２２０は、第１実施形態におけるステップ１２０３の説明のように、経験の重要度を評価する。
【００７５】
経験の重要度を評価した後、重要経験評価部１２２０は、ステップ１２０４において、当該重要度と閾値とを比較する。閾値は、通常、予めエンジニアによって設定される。経験の重要度が閾値よりも大きいと判定された場合（１２０４：ＹＥＳ）、ステップ１２０５において、重要経験評価部１２２０は、当該経験の情報を重要経験メモリデータベース１３２に送信及び格納し、重要経験評価部１２２０の処理は終了する。経験の重要度が閾値以下であると判定された場合（１２０４：ＮＯ）、重要経験評価部１２２０の処理は終了する。
【００７６】
＜第３実施形態＞
次に、第３実施形態について、図１３及び１４を参照して説明する。第２実施形態では、テストエージェントプログラム１２５が、重要経験メモリデータベース１３２に格納される重要な経験を生成する。本実施形態は、テストエージェントを使用する代わりに、人為操作プログラム１２６も、重要経験の源となり得ることを説明する。なお、テストエージェントプログラム１２５及び人為操作プログラム１２６の双方が実行されてもよい。
【００７７】
図１３は、第３実施形態に係る学習システムの構成の説明図である。本構成において、第２実施形態における構成のテストエージェント１２５が、人為操作プログラム１２６に置換されている。さらに、入力装置１４２及び表示装置１４３が、インタフェース１４１を介してバスに接続されている。表示装置１４３は出力装置である。他の構成要素は、第２実施形態の学習システムの構成要素と同様である。
【００７８】
人為操作プログラム１２６は、システムと人間とのインタフェースである。人為操作プログラム１２６は、例えば、入力装置１４２と表示装置１４３と共にグラフィカルユーザインタフェースをユーザに提供する。人為操作プログラム１２６を含むユーザインタフェースの主な目的は、所与の状態における人間の専門家の決定を収集することである。これらの経験は重要な経験としても扱われ、重要経験メモリデータベース１３２に格納される。
【００７９】
図１４は、第３実施形態に係る学習システムの機能ブロック図である。テストエージェント部１２５０が人為操作部１２６０に置き換えられている以外の構成は、第２実施形態係る学習システムの機能ブロック図と同様である。人為操作部１２６０は、人為操作プログラム１２６を実行するプロセッサ１１０により実現される。
【００８０】
人為操作部１２６０は、訓練期間の前又は訓練期間中に機能することができる。人為操作部１２６０は、データ収集部として機能し、強化学習システムが学ぶための経験として、人間の専門家の決定を収集する。収集された経験は、重要経験評価部１２２０に送られ、重要経験メモリデータベース１３２に格納される。
【００８１】
図１５は、第３実施形態に係る人為操作部１２６０のフローチャートである。まず、人為操作部１２６０は、ステップ１５０１において、環境部１２１０から、現在の状態としてセンサデータを受信する。次に、人為操作部１２６０は、ステップ１５０２において、この現在の状態を、例えばチャート、図形又は数字のみである画像を、表示装置１４３において表示する。ポイントは、人間が環境の現在の状態を認識し、その状態についての決定を行うことができるようにすることである。
【００８２】
次に、人為操作部１２６０は、ステップ１５０３において、人間の専門家からの行動の入力を待ち、入力装置１４２から専門家により入力された行動を受け取る。人為操作部１２６０は、ステップ１５０４において、選択された行動を環境部１２１０に送り、行動を実行する。最後に、人為操作部１２６０は、ステップ１５０５において、環境部１２１０から経験を得て、この経験を重要経験評価部１２２０に送る。以上により、人為操作部１２６０の処理は終了する。重要経験評価部１２２０は、人為操作部１２６０から取得した経験を重要であると判定し、重要経験メモリデータベース１３２に格納する。
【００８３】
＜第４実施形態＞
次に、第４実施形態について、図１６及び１７を参照して説明する。第３実施形態では、人為操作プログラム１２６が重要経験メモリデータベース１３２に格納する重要な経験を収集することが記載されている。本実施形態では、人為操作プログラム１２６を使用してデータを直接収集する代わりに、重要経験評価プログラム１２２が、人による過去の操作から事前収集された経験を受け取り、それらの重要度を評価し、重要経験メモリデータベース１３２に格納する。なお、本実施形態と人為操作プログラム１２６とが、同時に実行されてもよい。
【００８４】
図１６は、第４実施形態に係る学習システムの構成の説明図である。追加されている過去人為操作データベース１３３以外の構成は、第１実施形態による学習システムの構成と同様である。過去人為操作データベース１３３は、データベース内の全ての経験が過去の人間の操作に基づいたものであり、既に収集されていることを除いて、メモリデータベース１３１と全く同じ構造を有する。
【００８５】
図１７は、第４実施形態に係る学習システムの機能ブロック図である。追加されている過去人為操作データベース１３３以外の構成は、第１実施形態による学習システムの機能ブロック図の構成と同様である。
【００８６】
重要経験評価部１２２０は、訓練期間が開始される前に実行され、過去人為操作データベース１３３の全ての経験を第１実施形態で説明したように評価し、（重要度が規定の閾値を超える）重要度の高い経験を、重要経験メモリデータベース１３２にインポートする。これにより、重要度の高い経験をより適切に重要経験メモリデータベース１３２に格納することができる。
【００８７】
重要経験評価部１２２０は、過去人為操作データベース１３３に格納されている全ての経験を、重要経験メモリデータベース１３２に格納すべき重要な経験であると判定してもよい。重要経験評価部１２２０は、メモリデータベース１３１に格納されている経験よりも、過去人為操作データベース１３３に格納されている経験の重要度が相対的に高いと評価してもよい。例えば、過去人為操作データベース１３３の経験の重要度の評価方法は、メモリデータベース１３１の経験の評価方法に、定数を加える又は定数を掛けてもよい。
【００８８】
学習システムは、過去人為操作データベース１３３から重要経験メモリデータベース１３２に経験をインポートすることなく、過去人為操作データベース１３３から、学習のための経験を直接にサンプリングしてもよい。
【００８９】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９０】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９１】
１００  サーバ、１１０  プロセッサ、１２０  メモリ、１２１  環境プログラム、１２２  重要経験評価プログラム、１２３  学習プログラム、１２４  学習エージェントプログラム、１２５  テストエージェントプログラム、１２６  人為操作プログラム、１３０  補助記憶装置、１３１  メモリデータベース、１３２  重要経験メモリデータベース、１３３  過去人為操作データベース、１２１０  環境部、１２２０  重要経験評価部、１２３０  学習部、１２４０  学習エージェント部、１２５０  テストエージェント部、１２６０  人為操作部
【図１】
2019175194.tif 000004
【図２】
2019175194.tif 000005
【図３】
2019175194.tif 000006
【図４】
2019175194.tif 000007
【図５】
2019175194.tif 000008
【図６】
2019175194.tif 000009
【図７】
2019175194.tif 000010
【図８】
2019175194.tif 000011
【図９】
2019175194.tif 000012
【図１０】
2019175194.tif 000013
【図１１】
2019175194.tif 000014
【図１２】
2019175194.tif 000015
【図１３】
2019175194.tif 000016
【図１４】
2019175194.tif 000017
【図１５】
2019175194.tif 000018
【図１６】
2019175194.tif 000019
【図１７】
2019175194.tif 000020