Lil’Log:深入淺出 Reinforcement Learning 全覽
作者: Lilian Weng(前 OpenAI 研究負責人) 日期: 2018 年 2 月 19 日(更新至 2021 年 9 月) 預估閱讀時間: 31 分鐘 來源: https://lilianweng.github.io
什麼是 Reinforcement Learning?
Reinforcement Learning(強化學習,RL) 處理的問題是:Agent(智能體)在不完全了解環境的情況下,透過與環境互動來學習最大化累積獎勵的策略。關鍵在於不需要事先知道環境模型,而是從試誤中學習。
核心概念
Policy(策略)
Agent 的決策函數,決定在每個 State(狀態)下要採取什麼 Action(行動):
- Deterministic Policy:每個 State 對應一個固定 Action
- Stochastic Policy:每個 State 對應 Action 的機率分佈
Value Function(價值函數)
衡量從某個 State 出發的預期累積獎勵:
- State-Value Function V(s):在 State s 的長期預期獎勵
- Action-Value Function Q(s,a):在 State s 採取 Action a 的長期預期獎勵
- Advantage Function A(s,a):某 Action 比平均好多少
Markov Decision Process(MDP)
RL 問題的數學形式化框架,五個要素:States(狀態集)、Actions(行動集)、Transition Probabilities(轉移機率)、Rewards(獎勵)、Discount Factor(折扣因子)。Markov Property 確保未來狀態只依賴當前狀態,與歷史無關。
Bellman Equation(貝爾曼方程)
將 Value Function 遞推分解為「當前獎勵 + 折扣後的未來價值」,是 RL 演算法的數學基礎。
主要演算法類別
Dynamic Programming(動態規劃)
需要完整環境模型,透過 Policy Evaluation + Policy Improvement 交替迭代求解最優 Policy。
Monte Carlo Methods(蒙地卡羅方法)
Model-free(不需要模型),從完整 Episode(回合)的實際收益估計 Value Function。優點:無偏差;缺點:需要等到 Episode 結束才能更新。
Temporal-Difference Learning(TD Learning,時序差分學習)
結合 MC 和 DP 的特點,不需要完整 Episode,用 Bootstrap(自舉法)更新估計值:
- SARSA:On-policy,用實際採取的 Action 更新
- Q-Learning:Off-policy,用最大 Q 值更新,可以從探索行為中學習最優策略
- Deep Q-Network(DQN):用 Neural Network 近似 Q Function,加入 Experience Replay 和 Target Network 穩定訓練
Policy Gradient(策略梯度)
直接對 Policy 參數做 Gradient Ascent 最大化期望回報:
- REINFORCE:用完整 Episode 回報計算梯度
- Actor-Critic:Actor 學 Policy,Critic 學 Value Function,可以逐步更新
- A3C:非同步多執行緒訓練,加速收斂
Evolution Strategies(進化策略)
Black-box 優化方法,從 Gaussian 分佈取樣參數擾動,根據表現更新。優點:無需 Backpropagation,極易平行化。
重要挑戰
Exploration-Exploitation Dilemma(探索與利用的兩難):Agent 需要在嘗試新行動(探索)和使用已知好策略(利用)之間取得平衡。
Deadly Triad(致命三角):同時使用 Off-policy Learning + Nonlinear Function Approximation + Bootstrapping 會導致訓練不穩定。DQN 透過 Experience Replay 和 Target Network 部分解決這個問題。
案例研究:AlphaGo Zero
DeepMind 的 AlphaGo Zero 只靠 Self-play(自我對弈)和 RL,不使用任何人類棋局資料,透過以下結構達到超越職業棋手的水準:
- ResNet CNN 同時輸出落子機率與勝率預測
- Monte Carlo Tree Search(MCTS)在搜索時改善 Policy
- Self-play 生成訓練資料存入 Replay Memory
- 聯合最小化 Policy Loss 和 Value Loss
學習建議
本文適合作為 RL 入門後的第一份深度閱讀。建議配合程式碼實作:理解 Q-Learning 後實作 CartPole,理解 Policy Gradient 後實作 REINFORCE。