目錄
AC的數據低效性:
根本原因:策略更新導致數據失效
應用場景:
1.?離策略值函數估計
2.?離策略策略優化
3.?經驗回放(Experience Replay)
4.?策略梯度方法
具體場景分析
場景1:連續策略更新
場景2:高維動作空間
為什么AC不能直接復用數據?
改進方案:向off-policy演化
原理:
重要性采樣的核心價值
在強化學習中,重要性采樣(Importance Sampling)?主要用于解決離策略(Off-policy)學習中的分布偏移問題。其核心應用場景是通過行為策略(Behavior Policy)?收集的樣本,來估計目標策略(Target Policy)?的期望值。
AC的數據低效性:
Actor-Critic(AC)算法作為典型的?on-policy 方法,其數據利用率低的核心原因在于策略更新與數據收集的強耦合性。以下是具體分析:
根本原因:策略更新導致數據失效
-
策略更新即數據淘汰
-
每次策略
更新后(參數
改變),新策略的動作分布
與舊策略
?不同。
-
舊策略收集的數據
服從舊分布?
,而更新后需要的是新分布?
下的數據。
-
結果:舊數據立即失效,必須重新采樣。
-
-
數學本質
策略梯度更新依賴當前策略的期望:若用舊策略
的數據估計期望,需引入重要性權重:
但原生AC算法,是一個on-policy算法,直接丟棄舊數據,不進行修正。
也就是: target policy == behaivor policy,那么當每次target policy發生變化時,都需要進行重新采樣,如何轉化為off-policy?從而提高數據利用率:可以通過imortance sampling來實現
應用場景:
1.?離策略值函數估計
-
問題:目標策略
的期望回報
無法直接采樣(如目標策略是確定性策略,而采樣策略是探索性策略)。
-
解決方案:
使用行為策略生成的軌跡樣本,通過重要性權重修正分布偏差:
其中
是從時刻 $t$ 到終止時刻 $T$ 的累積重要性權重。
2.?離策略策略優化
-
算法示例:
-
Off-policy Actor-Critic(如ACER)
-
Q-Learning的方差縮減(使用加權重要性采樣)
-
-
原理:
通過重要性權重重用舊策略的樣本更新新策略,減少環境交互次數,提升樣本效率。
3.?經驗回放(Experience Replay)
-
場景:
在DQN等算法中,回放池中的經驗由歷史策略生成,與當前策略分布不一致。 -
解決方案:
對每個樣本計算重要性權重
,修正Q值更新:
4.?策略梯度方法
-
問題:
策略梯度依賴當前策略樣本。
-
重要性采樣作用:
重用舊策略的樣本計算梯度:
應用在PPO、TRPO等算法中。
具體場景分析
場景1:連續策略更新
-
AC流程:
收集數據 → 更新Critic → 更新Actor → 丟棄數據 → 重新收集數據
-
效率瓶頸:
90%的時間花在數據收集上,僅10%用于計算更新。 -
例:訓練一個Atari游戲,AC需2000萬幀數據,而off-policy的DQN僅需1000萬幀。
場景2:高維動作空間
-
問題:
高維空間(如機器人控制)需大量樣本覆蓋動作分布,但AC每次更新后舊樣本作廢。 -
后果:
智能體陷入局部最優,需額外探索新區域,進一步降低效率。
為什么AC不能直接復用數據?
-
理論限制:
策略梯度定理要求期望基于當前策略分布($\mathbb{E}{a \sim \pi{\theta}}$)。 -
實踐風險:
若強行復用舊數據,梯度估計偏差隨策略差異增大而爆炸(見下圖)。
| 策略差異 (KL散度) | 梯度偏差 | 效果 | |-------------------|----------|--------------------| | 小 (<0.01) | 低 | 可用 | | 中 (0.01~0.1) | 中 | Q值估計失真 | | 大 (>0.1) | 高 | 訓練崩潰 |
改進方案:向off-policy演化
為提升數據利用率,現代AC算法引入重要性采樣或混合策略:
算法 | 核心改進 | 數據利用率 |
---|---|---|
PPO | 重要性采樣 + 權重裁剪 (Clip) | 中 (復用少量舊數據) |
SAC | 最大熵框架 + 經驗回放 | 高 (完全off-policy) |
TD3 | 雙Q網絡 + 延遲更新 + 經驗回放 | 高 (完全off-policy) |
A3C | 異步并行采樣 (數據并行) | 低 (但加速采樣過程) |
注:PPO雖復用數據,但其重要性權重
的方差限制了復用次數(通常僅3-10次)。
原理:
根據分布來生成樣本
:
期望:,?
當, 平均值可以近似期望:
如果樣本分布發生變化,變為分布
那么期望就變為:
問題:
在迭代過程中,策略的分布發生變化(p1 -> p0),如何還能夠利用之前生成的數據(p1)來進行繼續學習呢? 如果能夠基于behavior policy??產生的樣本來估計
(其中
是目標policy)。
也就是基于來估計
?
我們就可以使用重要性采樣,對分布數據進行采樣:
這樣我們可以通過來估計
如何估計?
定義:
then:
所以通過可以成功近似p_0分布:
?
其中?就是重要性權重。
- 如果兩者相等,那么重要性權重就是1,
- 如果,那么就代表
更容易被
采樣到,而不是
,所以要加大權重,這樣的話就可以加強樣本的重要性。
為什么已知,為什么不直接期望?
這樣的話,通過重要性采樣,對分布的數據進行采樣,就可以近似
分布:
具體算法:
beta對應于p1
應用到梯度上升算法中:
相比AC失去探索性,由于分母beta不可變:
重要性采樣的核心價值
場景 | 作用 |
---|---|
離策略評估 | 用行為策略樣本估計目標策略的值函數 |
策略優化 | 重用歷史樣本更新策略,提升樣本效率 |
經驗回放 | 修正回放池樣本的分布偏移 |
方差縮減 | 結合加權重要性采樣穩定訓練 |
關鍵點:重要性采樣是強化學習中連接行為策略與目標策略的橋梁,其核心價值在于重復利用歷史數據,顯著提升采樣效率,但需謹慎處理方差問題。