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

用目標而非選項:目標條件式與封建式強化學習

第二種風味的階層:管理者不是「挑選技能」,而是「設定目標」,由工人試圖抵達。認識 UVFA、事後重標記與封建式的管理者-工人設計。

另一種建立階層的方式

選項回答的是「哪一項技能?」。還有第二種、越來越流行的答案:與其從一份技能菜單中挑選,不如讓高層「提出一個目標」,再由低層學會抵達它被交付的任何目標。這就是目標條件式強化學習(goal-conditioned RL)——單一的策略與價值函數把「想要的目標」當成額外輸入,於是一個網路就能追求成千上萬個不同的目標。

這是用「意圖的抽象」而非「行為的抽象」來建立階層:高層仍以粗略的時序抽象時間尺度運作(它為一個目標承諾許多步),但它送出的是一個「目的地」,而不是一個手工命名的技能。

通用價值函數(UVFA)

要追求任意目標,你需要一個能在目標之間泛化的價值函數。通用價值函數近似器(universal value function approximators, UVFAs)正是做這件事:它把目標折進輸入,近似 `V(狀態, 目標)` 或 `Q(狀態, 動作, 目標)`。只要在少數目標上訓練,UVFA 就能「內插」到它從未明確練習過的目標——這正是讓目標條件式階層能夠擴展的橋樑。

Q^*(s,a,g) = r(s,a,g) + \gamma \max_{a'} Q^*(s',a',g)

通用价值函数逼近器学习一个在所有目标 g 之间共享的价值函数,满足这个以目标为条件的贝尔曼最优方程。

事後目標重標記

目標條件式強化學習在稀疏獎勵情境下有個雞生蛋的問題:若智能體幾乎從不抵達被指定的目標,就幾乎從不拿到獎勵,於是永遠學不會。事後目標重標記(hindsight goal relabeling)是個優雅的解法——也是現代強化學習中最低調卻最強大的想法之一。

在网格世界中,事后目标重标记把智能体最终实际到达的位置当作它'本想'到达的目标——于是它不可能失败。

交互式 Q 学习网格世界,智能体学习导航到目标格子。

  1. 跑一回合,瞄準目標 g。假設你失敗了,最後落在某個狀態 *g'*。
  2. 把同一條軌跡重新標記成「彷彿 *g'* 一開始就是目標」。如今它是一次「成功」——一個真實、密集的學習訊號。
  3. 用原始目標與重標記目標一起訓練 UVFA。每一次失敗都變成關於「某個」可達目標的一課。

封建式強化學習:管理者與工人

封建式強化學習(feudal reinforcement learning)把「設定目標」的想法變成一個明確的兩層管理者-工人階層(manager-worker hierarchy)。「管理者」(manager)以較慢的時間尺度運作並送出一個目標——通常是學到的潛在空間中的一個方向或目標點。「工人」(worker)以快速的原始時間尺度運作,並因「把狀態推向管理者的目標」而得到獎勵。

其定義性原則是「獎勵隱藏」(reward hiding):工人從不看見真正的任務獎勵,只看見管理者的「抵達目標」訊號;管理者也從不發出原始動作,只發出目標。這種乾淨的分工意味著管理者可以學習長跨度的策略,而工人專精短跨度的控制。現代變體(例如 FeUdal Networks)在潛在空間中設定目標,並用一個「轉移方向」目標來訓練管理者,使它的目標保持可達。

r^{I}_t = \cos\!\left(s_{t+c}-s_t,\; g_t\right)

封建式强化学习中的奖励隐藏:工人的内在奖励只衡量其移动与管理者下达的方向 g 的吻合程度——它从不接触真实的任务奖励。

選項還是目標——如何抉擇

  1. 當存在「一小組清楚可重用、可命名的技能」、而你想把它們當成離散、可遷移的積木時,選用「選項」。
  2. 當「理想子目標」的空間很大或連續時,選用「目標條件式/封建式」設計——讓管理者在目標空間中提出點,遠比列舉成千上萬個選項更易擴展。
  3. 無論哪種,子目標發現都會再度浮現:一個能提出「好目標」的封建管理者,與一個能找出「好技能」的選項學習器,解的是同一個問題。