强化学习知识体系及层次脉络总结
强化学习课程分为三次课进行学习:
- 第一次课:第1章-第4章,包括强化学习基本概念、贝尔曼方程、贝尔曼最优方程、值迭代与策略迭代算法(对应第一节和第二节)。
- 第二次课:第5章-第7章,包括蒙特卡罗方法、随机近似算法和时序差分方法(对应第三节和第四节)。
- 第三次课:第8章-第10章,包括值函数方法、策略梯度方法和演员-评论家方法(第五节~第七节重点总结 DQN、REINFORCE 和 A2C 方法)。
参考资料
- 《强化学习的数学原理》(B站)
- 知乎和CSDN上的相关笔记(很多)
https://www.zhihu.com/column/c_1978435708403352235
https://blog.csdn.net/agentssl/article/details/148121271
教材PDF+PPT+代码网址:
- 【Github】:https://github.com/MathFoundationRL/Book-Mathmatical-Foundation-of-Reinforcement-Learning
- 【百度网盘】:https://pan.baidu.com/s/1kNxM8sl8FUWV6SiiGIep3Q?pwd=ghx8
- 【Onedrive】:https://westlakeu-my.sharepoint.com/:f:/g/personal/lyujialing_westlake_edu_cn/EgN1-0jOU61BnaTkG7zJ9nsBUdjKEi6hNrdT5n8mp-qn3g?e=3MbtmD
其中GitHub的材料是最新的,有条件的推荐访问GitHub
一、概念介绍
强化学习的目标是让一个智能体(agent)学会一个好的动作决策,以有效解决一系列决策问题。为此,需将问题转化为数学形式。
核心定义
- 状态(state) :描述智能体在环境中的状态,记为 s s s。所有状态构成状态空间 S = { s 1 , . . . , s n } S = \{s_1, ..., s_n\} S={s1,...,sn}。
- 动作(action) :智能体可执行的操作,记为 a a a。所有动作构成动作空间 A = { a 1 , . . . , a m } A = \{a_1, ..., a_m\} A={a1,...,am}。
- 状态转移(state transition) :执行动作后状态的变化,用条件概率表示为 p ( s ′ ∣ s , a ) p(s' | s, a) p(s′∣s,a)。
- 策略(policy) :智能体在每个状态下选择动作的规则,记为 π ( a ∣ s ) \pi(a|s) π(a∣s),即条件概率分布。
- 奖励(reward) :执行动作后从环境获得的反馈,记为 r r r。通常视为已知函数 r ( s , a ) r(s, a) r(s,a)。
- 回报(return) :沿轨迹(trajectory)收集的所有奖励的折现总和 :
G t = ∑ k = 0 ∞ γ k r t + k + 1 , γ ∈ ( 0 , 1 ) G_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1}, \quad \gamma \in (0,1) Gt=k=0∑∞γkrt+k+1,γ∈(0,1)
其中 γ \gamma γ为折现率,用于处理无限轨迹并调节对远期奖励的重视程度。
价值函数
- 状态价值函数 v π ( s ) v_\pi(s) vπ(s):在策略 π \pi π下,从状态 s s s开始的期望回报。
- 动作价值函数 q π ( s , a ) q_\pi(s, a) qπ(s,a):在策略 π \pi π下,从状态 s s s执行动作 a a a后的期望回报。
⚠️ 价值函数的定义依赖于策略;若策略未定,则无法定义确定的价值。
最优策略
当某策略 π ∗ \pi^* π∗对所有状态的价值均不小于其他策略时,称为最优策略 ,其对应的状态价值为最优状态值 v ∗ v^* v∗。
模型分类
- 有模型强化学习 :已知状态转移 p ( s ′ ∣ s , a ) p(s'|s,a) p(s′∣s,a)和奖励函数 r ( s , a ) r(s,a) r(s,a)。
- 无模型强化学习:上述信息未知,需通过与环境交互获取经验数据进行学习。
二、有模型强化学习(动态规划)
在已知系统模型的前提下,目标是求解使回报最大的策略 π \pi π。核心思想是交替优化价值函数与策略(外循环)。
1. 贝尔曼方程(Bellman Equation)
给定策略 π \pi π,状态价值满足自举关系:
v π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] v_\pi(s) = \sum_a \pi(a|s) \sum_{s', r} p(s', r | s, a) [r + \gamma v_\pi(s')] vπ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γvπ(s′)]
该方程有唯一解,可通过策略评估(Policy Evaluation)求解:
- 闭式解 : v π = ( I − γ P π ) − 1 R π v_\pi = (I - \gamma P_\pi)^{-1} R_\pi vπ=(I−γPπ)−1Rπ(理论有用,实践难用)
- 迭代解:反复应用贝尔曼更新直至收敛
2. 贝尔曼最优方程(Bellman Optimality Equation)
最优状态价值满足:
v ∗ ( s ) = max a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ∗ ( s ′ ) ] v^*(s) = \max_a \sum_{s', r} p(s', r | s, a) [r + \gamma v^*(s')] v∗(s)=amaxs′,r∑p(s′,r∣s,a)[r+γv∗(s′)]
对应的最优策略 为确定性贪心策略 :
π ∗ ( a ∣ s ) = { 1 , a = arg max a q ∗ ( s , a ) 0 , otherwise \pi^*(a|s) = \begin{cases} 1, & a = \arg\max_a q^*(s,a) \\ 0, & \text{otherwise} \end{cases} π∗(a∣s)={1,0,a=argmaxaq∗(s,a)otherwise
3. 价值迭代算法(Value Iteration)
交替执行:
- 策略更新 : π ( s ) ← arg max a q ( s , a ) \pi(s) \leftarrow \arg\max_a q(s,a) π(s)←argmaxaq(s,a)
- 价值更新 : v ( s ) ← max a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ( s ′ ) ] v(s) \leftarrow \max_a \sum_{s',r} p(s',r|s,a)[r + \gamma v(s')] v(s)←maxa∑s′,rp(s′,r∣s,a)[r+γv(s′)]
本质是直接迭代求解贝尔曼最优方程。
4. 策略迭代算法(Policy Iteration)
两步循环:
- 策略评估 :固定 π \pi π,求解 v π v_\pi vπ(内循环)
- 策略改进 : π ′ ( s ) ← arg max a q π ( s , a ) \pi'(s) \leftarrow \arg\max_a q_\pi(s,a) π′(s)←argmaxaqπ(s,a)
保证收敛到最优策略。
5. 截断策略迭代(Truncated Policy Iteration)
在策略评估阶段仅执行有限次迭代(介于价值迭代与策略迭代之间),兼顾效率与收敛速度。
三、无模型强化学习 -- 蒙特卡洛方法(MC)
在无模型情况下,通过采样轨迹估计价值函数。
核心思想
状态/动作价值是回报的期望,可用大数定律通过样本均值估计。
1. MC Basic 算法
- 采集完整 episode
- 用实际回报更新 q ( s , a ) q(s,a) q(s,a)
- 效率低,因每个 episode 仅用于一次更新
2. MC Exploring Starts
- 要求每个 ( s , a ) (s,a) (s,a)对都能作为 episode 起点(探索性起始)
- 保证充分探索,理论上可收敛到最优策略
3. MC ε-Greedy 算法
- 使用 ε-贪婪策略 (软策略)平衡探索与利用:
π ( a ∣ s ) = { 1 − ε + ε ∣ A ∣ , a = arg max q ( s , a ) ε ∣ A ∣ , otherwise \pi(a|s) = \begin{cases} 1 - \varepsilon + \frac{\varepsilon}{|A|}, & a = \arg\max q(s,a) \\ \frac{\varepsilon}{|A|}, & \text{otherwise} \end{cases} π(a∣s)={1−ε+∣A∣ε,∣A∣ε,a=argmaxq(s,a)otherwise - 可收敛到 ε-贪婪策略下的最优解;当 ε → 0 \varepsilon \to 0 ε→0,逼近全局最优
四、无模型强化学习 -- 时序差分方法(TD)
1. 增量估计与随机逼近
将均值估计转化为增量形式:
w k + 1 = w k + α k ( x k − w k ) w_{k+1} = w_k + \alpha_k (x_k - w_k) wk+1=wk+αk(xk−wk)
推广为随机逼近(Stochastic Approximation)框架。
2. Robbins-Monro(RM)算法
用于求解 g ( w ) = 0 g(w) = 0 g(w)=0的根,仅需带噪观测 g ~ ( w , η ) \tilde{g}(w, \eta) g~(w,η):
w k + 1 = w k − a k g ~ ( w k , η k ) w_{k+1} = w_k - a_k \tilde{g}(w_k, \eta_k) wk+1=wk−akg~(wk,ηk)
3. 随机梯度下降(SGD)
RM 的特例,用于优化期望损失:
w k + 1 = w k − α k ∇ w ℓ ( w k ; x k ) w_{k+1} = w_k - \alpha_k \nabla_w \ell(w_k; x_k) wk+1=wk−αk∇wℓ(wk;xk)
4. TD(0) 算法(状态值估计)
基于贝尔曼期望方程的增量更新:
v ( s t ) ← v ( s t ) + α [ r t + 1 + γ v ( s t + 1 ) − v ( s t ) ] v(s_t) \leftarrow v(s_t) + \alpha [r_{t+1} + \gamma v(s_{t+1}) - v(s_t)] v(st)←v(st)+α[rt+1+γv(st+1)−v(st)]
其中 δ t = r t + 1 + γ v ( s t + 1 ) − v ( s t ) \delta_t = r_{t+1} + \gamma v(s_{t+1}) - v(s_t) δt=rt+1+γv(st+1)−v(st)为时序差分误差。
5. Sarsa 算法(动作值估计,在线策略)
更新规则:
q ( s t , a t ) ← q ( s t , a t ) + α [ r t + 1 + γ q ( s t + 1 , a t + 1 ) − q ( s t , a t ) ] q(s_t, a_t) \leftarrow q(s_t, a_t) + \alpha [r_{t+1} + \gamma q(s_{t+1}, a_{t+1}) - q(s_t, a_t)] q(st,at)←q(st,at)+α[rt+1+γq(st+1,at+1)−q(st,at)]
结合 ε-Greedy 策略改进,构成完整在线策略学习算法。
6. n-step Sarsa
推广 TD 步长为 n n n:
-
n = 1 n=1 n=1:Sarsa(低方差,高偏差)
-
n → ∞ n \to \infty n→∞:蒙特卡洛(高方差,低偏差)
7. Q-learning(离线策略)
直接估计最优动作价值:
q ( s t , a t ) ← q ( s t , a t ) + α [ r t + 1 + γ max a ′ q ( s t + 1 , a ′ ) − q ( s t , a t ) ] q(s_t, a_t) \leftarrow q(s_t, a_t) + \alpha [r_{t+1} + \gamma \max_{a'} q(s_{t+1}, a') - q(s_t, a_t)] q(st,at)←q(st,at)+α[rt+1+γa′maxq(st+1,a′)−q(st,at)]
- 离线策略(off-policy):行为策略与目标策略可不同
- 可利用任意策略生成的数据学习最优策略
五、Deep Q-learning(DQN)
当状态空间连续或巨大时,用神经网络 参数化动作价值函数 q ( s , a ; w ) q(s,a; w) q(s,a;w)。
关键技术
- 目标网络 (Target Network):固定 w − w^- w−计算目标值,稳定训练
L ( w ) = E [ ( r + γ max a ′ q ( s ′ , a ′ ; w − ) − q ( s , a ; w ) ) 2 ] \mathcal{L}(w) = \mathbb{E}\left[ \left( r + \gamma \max_{a'} q(s', a'; w^-) - q(s, a; w) \right)^2 \right] L(w)=E[(r+γa′maxq(s′,a′;w−)−q(s,a;w))2] - 经验回放(Experience Replay):打破样本相关性,实现 i.i.d. 采样
算法形式
- 在线 DQN:与环境交互,用 ε-Greedy 采样
- 离线 DQN:从回放缓冲区采样更新
六、策略梯度算法(REINFORCE)
当动作空间连续或策略需直接优化时,参数化策略 π ( a ∣ s ; θ ) \pi(a|s; \theta) π(a∣s;θ),最大化目标函数:
J ( θ ) = E π θ [ G t ] J(\theta) = \mathbb{E}{\pi\theta}[G_t] J(θ)=Eπθ[Gt]
梯度公式(似然比 trick)
∇ θ J ( θ ) = E π θ [ G t ∇ θ log π ( a t ∣ s t ; θ ) ] \nabla_\theta J(\theta) = \mathbb{E}{\pi\theta} \left[ G_t \nabla_\theta \log \pi(a_t|s_t; \theta) \right] ∇θJ(θ)=Eπθ[Gt∇θlogπ(at∣st;θ)]
REINFORCE 算法
- 用蒙特卡洛采样估计 G t G_t Gt
- 更新规则:
θ ← θ + α G t ∇ θ log π ( a t ∣ s t ; θ ) \theta \leftarrow \theta + \alpha G_t \nabla_\theta \log \pi(a_t|s_t; \theta) θ←θ+αGt∇θlogπ(at∣st;θ) - 在线策略,高方差
七、Actor-Critic 算法
结合策略梯度 (Actor)与价值估计(Critic):
- Actor :参数化策略 π ( a ∣ s ; θ ) \pi(a|s; \theta) π(a∣s;θ),用策略梯度更新
- Critic :参数化价值函数 v ( s ; w ) v(s; w) v(s;w)或 q ( s , a ; w ) q(s,a; w) q(s,a;w),用 TD 方法更新
Advantage Actor-Critic(A2C)
引入优势函数 降低方差:
A ( s , a ) = q ( s , a ) − v ( s ) ≈ r + γ v ( s ′ ) − v ( s ) A(s,a) = q(s,a) - v(s) \approx r + \gamma v(s') - v(s) A(s,a)=q(s,a)−v(s)≈r+γv(s′)−v(s)
策略梯度变为:
∇ θ J ( θ ) ≈ E [ A ( s , a ) ∇ θ log π ( a ∣ s ; θ ) ] \nabla_\theta J(\theta) \approx \mathbb{E} \left[ A(s,a) \nabla_\theta \log \pi(a|s; \theta) \right] ∇θJ(θ)≈E[A(s,a)∇θlogπ(a∣s;θ)]
离线策略扩展
通过重要性采样 (Importance Sampling)利用其他策略生成的数据:
ρ t = π ( a t ∣ s t ) β ( a t ∣ s t ) \rho_t = \frac{\pi(a_t|s_t)}{\beta(a_t|s_t)} ρt=β(at∣st)π(at∣st)
在 Actor 和 Critic 更新中引入权重 ρ t \rho_t ρt。
总结:强化学习方法演进脉络
| 类别 | 方法 | 特点 |
|---|---|---|
| 有模型 | 价值/策略迭代 | 需完整模型,精确但不实用 |
| 无模型 - 基于价值 | MC, TD, Q-learning, DQN | 适用于离散动作,DQN 处理高维状态 |
| 无模型 - 基于策略 | REINFORCE | 适用于连续动作,高方差 |
| 混合方法 | Actor-Critic (A2C) | 结合两者优点,低方差,高效 |
强化学习的核心在于在探索与利用之间取得平衡 ,并通过自举 (bootstrapping)、采样 (sampling)和函数逼近(function approximation)三大技术,逐步从简单表格方法走向深度强化学习。