集中学習ノート-08 計画と学習

 前回までにモデルベースとモデルフリーという重要な概念を紹介しましたが、モデルベースはある環境モデルの存在に基づいており、そのモデルから状態、行動、報酬の伝達情報を取得することができます。動的計画法など 状態アクションの遷移確率を決定したとき、この時点で、再帰によって値関数の推定値を迅速に取得できます。

Q(s,a)\\ =\sum P(s',r|s,a)(r+V(s'))\\ =\sum P(s',r|s,a)(r+ \合計 \pi (a'|s')Q(s',a'))

値関数の更新プロセスでは、すべての状態とアクションを走査して更新を完了することが 1 つの方法ですが、状態とアクションが多すぎて、一部の状態が目的にまったく役に立たない場合、すべての状態を走査する効率が低下します。更新は非常に低いですが、一方で、各状態の値関数の更新は相互依存しているため、いわゆる計画とは状態更新ステップを合理的に計画することであるため、更新シーケンスもトレーニングの効率に影響します。

そして、環境モデルが完全に未知の場合、環境とのインタラクティブなサンプリングを通じて実際の累積所得を取得し、G_tそれを通じて価値関数を更新する必要があります。この方法はモデルフリーと呼ばれ、MC アルゴリズムと TD アルゴリズムはこれに属しますサンプリングによって学習するクラス。このタイプの方法の利点は、得られる利点が真に公平であることですが、特に実際の環境とのインタラクティブなサンプリングのコストが高い場合、トレーニング速度がモデルベースの方法よりもはるかに遅くなります。

Q_t(s,a)=Q_{t-1}(s,a) + \alpha (G_t(s,a) - Q_{t-1}(s,a))

したがって、このセクションでは、この 2 つの戦略を組み合わせる一般的な方法を紹介します。環境が完全に未知の場合、学習可能な環境モデルを構築することで、一方では実際のサンプリングを通じて環境モデルを学習することもできます。環境モデルはシミュレーション用にサンプリングされ、値関数もシミュレーションのサンプリングを通じて更新できます。

 上図は全体の構造を示したもので、実環境サンプリングを通じて価値関数を直接学習する一方、実環境サンプリングを通じて環境モデルを学習し、その後、実環境サンプリングを通じて間接的に価値関数を学習するというものです。環境モデル。

1.ダイナアルゴリズム

Dyna アルゴリズムは、上記のモデルの最も基本的な実装であり、環境状態の遷移が確率論的ではなく決定論的であることを前提としています。

P(s',r|s,a)=1\text{ または }0

したがって、Dyna アルゴリズムでは、テーブルを使用して、別の決定論的な状態を示す環境モデルを表しますモデル(S,A)=[S',R]

Dyna アルゴリズムでは、トレーニング プロセスを複数の反復に分割し、各反復で実環境のサンプリングが 1 ラウンド実行され、値関数が更新されます。同時に、サンプリング結果に応じて環境モデルが更新され、反復的に実行されます。環境モデルの値関数に従って n 回更新されます。

2.ダイナQ+ 

Dynaアルゴリズムでは、ある状態や行動を学習した後はモデルが変わらない、つまりモデルが更新されたりミスをしたりしないことを前提としていますが、そうなると(f)の間接的な学習が行われます。 Dyna アルゴリズムのプロセス 問題が発生するため、Dyna-Q+ はプロセスにヒューリスティック アルゴリズムを導入します。これは、環境モデルを として表します。モデル(S,A)=[S',R,T]ここで、T は更新時間を表します。価値関数の更新に使用されるR値は、非更新時間が増加するにつれて増加します。これにより、長い間探索されていなかった州の探索が促進されます。

R_t=R+k\sqrt{tT}

3. 優先スイープ

Dyna アルゴリズムでは、実際のサンプリングが完了すると、値関数はほとんど変化しませんが、この時点では値関数は更新されないため、モデルを介してシミュレーション トレーニングを行っても意味がありません。したがって、Prioritized Sweetpingの考え方は、実際のサンプリング後に値関数が変化するかどうかによって、そのモデルをシミュレーショントレーニングに使用する必要があるかどうかを判断します。一方、この状態の影響を受ける他の状態のみが更新の対象となります。

4. 予想されるアップデートとサンプルアップデート 

モデルを使用したシミュレーション トレーニングでは、動的プログラミングで期待される更新を通じて値関数を更新する方法が 2 つあります。

Q(s,a)=\sum p(s',r|s,a)(r + \gamma \sum\pi (a'|s') Q(s',a'))

または、Q ラーニングでサンプリング更新が行われる方法と同様です。

Q_t(s,a)=Q_{t-1}(s,a)+\alpha (R+\lambda \text{ }\underset{a'}{max}\text{ }Q_{t-1}(s ',a')-Q_{t-1}(s,a))

前者に比べ、後者は 1 回の反復での計算量が大幅に少なくなりますが、前者の方が収束速度が速く、後者は複数回の更新が必要です。ただし、状態ダイナミクスが多い場合、計算が少なくなるため、サンプリング更新の全体的な収束速度は速くなります。

5. 軌道サンプリング

サンプリング方法には、on-policy によるサンプリングと直接均一サンプリングの 2 つがあり、on-policy 方式の方がモデルの学習が高速化できることが直感的に感じられますが、一方で州によっては、ミスしてベストポイント獲得に失敗した。

上図は、オンポリシー サンプリングと直接均一サンプリングの効果を比較したものです。まず、オンポリシーの方が、特に状態数が増加した場合に収束が速くなります。また、左図は、分岐数が多い場合 (現在の状態の数が多い場合) を示しています。可能な次の状態の数)、オンポリシーが最適な点に到達できない可能性があります。

6. リアルタイム動的プログラミング

RTDP は、前述のポリシーに基づく軌跡サンプリング手法を通じて、元の DP アルゴリズムの収束速度を高速化します。元の値関数の更新式は次のとおりです。

V(s) =\sum \pi(s|a)\sum P(s',r|s,a)(r+ V(s'))

RTDP の値関数更新式は次のとおりです。

V(s) =\underset{a}{max} \ \sum P(s',r|s,a)(r+ V(s'))

7. モンテカルロ木検索

従来のモンテカルロ法は状態アクション空間全体を横断する必要があり、非常に非効率的であり、特に状態空間が非常に大きい場合、実装はさらに困難になります。したがって、ツリー検索の方法は、過去の状態へのアクセスパスをツリー構造に保存し、各状態をツリー上のノードとし、あるルートノードから次の状態にアクセスすることで、多数のアクセスを回避する方法です。無効な状態の。

モンテカルロ ツリーの特定の状態ノードには 3 つの状況があると仮定します。

  • エンドポイント: ノードはエンドポイントです
  • 中間ノード: ノードには後継ノードがあり、完全に探索されています。
  • 探索ポイント: ノードには後続ノードがあり、完全には探索されていません

モンテカルロ木検索は特定のルート ノードから開始され、次の 4 つの手順に従って反復されます。

  1. select: ルート ノードから開始して、下方向に 1 つずつ探索します。中間ノードに遭遇した場合は、終点に到達する (パス状態全体の値関数を更新する) か探索に遭遇するまで、ツリー ポリシーに従って子ノードを選択します。点
  2. 拡張: 探索ポイントに遭遇したら、そこから不完全に探索された子ノードを選択します。

  3. シミュレーション: 十分に調査されていないサブノードは、ロールアウト ポリシーを使用して、エンドポイントに到達するまで後続の状態アクションを選択します。

  4. バックアップ: エンドポイントが検出されると、パス全体の状態アクションの値関数を更新します。

 

おすすめ

転載: blog.csdn.net/tostq/article/details/131007968