【強化学習、モデルベース強化学習】Dyna-Q

恐らく最もシンプルであり、
最初に考案されたモデルベース強化学習であるDyna-Qについて紹介します。

モデルベース強化学習

一言で簡単に言ってしまえば、
モデルベース強化学習とは、
学習エージェントが環境のモデルを保持していて、
そのモデルも利用して学習する強化学習です。

エージェントは環境から実際に得られた経験を用いて、
通常の価値関数を学習(直接的強化学習)し、さらに環境のモデルを学習します。
そして、学習して得られたモデルを用いて価値関数の学習(間接的強化学習)も行います。

Dyna-Q

Dyna-qはモデルベースの強化学習の最もシンプルな手法です。
エージェントは通常のQ学習に加えて環境のモデルを保持しています。
Q学習は以下の記事を参照

【入門】Q学習の解説とpythonでの実装 〜シンプルな迷路問題を例に〜

エージェントは一回の行動によって得られた経験をもとに、
価値関数と環境のモデルを学習。
そしてその後に複数回、環境のモデルを用いて
価値関数の更新を行うシンプルな手法です。
以下にDyna-Qの構成図を示します。

f:id:ttt242242:20190409203506j:plain:w350

アルゴリズム

以下の操作を繰り返す。

  1. 現在の状態s においてQ値\(Q(s, a)\)を基に行動選択(\(\epsilon\)-greedy, softmax行動選択などを用いる。)
  2. 環境から遷移先状態\(s’\)、報酬\(r\)の観測
  3. 得られた経験\(e=\langle s, a, r, s’ \rangle\) を用いて、環境モデルの更新(モデル学習)
  4. 得られた経験\(e\) を用いて、Q値の更新。更新式はQ学習と同様
  5. モデルを用いて学習
    • 任意の回数\(N\)以下の操作を繰り返す
      1. 現在までで得られている状態とその状態で行ったことのある行動を選択
      2. 環境モデルから得られた擬似的な遷移先状態\(\hat{s}’\)と\(\hat{r}\)を観測
      3. \(\langle s,a,\hat{r},\hat{s}’ \rangle\)を使ってQ値を更新。更新式はQ学習と同様

f:id:ttt242242:20190409203526j:plain:w250:h200f:id:ttt242242:20190409203537j:plain:w250:h200

\(\epsilon\)-greedy, softmax行動選択は以下を参照

https://www.tcom242242.net/entry/2017/01/15/163250

https://www.tcom242242.net/entry/2019/03/22/102348

実験

グリッドワールドを用いて、評価を行います。

f:id:ttt242242:20190409203215j:plain:w400

エージェントはスタート地点からGにたどり着くための最短経路を学習する問題です。
エージェントの行動は、上、下、左、右の4択、
状態は座標、
報酬は、Gについたら報酬=100、
壁(黒いマス)に当たったら報酬=-100、
それ以外の地点では報酬=0
とします。

プログラム

プログラムはgithubに挙げました

https://github.com/tocom242242/dyna_q_sample

結果

f:id:ttt242242:20190409200949j:plainN毎の累積報酬の推移

ステップ毎の環境のモデルを用いて学習する回数毎の累積報酬によって比較を行いました。
環境のモデルを用いて学習する回数が多いほど、早い段階で、良い累積報酬に収束していることがわかります。
今回の問題は決定論的な問題ですので、環境のモデルを正確に学習できるので、
環境のモデルを用いてば用いるほど学習が早く進みます。
一方で、環境のモデルを正しく学習できていない場合、
そのモデルを用いるほど学習性能が下がる可能性があるので、注意が必要です。

参考文献

強化学習強化学習

  • 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
  • 出版社/メーカー: 森北出版
  • 発売日: 2000/12/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 5人 クリック: 76回
  • この商品を含むブログ (29件) を見る

その他

用語

参考文献で出てくる用語について整理しておきます。

  • プランニング:保持しているモデルから方策を計算すること
  • モデル学習:環境のモデルを学習すること
  • 直接的強化学習:環境から得られた生の経験を用いて価値関数、方策を改善すること
  • 間接的強化学習:環境のモデルを用いて価値関数と方策を改善すること

コメント

タイトルとURLをコピーしました