文章目录
Reference
[1] David Silver: https://www.davidsilver.uk/wp-content/uploads/2020/03/control.pdf
在强化学习(三)中我们了解了在非MDP环境中如何预测价值函数。
正如强化学习(二)动态规划一样,在完成价值函数预测后我们需要学习价值函数的优化控制。优化方法分为on-policy
和off-policy
两种,其中on-policy
支持策略
π
\pi
π在策略自己采样的数据中学习,off-policy
支持策略在其他策略采样的数据中学习。
1. On-Policy Learning
1.1 策略迭代(Generalised Policy Iteration)
与DP策略迭代相同,·Model-Free·下的策略迭代也有策略评估
与策略改进
两部分组成。
但是普遍的策略迭代方式存在两大问题:
- 在未知MDP环境下,无法继续使用V函数进行贪心策略改进。
- 单纯的贪心策略无法探索达到最优策略。
因此,需要通过使用Q函数的策略迭代以及增加探索机制加以改进。
1.1.1 使用Q函数的策略评估(Policy-Evaluation With Action-Value Function)
贪心策略是在状态s下选择最大q值所对应的动作。但如果使用V函数进行策略评估,会因为在非MDP环境下无法得知状态转移概率等而不能正常执行。所以按照相同的原理,我们可以将V函数转化为使用Q函数来进行策略评估。
1.1.2 ϵ − G r e e d y \epsilon-Greedy ϵ−Greedy 探索( ϵ − G r e e d y \epsilon-Greedy ϵ−Greedy Exploration)
贪心策略在每次更新时都会选择Q值最大的动作,很明显这并不能保证能够达到全局最优策略。因此我们需要加入一些简单的探索机制。
证明:
综上所述,在Model-Free环境下,策略评估可以采用预测Q函数的MC、TD(0)或TD( λ \lambda λ)方法。策略改进可以采用 ϵ − \epsilon- ϵ− greedy policy方法。下面我们将分别介绍MC和TD策略迭代方法。
1.2 蒙特卡洛策略迭代(Policy Iteration With Monte-Carlo Evaluation)
(1)回顾:蒙特卡洛策略评估
通过计算一条完整轨迹的折扣回报与价值函数的差值和学习率的乘积,对价值函数进行修正。
(2)蒙特卡洛控制
循环迭代基于Q函数的MC策略评估与
ϵ
−
g
r
e
e
d
y
\epsilon - greedy
ϵ−greedy的策略改进方法,直到收敛获得最优动作价值函数与最优策略。
1.2.1 GLIE MC Control
(1)GLIE
若要达到动作函数与策略的收敛,MC策略迭代必须GLIE。
- 每个状态动作对(s,a)必须经过大量计算。
- ϵ \epsilon ϵ 探索值会随着策略的改进而逐渐减小为0.(从随机探索性策略变为确定性策略)
(2)MC Policy Iteration
对于每一段完整轨迹,使用MC策略评估预测动作价值函数,接着采用
ϵ
−
g
r
e
e
d
y
\epsilon - greedy
ϵ−greedy 更新策略。随着迭代次数的递增,
ϵ
\epsilon
ϵ 值大小逐渐趋近于0,并最终收敛获得最优动作价值函数和最优策略。
因为每一次更新都需要计算一条完整轨迹的回报,导致MC方法具有较高的方差。同时TD方法的运行效率远高于MC,所以我们通常采用TD方法进行策略评估。
1.3 时序差分策略迭代(Policy Iteration With Temporal-Difference Evaluation)
(1)回顾:时序差分策略评估
时序差分法可以在不完整的序列上进行学习。TD方法通过预测对预测进行更新(updates a guess towards guess)。
1.3.1 Sarsa
(1)定义
循环迭代基于Q函数的TD(0)策略评估与
ϵ
−
g
r
e
e
d
y
\epsilon - greedy
ϵ−greedy的策略改进方法,直到收敛获得最优动作价值函数与最优策略。
Sarsa相对于MC策略迭代,在每一个时间步均进行了策略评估与改进。其中奖励R与下一状态S’由环境直接获得,A’采用
ϵ
g
r
e
e
d
y
\epsilon greedy
ϵgreedy 探索策略获得。
(2)算法
证明:
1.3.2 Sarsa( λ \lambda λ)
Sarsa算法采用TD(0)进行策略评估,同理我们可以采用TD(
λ
\lambda
λ)进行策略评估。
(1)n-Step Sarsa
在计算TD Target时考虑到向后行动n步并计算获得的Q值。
(2)Forward View Sarsa(
λ
\lambda
λ)
同时考虑Sarsa(0)至Sarsa(
λ
\lambda
λ),并对各自的q值进行加权获得真正的TD Target值,用于策略改进。
(2)Backward View Sarsa(
λ
\lambda
λ)
计算TD Target值时我们考虑到n步后的策略。因此在策略更新时我们需要考虑到整个合格“轨迹”上的状态-动作对的Q值。我们根据距离最终获奖的时间步对轨迹上各自的TD Target进行区分。
- 当 λ = 0 \lambda=0 λ=0时,仅考虑一步更新,与Sarsa相同。
- 当
λ
=
1
\lambda=1
λ=1时,轨迹上每一步的TD Target相同。
(3)算法
2. Off-Policy Learning
背景
之前我们讨论的是在Model Free下On-Policy的学习策略,策略在每个Episode获time step上,根据策略自己的采样数据更新。Sarsa是采用TD(0)进行策略评估的典型On-Policy方法。Off-Policy方法相对于On-Policy方法在数据重用、模仿学习等上有更多优势。
接下来我们将讨论策略如何从其他策略的采样经验中学习。
2.1 重要性采样(Important Sampling)
因为不同策略采样的经验分布不同,所以如果要重用历史经验我们需要修改采样数据的分布。重要性采样是一种改变数据分布的方法。
我们可以通过重要性采样将策略
μ
\mu
μ获取的数据转移给策略
π
\pi
π使用。
(1)Importance Sampling for Off-Policy MC
(2)Importance Sampling for Off-Policy TD
2.2 Q-Learning(SarsaMAX)
回顾:On-Policy Sarsa
(1)定义
Q-Learning是一种Off-Policy算法。Q-Learning没有采用重要性采样,通过修改
A
t
+
1
→
A
′
A_{t+1} \to A'
At+1→A′,将策略
μ
\mu
μ获取的下一动作替代为从策略
π
\pi
π选取的下一动作A’,从而实现数据分布变化。
理解: Q-Learning是一种Off-Policy策略,根据其他策略采样的经验学习,因此不能直接使用策略
μ
\mu
μ在下一个时间步的动作
A
t
+
1
A_{t+1}
At+1。
(2)A’ 的选择
采用贪心策略选择下一状态最大Q值所对应的动作。
(3)算法