Hugging Face 深度強化學習簡介
TL;DR
Hugging Face 推出了一門免費、從入門到進階的深度強化學習(Deep RL)課程,教授 RL 的基礎概念、數學框架、探索與利用的權衡、基於策略與基於價值的解決方法,以及深度神經網路的角色。
什麼是強化學習
強化學習(RL)是一種計算範式,代理透過試錯互動在環境中學習行動,並收到標量獎勵作為回饋。 代理的目標是最大化期望的累積獎勵(回報)。
大局觀
RL 代理會不斷觀測狀態、選擇動作、收到獎勵,並轉移到新狀態。這個循環類比了人類與動物從經驗中學習的方式。
正式定義
強化學習是一個框架,用於透過構建從環境中透過試錯互動學習並接收正向或負向獎勵作為唯一回饋的代理,來解決控制任務(決策問題)。
強化學習框架
RL 框架由一個馬可夫決策過程(MDP)組成,定義了狀態、動作、獎勵與轉移動態。 代理的目標是學習一個能最大化折扣回報的策略。
RL 流程
- 狀態 (S₀) 從環境中被觀測到。
- 代理根據其策略選擇 動作 (A₀)。
- 環境轉移到 下一個狀態 (S₁) 並產生 獎勵 (R₁)。
- 循環重複,產生軌跡 (S₀, A₀, R₁, S₁, A₁, …)。
獎勵假說
所有目標皆可表述為 最大化期望的累積獎勵;因此,最佳行為即是能產生最高回報的行為。
馬可夫性質
在 MDP 中,在已知當前狀態的情況下,未來與過去相互獨立;代理只需當前狀態即可選擇下一個動作。
狀態 vs 觀測
- 狀態:環境的完整描述(例如,完整的棋盤)。
- 觀測:狀態的部分視圖(例如,馬里奧關卡中可見的部分)。
動作空間
- 離散:有限的動作集合(例如,平台遊戲中的左/右/跳)。
- 連續:無限的動作集合(例如,自駕車的轉向角度)。
獎勵與折扣
折扣回報為 (G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}),其中 (\gamma \in [0,1]) 控制即時與未來獎勵之間的權衡。較大的 (\gamma) 值會使代理更關注長期結果。
任務類型
- 情節任務 有起始與終止狀態(例如,馬里奧關卡)。
- 持續任務 無終止狀態,會無限執行(例如,演算法股票交易)。
探索 vs 利用
在探索(嘗試未知動作)與利用(使用已知高獎勵動作)之間取得平衡對於發現最佳策略至關重要。純粹的利用會使代理陷入次優的局部最大值,而過度的探索則會浪費資源。
解決 RL 問題的主要方法
兩類演算法旨在尋找最佳策略 (\pi^*):
基於策略的方法
- 直接學習 策略函數 (\pi(a|s)),將狀態映射到動作(確定性)或映射到動作的機率分布(隨機)。
- 所學得的策略即是代理的「大腦」。
基於價值的方法
- 學習 價值函數 (V(s)) 或行動價值函數 (Q(s,a)),估計從某狀態(或狀態‑動作對)得到的期望折扣回報。
- 策略透過間接方式衍生,即選擇能最大化估計價值的動作。
深度強化學習中的「深度」
Deep RL 透過深度神經網路增強傳統 RL 演算法,以近似策略或價值函數,使其能擴展至高維度的狀態空間(例如原始像素)。 例如,Deep Q‑Learning 用神經網路取代表格式 Q 矩陣,以預測 Q 值。
課程安排與資源
- 本教學是 Hugging Face Deep RL 課程的第 1 單元,一套免費、開源的課程,從理論逐步到實作專案。
- 學生將使用流行的函式庫 Stable Baselines3、RL Baselines3 Zoo 與 RLlib。
- 範例環境包括 SnowballFight、Huggy the Doggo、Space Invaders、PyBullet 與 LunarLander。
- 訓練好的代理可以 透過單一指令發布至 Hugging Face Hub,且 社群代理可供下載。
- 課程包含 挑戰、測驗,以及分享自訂 Unity 或 Godot 環境的說明。
下一步
下一單元將深入 Q‑Learning 與基於價值的方法,對比傳統表格式方法與深度神經網路近似。
「強化學習是一種從行動中學習的計算方法。我們構建一個透過與環境的試錯互動並接收獎勵(負向或正向)作為回饋的代理。」 – Hugging Face Deep RL Introduction