作为典型的同策(sarsa)异策(q-learning)算法,这里从贝尔曼出发,介绍一下更新的过程中的一些详细的数学描述。
目录
1. 强化学习基础概念
1.1 基本要素
强化学习是一种通过与环境交互来学习最优策略的机器学习方法。其核心要素包括:
- 智能体(Agent): 学习和决策的主体
- 环境(Environment): 智能体所处的外部世界
- 状态(State): 描述环境当前情况的信息,记为 s ∈ S s \in S s∈S
- 动作(Action): 智能体可以执行的行为,记为 a ∈ A ( s ) a \in A(s) a∈A(s)
- 奖励(Reward): 环境对智能体动作的反馈,记为 r ∈ R r \in \mathbb{R} r∈R
- 策略(Policy): 智能体的行为准则,记为 π ( a ∣ s ) \pi(a|s) π(a∣s)
1.2 价值函数
状态价值函数 V π ( s ) V^\pi(s) Vπ(s):在策略 π \pi π 下,从状态 s s s 开始的期望累积奖励
V π ( s ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ∣ S 0 = s ] V^\pi(s) = \mathbb{E}_{\pi}\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1} | S_0 = s\right] Vπ(s)=Eπ[t=0∑∞γtRt+1∣S0=s]
动作价值函数 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a):在策略 π \pi π 下,从状态 s s s 执行动作 a a a 的期望累积奖励
Q π ( s , a ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ∣ S 0 = s , A 0 = a ] Q^\pi(s,a) = \mathbb{E}_{\pi}\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1} | S_0 = s, A_0 = a\right] Qπ(s,a)=Eπ[t=0∑∞γtRt+1∣S0=s,A0=a]
其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1] 是折扣因子。
1.3 贝尔曼方程
状态价值函数的贝尔曼方程:
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′)]
动作价值函数的贝尔曼方程:
Q
π
(
s
,
a
)
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
∑
a
′
π
(
a
′
∣
s
′
)
Q
π
(
s
′
,
a
′
)
]
Q^\pi(s,a) = \sum_{s',r} p(s',r|s,a)[r + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s',a')]
Qπ(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′∑π(a′∣s′)Qπ(s′,a′)]
2. 马尔可夫决策过程(MDP)
2.1 定义
马尔可夫决策过程是一个五元组 ( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ):
- S S S: 状态空间
- A A A: 动作空间
- P P P: 状态转移概率 P ( s ′ ∣ s , a ) P(s'|s,a) P(s′∣s,a)
- R R R: 奖励函数 R ( s , a , s ′ ) R(s,a,s') R(s,a,s′)
- γ \gamma γ: 折扣因子
2.2 马尔可夫性质
马尔可夫性质:未来状态只依赖于当前状态,与历史无关
P ( S t + 1 = s ′ ∣ S t = s t , A t = a t , S t − 1 = s t − 1 , . . . , S 0 = s 0 ) = P ( S t + 1 = s ′ ∣ S t = s t , A t = a t ) P(S_{t+1}=s'|S_t=s_t, A_t=a_t, S_{t-1}=s_{t-1}, ..., S_0=s_0) = P(S_{t+1}=s'|S_t=s_t, A_t=a_t) P(St+1=s′∣St=st,At=at,St−1=st−1,...,S0=s0)=P(St+1=s′∣St=st,At=at)
2.3 最优策略
最优状态价值函数:
V
∗
(
s
)
=
max
π
V
π
(
s
)
V^*(s) = \max_\pi V^\pi(s)
V∗(s)=πmaxVπ(s)
最优动作价值函数:
Q
∗
(
s
,
a
)
=
max
π
Q
π
(
s
,
a
)
Q^*(s,a) = \max_\pi Q^\pi(s,a)
Q∗(s,a)=πmaxQπ(s,a)
贝尔曼最优方程:
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′)]
Q
∗
(
s
,
a
)
=
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
max
a
′
Q
∗
(
s
′
,
a
′
)
]
Q^*(s,a) = \sum_{s',r} p(s',r|s,a)[r + \gamma \max_{a'} Q^*(s',a')]
Q∗(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′maxQ∗(s′,a′)]
3. 时序差分学习(TD Learning)
3.1 基本思想
时序差分学习结合了蒙特卡洛方法和动态规划的优点:
- 像蒙特卡洛方法一样,不需要环境模型
- 像动态规划一样,可以在线学习,不需要等到回合结束
3.2 TD误差
TD误差定义为:
δ
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)
这个误差衡量了当前估计与实际观察到的奖励加上下一状态估计价值之间的差异。
3.3 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)]
其中 α \alpha α 是学习率。
4. SARSA算法
4.1 算法思想
SARSA (State-Action-Reward-State-Action) 是一种**在策略(on-policy)**的时序差分控制算法。它直接学习当前策略的动作价值函数。
4.2 数学推导
4.2.1 更新公式推导
从贝尔曼方程出发:
Q
π
(
s
,
a
)
=
E
[
R
t
+
1
+
γ
Q
π
(
S
t
+
1
,
A
t
+
1
)
∣
S
t
=
s
,
A
t
=
a
]
Q^\pi(s,a) = \mathbb{E}[R_{t+1} + \gamma Q^\pi(S_{t+1}, A_{t+1}) | S_t = s, A_t = a]
Qπ(s,a)=E[Rt+1+γQπ(St+1,At+1)∣St=s,At=a]
使用样本来近似期望:
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)]
4.2.2 TD误差
SARSA的TD误差为:
δ
t
=
R
t
+
1
+
γ
Q
(
S
t
+
1
,
A
t
+
1
)
−
Q
(
S
t
,
A
t
)
\delta_t = R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)
δt=Rt+1+γQ(St+1,At+1)−Q(St,At)
4.3 算法流程
算法:SARSA
输入:步长α ∈ (0,1],小的ε > 0
初始化:对所有s ∈ S, a ∈ A(s),任意初始化Q(s,a),除了Q(terminal, ·) = 0
对每个回合:
初始化S
根据Q导出的策略选择A(如ε-贪心)
对回合中的每一步:
执行动作A,观察R,S'
根据Q导出的策略从S'选择A'
Q(S,A) ← Q(S,A) + α[R + γQ(S',A') - Q(S,A)]
S ← S'; A ← A'
直到S是终止状态
4.4 ε-贪心策略
π ( a ∣ s ) = { 1 − ε + ε ∣ A ( s ) ∣ if a = arg max a ′ Q ( s , a ′ ) ε ∣ A ( s ) ∣ otherwise \pi(a|s) = \begin{cases} 1 - \varepsilon + \frac{\varepsilon}{|A(s)|} & \text{if } a = \arg\max_{a'} Q(s,a') \\ \frac{\varepsilon}{|A(s)|} & \text{otherwise} \end{cases} π(a∣s)={1−ε+∣A(s)∣ε∣A(s)∣εif a=argmaxa′Q(s,a′)otherwise
4.5 数值示例
考虑一个简单的2×2网格世界:
[S] [ ]
[ ] [G]
- S: 起始状态 (0,0)
- G: 目标状态 (1,1)
- 动作:上、下、左、右
- 奖励:到达目标+10,其他-1
- γ = 0.9, α = 0.1, ε = 0.1
初始化:所有Q(s,a) = 0
第一步:
- 状态:S = (0,0)
- 选择动作:A = 右 (ε-贪心)
- 执行动作:R = -1, S’ = (0,1)
- 选择下一动作:A’ = 下
- 更新:Q((0,0), 右) = 0 + 0.1×(-1 + 0.9×0 - 0) = -0.1
继续迭代…
5. Q-learning算法
5.1 算法思想
Q-learning是一种**离策略(off-policy)*的时序差分控制算法。它学习最优动作价值函数Q,而不依赖于当前遵循的策略。
5.2 数学推导
5.2.1 更新公式推导
从贝尔曼最优方程出发:
Q
∗
(
s
,
a
)
=
E
[
R
t
+
1
+
γ
max
a
′
Q
∗
(
S
t
+
1
,
a
′
)
∣
S
t
=
s
,
A
t
=
a
]
Q^*(s,a) = \mathbb{E}[R_{t+1} + \gamma \max_{a'} Q^*(S_{t+1}, a') | S_t = s, A_t = a]
Q∗(s,a)=E[Rt+1+γa′maxQ∗(St+1,a′)∣St=s,At=a]
使用样本来近似期望:
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)]
5.2.2 TD误差
Q-learning的TD误差为:
δ
t
=
R
t
+
1
+
γ
max
a
′
Q
(
S
t
+
1
,
a
′
)
−
Q
(
S
t
,
A
t
)
\delta_t = R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') - Q(S_t, A_t)
δt=Rt+1+γa′maxQ(St+1,a′)−Q(St,At)
5.3 算法流程
算法:Q-learning
输入:步长α ∈ (0,1],小的ε > 0
初始化:对所有s ∈ S, a ∈ A(s),任意初始化Q(s,a),除了Q(terminal, ·) = 0
对每个回合:
初始化S
对回合中的每一步:
根据Q导出的策略从S选择A(如ε-贪心)
执行动作A,观察R,S'
Q(S,A) ← Q(S,A) + α[R + γ max_a Q(S',a) - Q(S,A)]
S ← S'
直到S是终止状态
5.4 关键特性
- 离策略性:学习的是最优策略,而行为策略可以是探索性的
- 最大化操作:使用 max a ′ Q ( S t + 1 , a ′ ) \max_{a'} Q(S_{t+1}, a') maxa′Q(St+1,a′) 而不是实际选择的动作
- 收敛性:在适当条件下收敛到最优Q函数
5.5 数值示例
使用相同的2×2网格世界:
第一步:
- 状态:S = (0,0)
- 选择动作:A = 右 (ε-贪心)
- 执行动作:R = -1, S’ = (0,1)
- 更新:Q((0,0), 右) = 0 + 0.1×(-1 + 0.9×max{Q((0,1), a)} - 0)
- 由于所有Q值初始为0:Q((0,0), 右) = -0.1
关键差异:Q-learning使用max操作,而SARSA使用实际选择的动作。
6. 算法对比分析
6.1 核心差异
| 特性 | SARSA | Q-learning |
|---|---|---|
| 策略类型 | 在策略(On-policy) | 离策略(Off-policy) |
| 更新公式 | R + γ Q ( S ′ , A ′ ) R + \gamma Q(S', A') R+γQ(S′,A′) | R + γ max a ′ Q ( S ′ , a ′ ) R + \gamma \max_{a'} Q(S', a') R+γmaxa′Q(S′,a′) |
| 学习目标 | 当前策略的价值 | 最优策略的价值 |
| 探索影响 | 受当前策略影响 | 不受行为策略影响 |
| 收敛速度 | 相对较慢 | 相对较快 |
| 安全性 | 更保守 | 更激进 |
6.2 数学表达对比
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)]
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)]
6.3 悬崖漫步问题
考虑经典的悬崖漫步问题:
[S] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [G]
[C] [C] [C] [C] [C] [C] [C] [C] [C] [C] [C] [ ]
- S: 起始位置
- G: 目标位置
- C: 悬崖(掉落奖励-100)
SARSA行为:学习安全路径(远离悬崖)
Q-learning行为:学习最优路径(沿悬崖边缘)
7. 网格世界示例
7.1 问题设置
考虑一个4×4的网格世界:
[S] [ ] [ ] [G]
[ ] [X] [ ] [ ]
[ ] [ ] [X] [ ]
[ ] [ ] [ ] [ ]
- S: 起始状态 (0,0)
- G: 目标状态 (0,3),奖励 +10
- X: 障碍物,不可通过
- 其他状态奖励 -1
- 动作:上、下、左、右
- 参数:γ = 0.9, α = 0.1, ε = 0.1
7.2 SARSA详细执行过程
初始化:
Q表初始化为0(除终止状态)
当前策略:ε-贪心
回合1:
- S₀ = (0,0), 选择A₀ = 右
- 执行动作:R₁ = -1, S₁ = (0,1)
- 选择A₁ = 右
- 更新:Q((0,0), 右) = 0 + 0.1×(-1 + 0.9×0 - 0) = -0.1
- S₁ = (0,1), A₁ = 右, R₂ = -1, S₂ = (0,2)
- 选择A₂ = 右
- 更新:Q((0,1), 右) = 0 + 0.1×(-1 + 0.9×0 - 0) = -0.1
- 继续直到到达目标…
多回合后的Q表收敛:
状态(0,0): 右=-0.729, 下=-0.81, 上=-0.9, 左=-0.9
状态(0,1): 右=-0.81, 下=-0.729, 上=-0.9, 左=-0.9
状态(0,2): 右=0, 下=-0.81, 上=-0.9, 左=-0.9
...
7.3 Q-learning详细执行过程
回合1:
- S₀ = (0,0), 选择A₀ = 右
- 执行动作:R₁ = -1, S₁ = (0,1)
- 更新:Q((0,0), 右) = 0 + 0.1×(-1 + 0.9×max{Q((0,1), a)} - 0) = -0.1
- S₁ = (0,1), 选择A₁ = 右
- 执行动作:R₂ = -1, S₂ = (0,2)
- 更新:Q((0,1), 右) = 0 + 0.1×(-1 + 0.9×max{Q((0,2), a)} - 0) = -0.1
- 继续…
关键差异:Q-learning在更新时总是使用下一状态的最大Q值,而SARSA使用实际选择的动作对应的Q值。
7.4 收敛结果比较
经过足够多的训练回合后:
SARSA最终策略:
- 更保守,可能选择较安全的路径
- 受探索策略影响,路径可能不是严格最优
Q-learning最终策略:
- 更激进,倾向于选择最短路径
- 不受行为策略影响,收敛到真正的最优策略
8. 收敛性分析
8.1 SARSA收敛性
定理:在以下条件下,SARSA算法收敛到最优策略:
- 有限MDP:状态和动作空间有限
- 策略条件:所有状态-动作对被无限次访问
- 学习率条件:
- ∑ t = 1 ∞ α t = ∞ \sum_{t=1}^{\infty} \alpha_t = \infty ∑t=1∞αt=∞
- ∑ t = 1 ∞ α t 2 < ∞ \sum_{t=1}^{\infty} \alpha_t^2 < \infty ∑t=1∞αt2<∞
证明思路:
- SARSA是随机近似算法的一个实例
- 满足Robbins-Monro条件
- 利用随机近似理论证明收敛性
8.2 Q-learning收敛性
定理:在以下条件下,Q-learning算法以概率1收敛到最优Q函数:
- 有限MDP:状态和动作空间有限
- 访问条件:所有状态-动作对被无限次访问
- 学习率条件:同SARSA
证明要点:
- Q-learning更新是收缩映射
- 收缩系数为γ
- 利用Banach不动点定理
8.3 收敛速度分析
理论分析:
- Q-learning通常收敛更快,因为直接学习最优策略
- SARSA收敛速度依赖于当前策略的探索程度
实验验证:
# 伪代码:收敛速度比较
for episode in range(1000):
# SARSA
sarsa_error = compute_bellman_error(Q_sarsa, optimal_Q)
# Q-learning
qlearning_error = compute_bellman_error(Q_qlearning, optimal_Q)
# 通常观察到:qlearning_error下降更快
9. 实际应用场景
9.1 SARSA适用场景
-
安全关键系统:
- 自动驾驶:需要保守的驾驶策略
- 医疗决策:错误代价极高
- 金融交易:需要风险控制
-
在线学习:
- 实时系统中需要边学习边执行
- 不能承受过度探索的风险
数学表达:
当环境中存在"陷阱"状态时,SARSA的保守性体现为:
E
[
Q
S
A
R
S
A
(
s
,
a
)
]
≤
E
[
Q
o
p
t
i
m
a
l
(
s
,
a
)
]
\mathbb{E}[Q^{SARSA}(s,a)] \leq \mathbb{E}[Q^{optimal}(s,a)]
E[QSARSA(s,a)]≤E[Qoptimal(s,a)]
9.2 Q-learning适用场景
-
离线学习:
- 游戏AI:可以通过大量试错学习
- 仿真环境:错误成本较低
- 资源分配:追求最优解
-
探索导向任务:
- 路径规划:寻找最短路径
- 参数优化:寻找全局最优
数学表达:
Q-learning的最优性体现为:
lim
t
→
∞
Q
t
(
s
,
a
)
=
Q
∗
(
s
,
a
)
\lim_{t \to \infty} Q_t(s,a) = Q^*(s,a)
t→∞limQt(s,a)=Q∗(s,a)
9.3 混合策略
在实际应用中,可以结合两种算法的优点:
# 伪代码:自适应算法选择
if safety_critical:
use_sarsa()
else:
use_qlearning()
# 或者动态切换
if exploration_phase:
use_qlearning() # 快速学习
else:
use_sarsa() # 安全执行
10. 总结
10.1 核心要点
-
SARSA:
- 在策略算法,学习当前策略的价值
- 更新公式: Q ( s , a ) ← Q ( s , a ) + α [ r + γ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a) \leftarrow Q(s,a) + \alpha[r + \gamma Q(s',a') - Q(s,a)] Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]
- 特点:保守、安全、受探索策略影响
-
Q-learning:
- 离策略算法,学习最优策略的价值
- 更新公式: Q ( s , a ) ← Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a) \leftarrow 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)]
- 特点:激进、最优、不受行为策略影响
10.2 选择指南
| 考虑因素 | 选择SARSA | 选择Q-learning |
|---|---|---|
| 安全性要求 | 高 | 低 |
| 收敛速度 | 可接受较慢 | 需要快速 |
| 探索成本 | 高 | 低 |
| 最优性要求 | 可接受次优 | 必须最优 |
| 环境类型 | 真实环境 | 仿真环境 |
10.3 扩展方向
- 函数近似:处理大状态空间
- 多步方法:SARSA(λ)和Q(λ)
- 深度强化学习:DQN、DDQN等
- 策略梯度方法:Actor-Critic算法
10.4 数学本质
两种算法的核心都是通过时序差分学习来逼近贝尔曼方程:
- SARSA逼近策略评估的贝尔曼方程
- Q-learning逼近最优控制的贝尔曼方程
这种差异导致了它们在行为和应用上的根本不同,理解这一点是掌握强化学习的关键。
参考文献
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement learning: An introduction.
- Watkins, C. J., & Dayan, P. (1992). Q-learning. Machine learning, 8(3-4), 279-292.
- Rummery, G. A., & Niranjan, M. (1994). On-line Q-learning using connectionist systems.
- Singh, S., et al. (2000). Convergence results for single-step on-policy reinforcement-learning algorithms.
本教程提供了SARSA和Q-learning算法的完整数学分析和实践指导。通过理论推导、数值示例和应用分析,帮助读者深入理解这两种重要的强化学习算法。

6992

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



