JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Rainbow 與循環回放:組裝基礎

六項改進、一個代理——再為部分可觀測性加上記憶。這就是以價值為基礎的實務標竿,也是通往下一階段的起跳台。

Rainbow:把改進組合起來

到這裡,你已認識了一整疊對原版 DQN 各自獨立的升級。Rainbow的洞見是:它們大多彼此正交,可以合併進單一代理——而且這麼做的表現勝過其中任何一個單獨使用。

  1. Double Q-learning——移除高估偏差。
  2. Dueling 架構——分開價值與優勢分流。
  3. 優先回放——複習高 TD 誤差的轉移。
  4. 多步(n 步)回報——從往後好幾步來自舉。
  5. 分布式 RL(C51)——學習回報分布。
  6. 噪聲網路——學習而來、依狀態而定的探索。
Q(s,a) \leftarrow Q(s,a) + \alpha\,\underbrace{\big( r + \gamma\,\max_{a'} Q(s',a') - Q(s,a) \big)}_{\text{TD error }\delta}

Rainbow 的每个组件都在改造这同一个时序差分更新——改变其中的最大值、回报或自举目标。

每種成分真正的貢獻

Rainbow 論文做了一次消融實驗:每次移除一個元件,觀察分數下滑。下滑最猛的來自優先回放、多步回報,以及分布式輸出頭;Double Q-learning和 Dueling 在疊加於其他元件之上時幫助較小(它們的功能與分布式觀點部分重疊)。

部分可觀測性與循環回放

影格堆疊能處理短期記憶,但四個影格記不住十秒前發生的事。許多真實任務其實是部分可觀測 MDP(partially observable MDP, POMDP):最佳動作取決於歷史,而不只是當前觀測。原理上的解法是維護一個信念狀態(belief state)——對目前為止所見一切的滾動摘要。

循環回放(recurrent replay)(即 R2D2 代理)給網路一個 LSTM,讓它把隱藏狀態跨時間攜帶,並在緩衝區裡儲存序列而非單步轉移。有個眉角:很久以前記下的隱藏狀態,等你回放時已經過時,所以 R2D2 會儲存隱藏狀態,並「燒入(burn-in)」幾步暖身,讓循環記憶重新同步後再計算損失。

循环回放将 LSTM 沿时间步展开,使智能体携带隐藏状态并从整段序列中学习。

一个循环网络沿多个时间步展开,将隐藏状态向前传递。

實務訓練筆記

  1. 為規模做預算:Atari 的結果是建立在數千萬影格之上。如果學得慢,先懷疑緩衝區太小或目標同步太罕見,再去怪演算法。
  2. 盯著 Q 值看,不要只看分數。Q 值穩定攀升後爆炸,是發散的經典徵兆。
  3. 一次只加一個元件並做消融。一個莫名表現不佳的 Rainbow,通常是某個元件接錯線。
  4. 讓緩衝區配合任務:稀疏獎勵用優先回放,部分可觀測用循環(序列)回放。

接下來往哪走

你現在握有現代以價值為基礎的根基:在像素上的深度 RL,靠回放與目標網路穩定,靠 Double/Dueling/PER 銳化,靠分布式學習與噪聲探索豐富,並在 Rainbow 中統合,再以循環記憶應對 POMDP。

无论下一步走向基于价值还是策略梯度,每个智能体都仍处在与环境的动作—奖励循环之中。

强化学习循环:智能体执行动作,环境返回下一状态和奖励。