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

策略:智能體如何決定要做什麼

確定性或隨機、貪婪或探索——策略就是智能體的行為本身,而學習正意味著改進它。

策略就是智能體的行動方針

如果回報是智能體想要什麼,那麼策略(policy)就是它如何行動以取得回報。策略寫作 π(pi),是一條把每個狀態對應到一個動作——或對應到動作機率分布——的規則。把一個狀態交給智能體,問它「現在怎麼辦?」,策略就會作答。智能體所做的一切都源自 π;歸根結柢,學習就是改進策略。

確定性策略:一個狀態,一個動作

最簡單的一種是確定性策略(deterministic policy):每個狀態恰好對應一個動作,a = π(s)。恆溫器(「若低於 20°C 就開暖氣」)就是確定性策略。它們容易推理,也是價值法以及像 DDPG 這類連續控制行動者的自然輸出。

它們的弱點:一個純確定性、總是挑同樣動作的智能體,永遠無法發現別的動作是不是更好。少了一些變化,它就會卡住——這正是探索與利用權衡(exploration–exploitation tradeoff)的一個例子。

隨機策略:動作上的機率分布

隨機策略(stochastic policy)為每個動作輸出一個機率 π(a | s),智能體再從中抽樣。這與馬可夫決策過程形式裡的隨機策略是同一個東西。隨機並非草率——它很有用。它把探索直接內建進行為,在「被看穿就會輸」的賽局裡(剪刀石頭布)不可或缺,也讓目標函數平滑到足以用梯度最佳化——這正是策略梯度(policy-gradient)法學習隨機策略的原因。

\pi(a\mid s)=\dfrac{\exp\!\big(Q(s,a)/\tau\big)}{\sum_{a'}\exp\!\big(Q(s,a')/\tau\big)}

随机策略可写成对动作价值的 softmax:每个动作都有一个概率,随着温度 τ 降低而逐渐向最优动作集中。

在整個訓練過程中,隨機策略通常一開始很分散(嘗試許多動作,actions),隨著智能體愈來愈有把握,再逐漸朝最好的那些動作收斂、變得尖銳。

貪婪策略:照你的信念行動

有一種特別重要、從價值估計推導出策略的方法:貪婪策略(greedy policy)在每個狀態都挑估計價值最高的動作。如果你早已知道每個動作的價值,貪婪行為就會是最優的。問題在於,學習初期你的價值估計是錯的,所以純粹貪婪會把錯誤鎖死——這也是為何在估計值夠可靠之前,我們會用探索(例如 ε-greedy)把它軟化。

网格世界上的交互式 Q 学习:随着价值估计逐渐形成,贪婪策略会在每个状态中读取价值最高的动作。

交互式网格世界:学习 Q 值,箭头显示每个格子中选择的贪婪动作。

從策略到行為:推演軌跡

把策略放進環境裡跑,你就產生一條軌跡(trajectory,又稱推演 rollout):狀態、動作、獎勵、下一個狀態,反覆直到回合結束。軌跡是每個強化學習演算法所消耗的原始經驗——用來估計回報、評估策略,以及判斷該讓哪些動作更常、哪些更少出現。

在智能体—环境回路中走一圈——观察状态、采取动作、获得奖励和下一状态——正是一次回合(rollout)所记录的内容。

强化学习回路示意图:智能体向环境发送动作,环境返回奖励和下一状态。

  1. 觀察當前狀態 s。
  2. 向策略要一個動作:確定性的 a = π(s),或抽樣 a ~ π(·|s)。
  3. 把 a 送進環境;收到一個獎勵與下一個狀態。
  4. 重複進行,每一步都記下 (s, a, r)——這份紀錄就是軌跡。
# A stochastic policy as a probability table, then one action
import random
def act(policy, state):
    actions, probs = zip(*policy[state].items())   # actions and probabilities
    return random.choices(actions, weights=probs)[0]   # sample one action
隨機策略把狀態對應到動作上的分布;智能體靠抽樣來行動。

回顧