(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162914
(43)【公開日】2024-11-21
(54)【発明の名称】機械学習プログラム、機械学習装置及び機械学習システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241114BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023078900
(22)【出願日】2023-05-11
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】市丸 和人
(57)【要約】
【課題】機械学習の学習効率を向上させる機械学習プログラム、機械学習装置及び機械学習システムを提供する。
【解決手段】疎な報酬関数が与えられた所定環境において所定数のエピソードの間のエキスパートの行動を取得し、エピソード毎に、所定環境内で行動に基づき発生した事象の種類及び種類毎の事象の量、並びに、疎な報酬関数に基づきエキスパートが最終的に獲得した収益の情報を収集し、種類毎に事象の量と収益との相関係数を計算し、相関係数に対して正規化及びクリッピングを施して種類毎の事象の発生時の報酬を規定する密な報酬関数を生成する処理をコンピュータに実行させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
疎な報酬関数が与えられた所定環境において所定数のエピソードにおけるエキスパートの行動を取得し、
前記エピソード毎に、前記所定環境内で前記行動に基づき発生した事象の種類及び種類毎の事象の量、並びに、前記疎な報酬関数に基づき前記エキスパートが最終的に獲得した収益の情報を収集し、
種類毎に前記事象の量と前記収益との相関係数を計算し、
前記相関係数に対して正規化及びクリッピングを施して種類毎の前記事象の発生時の報酬を規定する密な報酬関数を生成する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
種類毎に事象が発生した場合の前記事象の量にしたがった報酬を算出する前記密な報酬関数を生成し、
特定の事象が発生した場合に前記特定の事象の種類及び前記特定の事象の量に応じて付与する報酬を算出する前記密な報酬関数を生成する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記密な報酬関数が設定された学習用環境の状態に応じた行動を機械学習モデルに決定させ、
前記学習用環境において前記決定された行動に基づき発生した事象の種類及び前記事象の量に応じて前記密な報酬関数を基に報酬を算出して、
前記決定された行動及び前記決定された行動に対する報酬を基に前記機械学習モデルに学習を行わせる
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項4】
前記疎な報酬関数が与えられた前記所定環境の状態と行動との関係を示す予め登録されたルールに基づいて、前記所定数のエピソードの間の前記所定環境における前記エキスパートの行動を取得する処理を前記コンピュータに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項5】
疎な報酬関数が与えられた所定環境において所定数のエピソードの間のエキスパートの行動を取得し、前記エピソード毎に、前記所定環境内で前記行動に基づき発生した事象の種類及び種類毎の事象の量、並びに、前記疎な報酬関数に基づき前記エキスパートが最終的に獲得した収益の情報を収集するデータ収集部と、
種類毎に前記事象の量と前記収益との相関係数を計算し、前記相関係数に対して正規化及びクリッピングを施して種類毎の前記事象の発生時の報酬を規定する密な報酬関数を生成する報酬計算部と
を備えたことを特徴とする機械学習装置。
【請求項6】
データ収集装置及び報酬計算装置を有する機械学習システムであって、
データ収集装置は、疎な報酬関数が与えられた第1環境において所定数のエピソードの間のエキスパートの行動を取得し、前記エピソード毎に、前記第1環境内で前記行動に基づき発生した事象の種類及び種類毎の事象の量、並びに、前記疎な報酬関数に基づき前記エキスパートが最終的に獲得した収益の情報を収集し、
報酬計算装置は、種類毎に前記事象の量と前記収益との相関係数を計算し、前記相関係数に対して正規化及びクリッピングを施して種類毎の前記事象の発生時の報酬を規定する密な報酬関数を生成し、前記密な報酬関数を前記第1環境と観測空間及び行動空間が同じで且つ自環境内での行動を決定する機械学習モデルの学習に使用される第2環境に設定する
ことを特徴とする機械学習システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラム、機械学習装置及び機械学習システムに関する。
【背景技術】
【0002】
近年、電子ゲームにおけるAI(Artificial Intelligence:人工知能)、車両の自動運転制御、ロボットの自立制御といった様々な分野で、強化学習と呼ばれる機械学習の導入が盛んである。強化学習では、与えられた環境の中におけるエージェントと呼ばれる動作主体による行動に対して与えられる報酬を最大化するように学習が行われる。
【0003】
強化学習においては、通常強化学習に知見を持つ熟練者や、対象とするタスクの性質に詳しい者が手作業で報酬を設計する。報酬は、必ずしもエージェントに獲得してもらいたい挙動そのものだけでなく、その挙動の獲得を促進するような間接的な事象に対する報酬や、逆に望ましくない挙動を抑制するような報酬をも含めて設計される。
【0004】
ただし、人手による報酬設計は基本的に試行錯誤の連続であり、最適な設計に到達するまでに極めて長い時間を要する可能性がある。また、深層強化学習の場合Deep Neural Network(DNN)の特性を踏まえた設計が必要であることや、単純に所望の挙動に報酬を与えるだけでは効率的な学習が難しいことが多いことから、強化学習に知見がない者が報酬を設計することは一般に困難である。
【0005】
そこで、適切な報酬を迅速に設計するために、報酬設計の自動化が研究されている。報酬設計を自動化する試みとして、疎な報酬を自動的に密な報酬に変換する技術の1つであるReward Shaping(報酬整形)と呼ばれる技術分野が存在する。Reward Shapingの実現要領の一つに、エキスパートが当該タスクにおいて行動した際の行動系列と、そこで獲得した疎な報酬の関係性をもとに、これを自動的に密な報酬に整形するものがあり、その多くはDeep Neural Networkを活用して学習を行うことにより実現される。
【0006】
ここで、報酬が疎とは、報酬が得られる局面が少ないことを指し、報酬が密とは、報酬が得られる局面が多いことを指す。例えば、特定のゲームにおいて、ゲームに勝つことで報酬がもらえる場合には疎な報酬であり、ゲームに勝つことに加えてゲーム中の様々な動きに応じて報酬がもらえる場合には密な報酬である。
【0007】
なお、強化学習についての従来技術として、報酬を得た直前の状態・行動対に至る一連の状態・行動対の集合を複数に分類して保持し、各分類の状態・行動対の報酬期待値を所定時間経過後の情報を基に更新して機械学習モデルを訓練する技術が提案されている。また、所定の製造事象に関連付けられた報酬に1つ以上の付加製造プロセスをマッピングする関数を用いて、報酬を最大化するように製造プロセスを最適化する技術が提案されている。また、過去の事象に基づいて特定の時点において何の行動を実行すべきかを決定し、将来の報酬に対する過去の事象の貢献に基づいて過去の事象の重要性を再評価する技術が提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010-73200号公報
【特許文献2】特開2021-8113号公報
【特許文献3】特表2022-504739号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、Reward Shapingは、実際には期待されているほど最適に近い解を得ることが難しく、人手による報酬設計に対し大きく劣る性能のエージェントしか得られない場合が多い。また、Reward Shapingでは、報酬関数がDeep Neural Networkで表現されることが多いため、人間による解釈可能性の低下や、カスタマイズが困難であるといった課題が存在する。さらに、Reward Shapingを行う手法によっては、所与のエキスパートデータが最適であることを仮定するため、準最適なエキスパートデータが与えられた際の性能が保証できなくなる可能性もある。このように、Reward Shapingを用いても、適切な報酬の設計を自動化することが難しい。したがって、機械学習の学習効率を向上させることは困難である。
【0010】
また、各分類の状態・行動対の報酬期待値を所定時間経過後の情報を基に更新して機械学習モデルを訓練する技術では、報酬の更新に留まり、適切に報酬を設計することは困難である。また、報酬に1つ以上の付加製造プロセスをマッピングする関数を用いて最適化を行う技術では、報酬の設計が行われておらず、適切な報酬の設定を行うことは困難である。また、将来の報酬に対する過去の事象の貢献に基づいて過去の事象の重要性を再評価する技術でも、報酬の設計が行われておらず、適切な報酬の設定を行うことは困難である。したがって、いずれの技術でも、適切な報酬の自動設定はなされず、機械学習の学習効率を向上させることは困難である。
【0011】
開示の技術は、上記に鑑みてなされたものであって、機械学習の学習効率を向上させる機械学習プログラム、機械学習装置及び機械学習システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本願の開示する機械学習プログラム、機械学習装置及び機械学習システムの一つの態様において、疎な報酬関数が与えられた所定環境において所定数のエピソードの間のエキスパートの行動を取得し、前記エピソード毎に、前記所定環境内で前記行動に基づき発生した事象の種類及び種類毎の事象の量、並びに、前記疎な報酬関数に基づき前記エキスパートが最終的に獲得した収益の情報を収集し、種類毎に前記事象の量と前記収益との相関係数を計算し、前記相関係数に対して正規化及びクリッピングを施して種類毎の前記事象の発生時の報酬を規定する密な報酬関数を生成する。
【発明の効果】
【0013】
1つの側面では、本発明は、機械学習の学習効率を向上させることができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、実施例に係る機械学習システムのシステム構成図である。
【
図2】
図2は、実施例に係る機械学習装置のブロック図である。
【
図3】
図3は、実施例に係る機械学習装置による報酬関数生成処理の概要を示すフローチャートである。
【
図4】
図4は、データ収集処理のフローチャートである。
【
図5】
図5は、同期分散強化学習処理のフローチャートである。
【
図6】
図6は、同期分散強化学習処理における探索処理のフローチャートである。
【
図7】
図7は、同期分散強化学習処理における学習処理のフローチャートである。
【
図8】
図8は、非同期分散強化学習処理のフローチャートである。
【
図9】
図9は、コンピュータのハードウェア構成図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する機械学習プログラム、機械学習装置及び機械学習システムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する機械学習プログラム、機械学習装置及び機械学習システムが限定されるものではない。
【実施例0016】
図1は、実施例に係る機械学習システムのシステム構成図である。本実施例に係る機械学習システム1は、例えば、
図1に示すように、データ収集装置2、報酬計算装置3、環境提供装置4及び学習装置5を有する。ただし、データ収集装置2、報酬計算装置3、環境提供装置4及び学習装置5は、1つの装置にまとめることも可能である。
【0017】
データ収集装置2は、データ取得用環境11を有する。データ取得用環境11は、意思決定主体であるエージェントが行動するための環境を提供する。データ収集装置2は、疎な報酬関数を取得してデータ取得用環境11に設定する。そして、エキスパート20が、データ取得用環境11を観測し、その観測した結果から決定した行動を取得して、データ取得用環境11においてその行動を実施する。そして、データ収集装置2は、行動の実施結果から疎な報酬関数に基づいて得られる収益及びその行動により発生したイベント量を取得する。イベント量とは、データ取得用環境11において行動に基づいて発生した事象であるイベントに含まれる各種の変化量である。イベントには、複数の種類が存在する。データ収集装置2は、エピソードの終了までにエキスパート20により順次行われた観測及び行動に対するイベントの種類毎の報酬及びイベント量を蓄積する。
【0018】
その後、データ収集装置2、報酬及びイベント量から、1つのエピソードについてのイベントの種類毎の報酬の合計である収益及びイベント量の合計であるイベント総和を算出する。そして、データ収集装置2は、算出した1つのエピソードについてのイベントの種類毎の収益及びイベント総和を保持する。データ収集装置2は、予め決められた所定数のエピソードそれぞれについて以上のデータ収集処理を繰り返して、所定数のエピソード毎の収益及びイベント総和を収集して格納する。
【0019】
報酬計算装置3は、報酬計算アルゴリズム13を動作させることで以下の処理を実行する。報酬計算装置3は、所定数のエピソード毎の収益及びイベント総和をデータ収集装置2から取得する。次に、報酬計算装置3は、イベントの種類それぞれに対して、収益との相関係数を算出する。次に、報酬計算装置3は、算出した相関係数を正規化する。その後、報酬計算装置3は、相関係数にクリッピングを加えて、イベントの種類に対する報酬関数を生成する。その後、報酬計算装置3は、報酬計算アルゴリズム13により生成されたイベントの種類に対する報酬関数を環境提供装置4へ出力する。この報酬関数は、密な報酬関数である。
【0020】
環境提供装置4は、データ取得用環境11と同等の環境を提供する学習用環境12を保持する。環境提供装置4は、各イベントに対する報酬関数の入力を報酬計算装置3から受ける。そして、環境提供装置4は、取得した各イベントに対する報酬関数を学習用環境12に設定する。
【0021】
ここで、学習用環境12とデータ取得用環境11とは同じであってもよいし、提供する内容が同じ、すなわち環境の状態を表す観測空間及びその観測空間において行う行動を示す行動空間の内容が同じであれば、完全に同じ環境でなくてもよい。例えば、学習用環境12及びデータ取得用環境11は、それぞれ将棋の対局の環境とすることができる。
【0022】
学習装置5は、強化学習アルゴリズム14を動作させて、学習用環境12で行動を行うエージェントの訓練を実行する。例えば、学習装置5は、学習用環境12を観測する。そして、学習装置5は、観測に基づいて実行する行動を決定する。次に、学習装置5は、決定した行動を学習用環境12に入力する。そして、学習装置5は、行動結果に対して、密な報酬関数を用いて算出された報酬を学習用環境12から取得する。学習装置5は、エージェントが選択する行動により報酬がなるべく大きくなるようにエージェントの行動を規定するパラメータ15を調整する。これにより、学習装置5は、最適に近い解を得るエージェントを生成することができる。
【0023】
図2は、実施例に係る機械学習装置のブロック図である。
図2は、
図1のデータ収集装置2、報酬計算装置3、環境提供装置4及び学習装置5を1つの機械学習装置100にまとめた場合を表す。
【0024】
機械学習装置100は、
図2に示すように、データ収集装置2にあたるデータ収集部101、報酬計算装置3にあたる報酬計算部102、環境提供装置4及び学習装置5にあたる学習部103を有する。以下に、
図2を参照して、機械学習装置100の動作の詳細を説明する。以下では、機械学習装置100を例に、機械学習システム1の各装置が1つにまとめられた構成について説明するが、それぞれ異なる装置であっても同様である。
【0025】
データ収集部101は、データ取得用環境11を有する。また、データ収集部101は、エキスパート20に接続される。ここで、本実施例では、エキスパート20は、観測から行動を決定する予め登録されたルールに基づいて行動を決定するAIであるルールベースエージェントが用いられる。他にも、エキスパート20は、データ取得用環境11における行動についての専門家としての知識を有する人間が担当してもよい。データ収集部101は、データ取得用環境11を用いて以下のデータ収集処理を実行する。
【0026】
データ収集部101は、疎な報酬関数を取得してデータ取得用環境11に設定する。例えば、データ取得用環境11は将棋を模した環境を用いることができる。この場合、疎な報酬関数は、例えば、勝利した場合に1点を与え、敗北した場合に-1点を与える関数である。また、この場合の1エピソードは、対局開始から詰みまでの1回の勝負である。
【0027】
データ収集部101は、データ取得用環境11を初期化する。次に、データ収集部101は、データ取得用環境11から観測otを取得する。観測otとは、より詳しくはデータ取得用環境11を観測した結果得られる環境の状態である。ここで、tは、エピソードにおける特定の時刻を表すエピソード時刻である。1つのエピソードは、そのエピソードの時間的長さを表すエピソード長がTである場合、エピソード時刻は時刻t=1~Tを含む。また、観測otは、時刻tにおいて得られる観測である。
【0028】
次に、データ収集部101は、エキスパート20に観測otを入力して、エキスパート20から観測otに対する行動atを取得する。行動atは、時刻tにおいてエキスパート20が生成した行動である。
【0029】
次に、データ収集部101は、データ取得用環境11に行動atを入力する。そして、データ収集部101は、疎な報酬関数から得られる報酬rt=rsparse(ot,at)を取得する。ここで、報酬rtは、時刻tにおいて得られた報酬である。また、rsparseは、与えられた疎な報酬関数を表す。
【0030】
また、データ収集部101は、K種類のイベント量et
k(k=1,・・・,K)を取得する。イベント量とは、データ取得用環境11において発生した事象に含まれる変化の量である。イベント量et
kは、時刻tにおいて得られたk番目のイベント量である。この場合、イベントの種類は、K種類存在する。いかでは、K種類のインベントそれぞれを、k番目のイベントと呼ぶ。イベントは、1回の発生を1とカウントするような離散的な情報であってもよいし、1回の発生に対してその大きさが与えられるような連続的な情報であってもよい。
【0031】
例えば、データ取得用環境11が将棋の指し手の機械学習モデルの場合、データ取得用環境11における観測空間は、盤面の状態である。また、データ取得用環境11における行動空間は、次に差す手である。この場合、データ収集部101は、ルールベースエージェント同士を対戦させて、発生したイベントの種類及び各イベントにおけるイベントの量の情報を収集することができる。ここでの、イベントの種類には、「歩の前進」等といった各種類の駒の移動、「相手の角の取得」といった相手駒の取得、「持ち駒である桂馬の使用」といった持ち駒の使用等が含まれる。また、イベント量は、各種類のイベントが発生した回数や数であり、例えば、「香車の前進」が5マスや「相手の金の取得」が2つ等といった情報である。
【0032】
次に、データ収集部101は、次の数式(1)に対して算出した報酬を用いて、1回のエピソードが終了するまでに得られたエージェントの収益を算出する。収益は、エージェントが取得した全ての報酬を合計した累積報酬である。ここで、収益Riは、i番目のエピソードにおける累積報酬である。
【0033】
【0034】
また、データ収集部101は、次の数式(2)に対して算出した各種類のイベントの量を用いて1回のエピソードで発生したイベント総和を算出する。イベント総和はそれぞれのイベントについてのイベント量の合計である。ここで、イベント総和Et
kは、i番目のエピソードにおけるk番目のイベントの量の総和である。以下では、iをエピソード番号と呼ぶ場合がある。
【0035】
【0036】
そして、データ収集部101は、算出した1回のエピソードにおける収益及びイベント総和を記憶する。データ収集部101は、以上の収益及びイベント総和の算出及び記憶を、予め決められたエピソードの回数である所定数繰り返す。以上により、データ収集部101は、データ取得用環境11においてエキスパート20の行動による収益及びイベント総和を、決められた回数のエピソード分収集する。
【0037】
以上のように、データ収集部101は、エピソード毎に、所定環境内で行動に基づき発生した事象の種類及び種類毎の事象の量、並びに、疎な報酬関数に基づきエキスパート20が最終的に獲得した収益の情報を収集する。ここで、データ取得用環境11が、所定環境の一例にあたる。また、データ取得用環境11は、「第1環境」の一例にあたる。
【0038】
報酬計算部102は、データ収集部101により収集された収益及びイベント総和を用いて密な報酬関数を生成する。報酬計算部102は、相関係数計算部121、正規化部122及び報酬関数生成部123を有する。
【0039】
相関係数計算部121は、所定数分のエピソード毎の収益及びイベント総和をデータ収集部101から取得する。次に、相関係数計算部121は、イベントの種類毎のイベント総和とそれに対する収益の相関係数c(k)を計算する。相関係数c(k)は、次の数式(3)で一般的に示される。ここで、<a,b>は、aとbとの相関係数を表す。
【0040】
【0041】
例えば、相関係数計算部121は、次の数式(4)で示されるピアソンの積率相関係数を用いて相関係数c(k)を計算することができる。ここで、c(k)は、k番目のイベントに対する報酬係数を表す。この場合、(X,Y)=(Ri,Et
k)である。ここで、σは標準偏差を表し、covは共分散を表す。
【0042】
【0043】
正規化部122は、各イベントに対する相関係数を相関係数計算部121から取得する。そして、正規化部122は、次の数式(5)を用いて相関係数を正規化する。これにより、正規化部122は、報酬が元の疎な報酬を上回らないように調整して、コブラ効果を防止する。ここで、c’(k)は、k番目のイベントに対する正規化された報酬係数を表す。
【0044】
【0045】
報酬関数生成部123は、正規化部122から正規化された報酬係数を取得する。そして、報酬関数生成部123は、次の数式(6)を用いて報酬関数を生成する。ここで、rdense(k,a)は、k番目のイベントがイベント量としてa発生した場合に付与する報酬を表す整形された密な報酬関数である。
【0046】
【0047】
ここで、数式(5)で与えられる報酬の中には微小な報酬も含まれる。微小な報酬にも学習を促進する効果が存在するが、報酬の値が小さすぎる場合、単なる相関関数を用いた場合には丸められてしまうことが考えられる。そこで、報酬関数生成部123は、数式(6)で示すように報酬がε以上の絶対値になるようにクリッピングして、密な相関関数を生成する。報酬関数生成部123により生成される報酬関数は、微小だが有益な情報を丸めずに活かすことができる。その後、報酬関数生成部123は、生成した報酬関数を学習用環境12に設定する。
【0048】
数式(6)は、エキスパート20が高い成果を出したエピソードにおいて特に多く発生したイベントは、学習にとって有益なイベントである可能性が高いという考え方を基に設計されている。すなわち、数式(6)では、疎な報酬のみが定義されているデータ取得用環境11においてエキスパート20が大きな収益を獲得した際にエキスパート20が多く経験した事象には大きな報酬が割り当てられる。逆に、数式(6)では、エキスパート20が小さな収益を獲得した際にエキスパート20が多く経験した事象には小さな報酬が割り当てられる。
【0049】
学習部103は、学習用環境12を有する。学習用環境12は、エージェントの学習を行うための環境である。学習用環境12には、報酬計算部102の報酬関数生成部123により生成された密な報酬関数が設定される。この学習用環境12が、「第2環境」の一例にあたる。また、学習部103は、強化学習実行部131及びパラメータ記憶部132を有する。
【0050】
強化学習実行部131は、学習用環境12を観測して、観測結果である学習用環境12の状態の情報をエージェントに与えて行動を決定させる。そして、強化学習実行部131は、エージェントが決定した行動を学習用環境12に入力して、その行動に対する報酬を学習用環境12から取得する。強化学習実行部131は、観測、行動の決定及び報酬の取得を繰り返す。そして、強化学習実行部131は、エージェントが選択した行動により報酬がなるべく大きくなるようにパラメータ15を調整する。そして、学習が完了すると、強化学習実行部131は、学習により得られた報酬をなるべく大きくするパラメータ15をパラメータ記憶部132に記憶させる。エージェントは、パラメータ記憶部132に記憶されたパラメータ15を用いて行動を決定することで、最適な行動に近い行動を選択することが可能となる。
【0051】
図3は、実施例に係る機械学習装置による報酬関数生成処理の概要を示すフローチャートである。次に、
図3を参照して、実施例に係る機械学習装置100による報酬関数生成処理の流を説明する。
【0052】
データ収集部101は、データ取得用環境11を用いてデータ収集処理を実行して、決められた回数のエピソード分のエキスパート20の行動による収益及びイベント総和を収集する(ステップS1)。
【0053】
相関係数計算部121は、決められた回数のエピソード分の収益及びイベント総和をデータ収集部101から取得する。次に、相関係数計算部121は、数式(3)で示されるイベントの種類毎のイベント総和とそれに対する疎な報酬関数により得られた収益の相関係数c(k)を計算する(ステップS2)。
【0054】
正規化部122は、イベントの種類毎の相関係数を相関係数計算部121から取得する。そして、正規化部122は、数式(5)を用いて相関係数を正規化する(ステップS3)。
【0055】
報酬関数生成部123は、正規化部122から正規化された報酬係数を取得する。そして、報酬関数生成部123は、数式(6)を用いて密な報酬関数を生成する(ステップS4)。その後、報酬関数生成部123は、生成した密な報酬関数を学習用環境12に設定する。
【0056】
強化学習実行部131は、密な報酬関数が設定された学習用環境12を用いてエージェントの学習を実行する(ステップS5)。その後、強化学習実行部131は、学習により調整されたパラメータをパラメータ記憶部132に格納する。
【0057】
図4は、データ収集処理のフローチャートである。
図4のフローで示した各処理は、
図3のステップS1で実行される処理の一例にあたる。
【0058】
データ収集部101は、データ取得用環境11に疎な報酬関数を設定する(ステップS101)。
【0059】
次に、データ収集部101は、エピソード番号iを初期化して1に設定する(ステップS102)。ここでは、予め決められた所定数であるエピソードの総数はIである。
【0060】
次に、データ収集部101は、データ取得用環境11を初期化する(ステップS103)。
【0061】
次に、データ収集部101は、時刻tを初期化して1に設定する(ステップS104)。ここで、予め決められたエピソード長はTである。
【0062】
次に、データ収集部101は、データ取得用環境11から観測otを取得する(ステップS105)。
【0063】
次に、データ収集部101は、エキスパート20に観測otを入力して、エキスパート20から観測otに対する行動atを取得する(ステップS106)。
【0064】
次に、データ収集部101は、データ取得用環境11に行動atを入力する(ステップS107)。
【0065】
そして、データ収集部101は、疎な報酬関数から得られる行動atに対する報酬rt=rsparse(ot,at)をデータ取得用環境11から取得する。また、データ収集部101は、K種類のイベント量et
k(k=1,・・・,K)をデータ取得用環境11から取得する(ステップS108)。
【0066】
次に、データ収集部101は、数式(1)に対して算出した報酬を合計して、エピソード番号iのエピソードが終了するまでに得られたエージェントの収益を算出する。また、データ収集部101は、数式(2)に対して算出したイベントの種類毎のイベント量を合計してエピソード番号iのエピソードで発生したイベントの種類毎のイベント総和を算出する(ステップS109)。
【0067】
そして、データ収集部101は、算出した1回のエピソードにおける収益及びイベント総和を記憶する(ステップS110)。
【0068】
次に、データ収集部101は、tがTより小さいか否かを判定する(ステップS111)。tがTより小さい場合(ステップS111:肯定)、データ収集部101は、tを1つインクリメントする(ステップS112)。その後、データ収集部101は、ステップS105へ戻る。
【0069】
これに対して、tがTに達している場合(ステップS111:否定)、データ収集部101は、iがIより小さいか否かを判定する(ステップS113)。iがIより小さい場合(ステップS113:肯定)、データ収集部101は、iを1つインクリメントする(ステップS114)。その後、データ収集部101は、ステップS103へ戻る。これに対してiがIに達している場合(ステップS113:否定)、データ収集部101は、データ収集処理を終了する。
【0070】
次に、報酬関数生成部123が生成した密な報酬関数が設定された学習用環境12を用いて強化学習実行部131により実行される強化機械学習処理の一例について説明する。
図5は、同期分散強化学習処理のフローチャートである。例えば、強化学習実行部131は、
図5に示す同期分散強化学習処理を実行することでエージェントの学習を行う。次に、
図5を参照して、強化学習実行部131による同期分散強化学習処理の流れを説明する。
【0071】
強化学習実行部131は、同期分散強化学習の学習処理プロセスを起動させ、エージェントの行動を決定する機械学習モデルのパラメータを初期化する(ステップS201)。
【0072】
次に、強化学習実行部131は、学習用環境12に基づいて所定数の環境を構築して所定数の探索処理プロセスを起動させる(ステップS202)。例えば、学習用環境12は、複製されて探索プロセス毎にそれぞれが割り当てられる。
【0073】
次に、強化学習実行部131は、分散探索処理を実行する(ステップS203)。このステップS203の分散探索処理の実行では、それぞれの探索処理プロセスが、探索処理を実行して経験データを生成する(ステップS231)。
【0074】
次に、強化学習実行部131は、所定数の探索プロセスのそれぞれから取得した経験データを用いて、同期分散強化学習の学習処理を実行する(ステップS204)。
【0075】
強化学習実行部131は、例えば、kのエポック数の学習を完了したかなどの予め決められた同期学習終了条件を満たしたか否かを判定する(ステップS205)。同期学習終了条件を満たしていない場合(ステップS205:否定)、強化学習実行部131は、ステップS203へ戻る。これに対して、同期学習終了条件を満たした場合(ステップS205:肯定)、強化学習実行部131は、学習処理を終了する。
【0076】
図6は、同期分散強化学習処理における探索処理のフローチャートである。
図6のフローで実行される各処理は、
図5のステップS231で実行される処理の一例にあたる。次に、
図6を参照して、同期分散強化学習処理における強化学習実行部131により動作する各探索処理プロセスによる探索処理の流れを説明する。
【0077】
次に、探索処理プロセスは、エージェントの行動を決定する機械学習モデルについて、最新のパラメータで、保有するパラメータを更新する(ステップS301)。
【0078】
次に、探索処理プロセスは、割り当てられた学習用環境12の状態をリセットする(ステップS302)。
【0079】
次に、探索処理プロセスは、学習用環境12の観測の情報を取得する(ステップS303)。
【0080】
次に、探索処理プロセスは、保持する機械学習モデルを用いて学習用環境12におけるエージェントによる行動を選択し、学習用環境12に入力して、選択した行動をエージェントに実行させる(ステップS304)。
【0081】
次に、探索処理プロセスは、選択した行動に対する密な報酬関数を用いて算出された報酬を学習用環境12から取得する(ステップS305)。
【0082】
そして、探索処理プロセスは、学習用環境12の環境データ、行動前の観測データ、行動データ及び報酬データを含む経験データを強化学習実行部131が有するリプレイバッファに追加する(ステップS306)。
【0083】
次に、探索処理プロセスは、環境が終了状態に到達したか否かを判定する(ステップS307)。環境が終了状態に未到達の場合(ステップS307:否定)、探索処理プロセスは、ステップS303へ戻る。
【0084】
これに対して、環境が終了状態に到達した場合(ステップS307:肯定)、探索処理プロセスは、所定回数の探索が終了したか否かを判定する(ステップS308)。所定回数の探索が終了していない場合(ステップS308:否定)、探索処理は、ステップS302へ戻る。
【0085】
これに対して、所定回数の探索が終了した場合(ステップS308:肯定)、探索処理プロセスは、探索処理を終了する。
【0086】
図7は、同期分散強化学習処理における学習処理のフローチャートである。
図7のフローで実行される各処理は、
図5のステップS204で実行される処理の一例にあたる。次に、
図7を参照して、同期分散強化学習処理における強化学習実行部131による学習処理の流れを説明する。
【0087】
強化学習実行部131は、探索処理の終了の通知を各探索処理プロセスから受ける。そして、強化学習実行部131は、探索処理プロセスが起動された全てのデータ生成部200で生成された経験データをリプレイバッファから取得する(ステップS401)。
【0088】
次に、強化学習実行部131は、エージェントの行動を決定する機械学習モデルにおける報酬の合計を最大にするための価値関数を計算する(ステップS402)。
【0089】
次に、強化学習実行部131は、価値関数の計算で得られた報酬の累積値を利用して、機械学習モデルにおける最適な行動の方策を得るための方策勾配を計算する(ステップS403)。
【0090】
そして、強化学習実行部131は、計算した方策勾配にしたがって機械学習モデルのパラメータを更新する。その後、強化学習実行部131は、更新したパラメータでパラメータバッファに格納されたパラメータを更新する(ステップS404)。
【0091】
図8は、非同期分散強化学習処理のフローチャートである。
図8に示したフローで実行される処理は、強化学習実行部131が実行する強化機械学習処理の他の例にあたる。次に、
図8を参照して、本実施例に係る強化学習実行部131による非同期分散強化学習処理の流れを説明する。
【0092】
強化学習実行部131は、非同期分散強化学習の学習処理プロセスを起動させ、エージェントの行動を決定する機械学習モデルのパラメータを初期化する(ステップS501)。
【0093】
次に、強化学習実行部131は、学習用環境12に基づいて所定数の環境を構築して所定数の探索処理プロセスを起動させる(ステップS502)。
【0094】
次に、強化学習実行部131は、非同期学習処理を実行する(ステップS503)。このステップS503の非同期学習処理の実行では、学習処理プロセスによる学習処理の実行(ステップS531)及び所定数の探索処理プロセスによる探索処理の実行(ステップS532)が行われる。
【0095】
その後、強化学習実行部131は、学習が最終終了条件を満たしたか否かを判定する(ステップS504)。最終終了条件を満たしていない場合(ステップS504:否定)、強化学習実行部131は、ステップS503へ戻る。これに対して、最終終了条件を満たした場合(ステップS504:肯定)、強化学習実行部131は、非同期分散強化学習の学習処理を終了する。
【0096】
ステップS531における学習処理及びステップS532における探索処理では、
図6及び7の各フローで示した探索処理及び学習処理と同等の処理が実行される。ただし、非同期学習では、学習処理により更新されてリプレイバッファに格納された経験データを用いて目的関数が計算されて学習が進められる。
【0097】
強化学習実行部131は、エージェントの行動を決定するための機械学習モデルの学習において以下の様な目的関数を用いることが可能である。例えば、強化学習実行部131は、次の数式(7)を用いて価値反復法により機械学習モデルに学習させることができる。
【0098】
【0099】
ここで、Dは、学習に用いる経験の集合である。otは、時刻tにおける観測である。atは、時刻tにおいて実際に取った行動である。rtは、時刻tにおいて行動atを取った結果として与えられた報酬である。o(t+1)は、時刻tにおいて行動atを取った結果遷移した次の観測である。a(t+1)は、時刻t+1において取るべき最適な行動である。γは、割引率である。具体的には、γ=1のとき長期利益が最も重視され、γ=1のとき短期利益が最も重視される。Qθは、パラメータθで表現された行動価値関数である。「| |2」は、二乗ノルムである。
【0100】
この場合、目的関数LTDは、誤差を表す。すなわち、強化学習実行部131は、LTDをなるべく小さくするように機械学習モデルに学習させる。
【0101】
他にも、強化学習実行部131は、次の数式(8)を用いてActor-Critic型の方策勾配法により機械学習モデルに学習させることができる。
【0102】
【0103】
ここで、Dは、学習に用いる経験の集合である。otは、時刻tにおける観測である。atは、時刻tにおいて実際に取った行動である。πθは、パラメータθで表現された方策関数である。また、βは、重み付け係数である。この場合、LACが目的関数となる。
【0104】
この場合、LPGは収益の期待値を表す。また、目的関数LTDは誤差を表す。すなわち、強化学習実行部131は、LPGをなるべく大きくし、且つ、LTDをなるべく小さくするように機械学習モデルに学習させる。
【0105】
ここで、パラメータθを方策関数πと行動価値関数Qとで共通にすることが多いが、強化学習実行部131は、方策関数πと行動価値関数Qとを完全に分離して異なるDeep Neural Networkとして学習を実行してもよい。その場合、強化学習実行部131は、方策関数πはLPGで更新し、行動価値関数QはLTDで更新する。
【0106】
以上に説明したように、本実施例に係る機械学習システム及び機械学習装置は、データ取得用環境においてエキスパートにより行動を選択させて、疎な報酬関数に基づいた報酬を得ることを所定数のエピソード繰りかえす。そして、機械学習システム及び機械学習装置は、各エピソードにおいてデータ取得用環境内で発生したイベントと、最終的にエキスパートが疎な報酬関数により獲得した収益の情報を収集し、イベントの量と収益の相関係数を計算する。その後、機械学習システム及び機械学習装置は、算出した相関係数に対し、正規化及びクリッピングを施して密な報酬関数を生成する。そして、機械学習システム及び機械学習装置は、生成した密な報酬関数を学習用環境に設定してエージェントの行動を決定する機械学習モデルを学習させる。
【0107】
これにより、報酬の設計を自動化することができる。また、強化学習に関する専門的な知識がない者でも準最適な報酬を設計できる。また、DNNの学習を用いずに報酬関数を生成するため、生成される報酬関数は人間による解釈可能性が高く、且つ、カスタマイズも容易である。さらに、Reward Shapingにおける追加の機械学習モデルの学習を行わなくても良く、適用のコストもReward Shapingと比べ小さく抑えることが可能である。
【0108】
(変形例)
上述した実施例では、相関係数計算部121は、いわゆる普通の相関係数であるピアソンの積率相関係数を用いて各イベントの量の和とそれに対する収益の相関係数を算出したが、対象とする環境の特性に応じて他の相関係数を用いることも可能である。
【0109】
例えば、相関係数計算部121は、次の数式(9)で示されるスピアマンの順位相関係数を用いて相関係数c(k)を計算することができる。
【0110】
【0111】
ここで、Dは、対応するXとYとの値の順位の差を表す。この場合、(X,Y)=(Ri,Et
k)である。また、Nは値のペアの数を表す。例えば、与えられた疎な報酬関数で示される大小関係が、順序尺度の場合には、相関係数計算部121は、このスピアマンの順位相関係数を用いて相関係数c(k)を計算することが好ましい。順序尺度とは、順番には意味があるが、倍率には意味がない尺度を表す。例えば、順序尺度では、報酬が「+1」の第1条件と報酬が「+2」の第2条件とでは、第2条件の方が第1条件よりも順位が上であるが、第2条件が第1条件よりも2倍よいとは言えない。
【0112】
他にも、相関係数計算部121は、次の数式(10)で示される偏相関係数を用いて相関係数c(k)を計算することができる。ここで、ρby-aは、因子aの影響を除いた、bとyの相関を表す。
【0113】
【0114】
他にも、相関係数計算部121は、線型回帰の係数を用いて相関係数c(k)を計算することができる。この場合、相関係数計算部121は、例えば、最小二乗法、ラッソ回帰、リッジ回帰等の様々な計算方法を用いることができる。また、相関係数計算部121は、ロジスティック回帰等の発展型を使用することも可能である。
【0115】
以上に説明したように、相関係数の算出には、対象とする環境に応じた相関係数を用いて、各イベントの量の和とそれに対する収益の相関係数を算出する事ができる。このように、対象とする環境に応じた相関係数を用いることで、より適切な相関係数を算出することができ、より報酬の設計を適切に行うことが可能となる。
【0116】
(ハードウェア構成)
図9は、コンピュータのハードウェア構成図である。次に、
図9を参照して、機械学習装置100の各機能を実現するためのハードウェア構成の一例について説明する。機械学習装置100の各部の機能は、
図9に示すコンピュータ90で実現可能である。
【0117】
図7に示すように、コンピュータ90は、例えば、CPU(Central Processing Unit)91、メモリ92、ハードディスク93、ネットワークインタフェース94を有する。CPU91は、バスを介して、メモリ92、ハードディスク93及びネットワークインタフェース94に接続される。
【0118】
ネットワークインタフェース94は、コンピュータ90と外部装置との間の通信のためのインタフェースである。ネットワークインタフェース94は、例えば、機械学習装置100とルールベースエージェントであるエキスパート20との間の通信を中継する。
【0119】
ハードディスク93は、補助記憶装置である。ハードディスク93は、
図2に例示したデータ取得用環境11及び学習用環境12を格納してもよい。また、ハードディスク93は、
図2に例示した、データ収集部101、報酬計算部102及び学習部103の機能を実現するためのプログラムを含む核種プログラムを格納する。
【0120】
メモリ92は、主記憶装置である。メモリ92は、例えば、DRAM(Dynamic Random Access Memory)を用いることができる。
【0121】
CPU91は、ハードディスク93から各種プログラムを読み出して、メモリ92に展開して実行する。これにより、CPU91は、
図2に例示した、デーt収集部101、報酬計算部102及び学習部103の機能を実現する。
【0122】
また、
図1に示した機械学習システム1の場合、データ収集装置2、報酬計算装置3、環境提供装置4及び学習装置5のそれぞれが
図9に示したコンピュータ90により実現される。例えば、報酬計算アルゴリズム13や強化学習アルゴリズム14は、CPU91により動作する。