強化學習中五大要素(核心概念)
強化學習的標準框架是 馬爾可夫決策過程(MDP),它由五個基本元素構成(不可或缺的部分):狀態(S)、動作(A)、狀態轉移(P)、獎勵(R)和折扣因子(γ)。
-
狀態(S):描述了環境是什么樣子。
-
動作(A):智能體可以做什么。
-
狀態轉移(P):環境如何響應動作。
-
獎勵(R):定義了“好”與“壞”,是智能體唯一的學習目標。
-
折扣因子(γ):權衡即時獎勵和未來獎勵的重要性。
優勢函數A(s, a)
優勢函數 定義為 動作價值函數 Q(s, a) 與 狀態價值函數 V(s) 的差值:
A(s, a) = Q(s, a) - V(s)
2. 它直觀地表達了什么?
優勢函數衡量的是,在狀態 s 下,選擇某個特定動作 a,相對于按照當前策略 π 的“平均”表現來說,是好還是壞,以及好/壞多少。
-
A(s, a) > 0:意味著在這個狀態下,選擇動作 a 比“平均動作”要好。這是一個優勢動作。
-
A(s, a) = 0:意味著動作 a 的表現和平均水準一樣。
-
A(s, a) < 0:意味著動作 a 的表現比平均水準要差。這是一個劣勢動作。
3. 為什么需要它?(它的好處)
想象一下玩游戲:
-
V(s) 告訴你當前局面(狀態)的優劣。比如,血量多、位置好,V(s) 就高。
-
Q(s, a) 告訴你如果做出某個具體操作(動作)后的局面優劣。比如,你按下了“攻擊”鍵,Q(s, attack) 會預估按下后的結果。
核心好處:優勢函數降低了狀態本身固有價值帶來的方差。它讓智能體更專注于學習動作之間的相對好壞,而不是狀態的絕對價值。這使得策略梯度等算法的訓練更加穩定和高效。
V(s) 由價值網絡預估得出
廣義優勢估計
1. 問題所在:優勢函數是未知的
在真實環境中,我們無法直接知道 Q(s, a) 和 V(s) 的精確值,我們只能通過采樣(與環境交互)來估計它們。GAE 就是一種高效、低方差地估計優勢函數 A(s, a) 的方法。
2. GAE 的核心思想:結合蒙特卡洛和時序差分
估計價值有兩種常見方法:
-
蒙特卡洛:使用一次交互軌跡的實際回報
G?來估計。無偏(準確),但高方差(不穩定)。 -
時序差分:使用當前的估計
r? + γV(s???)來估計。有偏(不準確),但低方差(穩定)。
GAE 巧妙地將這兩種思想結合起來,通過引入一個參數 λ,在偏差和方差之間做了一個可調節的權衡。
3. GAE 是如何工作的?
GAE 定義了一個 k 步優勢估計的指數加權平均。
-
1步優勢估計:
δ? = r? + γV(s???) - V(s?)-
這個
δ?也叫 TD誤差。它本身就是一個最樸素的優勢估計,只看了一步的獎勵和下一個狀態的價值。
-
-
2步優勢估計:
δ? + γλδ???-
不僅看下一步,還多看一步,并用 λ 來調節下一步的重要性。
-
-
3步優勢估計:
δ? + γλδ??? + (γλ)2δ??? -
...
-
一直到無窮步(即蒙特卡洛方法)。
GAE 最終將這些所有步數的估計加權求和,得到一個平滑的優勢估計值。
GAE的公式為:A?^GAE(γ, λ) = Σ (γλ)^l δ??l (從 l=0 到 ∞ 求和)
4. 參數 λ 的意義
λ 是一個在 [0, 1] 之間的超參數,它控制了估計的“視野”和“平滑度”。
-
λ → 1:GAE 更傾向于使用更多步的回報,估計更接近蒙特卡洛方法。
-
優點:偏差更小,更準確。
-
缺點:方差更高,更不穩定。
-
-
λ → 0:GAE 更傾向于只使用1步的 TD 誤差。
-
優點:方差更低,更穩定。
-
缺點:偏差更大,因為只依賴價值函數 V 的估計,如果 V 不準,A 也不準。
-
通俗理解 λ:它就像一個“信任度”旋鈕。你有多信任你學到的價值函數 V?
-
如果 V 學得很好,你可以把 λ 調小一點,依賴 V 來做快速、低方差的估計。
-
如果 V 學得不好,你應該把 λ 調大一點,更多地依賴實際采樣得到的數據,雖然這會更“吵鬧”。
5. GAE(λ) 的前向定義

6. 關鍵問題:反向計算

7. 反向計算算法

8. 優點與直覺

Clip 函數
在普通的策略梯度中,我們根據優勢函數A(s, a)的符號和大小來更新策略。如果 A(s, a) 是很大的正數,我們會大幅增加該動作的概率;如果是很大的負數,則會大幅減少其概率。這種大幅波動會導致訓練不穩定,甚至策略崩潰。
PPO 的想法是:我們可以相信優勢函數A(s, a) 告訴我們的更新 方向,但不能完全相信它建議的更新 幅度。
概率比 (Probability Ratio)

Clipped Surrogate Objective(裁剪替代目標)-------策略網絡的損失函數


價值網絡損失函數
價值網絡的目標是學習狀態價值函數,使其估計更準確。PPO 通常使用一個簡單的均方誤差損失,并結合了 Clip 來防止價值函數的更新也過于劇烈。

"Epoch" 機制
在傳統的策略梯度方法(如REINFORCE或A2C)中,我們通常:
-
收集一批數據(軌跡)
-
用這批數據計算梯度,進行一次策略更新
-
丟棄這批數據,用更新后的策略重新收集新數據
這種方法樣本效率很低,因為每批數據只使用一次就被丟棄了。
PPO 的想法是:既然收集數據(與環境交互)是昂貴的,為什么我們不充分利用每一批數據呢?
因此,PPO 的做法是:
-
使用當前策略與環境交互,收集一批數據(狀態、動作、獎勵等)
-
將這批數據保存起來,在接下來的 K個 Epoch(輪次)中重復使用它來更新策略
-
經過 K 次更新后,丟棄舊數據,用更新后的新策略重新收集數據
價值網絡的價值目標為什么 是優勢函數加上舊價值網絡的輸出?--------- 利用同一狀態下不同動作的 Q 值平均起來就是 V 值這一特性。


| 理論根源 | 直接來自優勢函數的定義:A(s,a)=Q(s,a)?V(s)A(s,a)=Q(s,a)?V(s),移項得 Q(s,a)=A(s,a)+V(s)Q(s,a)=A(s,a)+V(s) |
| 實際意義 | 價值網絡學習的目標是估計動作價值 Q(st,at)Q(st?,at?),而非直接學習狀態價值 V(st)V(st?) |

浙公網安備 33010602011771號