連続的な作用領域における価値関数近似よりも政策勾配法が好まれるのはなぜですか?


7

値関数近似、特にディープQラーニングでは、最初に各アクションのQ値を予測することを理解しています。ただし、アクションが多い場合、このタスクは簡単ではありません。

ただし、ポリシーの反復では、各アクションに関連するソフトマックスベクトルも出力する必要があります。そのため、これを使用して連続アクションスペースを処理する方法を理解できません。

連続的な作用領域における価値関数近似よりも政策勾配法が好まれるのはなぜですか?

回答:


7

しかし、ポリシーの反復でも、各アクションに関連するソフトマックスベクトルを出力する必要があります

これは厳密には当てはまりません。ソフトマックスベクトルは、ポリシーを表す1つの可能な方法であり、個別のアクションスペースに対して機能します。ここでのポリシーグラディエントアプローチと値関数アプローチの違いは、出力の使用方法にあります。値関数の場合、最大出力を見つけてそれを選択し(おそらく -greedily)、それはそのアクションを実行した場合の推定値になります。ポリシー関数の場合、出力を確率として使用して各アクションを選択しますが、そのアクションを実行することの価値がわかりません。ϵ

だから私はこれがどのように継続的なアクションスペースを扱うために使用できるのか理解していませんか?

方策勾配法では、ポリシーが可能任意のあなたのパラメータの関数ました:θ

  • 確率分布を出力します

  • に関して区別できますθ

したがって、たとえば、ポリシー関数は

πθ(s)=N(μ(s,θ),σ(s,θ))

ここで、およびは、ニューラルネットワークなどで実装する関数です。ネットワークの出力は、状態値指定されたアクション値正規分布の説明です。ポリシーでは、これらの値で定義された正規分布からサンプリングする必要があります(NNはそのサンプリングを行わないため、通常はコードで追加する必要があります)。μσas

連続的な作用領域における価値関数近似よりも政策勾配法が好まれるのはなぜですか?

連続アクション空間で状態/アクションのペアのを推定することは依然として可能ですが、これはアクションの選択に役立ちません。アクション値近似を使用して -greedyポリシーを実装する方法を検討してください。推定される最適なアクションを見つけるために、すべてのアクションの選択肢に対してアクションスペースに対して最適化を実行する必要があります。これは可能ですが、非常に遅く/非効率になる可能性があります(極大値を見つけるリスクもあります)。ϵ

確率分布を放出するポリシーを直接操作すると、これらの分布のサンプリングが容易であれば、この問題を回避できます。したがって、正規分布などのパラメーターを制御するポリシーのようなものがよく表示されます。これは、これらの分布から簡単にサンプリングする方法が知られているためです。


ああ !したがって、実行時にポリシースコア関数は各アクションを実行する確率を与え、最大の確率を持つアクションを選択します|これは間違いです!| その代わりに、ディストリビューションを作成します。正規化された分布のようなもの。したがって、イプシロン貪欲ポリシーと同様に、システムは分布に従ってアクションを実行します。私は正しいですか?
Shamane Siriwardhana 2017年

1
@ShamaneSiriwardhana:はい、あなたのコメントは私には正しいようです。重要なのは、アクション値関数でもポリシー関数でもアクションを直接選択しないため、学習アルゴリズムの一部として追加する必要があります。action-valueについては、すべての可能なアクションを調べ、最大の報酬を見つけて貪欲なアクションを特定する必要があります(ランダムにときどき選択することもあり)。ポリシー関数の場合、分布を出力し、常にその分布からランダムに選択するだけです。p(non-greedy)=ϵ
Neil Slater

あなたはこのしてくださいに答えることができ datascience.stackexchange.com/questions/25259/...
Shamane Siriwardhana

1
@ShamaneSiriwardhana:申し訳ありませんが、その質問にはお答えできません。よくわかりません。私はサイトのすべての質問を監視しています(多忙ではありません。1日に20の質問です)。答えられる質問を探しているので、リンクする必要はありません。あなたの答えが見つかるといいのですが。ところで、スクリーンショットの使用をやめた方がよい場合があります。代わりに、スライドをソースとしてリンクし、スライドのテキストを質問に入力してください。方程式が正しくなるまでには少し時間がかかるかもしれませんが、質問がはるかに良くなります(そして投票される可能性が高くなります)
Neil Slater

3

価値関数メソッド(または批評家メソッド)では、関連する価値関数を推定した後、通常、次のオプションのいずれかを選択してアクションを選択します。

  • アクションを選択するために値関数の最大値を「リッスン」する量を制御する(逆)温度パラメーターを持つボルツマン関数
  • ϵ -greedy:確率(1-)で最大値関数を持つアクションと確率ランダムなアクションを選択します。ϵϵ

ポリシーグラディエント(またはアクターメソッド)では、2つのアプローチがあります。

  1. 確率的ポリシーの勾配(SPG):出力は、アクションに対する確率です。アルゴリズムの場合、出力は、Neilが説明したように、事前に指定された分布(通常はガウス)のパラメーターになります。次に、ボルツマン分布をサンプリングするのと同じ方法でその分布をサンプリングします。
  2. 決定論的ポリシーの勾配(DPG):出力はアクションの値です(速度、高さなど)。

上記から、継続的なアクションスペースが含まれる場合、PGははるかに妥当なソリューションを提供することがはっきりとわかります。

詳細については、修士論文PGメソッド: RiashatのSGD-DPGをお勧めします。彼はシルバーのDPG論文の共著者の1人と密接に協力し、論文は利用可能なMATLABコードで非常によく構成されています。ポリシーグラディエントメソッドは、数学が含まれているため(また、多くの場合、異なる表記法が使用されているため)、理解するのがはるかに困難です。ただし、Jan Petersから始めて、Silverのスライドに戻ることをお勧めします(私の意見:))。


通常、これらの分布からどのようにサンプリングしますか?例を挙げてください。
Shamane Siriwardhana 2017年

ああ、このようなマージンのセットを使って、分布からより良い値を選択するようなものですか? google.com.sg/...
Shamane Siriwardhana

それについていくつの詳細が必要かわかりません。通常のサンプリング方法でこれらの分布をサンプリングします。ボルツマン(離散アクションスペースの場合)の場合、累積分布を計算する必要があります(MATLAB histc)。次に、0と1の間の乱数をサンプリングし、このヒストグラムのどこにこの乱数が含まれるかを確認し、乱数に最も近い確率に対応するアクションを選択します。これに慣れていない場合はお知らせください。
コンスタンチノス

1
ガウスの場合、ほとんどのプログラミング言語には、ガウスからサンプリングするための1行のコマンドがあります。たとえば、MATLABではmvnrand(mu、sigma)です。ガウスパラメータは、ポリシーグラディエントアルゴリズム(もちろん確率的バージョン)の出力から取得されます。PGメソッドを使用すると、アクションの値が得られることに注意してください(例:連続アクションドメインに適したspeed = 10km)。上記の個別のケースと値のメソッドでは、アクションを示すインデックスとインデックスを取得します(たとえば、action1 = 'North'、サンプリングからの出力例:アクション北に対応する1)。それがお役に立てば幸いです:)
Constantinos

2
正しい!SPGの場合、ポリシーネットワークは、特定の状態のアクションの確率分布を概算しようとします。したがって、ネットが確率を出力した後、常にサンプリングステップがあります。そのステップから、環境に返されるアクションを取得します。DPGの場合、ネットワークの出力は実際のアクションなので、サンプリングする必要はありません。
コンスタンチノス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.