関数近似は基本的に回帰問題です(一般的な意味で、つまりクラスが離散的である分類とは対照的です)。つまり、入力(あなたの場合)から実数値への関数マッピングを学習しようとします出力。すべての入力/出力値の完全なテーブルはありませんが、代わりにを同時に学習して推定するため、パラメーター(ここでは、重み)をデータから直接計算することはできません。ここでの一般的なアプローチは、勾配降下法を使用することです。f(s 、a )Q (s 、a )Q (s 、a )w
これは、値関数近似でを学習するための一般的なアルゴリズムですQ (s 、a )
- 初期化パラメータベクトルランダムに(例えば[0,1]に)w = (w1、w2、。。。。、wん)
各エピソードについて:
- s ←エピソードの初期状態
- A ←π εアクションはポリシー(推奨: -greedy)πε
- アクション実行、報酬と次の状態観察しますars』
- w ← w + α (r + γ∗ m a xa』Q (s』、a』)− Q (s 、a ))∇⃗ wQ (s 、a )
- s ← s』
が終了するまで2-5を繰り返すs
どこ ...
- α ∈ [ 0 、1 ]は学習率です
- γ∈ [ 0 、1 ]は割引率です
- mは、Xがa』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+γ∗max′aQ(s′,a′))−(Q(s,a))の予測との間の誤差であるとは、 "実際の"値、これは、現在得られる報酬、貪欲なポリシーに従って期待される割引された報酬と、その後のγ ∗ m a x ′ a Q (s ′、a ′)です。Q(s,a)Q(s,a)r γ∗max′aQ(s′,a′)
- パラメータ/重量ベクトルは(勾配によって与えられる最も急な方向にシフトされるので∇⃗ wQ(s,a)によって調整測定誤差の量だけ)α。
主な情報源:
第8章(全体的に推奨されている)書籍「強化学習:サットンとバートの紹介(初版)」の値の概算。一般的なアルゴリズムは、V (s )ではなくQ(s,a)を計算するために一般的に行われるように変更されました。また、適格性トレースeを削除して、勾配降下法に焦点を当てているため、ワンステップバックアップのみを使用しています。V(s)e
その他の参考文献