從動作到選項
選項框架(options framework)是強化學習中時序抽象化的標準形式化框架,直接建構在一般的馬可夫決策過程(MDP)之上。一個「選項」是智能體可以像呼叫單一動作那樣去調用的、自成一體的技能——但跟原始動作不同,它能執行許多時間步,並會對沿途所見做出反應。關鍵在於:選項與原始動作可以並存——在同一個決策點,智能體既能選一個單步動作,也能選一個多步選項。
强化学习回路示意图:智能体执行动作,环境返回新的状态和奖励。
選項的三個部件
形式上,一個選項是個三元組。這三個部件合在一起,把一次性的巨集動作升級成由選項策略與終止(option policy and termination)條件描述的、靈活的閉迴路技能。
- 起始集合(initiation set)——這個選項「被允許開始」的狀態集合。「開門」只有在你靠近門時才說得通。
- 選項內策略(intra-option policy)——一個針對原始動作的閉迴路策略,負責「執行這項技能」,在選項生效期間逐步挑選動作。
- 終止條件(termination condition)——對每個狀態給出一個「現在就停止」的機率,讓選項把控制權交還給高層。正是這一點,讓選項能對世界做出反應,而不是盲目地一路跑到底。
選項把 MDP 變成半馬可夫
這裡有個微妙卻重要的後果。當高層選了一個選項,這個選項會執行「隨機數量的步數」才終止。所以在高層看來,狀態轉移不再依固定的時鐘發生——它們在不固定的時長後才發生。一個動作時長可變的決策過程,就是半馬可夫決策過程(semi-Markov decision process, SMDP),而這樣看待選項就得到半馬可夫選項(semi-Markov options)。
獎勵與折扣的數學調整得很乾淨。若一個選項執行了 k 步並沿途收集獎勵,高層的價值回傳會把下一個狀態以折扣因子(discount factor)的 k 次方來折扣——選項越長,折扣越重,正如一個非常延遲的單筆獎勵會被折扣的那樣。
高层(半马尔可夫)价值回溯:运行 k 步的选项把下一个选项价值按 γ 的 k 次方折扣。
在選項上規劃與學習
因為選項上的 SMDP 本身就是一個結構良好的決策過程,你已經會的每一樣工具都適用——只是改在選項層次。你可以對一組選項跑價值迭代、Q-learning 或策略梯度,做法跟對原始動作完全一樣;唯一的改變是:現在的「一步」就是「一次選項執行」。
# High-level control loop over a fixed set of options
state = env.reset()
while not done:
option = high_level_policy(state) # pick an extended skill
while option.active(state): # closed-loop execution
action = option.policy(state) # intra-option policy
state, reward = env.step(action)
accumulate(reward) # rewards collected during the option
if option.terminates(state): # termination condition
break
# SMDP backup happens here, discounting by gamma**duration實例:四房間迷宮
教科書的示範是一個被切成四個房間、以門口相連的網格。為每個門口定義一個選項:它的起始集合是該房間、它的選項內策略走向那個門口、抵達時終止。如今高層智能體的工作變得很小——串接兩三個「走到門口」選項就能抵達任何目標——而不必學習一條穿越數十個原始格子的路徑。
交互式网格世界,Q-learning 智能体在格子中向目标导航。