強化學習

同策略與離策略(on-policy vs off-policy)

/ on-POL-uh-see vurs off-POL-uh-see /

這是一個關於「演算法從誰的經驗裡學習」的區分。同策略方法只從「它當前正在改進的那個策略」所採取的動作裡學習——它必須從自己最新的行為裡學。離策略方法則能從「別的某個策略」所採取的動作裡學習:自己的舊版本、一個笨拙的探索版本,甚至一位人類示範者。同策略好比只從你自己做的晚餐裡學做菜;離策略則好比還能從旁觀別的廚子(包括新手)裡學。

它之所以重要,歸結為「資料效率」與「穩定性」之間的取捨。離策略方法(如 Q學習和 DQN)能把一大堆存下來的過往經驗反覆重用,哪怕是很久以前生成的資料——樣本效率高得多。同策略方法(如 SARSA 和標準 PPO)則必須不斷從當前策略採集新鮮資料,並在每次更新後大體上把它扔掉,這雖浪費,卻往往更穩定、也更容易講清道理。

經典的例證,是 SARSA 與 Q學習在同一座懸崖邊迷宮上的對照。Q學習是離策略的:哪怕它實際上正跌跌撞撞地到處探索,它學到的也是那條最優貪心路徑的價值。SARSA 是同策略的:它學到的是它真正所走之路的價值,連探索性的失步也算在內,於是它明智地遠離懸崖。兩個標籤都談不上「更好」——離策略以「學習更棘手、有時不穩定」為代價買來效率,而同策略則以「對資料胃口更大」為代價買來可靠。

離策略的實例:DQN 維護著一個裝有數百萬幀過往畫面的回放緩衝區——其中許多是由它一個更早、更差的版本玩出來的——並從中隨機取樣來訓練。像 PPO 這樣的同策略方法做不到這點;每次策略更新之後,它的舊資料就過時了,所以它必須再去採集新鮮經驗。

離策略重用舊的/別人的資料(高效,但更棘手);同策略需要來自自身的新鮮資料(浪費,但更穩)。

這兩個標籤描述的是一種取捨,而非優劣排名。離策略「能回收資料」對樣本效率而言是真正的超能力,但它讓訓練在數學上更難、也更易失穩——這恰恰是為什麼離策略的深度強化學習,需要一些同策略方法往往用不上的穩定化把戲。

又稱
on-policyoff-policy同策略离策略在线策略异策略