IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-148223強化学習プログラム、強化学習方法、および情報処理装置
<>
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図1
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図2
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図3
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図4
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図5
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図6
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図7
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図8
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図9
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図10
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図11
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図12
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図13
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図14
  • 特開-強化学習プログラム、強化学習方法、および情報処理装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024148223
(43)【公開日】2024-10-18
(54)【発明の名称】強化学習プログラム、強化学習方法、および情報処理装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241010BHJP
   G06N 3/092 20230101ALN20241010BHJP
【FI】
G06N20/00
G06N3/092
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023061163
(22)【出願日】2023-04-05
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】石川 菜月
(72)【発明者】
【氏名】檀 隼人
(72)【発明者】
【氏名】大川 佳寛
(72)【発明者】
【氏名】小川 雅俊
(57)【要約】
【課題】強化学習に用いるパラメータの適切な値を容易に取得できるようにする。
【解決手段】情報処理装置10は、複数の候補値ごとの強化学習をモデル2に対して実施する。その際、情報処理装置10は、複数の候補値それぞれを、強化学習の対象となる問題に対応するモデル2に適用する方策の更新前後でモデル2から得られる行動確率分布3a,3bの差の上限とする。次に情報処理装置10は、複数の候補値ごとの強化学習を、所定の指標値に基づいて、報酬の収束を待たずに終了させる。そして情報処理装置10は、所定の指標値に基づいて、複数の候補値から少なくとも1つの候補値を選択する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の候補値それぞれを、強化学習の対象となる問題に対応するモデルに適用する方策の更新前後で前記モデルから得られる行動確率分布の差の上限として、前記複数の候補値ごとの前記強化学習を前記モデルに対して実施し、
前記複数の候補値ごとの前記強化学習を、所定の指標値に基づいて、報酬の収束を待たずに終了させ、
前記所定の指標値に基づいて、前記複数の候補値から少なくとも1つの候補値を選択する、
処理をコンピュータに実行させる強化学習プログラム。
【請求項2】
選択した前記候補値を、前記方策の更新前後で前記モデルから得られる前記行動確率分布の差の上限として、前記報酬が収束するまでの前記強化学習を前記モデルに対して実施する、
処理をコンピュータにさらに実行させる請求項1記載の強化学習プログラム。
【請求項3】
前記複数の候補値ごとの前記強化学習を前記モデルに対して実施する処理では、前記方策の更新前後での前記行動確率分布の差が一の候補値になる更新後の前記方策を近似計算で算出し、更新後の前記方策を前記モデルに適用して前記方策の更新前後での前記行動確率分布の差を計算し、前記行動確率分布の差が前記一の候補値を超える場合には、更新後の前記方策を修正して、修正された前記方策を適用して前記モデルの学習を行い、
前記複数の候補値ごとの前記強化学習を終了させる処理では、前記近似計算で算出した更新後の前記方策が修正される確率を前記指標値とする、
請求項1または2に記載の強化学習プログラム。
【請求項4】
前記複数の候補値ごとの前記強化学習を終了させる処理では、前記モデルに対する直近のN回(Nは自然数)の学習における前記指標値の分散が所定の値以内となったときに、前記強化学習を終了させる、
請求項1または2に記載の強化学習プログラム。
【請求項5】
前記候補値を選択する処理では、前記複数の候補値ごとの前記強化学習の終了時の前記指標値の大きさに基づいて、前記候補値を選択する、
請求項1または2に記載の強化学習プログラム。
【請求項6】
前記候補値を選択する処理では、前記指標値がしきい値より大きい第1の候補値のうちの少なくとも1つを、前記第1の候補値それぞれの値の大きさに基づいて選択する、
請求項1または2に記載の強化学習プログラム。
【請求項7】
複数の候補値それぞれを、強化学習の対象となる問題に対応するモデルに適用する方策の更新前後で前記モデルから得られる行動確率分布の差の上限として、前記複数の候補値ごとの前記強化学習を前記モデルに対して実施し、
前記複数の候補値ごとの前記強化学習を、所定の指標値に基づいて、報酬の収束を待たずに終了させ、
前記所定の指標値に基づいて、前記複数の候補値から少なくとも1つの候補値を選択する、
処理をコンピュータが実行する強化学習方法。
【請求項8】
複数の候補値それぞれを、強化学習の対象となる問題に対応するモデルに適用する方策の更新前後で前記モデルから得られる行動確率分布の差の上限として、前記複数の候補値ごとの前記強化学習を前記モデルに対して実施し、前記複数の候補値ごとの前記強化学習を、所定の指標値に基づいて、報酬の収束を待たずに終了させ、前記所定の指標値に基づいて、前記複数の候補値から少なくとも1つの候補値を選択する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、強化学習プログラム、強化学習方法、および情報処理装置に関する。
【背景技術】
【0002】
機械学習の技術の一つに強化学習がある。強化学習では、ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する。エージェントは行動を選択することで環境から報酬を得る。強化学習では、一連の行動を通じて報酬が最も多く得られるような方策が学習される。強化学習には、例えば満たすべき制約が設けられているものもある。
【0003】
強化学習に関する技術として、例えば学習モデルが有するハイパーパラメータを決定するための計算時間を短縮するハイパーパラメータ決定方法が提案されている。ハイパーパラメータを強化学習の手法を用いて特定するハイパーパラメータ管理装置も提案されている。強化学習システムに組み込むための確率モデルを生成する技術も提案されている。さらにエージェントによって実行されるアクションの選択に使用される方策(policy)ニューラルネットワークの訓練方法も提案されている。
【0004】
制約付きの強化学習に関する技術としては、例えば制約付き方策最適化(CPO:Constrained Policy Optimization)による方策の更新方法が提案されている。CPOでは、学習中も制約を満たすことができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2022-150947号公報
【特許文献2】特開2020-201870号公報
【特許文献3】米国特許出願公開第2020/0218999号明細書
【特許文献4】米国特許出願公開第2020/0244707号明細書
【非特許文献】
【0006】
【非特許文献1】Achiam, J., Held, D., Tamar, A., & Abbeel, P., "Constrained policy optimization", International conference on machine learning, PMLR, 2017 July, volime 70, pp. 22-31
【発明の概要】
【発明が解決しようとする課題】
【0007】
CPOのような方策最適化を行う強化学習では、ハイパーパラメータδが使用される。δは、方策のパラメータ(θ)の更新前後での行動確率分布のKL(Kullback Leibler)距離の最大値である。KL距離は、2つの確率分布の差異を示す値である。KL距離は、カルバック・ライブラー情報量またはカルバック・ライブラー・ダイバージェンスとも呼ばれる。δにより、一回の更新で行動確率分布の変化をどの程度許すかが定義される。
【0008】
δの値が小さすぎると、学習に時間がかかる傾向がある。またδが大きすぎると、報酬が十分に高くならない可能性がある。そこでδを適切な値に設定することが求められる。しかし、問題ごとに適切なδの値は異なり、どの値が良いかは収束するまで学習してみないとわからない。そのため、従来は様々な値のδを用いて、報酬が収束するまでの強化学習を繰り返し実行することとなり、計算コストが過大となっている。
【0009】
1つの側面では、本件は、強化学習に用いるパラメータの適切な値を容易に取得できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、以下の処理をコンピュータに実行させる強化学習プログラムが提供される。
コンピュータは、複数の候補値それぞれを、強化学習の対象となる問題に対応するモデルに適用する方策の更新前後でモデルから得られる行動確率分布の差の上限として、複数の候補値ごとの強化学習をモデルに対して実施する。コンピュータは、複数の候補値ごとの強化学習を、所定の指標値に基づいて、報酬の収束を待たずに終了させる。そしてコンピュータは、所定の指標値に基づいて、複数の候補値から少なくとも1つの候補値を選択する。
【発明の効果】
【0011】
1態様によれば、強化学習に用いるパラメータの適切な値を容易に取得可能となる。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態に係る強化学習方法の一例を示す図である。
図2】コンピュータのハードウェアの一例を示す図である。
図3】KL距離を説明する図である。
図4】δの値ごとのエポック数と報酬の関係の一例を示す図である。
図5】コンピュータが有する強化学習のための機能の一例を示すブロック図である。
図6】モデル生成処理の手順の一例を示すフローチャートである。
図7】δ事前学習処理の手順の一例を示すフローチャートである。
図8】方策更新処理の手順の一例を示すフローチャートである。
図9】強化学習処理の手順の一例を示すフローチャートである。
図10】無線アクセスネットワークにおける基地局のスリープ制御を行うためのモデルの強化学習の一例を示す図である。
図11】δ事前学習処理の結果の一例を示す図である。
図12】δの候補値ごとのPの平均値を示している。グラフ63は、横軸がδの候補値であり、縦軸がPの平均値である。
図13】δの値ごとのエポック数の増加に応じた報酬の変化の一例を示す図である。
図14】δの値ごとの最終的な報酬の一例を示す図である。
図15】無線アクセスネットワークにおける基地局管理システムの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る強化学習方法の一例を示す図である。図1には、強化学習方法を実施する情報処理装置10が示されている。情報処理装置10は、例えば強化学習プログラムを実行することにより、第1の実施の形態に係る強化学習方法を実施することができる。
【0014】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0015】
記憶部11は、強化学習のハイパーパラメータδの候補値「δ1,δ2,・・・」を複数含む候補値群1を記憶する。例えばハイパーパラメータδは、強化学習の問題に対応するモデル2に適用する方策の更新前後でモデル2から得られる行動確率分布3a,3bの差の上限を示す値である。
【0016】
処理部12は、候補値群1に含まれる複数の候補値それぞれについての事前学習をモデル2に対して行う。事前学習は、簡易的な強化学習である。事前学習の際、処理部12は、候補値群1に含まれる複数の候補値それぞれを、モデル2に適用する方策の更新前後でモデル2から得られる行動確率分布3a,3bの差の上限とする。
【0017】
例えば処理部12は、事前学習において、モデル2に適用する方策を変えながら、状態sをモデル2に入力したときの、複数の取り得る行動それぞれの行動確率を示す行動確率分布3a,3bを求める。適用する方策は、例えばパラメータθで表される。
【0018】
処理部12は、1つの方策による学習ごとに、次の学習で使用する方策を求める。例えば処理部12は、行動確率分布3a,3bの差が、適用されている候補値以下となるように、方策のパラメータθの値を近似計算で求める。処理部12は、求めた方策を次回の学習に適用する。すなわち処理部12は、次回の学習では、前回の学習に基づく近似計算により更新された方策をモデル2に適用して学習を行い、方策更新前後での行動確率分布の差を計算する。
【0019】
なお、更新後の方策が近似計算で算出される場合、方策の適用の結果得られる行動確率分布の差が、差の上限値を示す候補値(ハイパーパラメータδの値)を超えてしまうことがある。そこで、処理部12は、行動確率分布の差が、適用されている候補値以下であるという条件を満たしているか否かを判断する。処理部12は、適用されている候補値で示される上限値を超える場合には、近似計算で得られた方策を修正して、修正された方策を次回の学習に適用する。近似計算で得られた方策の修正では、例えば処理部12は、方策を示すパラメータθの更新量を減少させる。このような方策の更新の繰り返しにより、モデル2の学習が行われる。
【0020】
処理部12は、複数の候補値ごとの強化学習を、所定の指標値に基づいて、報酬の収束を待たずに終了させる。指標値は、例えば方策を更新する際に適切な方策を生成する効率に関する値である。適切な方策を生成する効率は、例えば近似計算で算出した方策を修正せずに済む確率Pで表される。すなわち、方策が修正されると修正前の方策で得られた行動確率分布は破棄され、修正後の方策によって行動確率分布が再計算される。このような手戻りの発生により、適切な方策を生成する効率が低下する。
【0021】
例えば処理部12は、学習ごとに得られる指標値(例えば確率P)が変化しなくなったら、複数の候補値それぞれの事前学習を終了する。指標値の変化の度合いは、例えば直近の数回の学習における指標値の分散で表すことができる。例えば処理部12は、モデル2に対する直近のN回(Nは自然数)の学習における指標値の分散が所定の値以内となったときに、指標値が変化しなくなったと判断し、強化学習を終了させる。
【0022】
さらに処理部12は、上記の指標値に基づいて、複数の候補値から少なくとも1つの候補値を選択する。例えば処理部12は、複数の候補値ごとの強化学習の終了時の指標値の大きさに基づいて候補値を選択する。
【0023】
具体的には処理部12は、指標値が最大となる候補値を選択する。指標値が確率Pの場合、処理部12は、例えば候補値「δ1,δ2,・・・」のうち、対応する確率「P1,P2,・・・」が最大の候補値を選択する。これにより、ハイパーパラメータδの適切な値を示す候補値が選択される。
【0024】
また処理部12は、指標値がしきい値より大きい1以上の候補値のうちの少なくとも1つを、候補値の値の大きさに基づいて選択してもよい。例えば処理部12は、指標値がしきい値より大きい候補値のうちの、値が最も大きい候補値を選択する。候補値(行動確率分布3a,3bの差の上限)が大きいほど、学習1回ごとの方策の変更量も大きくなり、強化学習における報酬が早期に収束する可能性がある。そのため、指標値がしきい値より大きい候補値のうちの値が最も大きい候補値が選択されることで、全体の計算量が削減される。
【0025】
候補値が選択されると、処理部12は、選択した候補値を行動確率分布の差の上限として、報酬が収束するまでの強化学習をモデル2に対して実施する。
このように処理部12は、ハイパーパラメータδの複数の候補値それぞれを適用した強化学習を報酬の収束前に終了させて、所定の指標値に基づいて選択された候補値を適切なハイパーパラメータδの値として選択する。ここで適切なハイパーパラメータδの値とは、最大に近い報酬が得られる値である。
【0026】
複数の候補値それぞれについて簡易な強化学習の実施により、ハイパーパラメータδの適切な値が選択されることにより、報酬が収束するまでの強化学習については、選択されたハイパーパラメータδの値を適用した場合の学習をするだけでよくなる。その結果、強化学習の計算量が低減される。
【0027】
〔第2の実施の形態〕
第2の実施の形態は、制約あり強化学習を実行する際に、KL距離の最大値を示すハイパーパラメータδの適切な値を容易に取得できるコンピュータである。
【0028】
図2は、コンピュータのハードウェアの一例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0029】
メモリ102は、コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0030】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0031】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0032】
GPU104は画像処理を行う演算装置である。GPU104は、グラフィックコントローラの一例である。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0033】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0034】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0035】
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0036】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0037】
コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図2に示したコンピュータ100と同様のハードウェアにより実現することができる。
【0038】
コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またコンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0039】
ここで、強化学習に用いるハイパーパラメータδの適切な値とはどのような値なのかについて、図3図4を参照して説明する。
図3は、KL距離を説明する図である。強化学習では、まずモデル31が用意される。モデル31は、例えばニューラルネットワークである。モデル31には、行動を決定するルールとなる方策が設定される。方策は、パラメータθで表される。パラメータθは、例えばモデル31に含まれるニューロン間の関係を示す複数の重みパラメータである。強化学習では、モデル31に状態sが入力されると、例えば、取り得る複数の行動それぞれについて、パラメータθで表される方策を適用したモデル31を用いて、その行動を実行する確率が計算される。
【0040】
行動ごとの計算確率を示す行動確率分布aは、例えば度数分布図32で表される。度数分布図32の横軸が行動であり、縦軸が各行動の確率である。計算された確率に従って行動が決定されると、その行動に対する報酬が計算される。報酬は、環境に対して望ましい結果が得られるときに与えられる。そして報酬が最大化されるように、モデル31が更新される。
【0041】
更新後のモデル33では、方策のパラメータがθからθ’に更新されている。モデル33に状態sが入力されると、例えば、状態sに対して更新後の方策のパラメータθ’を適用した場合の、取り得る各行動を実行する確率が計算される。行動ごとの計算確率を示す行動確率分布a’は度数分布図34で表される。度数分布図34の横軸が行動であり、縦軸が各行動の確率である。
【0042】
更新後の行動確率分布a’は、更新前の行動確率分布aと異なる分布となる。行動確率分布a’との行動確率分布aとの違いの大きさを表す指標が、KL距離である。以下、方策の更新前後での行動確率分布から求めたKL距離を、実績のKL距離と呼ぶ。
【0043】
方策のパラメータθは、複数の値(たとえば重み値)を有するベクトルで表すことができる。方策のパラメータθを更新する場合、方策のパラメータθの更新方向と更新幅が算出される。すなわち、方策のパラメータθから、算出した更新方向に、算出した更新幅だけ遷移させることで、更新後の方策のパラメータθ’が得られる。
【0044】
CPOでは、方策のパラメータθの更新前後での実績のKL距離の最大値がハイパーパラメータδで指定されている。すなわちδは、1回の更新による行動確率分布の変化をどの程度許容するのかを示す値である。そのためCPOでは、方策のパラメータθの更新方向と更新幅は、実績のKL距離がδ以下となるように決定される。
【0045】
なお、実績のKL距離がδ以下となるような方策のパラメータθの更新方向と更新幅は、近似計算によって求めることができる。近似計算であるため誤差が生じ、更新後の実績のKL距離がδを超える場合もあり得る。その場合には、近似計算で算出した方策のパラメータθの更新幅よりも小さな更新幅に修正して、方策のパラメータθの更新処理がやり直される。
【0046】
δの値は、報酬が収束するまでのエポック数、および収束したときの報酬の値にも影響する。エポック数は、方策の更新回数である。
図4は、δの値ごとのエポック数と報酬の関係の一例を示す図である。図4には、δの値ごとのエポック数と報酬の関係がグラフ35で表されている。グラフ35の横軸はエポック数であり、縦軸は報酬である。グラフ35には、δの値「10-1,10-2,10-3,10-4,10-5」それぞれについて、そのδの値で強化学習を行ったときのエポック数の増加に伴う報酬の変化が折れ線で示されている。
【0047】
例えばδ=10-5の場合、エポック数の増加に伴う報酬の増加量が少ない。そのため、報酬が収束するまでのエポック数が過大となる。なお報酬が収束するとは、例えばエポック数を増加させたときの報酬の増加量がしきい値以下となることである。グラフ35の例では、δ=10-5とすると、エポック数が20000回に達しても報酬は収束していない。
【0048】
例えばδ=10-4としても、エポック数の増加に伴う報酬の増加量はまだ少ない。そのため、グラフ35の例では、δ=10-4とした場合も、δ=10-5と同様に、エポック数が20000回に達しても報酬は収束していない。
【0049】
δ=10-3とすると、エポック数の増加に伴う報酬の増加量が、δ=10-4の場合より多くなる。しかも、グラフ35の例では、δ=10-3とした場合、エポック数が20000回に達する前に報酬が収束している。
【0050】
δ=10-2とすると、エポック数が少ないうちは、エポック数の増加に伴う報酬の増加量が、δ=10-3の場合より多くなる。ただし、δ=10-2の場合、エポック数が4000程度になるとエポック数の増加に伴う報酬の増加量が減少し、エポック数が6000を超えると、報酬の変化がδ=10-3の場合とほぼ同じとなっている。
【0051】
δ=10-1とすると、エポック数が少ないうちは、エポック数の増加に伴う報酬の増加量は、δ=10-2の場合と大きな違いはない。しかし、δ=10-1の場合、エポック数が4000を超えると、エポック数の増加に応じた報酬の増加が止まっている。
【0052】
グラフ35からも分かるように、δの値が小さすぎると報酬が収束するまでに時間がかかるのに対して、δが大きすぎると、報酬が十分に高くならずに収束してしまう可能性がある。グラフ35の例では、δ=10-2またはδ=10-3が適切であることが分かる。
【0053】
このようなδの適切な値は問題ごとに異なる。従来であれば、δの複数の値それぞれについて、報酬が収束するまで学習を進めないと、δの適切な値を判断することができない。そのため、ユーザは、適切なδの値を求めるため、δの値を変えながらコンピュータ100に強化学習を繰り返し実行させることとなる。その結果、計算コストが過大となる。
【0054】
そこで第2の実施の形態に係るコンピュータ100では、事前に短い学習を行って適切なδを選択し、選択したδを用いて本格的な学習(収束まで)を行う。
図5は、コンピュータが有する強化学習のための機能の一例を示すブロック図である。コンピュータ100は、記憶部110、δ学習部120、強化学習部130、および環境シミュレーション部140を有する。
【0055】
記憶部110は、δ候補リスト111と環境定義情報112とを記憶する。δ候補リスト111は、δの候補値のリストである。例えばδ候補リスト111には、「10-1,10-2,・・・」のような値が設定されている。環境定義情報112は、強化学習の問題に応じた環境に関する情報である。例えば無線アクセスネットワークの基地局の省電力化が可能なモデルを制約あり強化学習で求める場合、基地局の性能などの情報が環境定義情報112に設定される。
【0056】
δ学習部120は、δ候補リスト111に示されるδの値それぞれについて、環境シミュレーション部140と連係して簡易的な学習を行う。そしてδ学習部120は、学習結果に基づいて適切なδの値を選択する。ここで簡易的な学習とは、報酬が収束するまで学習を継続するのではなく、所定の条件を満たしたら報酬が収束していなくても学習を打ち切ることである。
【0057】
例えばδ学習部120は、直近のN回の方策更新のうち、実績のKL距離とδの差が所定の範囲におさまる割合をP(Pは実数)とする。例えばPは、「0.9≦(実績のKL距離/δ)≦1.0であった割合」と定義される。なお、実績のKL距離とδとの差が小さいことを示せれば他の定義でもよい。Pは、パラメータθで表される方策の更新により、実績のKL距離がδを超えず、かつ実績のKL距離がδに十分に近い値となる確率を示している。これは、実績のKL距離がδ以下となるような方策のパラメータθの更新方向と更新幅の近似計算の結果を、修正せずに次回のエポックにおける方策のパラメータθとして適用できる確率でもある。Pの値が大きいほど、方策のパラメータθを修正(更新幅の削減)して学習をやり直す頻度が減り、処理が効率的となる。
【0058】
δ学習部120は、候補となるすべてのδについて事前の簡易的な学習から、Pを算出する。例えばδ学習部120は、Pが最大となるδの値を、適切なδの値として選択する。またδ学習部120は、Pがしきい値X(Xは正の実数)以上となる最大のδの値を、適切なδの値として選択する。
【0059】
Pが最大となるδの値を選択した場合、収束までの計算時間が長くなる可能性がある。Pがしきい値X以上となる最大のδの値を選択した場合、Pに求められる最小値をしきい値Xとして設定することで、Xを超えるPを持つδの中から、最大のδ(最も計算時間が短いと予測される)の値が選択される。
【0060】
強化学習部130は、環境シミュレーション部140と連係して、δ学習部120が選択したδの値により、報酬が収束するまで強化学習を実行する。強化学習部130の結果、学習済みのモデルが生成される。
【0061】
環境シミュレーション部140は、環境定義情報112に基づいて、強化学習の問題で定義される環境の状態の変化をシミュレートする。例えば環境シミュレーション部140は、無線アクセスネットワークにおける基地局のスリープ制御(どの基地局をスリープ状態にするのか)に基づいて、各基地局の使用率または消費電力をシミュレートする。環境シミュレーション部140は、シミュレーション結果をδ学習部120または強化学習部130に送信する。
【0062】
なお、図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをプロセッサ101に実行させることで実現することができる。
次に、δの事前学習を伴う強化学習によるモデル生成処理の手順について説明する。
【0063】
図6は、モデル生成処理の手順の一例を示すフローチャートである。以下、図6に示す処理をステップ番号に沿って説明する。
[ステップS101]δ学習部120は、δ候補リスト111からδの値の候補を取得する。
【0064】
[ステップS102]δ学習部120は、δ事前学習処理を行う。δ事前学習処理の詳細は後述する(図7参照)。δ事前学習処理の結果、δの候補値ごとに、方策のパラメータθの初期値を変えて複数回ずつ計算したPの平均値が得られる。各候補値についてPを複数回計算して平均値を採るのは、初期値を生成する際の乱数の影響でPが大きく変動することを抑止するためである。
【0065】
[ステップS103]δ学習部120は、δ事前学習処理の結果に基づいて、δの候補値の中から適切なδの値を選択する。例えばδ学習部120は、Pの平均値が最大のδの値を選択する。またδ学習部120は、Pの平均値がしきい値以上となる最大のδの値を選択してもよい。
【0066】
[ステップS104]強化学習部130は、選択されたδの値に基づいて強化学習処理を行う。強化学習処理の詳細は後述する(図9参照)。
[ステップS105]強化学習部130は、強化学習によって生成されたモデルを出力する。生成されたモデルは、最も報酬が高くなる方策のパラメータθが与えられたモデルである。
【0067】
次に、δ事前学習処理について詳細に説明する。
図7は、δ事前学習処理の手順の一例を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
【0068】
[ステップS111]δ学習部120は、変数iに初期値「1」を設定する。
[ステップS112]δ学習部120は、δ候補リストに設定されているδのi番目の候補値を、δ事前学習で用いるδに設定する。
【0069】
[ステップS113]δ学習部120は、変数jに初期値「1」を設定する。
[ステップS114]δ学習部120は、方策のパラメータθ(複数のパラメータ値の集合)の初期設定を行う。例えばδ学習部120は、複数の乱数を生成し、生成した乱数を方策のパラメータθの初期値として設定する。
【0070】
[ステップS115]δ学習部120は、パラメータθで表される方策を適用したモデルに従って、取り得る行動それぞれが実施される確率を示す行動確率を算出する。
[ステップS116]δ学習部120は、方策を更新する。方策更新処理の手順は後述する(図8参照)。方策は、更新前後での行動確率分布間のKL距離がハイパーパラメータδ以下となるように更新される。方策更新処理の結果として、実績のKL距離と、更新後のパラメータθとが得られる。
【0071】
[ステップS117]δ学習部120は、過去N回の方策更新で得られた実績のKL距離についてのP(実績のKL距離とδの差が所定の範囲におさまる割合)を計算する。そしてδ学習部120は、δのi番目の候補値についての方策更新ごとに得られたPの分散を計算する。
【0072】
[ステップS118]δ学習部120は、Pの分散が誤差e(eは正の実数)以内(Pの分散≦e)のエポックがnエポック(nは自然数)続くという条件を満たすか否かを判断する。δ学習部120は、条件が満たされる場合、処理をステップS119に進める。δ学習部120は、条件が満たされない場合、処理をステップS116に進める。
【0073】
[ステップS119]δ学習部120は、変数jの値がr(rは自然数)と等しいか否かを判断する。δ学習部120は、変数jの値がrと等しい場合、処理をステップS121に進める。またδ学習部120は、変数jの値がrに満たない場合、処理をステップS120に進める。
【0074】
[ステップS120]δ学習部120は、変数jに1を加算する(j=j+1)。その後、δ学習部120は処理をステップS114に進める。
[ステップS121]δ学習部120は、ステップS114~S118の処理のr回の繰り返しによって求められたr個のP(ステップS118の条件を満たしたときのP)の平均値を算出する。
【0075】
[ステップS122]δ学習部120は、変数iとδの候補数が等しいか否かを判断する。δ学習部120は、変数iとδの候補数が等しい場合、δ事前学習処理を終了する。またδ学習部120は、変数iがδの候補数に満たない場合、処理をステップS123に進める。
【0076】
[ステップS123]δ学習部120は、変数iに1を加算する(i=i+1)。その後、δ学習部120は、処理をステップS112に進める。
このようにして、δ事前学習処理によって、δの候補値ごとのPの平均値が算出される。
【0077】
次に、方策更新処理について詳細に説明する。
図8は、方策更新処理の手順の一例を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
【0078】
[ステップS131]δ学習部120は、δに基づいて、方策のパラメータθの更新方向と更新幅とを算出する。例えばδ学習部120は、CPOにより方策のパラメータθを更新する場合、式(1)、式(2)に示す最適化問題を解く。
【0079】
【数1】
【0080】
【数2】
【0081】
πは、方策を示す。方策πは、例えば状態sが与えられたときの各行動aの確率を出力するモデルである。方策πのモデルとしては、例えばニューラルネットワークを用いることができる。Π_θは、θによりパラメータ化された方策の集合である。J(π)は、方策πを適用したモデルに沿った計算結果についての割引率を考慮した累積報酬である。割引率とは、将来の価値をどれだけ割り引いて考えるのかを示すハイパーパラメータである。Jc(π)は、割引率を考慮した累積コストである。コストは制約に応じて発生する。
【0082】
dは、Jc(π)の上限値である。D(π,πk)は、π,πk間の距離を表す尺度(例えば方策更新前後での行動確率分布間のKL距離)である。δは、D(π,πk)の最大値である。δは、方策更新の際のステップサイズと考えることもできる。
【0083】
式(1)の「arg max J(π)」は、J(π)の最大値を与える引数の集合である。すなわち、割引率を考慮した累積報酬が最大値となるパラメータθ(複数の値を含む)が、更新後の方策πk+1となる。
【0084】
δ学習部120は、上記の最適化問題を、例えば近似計算で解くことができる。例えばδ学習部120は、式(1)について、方策πをパラメータθとし、目的関数J(θ)およびコスト関数Jc(θ)を一次までテイラー展開する。またδ学習部120は、KL距離D(π,πk)を二次までテイラー展開する。その結果、式(1)、式(2)は、以下の式(3)、式(4)となる。
【0085】
【数3】
【0086】
【数4】
【0087】
gは、θ=θkにおけるJ(θ)の勾配である。bはθ=θkにおけるJc(θ)の勾配である。Hは、D(π,πk)のヘッセ行列である。ここで式(3)の最適化問題の双対問題として式(5)が考えられる。
【0088】
【数5】
【0089】
式(5)において「r=gT-1b」、「s=bT-1b」である。λ*,v*を双対問題の解とると、近似的な最適化問題である式(3)の解θ*は式(6)で得られる。
【0090】
【数6】
【0091】
このようにして、KL距離がδ(KL距離の最大値)以下となるような、更新後の方策を示すパラメータθを近似的に求めることができる。例えば、更新後の方策のパラメータθに含まれる複数の値を要素とするベクトルと、更新前の方策のパラメータθに含まれる複数の値を要素とするベクトルとの差分を示すベクトルの向きが、パラメータθの更新方向である。その差分を示すベクトルの長さが、パラメータθの更新幅である。
【0092】
[ステップS132]δ学習部120は、方策を更新する。例えばδ学習部120は、ステップS131で求めた更新後のパラメータθを、更新後の方策とする。
[ステップS133]δ学習部120は、パラメータθによる行動確率を算出する。例えばδ学習部120は、更新後のパラメータθで表される方策を適用したモデルに従って、取り得る行動それぞれが実施される確率を示す行動確率を算出する。
【0093】
[ステップS134]δ学習部120は、更新前後での実績のKL距離を算出する。
[ステップS135]δ学習部120は、実績のKL距離がδ以下か否かを判断する。δ学習部120は、実績のKL距離がδ以下であれば処理をステップS136に進める。またδ学習部120は、実績のKL距離がδを超えていれば、処理をステップS137に進める。
【0094】
[ステップS136]δ学習部120は、所定の制約が守られたか否かを判断する。δ学習部120は、制約が守られた場合、方策更新処理を終了する。またδ学習部120は、制約が守られていなければ、処理をステップS137に進める。
【0095】
[ステップS137]δ学習部120は、パラメータθの更新幅を減少させる。その後、δ学習部120は、処理をステップS132に進める。
このようにして、実績のKL距離がδ以下であり、かつ所定の制約が守られように方策が更新される。
【0096】
次に、強化学習の処理について詳細に説明する。
図9は、強化学習処理の手順の一例を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
【0097】
[ステップS201]強化学習部130は、選択したδの値を設定する。
[ステップS202]強化学習部130は、方策のパラメータθの初期値を設定する。
[ステップS203]強化学習部130は、パラメータθによる行動確率を算出する。
【0098】
[ステップS204]強化学習部130は、方策を更新する。方策更新処理の手順は、図8に示した処理と同様である。
[ステップS205]強化学習部130は、報酬が収束したか否かを判断する。例えば強化学習部130は、方策更新前後での報酬の差が所定のしきい値以下となった場合、報酬が収束したと判断する。強化学習部130は、報酬が収束した場合、強化学習処理を終了する。また強化学習部130は、報酬が収束していなければ、処理をステップS204に進める。
【0099】
このように、強化学習処理では、事前に選択されたδの値を適用して、強化学習が行われる。強化学習は報酬が収束するまで行われるが、δの値の試行錯誤による設定変更は不要であり、計算コストは少なくて済む。
【0100】
次に、具体的な強化学習の問題に対するモデルの生成例について説明する。
図10は、無線アクセスネットワークにおける基地局のスリープ制御を行うためのモデルの強化学習の一例を示す図である。無線アクセスネットワークにおける基地局のスリープ制御では、例えばなるべく消費電力を抑えるように、アクティブにする基地局とスリープにする基地局とを決定する。アクティブの基地局とは、周囲の無線端末と通信可能な状態の基地局である。スリープの基地局とは、周囲の無線端末との通信が不可の状態の基地局である。スリープの基地局は、アクティブの基地局よりも消費電力が少なくて済む。
【0101】
図10には、地図上の基地局の配置が示されている。基地局には、マクロ基地局40とスモール基地局41~48とがある。マクロ基地局40は、スモール基地局41~48よりも広い範囲をカバーすることができる基地局である。スモール基地局41~48は、狭い範囲をカバーする基地局である。図10に示す状態では、マクロ基地局40はアクティブ状態であり、一部のスモール基地局41,42もアクティブ状態であり、その他のスモール基地局43~48はスリープ状態である。
【0102】
例えばトラフィック量が少ない場所、時間帯では、その周辺のスモール基地局をスリープ状態にすることが望ましい。その一方、通信品質確保のため、アクティブ状態の基地局の使用率はある値以下に抑えることが求められる。
【0103】
このようなスリープ制御を行うためのモデルの強化学習においては、状態として、時刻、トラフィック量、1時刻前の基地局の使用率などが用いられる。行動としては、スモール基地局の状態(アクティブかスリープか)が用いられる。報酬は、消費電力が小さいほど高い値となる。制約は、例えばアクティブな基地局の使用率が設定値以下であるという条件である。
【0104】
このような強化学習では以下の各パラメータが用いられる。
・P:N回の方策更新のうち0.9≦(実績のKL距離/δ)≦1.0であった割合
・δの候補値:10-6,10-5,・・・,10-2
・e=1%
・n=100エポック
・r=3回
・δの選択基準:PがX(X=0.60)以上となる最大のδを選択
このような条件で、まずδ事前学習処理が実行される。
【0105】
図11は、δ事前学習処理の結果の一例を示す図である。グラフ61は、δの候補値それぞれについて、エポック数の増加に伴うPの分散の変化を示している。グラフ61は横軸がエポック数であり、縦軸がPの分散である。δの候補値の数は「5」であり、rは「3」であるため、グラフ61には15本の折れ線が示される。各折れ線の終点が、「Pの分散について、誤差1%以内が100エポック続く」という停止条件を満たしたときの、エポック数とPとを示している。
【0106】
グラフ62は、δの候補値ごとの停止条件を満たすまでのエポック数を示している。グラフ62は横軸がエポック数であり、縦軸がδの候補値である。δの候補値の横に示される線の先端の丸印が、そのδの候補値についての事前学習において停止条件を満たしたときのエポック数を示している。
【0107】
図12は、δの候補値ごとのPの平均値を示している。グラフ63は、横軸がδの候補値であり、縦軸がPの平均値である。δの候補値10-2,10-3は、Pの平均値がX以下である。またδの候補値10-4,10-5,10-6は、Pの平均値がX以上である。この場合、Pの平均値がX以上のδの候補値のうち、最も値が大きいのは10-4である。そこで、δの候補値10-4が、強化学習に適応するδの値として選択される。
【0108】
図13は、δの値ごとのエポック数の増加に応じた報酬の変化の一例を示す図である。グラフ64は横軸がエポック数であり、縦軸が報酬である。グラフ64内の複数の折れ線は、それぞれδの値に対応する。各折れ線は、対応するδの値で強化学習を行ったときのエポック数の増加に応じた報酬の変化を示している。図12に示した例で選択されるδの候補値は10-4であるが、グラフ64には、比較対象として、他のδの候補値についても、その値のδで強化学習を実施した結果が示されている。グラフ64に示すように、δの値が10-6のように小さすぎると、報酬がなかなか収束せず、収束までのエポック数が過大となる。
【0109】
図14は、δの値ごとの最終的な報酬の一例を示す図である。グラフ65は横軸がδの値であり、縦軸が報酬である。グラフ65に示されるように、δ=10-2の場合、δの値が大きすぎて、報酬が十分に大きくなる前に収束している。
【0110】
図13図14を参照すると分かるように、δ事前学習を実施することで選択されたδ=10-4による強化学習では、エポック数を抑えつつ最大に近い報酬を得ることができている。
【0111】
また、事前学習を行わずにδの候補値それぞれについて本格的な強化学習(報酬が収束するまでの強化学習)を実施した場合、408,585エポックを要する。それに対して、δ事前学習におけるエポック数と、選択したδ=10-4での本格的な強化学習でのエポック数との合計は、79,558エポックである。これにより、δ事前学習によって、計算量が約1/5となっていることが分かる。
【0112】
なお、このような強化学習によって学習したモデルは、例えば携帯電話会社のような無線アクセスネットワークを運営している組織における無線基地局の管理に有効に利用できる。
【0113】
図15は、無線アクセスネットワークにおける基地局管理システムの一例を示す図である。例えば基地局管理サーバ200は、無線の基地局71~74の動作状態(アクティブかスリープか)を管理している。また基地局管理サーバ200は、各基地局71~74での時刻ごとのトラフィック量、基地局の使用率、消費電力などの情報を取得できる。基地局管理サーバ200は、取得した情報を状態データ81としてコンピュータ100に送信する。
【0114】
コンピュータ100は、環境シミュレーション部140により無線アクセスネットワークの動作を模倣させてδ事前学習を伴う強化学習を実行し、報酬が最大となるような方策が設定されたモデルを生成する。そしてコンピュータ100は、基地局管理サーバ200から取得した状態データ81に示される状態をモデルに入力し、行動(各基地局をアクティブにするのかスリープにするのか)を決定する。コンピュータ100は、決定した行動を示す行動データ82を基地局管理サーバ200に送信する。基地局管理サーバ200は、行動データ82に基づいて、基地局71~74の動作状態を制御する。
【0115】
コンピュータ100は、行動データ82を送信後の基地局71~74の状態を示す状態データ81を基地局管理サーバ200から取得すると、指示した行動に対する報酬を計算する。そしてコンピュータ100は、より報酬が高くなるように、モデルの方策を更新する。これにより、精度のよいモデルが生成され、無線アクセスネットワークにおける省電力化が促進する。
【0116】
〔その他の実施の形態〕
第2の実施の形態では、基地局管理サーバ200と別のコンピュータ100で強化学習を実施しているが、基地局管理サーバ200内で強化学習を実施してもよい。
【0117】
第2の実施の形態では、CPOにおける適切なδの選択手法を示したが、強化学習における他の方策最適化手法における適切なハイパーパラメータの選択手法にも適用できる。例えば、強化学習における方策の更新方法である、信頼領域ポリシー最適化(TRPO:Trust Region Policy Optimization)にも適用可能である。
【0118】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0119】
1 候補値群
2 モデル
3a,3b 行動確率分布
10 情報処理装置
11 記憶部
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15