本文开始介绍无需模型(model-free)的强化学习方法。没有模型就通过数据去找到最优策略。对期望值进行估计。
通过修改前文的策略迭代算法得到,即将其中的基于模型的策略评价模块替换为无需模型的策略评价模块。
相关信息
策略迭代算法的核心是计算动作值 qπk(s,a) 。
对于动作值的计算方法:
- 基于模型方法。先求解贝尔曼方程得到状态值 vπk ,再由下式计算:
qπk(s,a)=r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(s′)
qπk(s,a)=E[Gt∣St=s,At=a]
通过蒙特卡洛方法用数据来估计这个期望值:
- 从 (s,a) 开始,按照策略 πk 生成一个完整轨迹(episode)。
- 该轨迹的回报记为 g(s,a),它是 Gt 的一个采样值,满足:
qπk(s,a)=E[Gt∣St=s,At=a]
- 假设我们收集了一组(N个)轨迹数据,因此得到一组样本 {g(j)(s,a)}。于是,有:
qπk(s,a)=E[Gt∣St=s,At=a]≈N1i=1∑Ng(i)(s,a)
根据大数定律,如果 N 足够大,上面的近似将会足够精确。
从初始策略 π0 开始,该算法在第 k 次迭代(k=0,1,2,…)中有两个步骤:
Step 1:策略评估
这一部分用于估算所有 (s,a) 的 qπk(s,a)。具体来说,对于每个 (s,a),从任务轨迹中采样回报,并计算回报的平均值(记作 qk(s,a)),来近似 qπk(s,a)。
Step 2:策略改进
这一部分通过如下公式来更新策略 π,得到所有 s∈S 的最优策略:
ak∗(s)=argamaxqk(s,a)
πk+1(a∣s)={1,0,若 a=ak∗(s)否则
相关信息
直接估计动作值,而不是像策略迭代算法一样先估计状态值再估计动作值,这样需要模型。

稀疏奖励:除非到达目标状态,否则无法获得任何正奖励。
回合长度:
- 太短:无法到达目标而获得正奖励
- 太长:没有必要,在价值估计最优前就能找到最优策略
稀疏奖励会降低学习效率,解决办法设计非稀疏奖励或稠密奖励。如,使智能体在靠近目标时就可以获得少量的正奖励。
考虑一个格子世界(grid-world)的例子,在遵循策略 π 的情况下,我们可以得到如下一个回合(episode):
s1a2s2a4s1a2s2a3s5a1⋯
访问(Visit):每当一个状态–动作对在回合中出现一次,就称该状态–动作对被访问(visit)了一次。
MC Basic 算法对数据采用的方法: 初始访问法(Initial-visit method)
- 只计算回报(return),并近似 qπ(s1,a2)。
- 缺点: 没有充分利用数据。
对于一个长的回合,可以被看成很多个从不同 (s,a) 出发的子回合,因此可以估计多个。如下图

可以估计 qπ(s1,a2),qπ(s2,a4),qπ(s2,a3),qπ(s5,a1),……
数据高效的方法:
- 首次访问法(first-visit method)
- 在一个回合内,对于某个状态–动作对 (s,a):只在第一次出现时,才用该次出现之后的回报来更新 qπ(s,a);该回合中后续再次出现的 (s,a) 全部忽略。
- 每次访问法(every-visit method)
- 在一个回合内,对于某个状态–动作对 (s,a):每一次出现,都使用对应的回报来更新 qπ(s,a);同一回合中可以对同一个 (s,a) 更新多次。
基于 MC 的强化学习中,还有一个重要方面是何时更新策略。主要有两种方法。
广义策略迭代(Generalized Policy Iteration, GPI):
- 它并不是一个具体的算法。
- 它指的是在策略评估(policy evaluation)与策略改进(policy improvement)两个过程之间交替进行的一种总体思想或框架。
- 许多强化学习算法都可以归入这一框架之中。
此外可以使用”回溯“的方式,先从回合最后的 (s,a) 开始,慢慢推回最初的 (s,a)。
必须具备 Exploring Starts 条件
Exploring Starts 是指:我们需要生成足够多的回合(episodes),并且这些回合必须从每一个状态–动作对开始。
- starts:从某个状态–动作对开始
- exploring:覆盖所有可能的状态–动作对
例如,我们需要从{(s1,aj)}j=15,{(s2,aj)}j=15,…,{(s9,aj)}j=15 这些状态–动作对开始的回合。
否则,如果不存在从 (si,aj) 开始的回合,那么 (si,aj) 可能从未被任何回合访问过,从而
qπ(si,aj) 无法被估计。
相关信息
MC Basic 和 MC Exploring Starts 都需要这个条件。
▷ 为什么需要考虑探索性起始(Exploring Starts)?
从理论上讲,只有当每一个状态下的每一个动作价值都得到了充分探索,我们才能正确地选择最优动作。
否则,如果某个动作从未被探索过,而它恰好是最优动作,那么该动作就可能被遗漏。
在实践中,实现探索性起始是比较困难的。
对于许多应用,尤其是那些涉及与环境进行物理交互的任务,很难收集到从每一个状态–动作对开始的回合。

every-visit method版

first-visit method版
我们能否去除对探索性起始的这一要求? 接下来我们将说明,可以通过使用**软策略(soft policies)**来实现这一点。
▷ 什么是软策略(soft policy)?
- 如果一个策略对任意动作采取的概率都是正的,则称该策略为软策略。
- 确定性策略(deterministic policy):例如,贪婪策略(greedy policy)
- 随机策略(stochastic policy):例如,软策略(soft policy)
▷ 为什么要引入软策略?
- 使用软策略时,只要回合(episode)足够长,那么少量回合就可以访问到所有状态–动作对。
- 因此,我们不再需要从每一个状态–动作对开始大量回合。换言之,对探索性起始(exploring starts)的要求可以被去除。
π(a∣s)=⎩⎨⎧1−∣A(s)∣ϵ(∣A(s)∣−1),∣A(s)∣ϵ,对于贪婪动作(greedy action),对于其余的 ∣A(s)∣−1 个动作.
其中,ϵ∈[0,1],∣A(s)∣ 表示状态 s 下可选动作的数量。
选择贪婪动作的概率始终大于选择其他动作的概率,因为
1−∣A(s)∣ϵ(∣A(s)∣−1)=1−ϵ+∣A(s)∣ϵ≥∣A(s)∣ϵ
相关信息
例子: 若 ϵ=0.2,则
∣A(s)∣ϵ=50.2=0.04,1−∣A(s)∣ϵ(∣A(s)∣−1)=1−0.04×4=0.84
ϵ-贪婪策略(ϵ-greedy policies)可以在**利用(exploitation)与探索(exploration)**之间取得平衡。
- 当 ϵ→0 时,策略退化为贪婪策略(greedy):
π(a∣s)=⎩⎨⎧1−∣A(s)∣ϵ(∣A(s)∣−1)=1,∣A(s)∣ϵ=0,对于贪婪动作,对于其余 ∣A(s)∣−1 个动作.
更多利用(exploitation),更少探索(exploration)。
- 当 ϵ→1 时,策略变为均匀分布(uniform distribution):
π(a∣s)=⎩⎨⎧1−∣A(s)∣ϵ(∣A(s)∣−1)=∣A(s)∣1,∣A(s)∣ϵ=∣A(s)∣1,对于贪婪动作,对于其余 ∣A(s)∣−1 个动作.
更多探索(exploration),更少利用(exploitation)。
对策略改进步骤进行修改如下:
πk+1(s)=argπ∈Πϵmaxa∑π(a∣s)qπk(s,a),
其中,Πϵ 表示在固定 ϵ 取值下的所有 ϵ-贪婪策略的集合。
此时得到的最优策略为
πk+1(a∣s)=⎩⎨⎧1−∣A(s)∣∣A(s)∣−1ϵ,∣A(s)∣1ϵ,a=ak∗,a=ak∗.

every-visit method版
MC ϵ-Greedy 与 MC Exploring Starts 在本质上是相同的,
不同之处在于:前者使用的是 ϵ-贪婪策略。
MC ϵ-Greedy 不再要求探索性起始(exploring starts),
但仍然需要以另一种形式访问所有状态–动作对。
▷ 与贪婪策略(greedy policies)相比:
ϵ-greedy 策略的优点在于:当 ϵ 较大时,它具有较强的探索能力。
- 因此,不再需要满足**探索性起始(exploring starts)**这一条件。
ϵ-greedy 策略的缺点在于:一般情况下,它们并不是全局最优策略。
- 它们仅在所有 ϵ-贪婪策略构成的集合 Πϵ 中是最优的。
ϵ 不能取得过大;
同时,我们也可以采用随时间递减的 ϵ(decaying ϵ)。
“最优”:指在给定 ϵ 情况下,该策略是在 Πϵ 中最优的。
一致性:指不同 ϵ 下最优 ϵ-Greedy 策略之间的概率最大策略相同。
- ϵ 越大:
- 状态值减小,最优性下降:每个状态选取不合理动作的概率变大,收到奖励变小
- 一致性下降