1

私は C++ で SARSA(lambda) モデルを実装して、DP モデルのいくつかの制限 (DP モデルが必要とする膨大な時間とスペース) を克服しています。 )、スペースが少ないほど、モデルに複雑さを加えることができます。

明示的な遷移確率があり、それらは違いを生みます。では、それらを SARSA モデルにどのように組み込むべきでしょうか?

確率そのものに従って次の状態を選択するだけですか?どうやら SARSA モデルは、確率を使用することを正確に期待していないようです。または、間違った本を読んでいる可能性があります。

PS-アルゴリズムが適切に実装されているかどうかを知る方法はありますか? SARSA との初めての作業。

4

2 に答える 2

2

動的計画法 (DP) と強化学習 (RL) の基本的な違いは、前者は環境のダイナミクスが既知 (つまりモデル) であると仮定しているのに対し、後者はプロセスから取得したデータから直接学習できることです。サンプルのセット、プロセス軌跡のセット、または単一の軌跡。この機能により、RL メソッドは、モデルの構築が困難またはコストがかかる場合に役立ちます。ただし、両方のアプローチが同じ動作原理を共有していることに注意する必要があります ( Sutton の著書では Generalized Policy Iteration と呼ばれています)。

それらが似ていることを考えると、両方のアプローチにはいくつかの制限、つまり次元の呪いも共有されています。Busoniu の本から(第 3 章は無料で、おそらくあなたの目的に役立つでしょう):

DP および RL フィールドの中心的な課題は、元の形式 (つまり、表形式) では、DP および RL アルゴリズムを一般的な問題に実装できないことです。それらは、状態空間とアクション空間が有限数の離散要素で構成される場合にのみ実装できます。これは、(他の理由の中でも)値関数またはポリシーの正確な表現が必要なためです。これは、無限数の要素を持つ状態空間では一般に不可能です。 (または、状態の数が非常に多い場合はコストがかかりすぎます)。

状態とアクションが有限数の値を取る場合でも、値関数とポリシーを表すコストは、状態変数 (および Q 関数の場合はアクション変数) の数に応じて指数関数的に増加します。この問題は次元の呪いと呼ばれ、多くの状態変数とアクション変数がある場合、従来の DP および RL アルゴリズムは実用的ではなくなります。これらの問題に対処するには、値関数および/またはポリシーを近似的に表す従来のアルゴリズムのバージョンを使用する必要があります。実際に関心のある問題のほとんどは、大規模または連続的な状態空間とアクション空間を持っているため、DP と RL では近似が不可欠です。

あなたの場合、ある種の関数近似を使用する必要があることは明らかです。ただし、遷移確率行列がわかっている場合は、DP または RL に基づく方法を選択できます。RL の場合、遷移は単純に、指定されたアクションの次の状態を計算するために使用されます。

DP と RL のどちらを使用するのが良いですか? 実際には答えはわかりません。最適な方法は、特定の問題によって異なる可能性があります。直感的には、計画された方法 (DP) で一連の状態をサンプリングする方が安全に思えますが、状態空間の大部分は最適なポリシーを見つけるのに無関係かもしれません。このような場合、一連の軌道 (RL) をサンプリングすることは、計算上より効果的です。いずれにせよ、両方の方法が正しく適用されれば、同様の解決策が得られるはずです。

注: 関数近似を使用する場合、収束特性はより壊れやすく、反復プロセス中に発散することは珍しくありません。特に、近似器が RL と組み合わされた非線形 (人工ニューラル ネットワークなど) の場合です。

于 2016-12-22T17:00:46.030 に答える
0

遷移確率にアクセスできる場合は、Q 値に基づく方法を使用しないことをお勧めします。これには、既に持っている情報を抽出するために追加のサンプリングが必要になります。

常にそうであるとは限りませんが、追加情報がなければmodified policy iteration、問題に対してより適切な方法であると言えます。

于 2016-12-22T15:28:53.687 に答える