機器學習2021 — 強化學習:核心概念與運作框架
機器學習2021 — 強化學習:核心概念與運作框架¶
強化學習是一種機器學習方法,其目標是讓機器(Agent)透過與環境(Environment)的互動,學習如何採取最佳行動(Action),以最大化累計回饋(Total Reward 或 Return)。
- RL 與監督式學習的區別
與傳統的監督式學習(Supervised Learning, SL)不同,在 RL 中,當機器接收到輸入(Observation)時,我們並不知道最佳的輸出(Action)應該是什麼。例如在下圍棋中,人類可能也不知道哪一步是「神之一手」。RL 適用於難以收集帶有標註的資料,或正確答案未知的情況。
在 RL 訓練過程中,機器雖然不知道正確答案,但它能透過與環境的互動,獲得回饋(Reward),從而知道它的行為是「好」還是「不好」。
- RL 的核心元件
RL 系統主要包含兩個核心互動主體:
• Actor(執行者): Actor 是一個函數(通常是 Policy Network),這就是 RL 尋找的目標。它接收環境提供的觀測(Observation, S)作為輸入,並決定要採取的行動(Action, A)作為輸出。
• Environment(環境): 環境接收 Actor 的行動,提供新的觀測,並給予回饋(Reward, R)。
Actor 的目標是找到一組參數,使其與環境互動時,最終獲得的 Reward 總和最大。
行動的隨機性 (Stochasticity): 由於 RL 的訓練模型通常像一個分類器(Classifier),輸入 S 輸出每個 Action 的分數(機率)。常見的做法是根據這些分數隨機抽樣(Sample)探索那些不常被執行,但可能產生高 Reward 的行動。
強化學習的兩大挑戰與對策
在訓練 RL Agent 時,有兩個常見的挑戰:回饋稀疏與行為評價。
- 回饋稀疏問題 (Sparse Reward)
回饋稀疏是指在大多數時間內,Agent 得到的 Reward 都是 0,只有在極低機率下或遊戲結束時才能獲得一個巨大的 Reward。
• 例子: 教機械手臂去鎖螺絲,只有成功鎖入螺絲時才有正向 Reward,其他時候 Reward 都是 0。下圍棋也是類似,只有在遊戲結束時,輸贏才會決定正負 Reward。
解決方案:獎勵塑形 (Reward Shaping)
獎勵塑形是指在原來的、Agent 真正需要最大化的 Reward 之外,定義額外的輔助回饋,來引導 Agent 學習。
• 案例:VizDoom 遊戲
◦ 在 VizDoom(一款第一人稱射擊遊戲)中,原本的 Reward 是殺敵加分,被殺扣分。
◦ 透過 Reward Shaping,開發者加入了額外規則來引導學習,例如:扣血即扣分(雖然遊戲本身扣血不扣分,要死亡才扣分),損失彈藥扣分,撿到補給包加分。
◦ 有趣案例: 為了避免 Agent 待在原地不動(因為不動 Reward 至少是 0),強制規定待在原地扣分,而移動則給予微小的正向分數。此外,為了強迫 Agent 學習殺敵,設定只要活著就扣分,促使 Agent 積極交戰,而不是單純躲避。
領域知識與謹慎性: Reward Shaping 需要憑藉人類對問題的領域知識(Domain Knowledge)來設計。如果設計不當,可能無法達成最終目標(例如,單純獎勵板子靠近棍子,但 Agent 卻從側面接近,無助於插進去)。
好奇心驅動的 RL (Curiosity Based RL)
這是一種特殊的獎勵塑形,它在原有 Reward 之外,加上一個 Reward 給予探索新事物的行為。
• 案例: 訓練機器玩瑪利歐(Mario)時,即使沒有設定「破關」的 Reward,僅僅獎勵機器不斷看到「新的」遊戲畫面(需要持續向右移動),就能讓機器學會破解部分關卡。
• 限制: 這個「新東西」必須是有意義的新,而非無謂的新,例如畫面雜訊不斷變化,Agent 可能只會站在原地看雜訊,認為自己在不斷探索新事物。
- 行為評價(Advantage A)的定義
在訓練 Actor 時,需要評價在某個狀態 St 執行行動 At 的好壞程度,這個評價分數稱為 A。
Policy Gradient (PG) 演算法的迭代版本:
- 版本 0:即時回饋(Immediate Reward rt)
◦ 直接拿 rt 作為評價 At 的分數。
◦ 問題: 導致 Actor 短視近利,只追求立即 Reward。例如,在 Space Invaders 中,只有開火有 Reward,向左向右瞄準(Reward=0)的行為會被忽略,Agent 只會學到瘋狂開火。
- 版本 1:累積回饋(Cumulative Reward Gt)
◦ At 等於該行動 At 之後所有得到的 Reward 總和 rt,rt+1,…,rN。
◦ 優點: 解決短視近利問題。例如,向右瞄準(rt=0)之後若成功擊中外星人,則 Gt 為正,Agent 知道向右也是好的行為。
- 版本 2:折扣累積回饋(Discounted Cumulative Reward Gt′)
◦ Gt′ 對未來 Reward 施加一個折扣因子 (γ<1),距離 At 越遠的 Reward 權重越低。
◦ 原因: 距離當前行動太遠的 Reward 可能與當前行動無關。
- 版本 3:基準線(Baseline b)與標準化
◦ At=Gt′−b。
◦ 目的: 好壞是相對的。減去 Baseline 可以讓 A 有正有負,特別好的行動得到正分,特別差的得到負分。
◦ Actor-Critic 的基線: 一個合理的 Baseline b 是使用 Critic 估計的 Value Function Vθ(St)。
- Actor-Critic 深度強化學習方法
在 RL 訓練中,除了 Actor 之外,我們常訓練另一個神經網路 Critic 來協助 Actor 訓練,形成 Actor-Critic 架構。
Critic(評價者):Value Function Vθ(S)
Critic 的工作是評估 Actor 的好壞。
• 定義: Value Function Vθ(S) 估計的是當 Actor θ 在狀態 S 時,接下來預期能獲得的折扣累積回饋。
• 特性: Vθ(S) 是一個期望值,它的數值與 Actor θ 的能力(參數)有關。
訓練 Critic 的方法
有兩種主要方法來訓練 Critic Vθ(S):
- 蒙地卡羅方法 (Monte Carlo, MC):
◦ 讓 Actor 玩完一整個 Episode,得到實際的 G′。
◦ 將 Vθ(S) 訓練成與實際觀測到的 G′ 越接近越好。
- 時序差分方法 (Temporal-Difference, TD):
◦ 利用 Value Function 在連續狀態 St 和 St+1 之間的關係:Vθ(St)≈rt+γVθ(St+1)。
◦ TD 方法的好處是不需要玩完一整場遊戲就可以更新 V 的參數,對於漫長或永不結束的遊戲特別有用。
Advantage Actor-Critic (A2C)
A2C 使用 Critic 來定義 Advantage At,這使得 At 不再是單一的 Sample 結果,而是更接近期望值的比較:
$$A_t = r_t + \gamma V_{\theta}(S_{t+1}) — V_{\theta}(S_t) \text
• rt+γVθ(St+1) 代表在 St 執行 At 後,預期得到的總回饋期望值。
• Vθ(St) 代表在 St 狀態下,隨機執行任何 Action 預期得到的總回饋期望值(平均水準)。
• 因此,At 衡量了執行 At 這個行動的結果,相較於平均水準的好壞程度。如果 At>0,則 At 優於平均,應被鼓勵。
實作技巧: Actor 和 Critic 的輸入都是遊戲畫面 S,它們通常會共用前幾層網路參數,以提高訓練效率。
- 學習範式:On-policy 與 Off-policy
RL 訓練的一個主要難點在於資料收集。標準的 Policy Gradient 訓練非常耗時,因為每次更新 Actor 參數後,都必須重新與環境互動並收集新的資料。
• 原因: 舊 Actor (θi−1) 收集的資料是其經驗,不一定適用於新的 Actor (θi),因為它們在相同的狀態下可能採取不同的後續行為。
-
On-policy Learning: 訓練的 Actor 必須與收集資料的 Actor 是同一個。標準 PG 屬於此類。
-
Off-policy Learning: 允許訓練中的 Actor (θi) 根據其他 Actor (θi−1) 收集的經驗進行學習。
◦ 優勢: 能夠重複利用數據,減少資料收集的頻率,極大地節省訓練時間。
◦ 經典方法: 近端策略優化 (Proximal Policy Optimization, PPO) 是一種強大且常用的 Off-policy 方法。Off-policy 的關鍵在於訓練中的 Actor 必須知道自己與收集資料的 Actor 之間的差距。
- 無回饋強化學習:模仿學習 (Imitation Learning)
當環境複雜到難以定義一個合理的 Reward Function 時(例如自駕車),我們可能需要轉向無回饋學習。
挑戰:Reward 定義困難與「神邏輯」
在真實世界中,定義 Reward 非常困難,因為我們不知道應該加多少分、扣多少分。此外,即使定義了規則,機器仍可能展現出意想不到的行為(例如,為了最大化安全 Reward 而監禁人類;為了快速完成任務而摔破盤子)。
解決方案:逆向強化學習 (Inverse Reinforcement Learning, IRL)
IRL 的核心概念是從專家的示範(Expert Demonstration, T∧)中,反向推導(Learn)出 Reward Function 應該是什麼樣子。
- IRL 流程:
◦ 首先,我們假設專家的行為是「最棒的」,即專家的行為可以取得最高的 Reward。
◦ IRL 演算法不斷更新一個 Reward Function,使其對專家的示範 T∧ 給予高分,而對當前 Actor 產生的 Trajectory T 給予低分。
◦ Actor 隨後使用這個新學到的 Reward Function 進行標準的 RL 訓練,以最大化其分數。
- IRL 與 GAN 的相似性:
◦ IRL 的框架與生成對抗網路(GAN)有異曲同工之妙。
◦ Actor 扮演 Generator(產生行為/軌跡 T)。
◦ Reward Function 扮演 Discriminator(區分專家 T∧ 與 Actor 產生的 T)。
潛力: 雖然 IRL 從人類示範中學習,但機器最終學到的 Actor 不一定會完全模仿人類。一旦 Reward Function 被學習出來,我們可以加上額外的限制(如要求速度最快),讓機器有機會做得比人類更好。
撰寫關於 RL 的文章是一個很有趣的過程,特別是在解釋這些複雜概念的同時保持清晰度。
類比:
如果將強化學習比作登山尋寶,那麼:
• Actor 就是登山者,決定每一步怎麼走 (Action)。
• Environment 就是山脈、天氣、路徑。
• Observation 就是登山者眼前的風景或地圖。
• Reward 就是路邊發現的小零食或山頂的寶藏。
• Total Reward 就是最終帶回家的所有寶藏總和。
• Reward Shaping 就像在沿途設置里程碑和補給站,鼓勵登山者即使離山頂還很遠,也能保持前進的動力。
- Critic 就像一個經驗豐富的嚮導,能根據你當前所處的位置 (S),預測你最終能帶回多少寶藏 (V(S)),協助你判斷下一步路 (A) 是否優於平均。
參考資料
Comments
Loading comments…
Leave a Comment