强化学习系列(三):Model-Free Control

写在前面:系列二中提及的MC/TD方法都是在已知策略$\pi$的前提下,估计每个状态的期望回报。前者是等到整个回合结束利用完整回报$G_t$来更新价值函数,后者利用一步预测和当前奖励动态更新价值函数。可以看到的是,这些方法知识学习了价值函数,并没有改变策略。在这一节,我们主要介绍一些常用的策略优化方法。

1. Epsilon Greedy

在Model-based Control中,我们基于MDP Transition采用贪心策略进行policy improvement:$\pi’(s)=argmax_{a \in A}R_s^a + P_{ss’}^aV(s’)$
在Model-free背景下,由于缺失MDP Transition,往往采用对行为价值函数Q(s,a)进行建模: $\pi’(s)=argmax_{a \in A}Q(s,a)$
这里介绍一个常用的贪心策略Epsilon Greedy:

$$ \pi(a|s) = \begin{cases} \frac{\epsilon}{m} + 1 - \epsilon & \text{if } a = \arg\max\limits_{a \in A} Q(s,a) \\ \frac{\epsilon}{m} & \text{otherwise} \end{cases} $$
why to search bad state: 避免局部最优解,通过增加对不良状态的探索,智能体能够全面地了解环境,发现可能被忽略的潜在机会,进而提升整体策略的质量。

<定义>Greedy in the limit with infinite exploration(GLIE)
随着时间的推进,策略最终收敛到纯贪婪策略;在训练过程中,每个状态和动作都要被探索无限次,确保获得充分的信息来评估所有可能的动作。
即GLIE要求策略$\pi_t$满足以下条件:
(1) $lim_{k->\infty}N_k(s,a)=\infty$
(2) $lim_{k->\infty}\pi_k(a|s)=1(a=argmax_{a’ \in A}Q_k(s,a’))$

GLIE的意义:(1)保证收敛 (2)避免局部最优

Epsilon Greedy满足GLIE:在探索的过程中逐渐减少探索率$\epsilon$,例如$\epsilon_t=1/t$

下面介绍下$\epsilon$-Greedy与Monte-Carlo结合的Control方法:
(1) 使用当前策略$\pi$与环境进行第k次完整交互(kth episode)得到采样数据: ${S_1,A_1,R_2,…,,S_T} \sim \pi$
(2) 使用MC方法对进行Q值更新:$N(S_t,A_t) \leftarrow N(S_t,A_t) + 1$, $Q(S_t, A_t) \leftarrow Q(S_t,A_t) + \frac{1}{N(S_t,A_t)}(G_t - Q(S_t, A_t))$
(3) 基于\epsilon-Greedy进行策略提升:$\epsilon \leftarrow 1/k$, $\pi \leftarrow \epsilon-greedy(Q)$

2. SARSA

将TD方法和GLIE结合的Control方法我们称其为SARSA。
SARSA
下面是SARSA进行Q值更新和策略提升的伪代码:
SARSA Algorithm

n-step SARSA:
$q_t^{(n)}=R_{t+1} + \gamma R_{t+2} + … + \gamma^{n-1}R_{t+n} + \gamma^n Q(S_{t+n})$
$Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha (q_t^{(n)}-Q(S_t,A_t))$

3. Off-Policy Learning

on policy learning:策略学习只能使用 当前策略 生成的数据
off policy learning: 策略学习可以使用 其他策略 生成的数据,包括历史数据和经验回放
​ 特点:训练策略和行为策略可以不同;可以使用 过去的数据(经验回放) 进行训练,提高数据利用率
对于off-policy learning,由于行为策略和训练策略并不相同,行为策略$\mu$产生的数据可能不符合目标策略$\pi$的分布,直接使用它来更新目标策略会产生偏差。为了修正分布偏差,可以采用Importance Sampling方法。
important sampling: 用于估计一个分布的期望值,而采样数据却来自另一个分布 的技术。它通过调整采样分布的影响,来修正采样偏差,使得估计值更准确。
$E_{X\sim P}[f(X)]=\sum P(X)f(X)=\sum Q(X)\frac{P(X)}{Q(X)}f(X)=E_{X\sim Q}[\frac{P(X)}{Q(X)}f(X)]$

下面介绍Importance Sampling for Off-Policy Monte-Carlo:
Target: 通过model-free control学习一个目标策略$\pi$,但是采样数据来自于行为策略$\mu$
在这里,我们称$\mu$为行为策略,它负责生成训练数据;$\pi$为目标策略,即我们希望学习的策略
Step:假设一个完整的episode采样序列:$\tau = {S_1, A_1, R_2,…,S_T}$
在目标策略$\pi$中的回报期望为 $G_t^{\pi/\mu} = \frac{\pi(A_t|S_t)}{\mu(A_t|S_t)}\frac{\pi(A_{t+1}|S_{t+1})}{\mu(A_{t+1}|S_{t+1})}…\frac{\pi(A_T|S_T)}{\mu(A_T|S_T)}G_t$
更新Q值函数:$Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha(G_t^{\pi/\mu}-Q(S_t,A_t))$

Ques: 为什么$\pi(A_t|S_t)$已知却不能直接用$\pi来更新Q值$
Ans: 我们手头的数据是行为策略 μ 生成的,而不是目标策略 π 生成的。如果我们直接用目标策略 π 来更新Q值,实际上我们是在假设数据是按目标策略采样的,但数据实际是按行为策略采样的。这会导致估计产生偏差。

4. Q-Learning

Q-learning是一种Off-Policy Temporal Difference Learning的控制方法,它可以借助行为策略产生的数据而无需Importance Sampling
公式:$Q(S,a) \leftarrow Q(S,a) + \alpha [R+\gamma max_{a’}Q(s’,a’)-Q(s,a)]$
Q-Learning

Ques: 为什么Q-learning不需要重要性采样
Ans:
(1)Q-learning 的目标策略始终是贪婪策略($max_{a’}Q(s’,a’)$),但行为策略可以是探索性的(比如 ϵ-greedy)。因为它只用目标策略来选择下一个状态的最优动作,不需要纠正行为策略带来的偏差。
(2)它用的是单步TD更新,不是完整回报。TD更新只依赖当前经验(s,a,r,s’),所以行为策略只需要提供足够多样的数据,不要求它和目标策略一致

Ans:无法与真实环境交互,如何训练目标策略
Ques: Simulator和Batch RL
Simulator: 强化学习中的一个环境,允许Agent在其中交互、收集数据并进行训练。适用于Online RL(在线强化学习):算法可以随时与环境交互并收集数据(如 DQN、PPO)。
Batch RL:它仅使用一个固定的数据集来训练,而不会与环境交互。需要 Off-Policy 方法:由于数据可能来自多个不同的策略(而非当前策略),必须使用 Off-Policy RL(如 DQN、BCQ)

区分Q-learning和SARSA的Q值更新:
SARSA的Q值更新公式为:$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-learning用的是下一状态的最优动作$max_{a’}Q(s’,a’)$来更新,属于Off-Policy。SARSA用的是实际选到的下一动作$A_{t+1}$来更新,属于On-Policy。

下面给出Q-Learning的伪代码:
Q-Learning Algorithm

Summary

Summary


强化学习系列(三):Model-Free Control
http://example.com/2025/03/12/强化学习系列(三)/
作者
Peter
发布于
2025年3月12日
许可协议