強化学習のサンプルから報酬関数を学習する必要があるのはなぜですか?


9

強化学習では、エージェントに現在の行動と状態がどの程度うまく行っているかをエージェントに通知する報酬機能があります。いくつかの一般的な設定では、報酬関数は3つの変数の関数です。

  1. 現在の状態S
  2. 現在の状態での現在のアクションπ(s)=a
  3. 次の状態S

したがって、次のようになります。

R(S,a,S)

私の質問は何ですか(おそらく私の誤解です)、通常、強化学習を使用している人が報酬を決定します。たとえば、目標に到達するために1000ポイントを割り当てたり、自律ロボットをクラッシュさせるために-1000ポイントを割り当てたりします。これらのシナリオでは、なぜRを学習するためにサンプルが必要になるのかがはっきりしません。Rは事前に指定されたものであり、エージェントを使用します。正しい?しかし、私は私が間違っていることを知っています。

ここに画像の説明を入力してください

報酬関数が明確にわからないと彼が言ったところ。それは私には奇妙に思えます。私は間違っていることを知っています。実際にサンプルからRを学習する必要があるシナリオを誰かに説明してもらえたら幸いです。

(明らかに、環境によってエージェントがアプリオリにどのように動くのかわからないため、遷移確率を学習する必要があります)。

回答:


4

彼のメモでは、「データからそれらを推定する」必要がある場合、彼は報酬関数を意味していません。報酬関数を推定することはほとんどありません。通常、価値関数を学習します。これは、即時報酬と一時的に割引された将来の報酬を推定します(一時割引がゼロの場合、報酬を推定します)。または、状態とアクションのペアに関連付けられている値であるQ値を学習することもできます。

要約すると、報酬関数と真の遷移関数は環境によって定義されます。エージェントは、遷移関数、Q値、値関数などを学習します。


1
また、報酬関数(逆強化学習)を学習したい場合もあります
ヒポグルシド

1

通常、報酬関数は直接学習されないという他の回答にも同意します。

遷移確率も学習する必要はありません。エージェントは、アクションの値を直接、またはポリシーを直接学習することができます。

ただし、報酬と移行確率を学習する必要がある手法はあります。たとえば、dyna-Qアルゴリズム(Sutton&Bartoで説明)は、環境のモデルを維持します。各タイムステップで、エージェントは、たとえばQラーニングの場合と同様に、環境から受信した報酬および状態情報を使用してアクション値を更新します。

ただし、環境の独自のモデルも更新し、そのモデルに基づいて他のN個のアクション値の更新を実行します。仮定は、acting-> sensingループにnull以外の時間がかかることです。この時間は、シミュレートされたサンプルでアクションの値を改善することで有効に活用できます。


1

これは、Andrewのメモの不正確な表現よりも深い、良い質問です。RLでは、通常、報酬関数R(S、A、S ')を学習する必要がないことは事実です。問題のセットアップの一部として指定する必要があります。しかし、期待される報酬を必要とするアルゴリズムがあります(後の状態または決定後の状態値関数に関連する私の経験では)r(S、A)= E [R(S、A、S ')| S、A]。一般的に、私が見たテキストはこれについてほとんどコメントせず、R(S、A、S ')が知られているのと同じようにr(s、a)が知られていると想定しています。しかし、場合によっては、報酬は将来の状態に依存するため、モデルがなければ、この期待を知る必要があります。私は現在、期待報酬関数と価値関数を学習する必要があるような問題に取り組んでいます。ほとんどのRLアルゴリズムは、期待される報酬関数を必要としないことに注意してください。たとえば、Szepesvariによる強化学習のアルゴリズムの58ページの説明を参照してください。

要約すると、報酬関数を学習する必要はありませんが、決定後の状態変数を操作する場合は、期待される報酬関数を学習する必要がある場合があります。これが、期待される報酬関数を学習する必要がある場所を知っている唯一のケースですが、他のケースについても聞きたいと思います。


0

強化学習では、エージェントは報酬関数ではなく価値関数を学習します。アクションの価値は、それが全体的なユーティリティであることです。たとえば、アクションは高い報酬をもたらす可能性がありますが、価値の低い状態につながり、価値が低くなります。

引用が言うように、時々世界は複雑です:一部の問題には列挙するには大きすぎる状態-アクション空間があるため、明示的な遷移確率と報酬関数はありません。このような場合、エージェントは真値関数の一般化を学習する必要があります。


0

これらのメモは少し混乱していると思います。報酬は、RLエージェントが見たい動作を最適化するように奨励するように設計する必要があります。状態間の遷移は環境によって与えられ、データから推定されることがよくあります。Andrewが言及しているのは、状態Aから、報酬xを与える状態Bまたは報酬yを与える状態Cに移行できる状況だと思います。報酬の違いを除いて、州Bと州Cが同一である場合、州Bと州Cを排除し、州Aに、AからBまたはCに移行する頻度を示すデータから推定される報酬を与えることがよくあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.