線形関数近似で重みをQ値に適合させる方法


12

強化学習では、大きな状態空間が存在する場合に線形関数近似がよく使用されます。(テーブルをルックアップすると実行不可能になります。)

線形関数近似による値の形式は、Q−

Q(s,a)=w1f1(s,a)+w2f2(s,a)+⋯,

ここで、は重み、は特徴です。F Iwifi

機能はユーザーによって事前定義されています。私の質問は、重みはどのように割り当てられるのですか?

関数近似を使用したラーニングに関する講義スライドをいくつか読んだりダウンロードしたりしました。それらのほとんどは、次の線形回帰に関するスライドがあります。単なるスライドなので、不完全になる傾向があります。2つのトピック間の関係/関係は何ですか。Q−

回答:


11

関数近似は基本的に回帰問題です(一般的な意味で、つまりクラスが離散的である分類とは対照的です)。つまり、入力(あなたの場合)から実数値への関数マッピングを学習しようとします出力。すべての入力/出力値の完全なテーブルはありませんが、代わりにを同時に学習して推定するため、パラメーター(ここでは、重み)をデータから直接計算することはできません。ここでの一般的なアプローチは、勾配降下法を使用することです。f(s,a)Q(s,a)Q(s,a)w

これは、値関数近似でを学習するための一般的なアルゴリズムですQ(s,a)

  • 初期化パラメータベクトルランダムに(例えば[0,1]に)w=(w1,w2,....,wn)
  • 各エピソードについて:

    1. s←エピソードの初期状態
    2. a←π εアクションはポリシー(推奨: -greedy)πϵ
    3. アクション実行、報酬と次の状態観察しますars′
    4. w←w+α(r+γ∗maxa′Q(s′,a′)−Q(s,a))∇→wQ(s,a)
    5. s←s′

    が終了するまで2-5を繰り返すs

どこ ...

  • α∈[0,1]は学習率です
  • γ∈[0,1]は割引率です
  • maxa′Q(s′,a′)' S ' Q (S '、)は最大化する状態アクションです。a′s′Q(s′,a)
  • ∇→wQ(s,a)の勾配であり、における。線形の場合、勾配は単純なベクトルQ(s,a)w(f1(s,a),...,fn(s,a))

parameters / weights-update(4番目のステップ)は、次のように読み取ることができます。

  • (r+γ∗maxa′Q(s′,a′))−(Q(s,a))の予測との間の誤差であるとは、 "実際の"値、これは、現在得られる報酬、貪欲なポリシーに従って期待される割引された報酬と、その後のγ ∗ m a x ′ a Q (s ′、a ′)です。Q(s,a)Q(s,a)r γ∗maxa′Q(s′,a′)
  • パラメータ/重量ベクトルは(勾配によって与えられる最も急な方向にシフトされるので∇→wQ(s,a)によって調整測定誤差の量だけ)α。

主な情報源:

第8章(全体的に推奨されている)書籍「強化学習:サットンとバートの紹介(初版)」の値の概算。一般的なアルゴリズムは、V (s )ではなくQ(s,a)を計算するために一般的に行われるように変更されました。また、適格性トレースeを削除して、勾配降下法に焦点を当てているため、ワンステップバックアップのみを使用しています。V(s)e

その他の参考文献


2
Barto&Suttonのリンク切れ!今ここに-> incompleteideas.net/book/the-book.html :)およびebookとしてincompleteideas.net/book/ebookが、mobiファイルの場所がわからない
— grisaitis

1
あなたが言ったようにすべてのfiの合計ではなく、各要素がfi(s、a)であるwa列ベクトルに対するQ(s、a)の勾配ではありませんか?目的は、各重みが、それが乗算しているフィーチャの値に応じて変更されることです。
— ミゲルサライバ

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