模式识别与机器学习课程笔记(13):强化学习
引言
强化学习(Reinforcement Learning, RL)是一种“试错式”的机器学习范式,核心思想是智能体(Agent)通过与环境(Environment)的持续交互,从奖励(Reward)中学习最优策略——无需预先提供标注数据,而是通过“探索环境-获得反馈-调整行为”的循环,逐步找到能最大化长期累积奖励的动作序列。
与监督学习(依赖标注数据)、无监督学习(挖掘数据内在结构)不同,强化学习的核心在于“序贯决策”:智能体的每一步动作不仅影响当前奖励,还会改变后续环境状态,进而影响未来奖励。这种特性使其特别适合解决动态决策问题,例如机器人控制、游戏AI、自动驾驶、金融交易等场景。
本文将从强化学习的基础框架出发,依次解析“核心概念与数学模型”(MDP)、“基于值函数的学习方法”(Q-Learning、SARSA)、“基于策略函数的学习方法”(策略梯度、Actor-Critic),最后介绍前沿方向与实际应用,构建完整的强化学习知识体系。
一、强化学习概述
要理解强化学习,需先掌握其核心要素与数学建模工具——马尔可夫决策过程(Markov Decision Process, MDP),这是所有强化学习算法的理论基础。
1.1 强化学习的核心要素
强化学习系统由5个关键组件构成,各组件的交互关系如图1(逻辑示意)所示:
- 智能体(Agent):执行动作的主体(如机器人、游戏AI),核心目标是学习最优策略。
- 环境(Environment):智能体交互的外部场景(如机器人所在的房间、游戏地图),其状态随智能体的动作动态变化。
- 状态(State, s s s):描述环境当前情况的变量(如机器人的坐标、游戏的得分与生命值),所有可能状态的集合称为状态空间 S S S。
- 动作(Action, a a a):智能体可执行的操作(如机器人“前进”“转向”、游戏“向左走”“攻击”),某状态下可执行的所有动作集合称为动作空间 A ( s ) A(s) A(s)(可能随状态变化)。
- 奖励(Reward, r r r):环境对智能体动作的即时反馈(如机器人到达目标得+10分、碰撞障碍物得-5分),是智能体学习的“指挥棒”——奖励的设计直接决定学习效果。
交互循环:智能体在状态 s t s_t st执行动作 a t a_t at → 环境转移到新状态 s t + 1 s_{t+1} st+1 → 环境反馈奖励 r t + 1 r_{t+1} rt+1 → 智能体根据 s t + 1 s_{t+1} st+1和 r t + 1 r_{t+1} rt+1调整策略 → 进入下一轮循环( t t t为时间步)。
1.2 数学基础:马尔可夫决策过程(MDP)
MDP是描述强化学习环境的数学模型,其核心假设是马尔可夫性:“未来状态仅依赖于当前状态,与历史状态无关”,即:
P
(
s
t
+
1
∣
s
t
,
a
t
,
s
t
−
1
,
a
t
−
1
,
.
.
.
,
s
0
,
a
0
)
=
P
(
s
t
+
1
∣
s
t
,
a
t
)
P(s_{t+1} \mid s_t, a_t, s_{t-1}, a_{t-1}, ..., s_0, a_0) = P(s_{t+1} \mid s_t, a_t)
P(st+1∣st,at,st−1,at−1,...,s0,a0)=P(st+1∣st,at)
其中
P
(
s
′
∣
s
,
a
)
P(s' \mid s, a)
P(s′∣s,a)称为状态转移概率,表示智能体在状态
s
s
s执行动作
a
a
a后,环境转移到状态
s
′
s'
s′的概率。
1.2.1 MDP的形式化定义
MDP由一个五元组 ⟨ S , A , P , R , γ ⟩ \langle S, A, P, R, \gamma \rangle ⟨S,A,P,R,γ⟩表示:
- S S S:状态空间(离散或连续);
- A A A:动作空间(离散或连续);
- P : S × A × S → [ 0 , 1 ] P: S \times A \times S \to [0,1] P:S×A×S→[0,1]:状态转移概率函数;
- R : S × A → R R: S \times A \to \mathbb{R} R:S×A→R:奖励函数, R ( s , a ) R(s,a) R(s,a)表示在状态 s s s执行动作 a a a后获得的即时奖励(也可扩展为 R ( s , a , s ′ ) R(s,a,s') R(s,a,s′),依赖转移后的状态);
- γ ∈ [ 0 , 1 ) \gamma \in [0,1) γ∈[0,1):折扣因子,用于权衡“即时奖励”与“长期奖励”—— γ \gamma γ越接近1,智能体越重视长期奖励; γ \gamma γ越接近0,越重视即时奖励。
1.2.2 关键概念:回报与价值函数
强化学习的目标不是最大化“即时奖励”,而是最大化“长期累积奖励”,需通过“回报”和“价值函数”量化这一目标:
-
回报(Return, G t G_t Gt):从时间步 t t t开始的长期累积奖励,定义为:
G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + . . . = ∑ k = 0 ∞ γ k r t + k + 1 G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + ... = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} Gt=rt+1+γrt+2+γ2rt+3+...=k=0∑∞γkrt+k+1
折扣因子 γ \gamma γ的作用是避免回报无穷大(当交互过程无限时),同时反映未来奖励的不确定性。 -
价值函数(Value Function):衡量“状态或(状态-动作)对的长期价值”,分为两类:
- 状态价值函数(
V
π
(
s
)
V^\pi(s)
Vπ(s)):在策略
π
\pi
π下,从状态
s
s
s出发的期望回报,即:
V π ( s ) = E π [ G t ∣ s t = s ] V^\pi(s) = \mathbb{E}_\pi[G_t \mid s_t = s] Vπ(s)=Eπ[Gt∣st=s]
其中 π ( a ∣ s ) \pi(a \mid s) π(a∣s)是策略函数,表示在状态 s s s下选择动作 a a a的概率(策略是智能体的“行为准则”)。 - 动作价值函数(
Q
π
(
s
,
a
)
Q^\pi(s,a)
Qπ(s,a)):在策略
π
\pi
π下,从状态
s
s
s执行动作
a
a
a后的期望回报,即:
Q π ( s , a ) = E π [ G t ∣ s t = s , a t = a ] Q^\pi(s,a) = \mathbb{E}_\pi[G_t \mid s_t = s, a_t = a] Qπ(s,a)=Eπ[Gt∣st=s,at=a]
Q Q Q函数是后续值函数学习方法的核心——若能准确估计 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a),智能体只需在每个状态选择 Q Q Q值最大的动作即可(即 π ( s ) = arg max a Q π ( s , a ) \pi(s) = \arg\max_a Q^\pi(s,a) π(s)=argmaxaQπ(s,a))。
- 状态价值函数(
V
π
(
s
)
V^\pi(s)
Vπ(s)):在策略
π
\pi
π下,从状态
s
s
s出发的期望回报,即:
-
贝尔曼方程(Bellman Equation):价值函数的递归关系,是强化学习算法推导的关键。以 Q Q Q函数为例,贝尔曼方程为:
Q π ( s , a ) = E π [ r + γ Q π ( s ′ , a ′ ) ∣ s , a ] Q^\pi(s,a) = \mathbb{E}_\pi\left[r + \gamma Q^\pi(s',a') \mid s,a\right] Qπ(s,a)=Eπ[r+γQπ(s′,a′)∣s,a]
含义:当前(状态-动作)对的价值 = 即时奖励 + 折扣后的下一个(状态-动作)对的期望价值。
二、基于值函数的学习方法
基于值函数的方法核心是“先估计价值函数( V V V或 Q Q Q),再通过价值函数推导最优策略”——无需直接建模策略,只需确保价值函数收敛到最优值( V ∗ V^* V∗或 Q ∗ Q^* Q∗),对应的策略即为最优策略 π ∗ \pi^* π∗。
根据是否依赖MDP的先验知识(如 P P P和 R R R),可分为“动态规划方法”(已知MDP)和“无模型方法”(未知MDP,从交互数据中学习),后者更贴近实际应用场景。
2.1 无模型值函数学习:Q-Learning(离线学习)
Q-Learning是最经典的无模型值函数算法,属于离线策略(Off-Policy) 方法——即“学习的策略”与“实际执行的策略”分离:执行时用探索策略(如 ε \varepsilon ε-greedy)收集数据,学习时用目标策略(选择 Q Q Q值最大的动作)更新 Q Q Q函数,因此数据利用更灵活。
2.1.1 核心思想:时序差分学习(TD Learning)
Q-Learning基于“时序差分(Temporal Difference, TD)”更新——无需等待完整的回报序列(如游戏结束),而是用“当前奖励 + 折扣后的下一个状态的最大Q值”作为“目标Q值”,逐步修正当前Q值,公式为:
Q
(
s
,
a
)
←
Q
(
s
,
a
)
+
α
⋅
[
r
+
γ
⋅
max
a
′
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
]
⏟
TD误差(TD Error)
Q(s,a) \leftarrow Q(s,a) + \alpha \cdot \underbrace{\left[r + \gamma \cdot \max_{a'} Q(s',a') - Q(s,a)\right]}_{\text{TD误差(TD Error)}}
Q(s,a)←Q(s,a)+α⋅TD误差(TD Error)
[r+γ⋅a′maxQ(s′,a′)−Q(s,a)]
- α ∈ ( 0 , 1 ] \alpha \in (0,1] α∈(0,1]:学习率,控制每次更新的步长( α \alpha α越大,更新越激进; α \alpha α越小,更新越平稳);
- max a ′ Q ( s ′ , a ′ ) \max_{a'} Q(s',a') maxa′Q(s′,a′):下一个状态 s ′ s' s′的最优动作价值(目标策略的体现);
- TD误差:当前Q值与目标Q值的差异,是更新的“指导信号”——误差为正则增大Q值,为负则减小Q值。
2.1.2 探索与利用: ε \varepsilon ε-greedy策略
智能体面临“探索(Exploration)”与“利用(Exploitation)”的权衡:
- 利用:选择当前Q值最大的动作( π greedy ( a ∣ s ) = arg max a Q ( s , a ) \pi_{\text{greedy}}(a \mid s) = \arg\max_a Q(s,a) πgreedy(a∣s)=argmaxaQ(s,a)),确保短期奖励最大;
- 探索:随机选择动作,可能发现更优策略,但短期奖励可能较低。
Q-Learning用 ε \varepsilon ε-greedy策略平衡二者:
- 以概率 1 − ε 1-\varepsilon 1−ε选择“利用”(选最大Q值的动作);
- 以概率 ε \varepsilon ε选择“探索”(随机选动作);
- 通常 ε \varepsilon ε随迭代次数递减(初期多探索,后期多利用),如 ε = ε 0 ⋅ decay t \varepsilon = \varepsilon_0 \cdot \text{decay}^t ε=ε0⋅decayt( decay < 1 \text{decay}<1 decay<1)。
2.1.3 Q-Learning算法步骤
假设环境状态空间 S S S和动作空间 A A A为离散型,步骤如下:
- 初始化:创建 Q Q Q表( ∣ S ∣ × ∣ A ∣ |S| \times |A| ∣S∣×∣A∣维矩阵),所有 Q ( s , a ) Q(s,a) Q(s,a)初始化为0(或小随机数);设置学习率 α \alpha α、折扣因子 γ \gamma γ、探索率 ε \varepsilon ε;
- 交互循环:对每个回合(Episode,如一局游戏):
a. 初始化当前状态 s s s(如游戏开始时的状态);
b. 直到 s s s为终止状态(如游戏结束):
i. 用 ε \varepsilon ε-greedy策略在 s s s中选择动作 a a a;
ii. 执行动作 a a a,获得环境反馈的奖励 r r r和新状态 s ′ s' s′;
iii. 用TD公式更新 Q Q Q表: Q ( s , a ) = Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a) = Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)] Q(s,a)=Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)];
iv. 更新当前状态 s = s ′ s = s' s=s′; - 终止:当 Q Q Q表收敛(多次迭代后Q值变化小于阈值)或达到预设回合数,输出 Q Q Q表与最优策略 π ∗ ( s ) = arg max a Q ( s , a ) \pi^*(s) = \arg\max_a Q(s,a) π∗(s)=argmaxaQ(s,a)。
2.2 无模型值函数学习:SARSA(在线学习)
SARSA与Q-Learning类似,均基于TD学习,但属于在线策略(On-Policy) 方法——“学习的策略”与“实际执行的策略”一致:更新Q值时,使用“实际选择的下一个动作 a ′ a' a′”的Q值,而非“最大Q值”。
2.2.1 核心区别:Q值更新公式
SARSA的Q值更新公式为:
Q
(
s
,
a
)
←
Q
(
s
,
a
)
+
α
⋅
[
r
+
γ
⋅
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
]
Q(s,a) \leftarrow Q(s,a) + \alpha \cdot \left[r + \gamma \cdot Q(s',a') - Q(s,a)\right]
Q(s,a)←Q(s,a)+α⋅[r+γ⋅Q(s′,a′)−Q(s,a)]
与Q-Learning的关键差异:
- Q-Learning:用 max a ′ Q ( s ′ , a ′ ) \max_{a'} Q(s',a') maxa′Q(s′,a′)(不依赖下一个动作的实际选择,离线);
- SARSA:用 Q ( s ′ , a ′ ) Q(s',a') Q(s′,a′)( a ′ a' a′是 ε \varepsilon ε-greedy策略在 s ′ s' s′中实际选择的动作,在线)。
2.2.2 适用场景差异
- Q-Learning:更激进,追求最优策略(即使过程中有风险,如机器人尝试靠近目标可能碰撞);
- SARSA:更保守,考虑实际执行的动作序列(适合需要规避风险的场景,如机器人在悬崖边行走——避免因探索而跌落)。
2.3 动态规划方法:策略迭代与值迭代
若已知MDP的状态转移概率 P P P和奖励函数 R R R(如简单的网格世界),可通过“动态规划”直接求解最优价值函数,分为“策略迭代”和“值迭代”两种方法。
2.3.1 策略迭代(Policy Iteration)
核心逻辑:“策略评估(Policy Evaluation)→ 策略改进(Policy Improvement)”的循环,直到策略收敛。
- 策略评估:固定当前策略
π
\pi
π,计算其对应的状态价值函数
V
π
(
s
)
V^\pi(s)
Vπ(s),公式为:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ] V^\pi(s) = \sum_{a \in A} \pi(a \mid s) \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V^\pi(s') \right] Vπ(s)=a∈A∑π(a∣s)[R(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)]
(通过迭代计算,直到 V π ( s ) V^\pi(s) Vπ(s)收敛); - 策略改进:基于收敛的
V
π
(
s
)
V^\pi(s)
Vπ(s),通过“贪心策略”更新策略:
π ′ ( s ) = arg max a [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ] \pi'(s) = \arg\max_a \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V^\pi(s') \right] π′(s)=argamax[R(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)] - 收敛判断:若 π ′ = π \pi' = \pi π′=π(策略不再变化),则 π \pi π为最优策略;否则令 π = π ′ \pi = \pi' π=π′,返回步骤1。
2.3.2 值迭代(Value Iteration)
核心逻辑:直接优化状态价值函数 V ( s ) V(s) V(s),省略“策略评估”的完整迭代,效率更高。
- 初始化:所有 V ( s ) V(s) V(s)初始化为0;
- 价值更新:对每个状态
s
s
s,迭代更新
V
(
s
)
V(s)
V(s):
V ( s ) ← max a [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ( s ′ ) ] V(s) \leftarrow \max_a \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V(s') \right] V(s)←amax[R(s,a)+γs′∈S∑P(s′∣s,a)V(s′)]
(直接取最大动作价值,融合“评估”与“改进”); - 收敛判断:当 V ( s ) V(s) V(s)的变化小于阈值时,停止迭代;
- 提取策略:基于收敛的
V
(
s
)
V(s)
V(s),生成最优策略:
π ∗ ( s ) = arg max a [ R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ( s ′ ) ] \pi^*(s) = \arg\max_a \left[ R(s,a) + \gamma \sum_{s' \in S} P(s' \mid s,a) V(s') \right] π∗(s)=argamax[R(s,a)+γs′∈S∑P(s′∣s,a)V(s′)]
三、基于策略函数的学习方法
基于策略函数的方法核心是“直接建模并优化策略函数 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(a∣s)”( θ \theta θ为策略参数),无需通过价值函数推导策略。这类方法更适合连续动作空间(如机器人关节角度控制),且能直接输出动作概率,灵活性更高。
3.1 策略函数的定义与目标
3.1.1 策略函数的形式
策略函数 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(a∣s)描述“在状态 s s s下选择动作 a a a的概率”,常见形式:
- 离散动作空间:用softmax函数输出动作概率,即:
π θ ( a ∣ s ) = exp ( f θ ( s , a ) ) ∑ a ′ ∈ A exp ( f θ ( s , a ′ ) ) \pi_\theta(a \mid s) = \frac{\exp(f_\theta(s,a))}{\sum_{a' \in A} \exp(f_\theta(s,a'))} πθ(a∣s)=∑a′∈Aexp(fθ(s,a′))exp(fθ(s,a))
其中 f θ ( s , a ) f_\theta(s,a) fθ(s,a)是参数化函数(如神经网络输出); - 连续动作空间:用高斯分布建模动作,即:
a ∼ N ( μ θ ( s ) , σ θ 2 ( s ) ) a \sim \mathcal{N}(\mu_\theta(s), \sigma_\theta^2(s)) a∼N(μθ(s),σθ2(s))
其中 μ θ ( s ) \mu_\theta(s) μθ(s)(均值)和 σ θ ( s ) \sigma_\theta(s) σθ(s)(方差)由参数 θ \theta θ的模型(如神经网络)输出。
3.1.2 策略优化目标
策略优化的目标是最大化“从初始状态出发的长期累积奖励期望”,即:
J
(
θ
)
=
E
π
θ
[
G
0
]
=
E
π
θ
[
∑
t
=
0
∞
γ
t
r
t
+
1
]
J(\theta) = \mathbb{E}_{\pi_\theta}[G_0] = \mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^{\infty} \gamma^t r_{t+1}\right]
J(θ)=Eπθ[G0]=Eπθ[t=0∑∞γtrt+1]
强化学习的核心问题转化为“求解
θ
∗
=
arg
max
θ
J
(
θ
)
\theta^* = \arg\max_\theta J(\theta)
θ∗=argmaxθJ(θ)”。
3.2 核心算法:策略梯度(Policy Gradient, PG)
策略梯度是基于策略的基础算法,其核心是“通过梯度上升直接最大化目标函数 J ( θ ) J(\theta) J(θ)”——关键在于如何计算目标函数对参数 θ \theta θ的梯度 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ)。
3.2.1 策略梯度的推导(似然比技巧)
利用“似然比(Likelihood Ratio)”技巧,可将梯度 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ)转化为可计算的形式:
- 目标函数的期望形式: J ( θ ) = E π θ [ ∑ t = 0 ∞ γ t r t + 1 ] = ∫ π θ ( τ ) R ( τ ) d τ J(\theta) = \mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^{\infty} \gamma^t r_{t+1}\right] = \int \pi_\theta(\tau) R(\tau) d\tau J(θ)=Eπθ[∑t=0∞γtrt+1]=∫πθ(τ)R(τ)dτ,其中 τ = ( s 0 , a 0 , r 1 , s 1 , a 1 , . . . ) \tau = (s_0,a_0,r_1,s_1,a_1,...) τ=(s0,a0,r1,s1,a1,...)是“轨迹”, R ( τ ) R(\tau) R(τ)是轨迹的累积奖励;
- 梯度计算:对
J
(
θ
)
J(\theta)
J(θ)求导,利用
∇
θ
π
θ
(
τ
)
=
π
θ
(
τ
)
∇
θ
log
π
θ
(
τ
)
\nabla_\theta \pi_\theta(\tau) = \pi_\theta(\tau) \nabla_\theta \log \pi_\theta(\tau)
∇θπθ(τ)=πθ(τ)∇θlogπθ(τ)(似然比性质),可得:
∇ θ J ( θ ) = E π θ [ ∇ θ log π θ ( τ ) ⋅ R ( τ ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[ \nabla_\theta \log \pi_\theta(\tau) \cdot R(\tau) \right] ∇θJ(θ)=Eπθ[∇θlogπθ(τ)⋅R(τ)] - 轨迹对数概率展开:
log
π
θ
(
τ
)
=
∑
t
=
0
∞
log
π
θ
(
a
t
∣
s
t
)
\log \pi_\theta(\tau) = \sum_{t=0}^{\infty} \log \pi_\theta(a_t \mid s_t)
logπθ(τ)=∑t=0∞logπθ(at∣st)(轨迹概率是各步动作概率的乘积),代入后简化为:
∇ θ J ( θ ) ≈ 1 N ∑ i = 1 N ∑ t = 0 T i − 1 ∇ θ log π θ ( a i , t ∣ s i , t ) ⋅ G i , t \nabla_\theta J(\theta) \approx \frac{1}{N} \sum_{i=1}^N \sum_{t=0}^{T_i-1} \nabla_\theta \log \pi_\theta(a_{i,t} \mid s_{i,t}) \cdot G_{i,t} ∇θJ(θ)≈N1i=1∑Nt=0∑Ti−1∇θlogπθ(ai,t∣si,t)⋅Gi,t
其中 N N N是轨迹数量, T i T_i Ti是第 i i i条轨迹的长度, G i , t G_{i,t} Gi,t是第 i i i条轨迹在 t t t步的回报。
3.2.2 方差 reduction:引入基线(Baseline)
直接使用上述梯度会存在高方差(不同轨迹的 G i , t G_{i,t} Gi,t波动大),导致训练不稳定。解决方案是引入“基线(Baseline, b ( s ) b(s) b(s))”——基线是与动作无关的函数(如状态价值函数 V π ( s ) V^\pi(s) Vπ(s)),不影响梯度期望(因 E [ ∇ θ log π θ ( a ∣ s ) ⋅ b ( s ) ] = 0 \mathbb{E}[\nabla_\theta \log \pi_\theta(a|s) \cdot b(s)] = 0 E[∇θlogπθ(a∣s)⋅b(s)]=0),但能减少方差。
引入基线后的策略梯度公式为:
∇
θ
J
(
θ
)
≈
1
N
∑
i
=
1
N
∑
t
=
0
T
i
−
1
∇
θ
log
π
θ
(
a
i
,
t
∣
s
i
,
t
)
⋅
(
G
i
,
t
−
b
(
s
i
,
t
)
)
\nabla_\theta J(\theta) \approx \frac{1}{N} \sum_{i=1}^N \sum_{t=0}^{T_i-1} \nabla_\theta \log \pi_\theta(a_{i,t} \mid s_{i,t}) \cdot (G_{i,t} - b(s_{i,t}))
∇θJ(θ)≈N1i=1∑Nt=0∑Ti−1∇θlogπθ(ai,t∣si,t)⋅(Gi,t−b(si,t))
实际应用中,常用“优势函数(Advantage Function)”
A
π
(
s
,
a
)
=
Q
π
(
s
,
a
)
−
V
π
(
s
)
A^\pi(s,a) = Q^\pi(s,a) - V^\pi(s)
Aπ(s,a)=Qπ(s,a)−Vπ(s)作为
(
G
i
,
t
−
b
(
s
i
,
t
)
)
(G_{i,t} - b(s_{i,t}))
(Gi,t−b(si,t))的近似,进一步提升稳定性。
3.2.3 策略梯度算法步骤
- 初始化:参数化策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(a∣s)(如神经网络),设置学习率 α \alpha α、折扣因子 γ \gamma γ;
- 采样轨迹:用当前策略 π θ \pi_\theta πθ采样 N N N条轨迹 τ 1 , τ 2 , . . . , τ N \tau_1, \tau_2, ..., \tau_N τ1,τ2,...,τN;
- 计算回报:对每条轨迹 τ i \tau_i τi,计算每个时间步 t t t的回报 G i , t = ∑ k = 0 ∞ γ k r i , t + k + 1 G_{i,t} = \sum_{k=0}^{\infty} \gamma^k r_{i,t+k+1} Gi,t=∑k=0∞γkri,t+k+1;
- 计算基线:用蒙特卡洛方法或价值函数估计基线 b ( s i , t ) b(s_{i,t}) b(si,t)(如 b ( s ) = 1 N ∑ i = 1 N G i , t b(s) = \frac{1}{N} \sum_{i=1}^N G_{i,t} b(s)=N1∑i=1NGi,t,或训练一个价值网络拟合 V π ( s ) V^\pi(s) Vπ(s));
- 梯度上升:计算策略梯度 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ),更新参数: θ ← θ + α ⋅ ∇ θ J ( θ ) \theta \leftarrow \theta + \alpha \cdot \nabla_\theta J(\theta) θ←θ+α⋅∇θJ(θ);
- 重复:返回步骤2,直到策略收敛或达到预设迭代次数。
3.3 改进算法:Actor-Critic(AC)
策略梯度的缺点是“高方差”,而值函数方法的缺点是“策略更新间接”。Actor-Critic(AC)算法结合二者优势:
- Actor(演员):参数化策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ(a∣s),负责“执行动作”和“更新策略”(基于策略梯度);
- Critic(评论家):参数化价值函数 V ϕ ( s ) V_\phi(s) Vϕ(s)(或 Q ϕ ( s , a ) Q_\phi(s,a) Qϕ(s,a)),负责“评估动作价值”(计算优势函数 A ( s , a ) = Q ( s , a ) − V ( s ) A(s,a) = Q(s,a) - V(s) A(s,a)=Q(s,a)−V(s)),为Actor提供更稳定的梯度信号。
3.3.1 核心更新逻辑
- Critic的更新:用TD误差最小化价值函数的损失,例如:
L ( ϕ ) = E [ ( r + γ V ϕ ( s ′ ) − V ϕ ( s ) ) 2 ] \mathcal{L}(\phi) = \mathbb{E}\left[ \left( r + \gamma V_\phi(s') - V_\phi(s) \right)^2 \right] L(ϕ)=E[(r+γVϕ(s′)−Vϕ(s))2]
(通过梯度下降更新 ϕ \phi ϕ,使 V ϕ ( s ) V_\phi(s) Vϕ(s)逼近真实价值); - Actor的更新:用Critic计算的优势函数作为基线,更新策略参数:
∇ θ J ( θ ) = E [ ∇ θ log π θ ( a ∣ s ) ⋅ A ( s , a ) ] \nabla_\theta J(\theta) = \mathbb{E}\left[ \nabla_\theta \log \pi_\theta(a \mid s) \cdot A(s,a) \right] ∇θJ(θ)=E[∇θlogπθ(a∣s)⋅A(s,a)]
(通过梯度上升更新 θ \theta θ)。
3.3.2 优势:稳定性与样本效率
- 稳定性:Critic提供的优势函数降低了策略梯度的方差,训练更稳定;
- 样本效率:无需等待完整轨迹(如TD误差可即时计算),样本利用率高于纯策略梯度。
3.4 实用算法:近端策略优化(PPO)
PPO是目前工业界最常用的强化学习算法之一,属于“Actor-Critic”框架的改进,核心解决“策略更新步长过大导致训练崩溃”的问题——通过“限制策略更新的幅度”,确保新策略与旧策略的差异在合理范围内。
3.4.1 核心思想:Clip目标函数
PPO的目标函数引入“Clip函数”,将策略更新幅度限制在
[
1
−
ε
,
1
+
ε
]
[1-\varepsilon, 1+\varepsilon]
[1−ε,1+ε](
ε
\varepsilon
ε通常取0.2),公式为:
L
CLIP
(
θ
)
=
E
π
θ
old
[
min
(
r
t
(
θ
)
A
t
,
clip
(
r
t
(
θ
)
,
1
−
ε
,
1
+
ε
)
A
t
)
]
\mathcal{L}_{\text{CLIP}}(\theta) = \mathbb{E}_{\pi_{\theta_{\text{old}}}}\left[ \min\left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\varepsilon, 1+\varepsilon) A_t \right) \right]
LCLIP(θ)=Eπθold[min(rt(θ)At,clip(rt(θ),1−ε,1+ε)At)]
- r t ( θ ) = π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t \mid s_t)}{\pi_{\theta_{\text{old}}}(a_t \mid s_t)} rt(θ)=πθold(at∣st)πθ(at∣st):新策略与旧策略的概率比值;
- A t A_t At:Critic计算的优势函数;
- Clip函数作用:若 r t ( θ ) r_t(\theta) rt(θ)超出 [ 1 − ε , 1 + ε ] [1-\varepsilon, 1+\varepsilon] [1−ε,1+ε],则将其截断,避免策略更新过快。
3.4.2 优势:易实现、稳定
PPO无需复杂的信任区域计算,仅通过Clip函数即可稳定训练,且样本效率高,适合复杂任务(如机器人控制、游戏AI)。
四、前沿与应用
随着深度学习的发展,强化学习已从“传统小规模问题”迈向“大规模复杂场景”,形成了多个前沿方向,并在工业界落地应用。
4.1 前沿方向
4.1.1 深度强化学习(Deep Reinforcement Learning, DRL)
传统值函数方法(如Q-Learning)依赖“Q表”,无法处理高维状态空间(如图片输入的游戏)。DRL用“深度神经网络”替代Q表或策略函数,解决高维问题:
- DQN(Deep Q-Network):用卷积神经网络(CNN)拟合Q函数,通过“经验回放(Experience Replay)”和“目标网络(Target Network)”解决训练不稳定问题,成功击败Atari游戏;
- 改进变体:
- Double DQN:解决DQN的“过估计”问题(用两个网络分别选动作和评价值);
- Dueling DQN:将Q函数分解为“状态价值 V ( s ) V(s) V(s)”和“优势函数 A ( s , a ) A(s,a) A(s,a)”,提升泛化能力;
- 深度策略梯度:用神经网络拟合策略函数(如DDPG、SAC),处理连续动作空间(如机器人控制)。
4.1.2 多智能体强化学习(MARL)
MARL研究“多个智能体在同一环境中交互”的场景,核心挑战是“智能体策略的相互影响”(如对抗、协作):
- 应用场景:自动驾驶(多车协同)、机器人团队协作、游戏(如MOBA类游戏AI);
- 关键问题:信用分配(如何判断每个智能体对团队奖励的贡献)、非平稳环境(其他智能体的策略变化导致环境动态变化)。
4.1.3 离线强化学习(Offline RL)
传统强化学习依赖“在线交互采样”,在高风险场景(如医疗、工业控制)中难以实现。Offline RL利用“已有的静态数据集”学习策略,无需在线交互:
- 核心挑战:数据分布偏移(训练数据与策略执行时的数据分布不一致);
- 解决方案:通过“保守性策略更新”(如CQL、BCQ)确保策略在离线数据上的安全性。
4.1.4 强化学习与其他领域融合
- 强化学习+大语言模型(LLM):如RLHF(Reinforcement Learning from Human Feedback),用人类反馈优化LLM的输出(如ChatGPT的对齐训练);
- 强化学习+机器人学:如基于视觉的机器人操控(用DRL处理摄像头输入,控制机械臂抓取物体)。
4.2 实际应用
4.2.1 游戏领域
- AlphaGo:DeepMind用“深度强化学习+蒙特卡洛树搜索”,击败世界围棋冠军,是RL的里程碑;
- 游戏AI:如OpenAI的DOTA 2 AI(OpenAI Five)、StarCraft II AI(AlphaStar),可与人类职业选手对抗。
4.2.2 机器人与自动驾驶
- 机器人控制:如机械臂抓取(用PPO或DDPG控制关节动作,适应不同形状的物体)、无人机导航(避障与路径规划);
- 自动驾驶:用DRL处理传感器数据(摄像头、激光雷达),决策加速、刹车、转向,实现端到端控制。
4.2.3 推荐系统
- 个性化推荐:将“用户-商品交互”视为强化学习场景——智能体(推荐系统)在状态(用户历史行为)下选择动作(推荐商品),奖励(用户点击、购买),学习最大化长期用户留存与消费的推荐策略。
4.2.4 金融领域
- 量化交易:用RL学习交易策略(如股票买卖时机、仓位控制),目标是最大化长期收益,同时控制风险(如波动率);
- 风险管理:通过RL优化风险对冲策略,适应市场动态变化。
4.2.5 医疗领域
- 治疗方案优化:如癌症放疗剂量规划(用RL选择放疗剂量与时间,平衡治疗效果与副作用);
- 康复机器人:用RL调整机器人辅助动作,适应患者的恢复进度。
总结
本文系统梳理了强化学习的核心知识,从基础到前沿形成完整链条:
- 基础框架:强化学习的核心是“智能体-环境交互”,MDP是数学建模工具,价值函数与策略函数是两大核心概念;
- 核心方法:
- 基于值函数:Q-Learning(离线)、SARSA(在线),适合离散动作空间,易实现;
- 基于策略:策略梯度、Actor-Critic、PPO,适合连续动作空间,灵活性高;
- 前沿方向:深度强化学习解决高维问题,MARL处理多智能体交互,Offline RL适应高风险场景;
- 应用落地:覆盖游戏、机器人、推荐、金融、医疗等领域,成为解决动态决策问题的关键技术。
强化学习的核心挑战仍包括“样本效率低”“泛化能力弱”“安全性差”,未来需结合大模型、因果推断等技术,进一步提升其在复杂真实场景中的适用性。

被折叠的 条评论
为什么被折叠?



