(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024077066
(43)【公開日】2024-06-07
(54)【発明の名称】情報処理プログラム、情報処理方法及び情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240531BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022188881
(22)【出願日】2022-11-28
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】市丸 和人
(57)【要約】
【課題】効率良く安定した学習を実行する情報処理プログラム、情報処理方法及び情報処理装置を提供する。
【解決手段】機械学習モデルを用いて所定環境におけるエージェントの経験を示す経験データを取得する第1探索処理と、第1探索処理で得られた経験データを基に機械学習モデルにおけるパラメータを更新する第1学習処理とを同期させた同期学習を所定時間実行し、同期学習で得られた最終的な重みを初期値として、機械学習モデルを用いて経験データを取得する第2探索処理と、第2探索処理で得られた経験データを基に機械学習モデルにおけるパラメータを更新する第2学習処理とを非同期で行う非同期学習を実行して機械学習モデルの学習を完了する処理をコンピュータに実行させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
環境の情報を入力としてエージェントの行動の情報を出力する機械学習モデルを用いて所定環境におけるエージェントの経験を示す経験データを取得する第1探索処理と、前記第1探索処理で得られた経験データを基に前記機械学習モデルにおけるパラメータを更新する第1学習処理とを同期させた同期学習を所定時間実行し、
前記同期学習で得られた最終的な重みを初期値として、前記機械学習モデルを用いて経験データを取得する第2探索処理と、前記第2探索処理で得られた経験データを基に前記機械学習モデルにおけるパラメータを更新する第2学習処理とを非同期で行う非同期学習を実行して前記機械学習モデルの学習を完了する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記同期学習において、前記第1学習処理によるパラメータの更新が行われると、更新されたパラメータを用いて前記第1探索処理を実行し、前記第1探索処理で経験データが新たに得られると、新たに得られた経験データを用いて前記第1学習処理を実行することを繰りかえす処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記非同期学習において、前記第2学習処理とは独立させて前記第2学習処理により更新されたパラメータを用いて前記第2探索処理を実行し、前記第2探索処理とは独立させて前記第2探索処理で新たに得られた経験データを用いて前記第2学習処理を実行することを繰り返す処理を前記コンピュータに実行させることを特徴とする請求項2に記載の情報処理プログラム。
【請求項4】
前記所定時間は、前記同期学習を用いずに前記非同期学習により前記機械学習モデルの学習を行った場合と、前記同期学習及び前記非同期学習により前記機械学習モデルの学習を行った場合とで、同じ推論精度に前記機械学習モデルが達するまでの第1時間差と、前記同期学習と前記非同期学習とで、同じ回数の学習処理が完了するまでの第2時間差とを基に決定されることを特徴とする請求項1に記載の情報処理プログラム。
【請求項5】
前記所定時間は、前記機械学習モデルの学習を完了するまでの時間の1割以下であることを特徴とする請求項1に記載の情報処理プログラム。
【請求項6】
情報処理装置が、
環境の情報を入力としてエージェントの行動の情報を出力する機械学習モデルを用いて所定環境におけるエージェントの経験を示す経験データを取得する第1探索処理と、前記第1探索処理で得られた経験データを基に前記機械学習モデルにおけるパラメータを更新する第1学習処理とを同期させた同期学習を所定時間実行し、
前記同期学習で得られた最終的な重みを初期値として、前記機械学習モデルを用いて経験データを取得する第2探索処理と、前記第2探索処理で得られた経験データを基に前記機械学習モデルにおけるパラメータを更新する第2学習処理とを非同期で行う非同期学習を実行して前記機械学習モデルの学習を完了する
処理を実行することを特徴とする情報処理方法。
【請求項7】
環境の情報を入力としてエージェントの行動の情報を出力する機械学習モデルと、
前記機械学習モデルを用いて与えられた環境におけるエージェントの経験を示す経験データを取得するデータ生成部と、
所定環境における経験データを取得する第1探索処理を前記データ生成部に実行させ、前記第1探索処理により取得された経験データを基に前記機械学習モデルにおけるパラメータを更新する第1学習処理とを同期させた同期学習を所定時間実行する同期分散強化学習実行部と、
前記同期分散強化学習実行部により得られた最終的な重みを初期値として、前記所定環境における経験データを取得する第2探索処理を前記データ生成部に実行させ、前記第2探索処理により取得された経験データを基に前記機械学習モデルにおけるパラメータを更新する第2学習処理とを非同期で行う非同期学習を実行して前記機械学習モデルの学習を完了する非同期強化学習実行部と
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法及び情報処理装置に関する。
【背景技術】
【0002】
近年、電子ゲームにおけるAI(Artificial Intelligence:人工知能)、車両の自動運転制御、ロボットの自立制御といった様々な分野で、強化学習と呼ばれる機械学習の導入が盛んである。強化学習では、与えられた環境の中においてエージェントと呼ばれる動作主体による行動に対して与えられる報酬を最大化するように学習が行われる。
【0003】
さらに、強化学習を高速に実行するため、複数のCPUコアやGPUを有効活用する分散強化学習が存在する。多くの分散強化学習のアルゴリズムは、探索と学習を非同期で行うことでスループットを高めている。
【0004】
なお、分散強化学習の技術として、同期的に分散強化学習を実行して得られる方策モデルを用いて、強化学習における環境を初期化して強化学習を実行する技術が提案されている。またサブシステム単位で強化学習を用いて予備学習を実行し、各エージェントが機械学習モデルの評価を管理エージェントに送信して、複数のエージェントで同時に全体学習を実行する技術が提案されている。また、エージェント毎及びエージェント全体について事前学習を行い、学習済みのエージェントの行動価値関数に基づいて実制御を実行する技術が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2022/004601号
【特許文献2】特開2019-46422号公報
【特許文献3】国際公開第2022/137574号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の分散強化学習の技術では、非同期で経験収集と学習を行う関係で、経験の収集に用いる方策と学習対象の方策のパラメータが異なっていることがあり、原理的に不安定である。そのため、従来分散強化学習の技術では、学習中の方策が獲得し得る平均収益が1ステップごとに極端に上下するなど、学習が不安定になるおそれがある。
【0007】
開示の技術は、上記に鑑みてなされたものであって、効率良く安定した学習を実行する情報処理プログラム、情報処理方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の一つの態様において、環境の情報を入力としてエージェントの行動の情報を出力する機械学習モデルを用いて所定環境におけるエージェントの経験を示す経験データを取得する第1探索処理と、前記第1探索処理で得られた経験データを基に前記機械学習モデルにおけるパラメータを更新する第1学習処理とを同期させた同期学習を所定時間実行し、前記同期学習で得られた最終的な重みを初期値として、前記機械学習モデルを用いて経験データを取得する第2探索処理と、前記第2探索処理で得られた経験データを基に前記機械学習モデルにおけるパラメータを更新する第2学習処理とを非同期で行う非同期学習を実行して前記機械学習モデルの学習を完了する処理をコンピュータに実行させる。
【発明の効果】
【0009】
1つの側面では、本発明は、効率良く安定した学習を実行することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例に係る機械学習システムのブロック図である。
【
図2】
図2は、実施例に係る機械学習の概念図である。
【
図3】
図3は、実施例に係る機械学習システムによる機械学習処理のフローチャートである。
【
図4】
図4は、同期分散強化学習処理のフローチャートである。
【
図5】
図5は、同期分散強化学習処理における探索処理のフローチャートである。
【
図6】
図6は、同期分散強化学習処理における学習処理のフローチャートである。
【
図7】
図7は、非同期分散強化学習処理のフローチャートである。
【
図8】
図8は、非同期分散強化学習処理における探索処理のフローチャートである。
【
図9】
図9は、非同期分散強化学習処理のフローチャートである。
【
図10】
図10は、実施例に係る機械学習システムのハードウェア構成図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理プログラム、情報処理方法及び情報処理装置が限定されるものではない。
【実施例0012】
図1は、実施例に係る機械学習システムのブロック図である。本実施例に係る機械学習システム1は、情報処理装置10及び複数の情報処理装置20を有する。情報処理装置10とそれぞれの情報処理装置20とはネットワークで接続される。
【0013】
情報処理装置10は、情報処理装置20から得られる学習データを用いて、働きかけの対象とする環境に対して働きかけを行う主体であり且つ学習の対象となるエージェントの行動の学習を実行する。情報処理装置20は、環境を保持し、環境におけるエージェントの行動による結果を得て、エージェントの行動の学習に用いる学習データを生成する。
【0014】
図2は、実施例に係る機械学習の概念図である。マスタノード11は、情報処理装置10の機械学習時の役割を示す。ノード21は、それぞれの情報処理装置20の機械学習時の役割を示す。
図2では、情報処理装置20のそれぞれが有するデータ生成部200をまとめて1つのデータ生成部200とし、その中で複数のノード21が動作するように図示した。
【0015】
ノード21は、それぞれが環境及びエージェントを有する。そして、ノード21は、保持する環境の中でエージェントに観測及び行動を行わせ、環境を遷移させることを繰り返す探索処理を実行する。マスタノード11は、各ノード21において得られるエージェントの経験を収集して、機械学習モデル110の学習を行う学習処理を実行する。
【0016】
マスタノード11の学習部100は、機械学習モデル110の学習のための探索処理と学習処理とを同期させて行うための同期分散強化学習アルゴリズム121を有する。また、マスタノード11の学習部100は、機械学習モデル110の学習のための探索処理と学習処理とを非同期で行うための非同期分散強化学習アルゴリズム122を有する。
【0017】
まず、マスタノード11及びノード21は、同期分散強化学習を同期分散強化学習の終了条件に達するまで実行する。この場合、データ生成部200が所定回数の探索処理を完了すると、同期分散強化学習アルゴリズム121は、その探索処理で得られたエージェントの経験を用いて機械学習モデル110のパラメータを更新する。データ生成部200は、更新されたパラメータを用いて探索を行う。このように、同期分散強化学習アルゴリズム121とデータ生成部200とは、探索処理で得られた経験を用いた学習処理によるパラメータの更新及び更新されたパラメータを用いた探索処理を交互に繰り返す。
【0018】
同期分散強化学習が完了すると、マスタノード11及びノード21は、非同期分散強化学習を学習の最終終了条件に達するまで実行する。この場合、データ生成部200は、学習処理の進行とは別に、探索処理の開始時点で最新のパラメータを用いて探索処理を実行する。非同期分散強化学習アルゴリズム122は、探索処理の進行とは別に、非同期でその時点で存在するエージェントの経験を用いて機械学習モデル110のパラメータを更新する。非同期分散強化学習が終了すると、学習部100は、機械学習モデル110の学習を終了する。
【0019】
図1に戻って、情報処理装置10及び情報処理装置20の詳細について説明する。情報処理装置20は、
図2に示すように、それぞれデータ生成部200を有する。
【0020】
各情報処理装置20のデータ生成部200は、機械学習モデル110と同様の機械学習モデルを有する。例えば、この機械学習モデルは、機械学習モデル110と同様のパラメータを使用して機械学習モデルと同様のエージェントの行動の選択を行い、選択した行動を示す行動データを出力する。
【0021】
各情報処理装置20のデータ生成部200は、同期分散強化学習の実行の指示を情報処理装置10の同期分散強化学習実行部102から受ける。次に、各情報処理装置20のデータ生成部200は、同じ環境データの入力を情報処理装置10の起動部101から受ける。そして、データ生成部200は、環境データからエージェントが動作する環境を構築して探索処理プロセスを起動する。以下の処理は、探索処理プロセスを起動したデータ生成部200のそれぞれが実行するが、ここでは、1つのデータ生成部200を例に説明する。
【0022】
次に、データ生成部200は、パラメータバッファ105に格納された最新のパラメータを取得する。そして、データ生成部200は、最新のパラメータで保有するパラメータを更新する。
【0023】
次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境のエージェントによる観測の情報を取得する。次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境におけるエージェントによる行動を選択する。そして、データ生成部200は、選択した行動をエージェントに実行させて、環境を遷移させる。次に、データ生成部200は、選択した行動に対する報酬を算出する。そして、データ生成部200は、環境に対するエージェントによる観測の情報を示す観測データ、エージェントが行った行動を示す行動データ、遷移した後の環境データ及び行動に対する報酬を示す報酬データを含む経験データをリプレイバッファ104に格納する。
【0024】
データ生成部200は、エージェントの行動により遷移した次の環境に対して、同様の処理を実行して経験データを生成してリプレイバッファ104に格納することを繰り返す。そして、環境が終了状態に達すると、データ生成部200は、1回分の経験データの生成する探索を終了する。その後、データ生成部200は、環境をリセットして元の状態に戻して、1回分の経験データの生成する探索を繰り返す。データ生成部200は、1回分の経験データの生成する探索を所定回数繰り返すと探索処理を終了する。そして、データ生成部200は、探索処理の終了を同期分散強化学習実行部102に通知する。
【0025】
その後、同期分散強化学習実行部102から学習処理完了の通知を受けると、データ生成部200は、上述した探索処理を再度実行する。データ生成部200は、同期学習終了条件を満たすまで探索処理を繰り返す。
【0026】
次に、同期分散強化学習が終了すると、各情報処理装置20のデータ生成部200は、非同期分散強化学習の実行の指示を情報処理装置10の非同期分散強化学習実行部103から受ける。次に、各情報処理装置20のデータ生成部200は、同じ環境データの入力を情報処理装置10の起動部101から受ける。そして、データ生成部200は、環境データからエージェントが動作する環境を構築して探索処理プロセスを起動する。以下の処理は、探索処理プロセスを起動したデータ生成部200のそれぞれが実行するが、ここでは、1つのデータ生成部200を例に説明する。
【0027】
次に、データ生成部200は、非同期用設定を実行して、自己が動作させる探索処理プロセスと情報処理装置10の学習部100が動作させる学習処理プロセスとを接続させる。例えば、データ生成部200は、共有メモリの設定や、ソケット通信の設定を実行する。
【0028】
次に、データ生成部200は、パラメータバッファ105に格納された最新のパラメータを取得する。そして、データ生成部200は、最新のパラメータで保有するパラメータを更新する。
【0029】
次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境のエージェントによる観測の情報を取得する。次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境におけるエージェントによる行動を選択し、選択した行動をエージェントに実行させる。次に、データ生成部200は、選択した行動に対する報酬を算出する。そして、データ生成部200は、環境データ、行動前の観測データ、行動データ及び報酬データを含む経験データをリプレイバッファ104に格納する。
【0030】
データ生成部200は、エージェントの行動により遷移した次の環境に対して、同様の処理を実行して経験データを生成してリプレイバッファ104に格納することを繰り返す。そして、環境が終了状態に達すると、データ生成部200は、一連の環境遷移に対する探索を終了する。その後、データ生成部200は、例えばLinux(登録商標)におけるSIGKILLなどの終了命令を受信するまで、環境をリセットして元の状態に戻して、一連の環境遷移に対する探索を繰り返す。終了命令を受信すると、データ生成部200は、探索処理を終了する。これにより、データ生成部200は、非同期分散強化学習における探索処理を終了する。
【0031】
情報処理装置10は、
図1に示すように、学習部100及び機械学習モデル110を有する。機械学習モデル110は、与えられた環境においてエージェントがどのような行動を実行するかを決定するためのモデルである。すなわち、機械学習モデル110は、環境のデータを入力として最適と考えられる行動を出力する。
【0032】
学習部100は、機械学習モデル110の学習を実行する。学習部100は、
図1に示すように、起動部101、同期分散強化学習実行部102、非同期分散強化学習実行部103、リプレイバッファ104及びパラメータバッファ105を有する。
【0033】
起動部101は、同期分散強化学習及び非同期分散強化学習のいずれにおいても、以下の処理を実行する。起動部101は、エージェントが働きかける環境の特定の状態を表す環境データを図示しないデータベースなどから取得する。そして、データ入力部107は、同じ環境データを各情報処理装置20のデータ生成部200へ送信して、データ生成部200における探索処理プロセスを起動させる。ここで、データ入力部107は、機械学習システム1に含まれる全ての情報処理装置20で探索処理プロセスを起動させなくても良く、使用する所定数の情報処理装置20で探索処理プロセスを起動させればよい。
【0034】
その後、同期分散強化学習の場合、起動部101は、同期分散強化学習実行部102に探索処理プロセスの起動を通知する。また、非同期分散強化学習の場合、起動部101は、非同期分散強化学習実行部103に探索処理プロセスの起動を通知する。
【0035】
同期分散強化学習実行部102は、同期分散強化学習の学習処理プロセスを起動さる。そして、同期分散強化学習実行部102は、機械学習モデル110のパラメータを初期化する。次に、同期分散強化学習実行部102は、探索処理プロセスの起動の通知を起動部101から受ける。そして、同期分散強化学習実行部102は、同期分散強化学習の実行をデータ生成部200に通知する。
【0036】
その後、同期分散強化学習実行部102は、探索処理の終了の通知を探索処理プロセスが起動された各データ生成部200から受ける。そして、同期分散強化学習実行部102は、探索処理プロセスが起動された全てのデータ生成部200で生成された経験データをリプレイバッファ104から取得する。
【0037】
次に、同期分散強化学習実行部102は、機械学習モデル110における報酬の合計を最大にするための価値関数を計算する。次に、同期分散強化学習実行部102は、価値関数の計算で得られた報酬の累積値を利用して、機械学習モデル110における最適な行動の方策を得るための方策勾配を計算する。そして、同期分散強化学習実行部102は、計算した方策勾配にしたがって機械学習モデル110のパラメータを更新する。その後、同期分散強化学習実行部102は、パラメータでパラメータバッファ105に更新したパラメータを追加する。
【0038】
同期分散強化学習実行部102は、同期学習終了条件を満たしたか否かを判定する。同期学習終了条件は、例えば予め決められたエポック数の学習を終了したなどである。同期分散強化学習実行部102は、同期学習終了条件を満たした場合、同期分散強化学習の学習処理を終了する。
【0039】
ここで、同期分散強化学習は、非同期分散強化学習と比べて、探索と学習とを交互に繰り返すため学習処理の速度が劣る。ただし、非同期分散強化学習は非同期のため探索と学習とでパラメータの値が異なるオフポリシーとなるが、同期分散強化学習は、探索と学習とでパラメータの値が一致するオンポリシーとなる。そのため、同期分散強化学習は、非同期分散強化学習に比べて学習が安定して効率が向上する。逆に言えば、非同期分散強化学習は、学習中の方策が1ステップ毎に極端に上下するなど、学習が不安定となり学習の効率が低下するおそれがある。そこで、本実施例に係る機械学習システム1は、学習の最初の短時間にオンポリシーである同期分散強化学習を実行して、探索の方向をある程度確定させ。その後、機械学習システム1は、同期分散強化学習で得られたパラメータの値を初期値としてオフポリシーである非同期分散強化学習を実行する。そこで、同期学習終了条件は、学習の最初の短時間で終了するように決定されることが好ましい。
【0040】
この同期学習終了条件により同期分散強化学習が終了するまでの時間が「所定時間」にあたる。ここで、同期分散強化学習を用いず非同期分散強化学習により機械学習モデル110の学習を行った場合と、同期分散強化学習及び非同期分散強化学習により機械学習モデル110の学習を行った場合とで、同じ推論精度に達するまでの時間差を、第1時間差とする。また、同期分散強化学習と非同期分散強化学習とで、同じ回数の学習処理が完了するまでの時間差を、第2時間差とする。この場合、所定時間は、第1時間差と第2時間差とを基に、全体的な学習時間が短くなるように決定される。例えば、同期学習終了条件は、機械学習モデル110の学習の全エポック数の10%のエポック数が終了したという条件であってもよい。
【0041】
非同期分散強化学習実行部103は、非同期分散強化学習の学習処理プロセスを起動させる。そして、非同期分散強化学習実行部103は、機械学習モデル110のパラメータとして、同期学習終了条件で得られた最終的なパラメータを設定して初期化する。例えば、非同期分散強化学習実行部103は、非同期分散強化学習開始時点でのパラメータバッファ105に格納された最新のパラメータを取得することで、同期学習終了条件で得られた最終的なパラメータを得ることができる。
【0042】
次に、非同期分散強化学習実行部103は、探索処理プロセスの起動の通知を起動部101から受ける。そして、非同期分散強化学習実行部103は、非同期分散強化学習の実行をデータ生成部200に通知する。
【0043】
その後、非同期分散強化学習実行部103は、非同期用設定を実行して、自己が動作させる学習処理プロセスと情報処理装置20のデータ生成部200が動作させる学習処理プロセスとを接続させる。例えば、非同期分散強化学習実行部103は、共有メモリの設定や、ソケット通信の設定を実行する。次に、非同期分散強化学習実行部103は、保有するパラメータをパラメータバッファ105に格納する。
【0044】
次に、非同期分散強化学習実行部103は、経験データがリプレイバッファ104に存在するか否かを判定する。経験データがリプレイバッファ104に存在しなければ一定時間待機して、経験データがリプレイバッファ104に存在するか否かを再度判定する。
【0045】
経験データがリプレイバッファ104に存在すれば、非同期分散強化学習実行部103は、探索処理プロセスが起動された全てのデータ生成部200で生成された経験データをリプレイバッファ104から取得する。また、非同期分散強化学習実行部103は、学習に使用するために取得した経験データをリプレイバッファ104から削除する。
【0046】
次に、非同期分散強化学習実行部103は、機械学習モデル110における報酬の合計を最大にするための価値関数を計算する。次に、非同期分散強化学習実行部103は、価値関数の計算で得られた報酬の累積値を利用して、機械学習モデル110における最適な行動の方策を得るための方策勾配を計算する。そして、非同期分散強化学習実行部103は、計算した方策勾配にしたがって機械学習モデル110のパラメータを更新する。次に、非同期分散強化学習実行部103は、更新したパラメータをパラメータバッファ105に追加する。
【0047】
その後、非同期分散強化学習実行部103は、学習が終了条件を満たしたか否かを判定する。例えば、非同期分散強化学習実行部103は、決められたエポック数の学習を終了した場合に終了条件を満たしたと判定する。そして、非同期分散強化学習実行部103は、非同期分散強化学習を終了する。これにより、機械学習モデル110の学習が完了する。
【0048】
図3は、実施例に係る機械学習システムによる機械学習処理のフローチャートである。次に、
図3を参照して、本実施例に係る機械学習システム1による機械学習処理の流れを説明する。
【0049】
情報処理装置10が情報処理装置20に探索処理プロセスを起動させた後、情報処理装置10及び情報処理装置20は、同期学習終了条件まで同期分散強化学習を実行する(ステップS1)。
【0050】
その後、情報処理装置10が情報処理装置20に探索処理プロセスを起動させた後、情報処理装置10及び情報処理装置20は、最終終了条件まで非同期分散強化学習を実行する(ステップS2)。
【0051】
図4は、同期分散強化学習処理のフローチャートである。
図4のフローで実行される各処理は、
図3におけるステップS1で実行される処理の一例にあたる。次に、
図4を参照して、本実施例に係る機械学習システム1による同期分散強化学習処理の流れを説明する。
【0052】
同期分散強化学習実行部102は、同期分散強化学習の学習処理プロセスを起動させ、機械学習モデル110のパラメータを初期化する(ステップS11)。
【0053】
起動部101は、所定数の情報処理装置20のデータ生成部200へ環境データを送信する。各データ生成部200は、受信した環境データを用いて環境を構築して所定数の探索処理プロセスを起動させる(ステップS12)。
【0054】
次に、所定数のデータ生成部200は、分散探索処理を実行する(ステップS13)。このステップS13の分散探索処理の実行では、それぞれのデータ生成部200が、探索処理を実行して経験データを生成する(ステップS130)。
【0055】
次に、同期分散強化学習実行部102は、所定数のデータ生成部200のそれぞれから取得した経験データを用いて、同期分散強化学習の学習処理を実行する(ステップS14)。
【0056】
同期分散強化学習実行部102は、例えば、kのエポック数の学習を完了したかなどの予め決められた同期学習終了条件を満たしたか否かを判定する(ステップS15)。同期学習終了条件を満たしていない場合(ステップS15:否定)、同期分散強化学習処理は、ステップS13へ戻る。これに対して、同期学習終了条件を満たした場合(ステップS15:肯定)、同期分散強化学習実行部102は、学習処理を終了する。
【0057】
図5は、同期分散強化学習処理における探索処理のフローチャートである。
図5のフローで実行される各処理は、
図4のステップS130で実行される処理の一例にあたる。次に、
図5を参照して、同期分散強化学習処理におけるデータ生成部200による探索処理の流れを説明する。
【0058】
次に、データ生成部200は、パラメータバッファ105に格納された最新のパラメータを取得する。そして、データ生成部200は、最新のパラメータで保有するパラメータを更新する(ステップS101)。
【0059】
次に、データ生成部200は、起動部102から取得した環境データを用いて、環境の状態をリセットする(ステップS102)。
【0060】
次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境のエージェントによる観測の情報を取得する(ステップS103)。
【0061】
次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境におけるエージェントによる行動を選択し、選択した行動をエージェントに実行させる(ステップS104)。
【0062】
次に、データ生成部200は、選択した行動に対する報酬を算出する(ステップS105)。
【0063】
そして、データ生成部200は、環境データ、行動前の観測データ、行動データ及び報酬データを含む経験データをリプレイバッファ104に追加する(ステップS106)。
【0064】
次に、データ生成部200は、環境が終了状態に到達したか否かを判定する(ステップS107)。環境が終了状態に未到達の場合(ステップS107:否定)、探索処理は、ステップS103へ戻る。
【0065】
これに対して、環境が終了状態に到達した場合(ステップS107:肯定)、データ生成部200は、所定回数の探索が終了したか否かを判定する(ステップS108)。所定回数の探索が終了していない場合(ステップS108:否定)、探索処理は、ステップS102へ戻る。
【0066】
これに対して、所定回数の探索が終了した場合(ステップS108:肯定)、データ生成部200は、探索処理を終了する。
【0067】
図6は、同期分散強化学習処理における学習処理のフローチャートである。
図6のフローで実行される各処理は、
図4のステップS14で実行される処理の一例にあたる。次に、
図6を参照して、同期分散強化学習処理における同期分散強化学習実行部102による学習処理の流れを説明する。
【0068】
同期分散強化学習実行部102は、探索処理の終了の通知を探索処理プロセスが起動された各データ生成部200から受ける。そして、同期分散強化学習実行部102は、探索処理プロセスが起動された全てのデータ生成部200で生成された経験データをリプレイバッファ104から取得する(ステップS111)。
【0069】
次に、同期分散強化学習実行部102は、機械学習モデル110における報酬の合計を最大にするための価値関数を計算する(ステップS112)。
【0070】
次に、同期分散強化学習実行部102は、価値関数の計算で得られた報酬の累積値を利用して、機械学習モデル110における最適な行動の方策を得るための方策勾配を計算する(ステップS113)。
【0071】
そして、同期分散強化学習実行部102は、計算した方策勾配にしたがって機械学習モデル110のパラメータを更新する。その後、同期分散強化学習実行部102は、パラメータでパラメータバッファ105に格納されたパラメータを更新する(ステップS114)。
【0072】
図7は、非同期分散強化学習処理のフローチャートである。
図7のフローで実行される各処理は、
図3におけるステップS2で実行される処理の一例にあたる。次に、
図7を参照して、本実施例に係る機械学習システム1による非同期分散強化学習処理の流れを説明する。
【0073】
非同期分散強化学習実行部103は、同期分散強化学習の学習処理プロセスを起動させ、機械学習モデル110のパラメータを初期化する(ステップS21)。
【0074】
起動部101は、所定数の情報処理装置20のデータ生成部200へ環境データを送信する。各データ生成部200は、受信した環境データを用いて環境を構築して所定数の探索処理プロセスを起動させる(ステップS22)。
【0075】
次に、非同期分散強化学習実行部103及び所定数のデータ生成部200は、非同期学習処理を実行する(ステップS23)。このステップS23の非同期学習処理の実行では、非同期分散強化学習実行部103による学習処理の実行(ステップS201)及び所定数のデータ生成部200による探索処理の実行(ステップS202)が行われる。
【0076】
その後、非同期分散強化学習実行部103は、学習が最終終了条件を満たしたか否かを判定する(ステップS24)。最終終了条件を満たしていない場合(ステップS24:否定)、非同期分散強化学習処理は、ステップS23へ戻る。これに対して、最終終了条件を満たした場合(ステップS24:肯定)、非同期分散強化学習実行部103は、学習処理を終了する。
【0077】
図8は、非同期分散強化学習処理における探索処理のフローチャートである。
図8のフローで実行される各処理は、
図7のステップS202で実行される処理の一例にあたる。次に、
図8を参照して、非同期分散強化学習処理におけるデータ生成部200による探索処理の流れを説明する。
【0078】
データ生成部200は、非同期用設定を実行して、自己が動作させる探索処理プロセスと情報処理装置10の学習部100が動作させる学習処理プロセスとを接続させる(ステップS211)。
【0079】
次に、データ生成部200は、パラメータバッファ105に格納された最新のパラメータを取得する。そして、データ生成部200は、最新のパラメータで保有するパラメータを更新する(ステップS212)。
【0080】
次に、データ生成部200は、起動部102から取得した環境データを用いて、環境の状態をリセットする(ステップS213)。
【0081】
次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境のエージェントによる観測の情報を取得する(ステップS214)。
【0082】
次に、データ生成部200は、保持する機械学習モデルを用いて構築した環境におけるエージェントによる行動を選択し、選択した行動をエージェントに実行させる(ステップS215)。
【0083】
次に、データ生成部200は、選択した行動に対する報酬を算出する(ステップS216)。
【0084】
そして、データ生成部200は、環境データ、行動前の観測データ、行動データ及び報酬データを含む経験データをリプレイバッファ104に追加する(ステップS217)。
【0085】
次に、データ生成部200は、環境が終了状態に到達したか否かを判定する(ステップS218)。環境が終了状態に未到達の場合(ステップS218:否定)、探索処理は、ステップS214へ戻る。
【0086】
これに対して、環境が終了状態に到達した場合(ステップS218:肯定)、データ生成部200は、終了命令を受けたか否かを判定する(ステップS219)。終了命令を受けていない場合(ステップS219:否定)、探索処理は、ステップS213へ戻る。
【0087】
これに対して、終了命令を受けた場合(ステップS219:肯定)、データ生成部200は、探索処理を終了する。
【0088】
図9は、非同期分散強化学習処理のフローチャートである。
図9のフローで実行される各処理は、
図7におけるステップS201で実行される処理の一例にあたる。次に、
図9を参照して、非同期分散強化学習処理における非同期分散強化学習実行部103による学習処理の流れを説明する。
【0089】
非同期分散強化学習実行部103は、非同期用設定を実行して、自己が動作させる学習処理プロセスと情報処理装置20のデータ生成部200が動作させる学習処理プロセスとを接続させる(ステップS221)。
【0090】
次に、非同期分散強化学習実行部103は、自己が保有する、同期分散強化学習実行部103により最終的に生成されたパラメータを、パラメータバッファ105に格納する(ステップS222)。
【0091】
次に、非同期分散強化学習実行部103は、経験データがリプレイバッファ104に存在するか否かを判定する(ステップS223)。
【0092】
経験データがリプレイバッファ104に存在しない場合(ステップS223:否定)、非同期分散強化学習実行部103は、一定時間待機して、ステップS223を繰り返す。
【0093】
経験データがリプレイバッファ104に存在する場合(ステップS223:肯定)、非同期分散強化学習実行部103は、探索処理プロセスが起動された全てのデータ生成部200で生成された経験データをリプレイバッファ104から取得する(ステップS224)。ここで、非同期分散強化学習実行部103は、学習に使用するために取得した経験データをリプレイバッファ104から削除する。
【0094】
次に、非同期分散強化学習実行部103は、機械学習モデル110における報酬の合計を最大にするための価値関数を計算する(ステップS225)。
【0095】
次に、非同期分散強化学習実行部103は、価値関数の計算で得られた報酬の累積値を利用して、機械学習モデル110における最適な行動の方策を得るための方策勾配を計算する(ステップS226)。
【0096】
そして、非同期分散強化学習実行部103は、計算した方策勾配にしたがって機械学習モデル110のパラメータを更新する(ステップS227)。
【0097】
次に、非同期分散強化学習実行部103は、更新したパラメータをパラメータバッファ105に追加する(ステップS228)。
【0098】
その後、非同期分散強化学習実行部103は、学習が終了条件を満たしたか否かを判定する(ステップS229)。学習が終了条件を満たしていない場合(ステップS229:否定)、学習処理は、ステップS223へ戻る。
【0099】
これに対して、学習が終了条件を満たした場合(ステップS229:肯定)、非同期分散強化学習実行部103は、非同期分散強化学習を終了する。これにより、機械学習モデル110の学習が完了する。
【0100】
以上に説明したように、本実施例に係る情報処理装置は、学習の開始直後の短時間でオンポリシーである同期分散強化学習を実行し、その後、オフポリシーである非同期分散強化学習を実行して機械学習モデルの学習を実行させる。これにより、学習の最初の部分で探索の方向性がある程度確定させることができ、その方向性が決定したパラメータを用いて学習を行うことで、その後のオフポリシーでの学習を安定させることができる。同期分散強化学習の処理速度は非同期分散強化学習に比べて遅くなるが、同期分散強化学習は短時間で終わらせるため、総合的には学習の効率を向上させることができる。したがって、学習が不安定になりやすい分散強化学習を安定化させることができ、強化学習の効率化に寄与することが可能となる。
【0101】
(ハードウェア構成)
図10は、実施例に係る機械学習システムのハードウェア構成図である。次に、
図10を参照して、本実施例に係る機械学習システム1のハードウェア構成の一例について説明する。
【0102】
情報処理装置10は、
図10に示すように、CPU(Central Processing Unit)911、RAM(Random Access Memory)912、GPU(Graphics Processing Unit)913及びハードディスク914を有する。CPU911は、バスによりRAM912、GPU913及びハードディスク914と接続される。
【0103】
ハードディスク914は、補助記憶装置である。ハードディスク914は、
図1に例示した、リプレイバッファ104及びパラメータバッファ105の機能を実現する。また、ハードディスク914は、
図1に例示した機械学習モデル110を格納してもよい。また、ハードディスク914は、
図1に例示した学習部100の機能を実現するためのプログラムを含む各種プログラムを格納する。ハードディスク914の代わりにSSD(Solid State Drive)など他の記憶装置を用いることも可能である。
【0104】
GPU913は、機械学習における所定の演算を実行する。ただし、機械学習の速度が遅くてもよい場合、GPU913は設けなくてもよい。
【0105】
CPU911は、ハードディスク914から各種プログラムを読み出してRAM912に展開して実行する。これにより、CPU911は、
図1に例示した学習部100の機能を実現する。CPU911は、機械学習における演算をGPU913に行わせてもよい。
【0106】
情報処理装置20は、
図10に示すように、複数台が情報処理装置10に接続されてクラスタ構成を有する。ただし、解く問題の規模によってはクラスタ構成でなくてもよく、情報処理装置20は1台でもよいし、情報処理装置10の中に情報処理装置20の機能を含めてもよい。
【0107】
情報処理装置20は、
図10に示すように、CPU921、RAM922及びハードディスク923を有する。CPU921は、バスによりRAM922及びハードディスク923と接続される。
【0108】
ハードディスク923は、補助記憶装置である。ハードディスク923は、
図1に例示した、データ生成部200の機能を実現するためのプログラムを含む各種プログラムを格納する。ハードディスク923の代わりにSSDなど他の記憶装置を用いることも可能である。
【0109】
CPU921は、ハードディスク923から各種プログラムを読み出してRAM922に展開して実行する。これにより、CPU921は、
図1に例示したデータ生成部200の機能を実現する。