自动驾驶技术之强化学习(RL)简介

强化学习(Reinforcement Learning),实际上是讨论一个自主的代理(agent)在环境中如何感知和最优地行动(act),最终实现给定的目标(goal)【1】。下图给出一个代理和环境交互的示意图。其中状态S,行动A,奖励(reward)R,代理的目标是学习从状态S到行动A的控制策略,最大化累积的奖励(cumulative reward),其中每次奖励还会随着时间衰减,衰减因子取【0,1)之间的数。

• 问题建立

RL代理随时间推移与环境交互。在每个时间步t,代理接收状态空间S的状态st,并且跟从策略π(at | st)从行动空间A中选择行动at,该策略是代理的行为,即从状态st到行动at的映射。 代理接收标量奖励rt,并根据环境动态或模型转换到下一个状态st+1,其中奖励函数以及状态转移概率分别是R(s,a)和P(st+1 | st,at)。在一个情节(episodic)问题,这个过程一直持续到代理达到终端状态然后重新启动。回报是衰减的累积奖励(accumulated reward),衰减因子γ∈【0,1),则

代理的目标是最大化每个状态这种长期回报的期望。问题在离散状态和行动空间中建立起来。 但扩展到连续空间并不困难。在部分可观察的环境中,代理不能完全观察系统状态,但还是有观察的结果。

当RL问题满足Markov属性时,即,未来仅取决于当前状态和行动,而不取决于过去,它被表述为由5元组定义的马尔可夫决策过程(MDP)(S,A,P,R,γ)。当系统模型可用时,动态规划(DP)方法被采用,那么策略评估(policy evaluation)计算策略的价值/行动(action)价值函数,而价值迭代和策略迭代找到最优策略。没有模型可用时,采用RL方法。有模型可用时,RL方法也可以工作。另外,RL环境可以是多臂强盗(multi-armed bandit),MDP,POMDP,游戏等。

注:多臂强盗问题是指一个固定的有限资源集在竞争(备选)选项之间分配,要求最大化它们的预期收益,其中每个选择的属性在分配时仅部分已知,并且随时间的推移或通分配资源后能更好地被理解。

• 价值函数

价值函数是对预期的、累积的、打折的和未来的奖励预测,衡量每个状态或状态-行动对的好坏程度。状态价值,

是来自状态s的后续策略π的预期回报。 行动价值

1.jpg

是在状态s中选择行动a然后遵循策略π的预期回报。价值函数vπ(s)分解为Bellman方程:

一个最优状态价值

是状态s的任何策略可实现的最大状态价值,它分解为Bellman方程:

行动价值函数qπ(s,a)分解为Bellman方程

2.JPG

一个最优行动价值函数

是对状态 s 和行动a的任何策略可实现的最大行动价值,它分解为Bellman方程:

这里最优策略记作π∗。

• 探索与开发

RL代理需要在探索不确定策略和开发当前最佳策略之间进行权衡,这是RL的一个基本困境。 这里我们介绍一种简单的方法,ε-贪婪(greedy),其中 ε ∈(0,1),通常是接近0的小数。在ε-贪婪中,代理选择贪婪行动a =argmaxa∈AQ(s,a) 对于当前状态s,概率为1-ε,并且选择概率为ε的随机行动。 也就是说,代理以概率1 - ε开发当前价值函数估计,并以概率ε进行探索。

• 动态规划

动态编程(DP)是解决最优子结构和重叠子问题的一般方法。MDP满足这些属性,其中Bellman方程给出递归的分解,并且价值函数存储和重用子解决方案。DP充分了解MDP的传递和奖励模型。预测问题是评估给定策略的价值函数,并且控制问题是找到最优价值函数和/或最优策略。

迭代策略评估是评估给定策略π的方法。它迭代地应用Bellman期望备份,

因此,每次迭代k + 1,对所有状态s∈S,从其后继状态vk(s')的价值函数更新vk + 1(s)。价值函数将收敛于vπ,即策略π的价值函数。

策略迭代(PI)在策略评估和策略改进之间交替,以生成一系列改进策略。在策略评估中,估计当前策略的价值函数以获得vπ。在策略改进,当前价值函数用于生成更好的策略,例如,相对于价值函数vπ选择贪婪的行动。包括迭代策略评估和贪婪策略改进的策略迭代过程将收敛到最优策略和价值函数。

可以修改策略迭代步骤,在收敛之前停止它。广义策略迭代(GPI)由任何策略评估方法和任何策略改进方法组成。

价值迭代(VI)可找到最优策略。它迭代地应用Bellman最优性备份,

每次迭代k + 1,对所有状态s∈S,它从vk(s')更新vk + 1(s)。这样的同步备份将收敛到最优策略的价值函数。 可能有异步DP,并且是近似DP。

• 蒙特卡洛

蒙特卡罗方法从完整的经验情节(episodes)中学习而不是假设传递或奖励模型的知识,使用样本方法进行估计。蒙特卡罗方法仅适用于情节任务。

使用蒙特卡罗方法进行策略评估时,使用经验平均收益而不是预期收益进行评估。根据大数定律(law of large numbers),估计的价值函数收敛于策略的价值函数。

有策略的蒙特卡罗控制遵照广义的策略迭代方案。而政策评估,使用蒙特卡罗策略评估来确定行动价值。为了改善策略,使用ε-贪婪的策略改进。

在非策略学习中,跟随行为策略评估目标政策。借着非策略性,可以从人或者其他代理的观察中学习,重用旧策略的经验,在听从探索性策略的同时学习最优策略,基于一个策略的经验学习多个策略。

对非策略蒙特卡罗方法可以用重要采样(importance sampling),在整个情节中乘以重要采样的校正权重,用行为策略产生的经验评估目标政策。

• 时间差异(TD)学习

时间差异(TD)学习是RL的核心。TD学习通常是指价值函数评估的学习方法。Q-学习也被认为是时间差异学习。TD学习直接以无模型、在线和全增量的方式自举(Bootstrapping),从TD误差的经验中学习价值函数V(s)。 TD学习是一个预测问题。更新规则是V(s)←V(s)+ α[r + γV(s')- V(s)],其中α是学习率,r + γV(s')- V(s)被称为TD误差。

Q-学习(Q-learning)是一种无策略(off-policy)寻找最优策略的控制方法。Q-学习要学习行动价值函数,用更新规则Q(s,a)←Q(s,a)+α[r +γmaxa'Q(s',a')- Q(s,a)]。Q-学习通过最大运算符(max operator)相对于行动价值贪婪改进了策略。

TD学习和Q学习在某些条件下趋同。从最优的行动价值(action value)函数,可以得出最优的策略。

TD 学习伪代码实现:

Q-学习伪代码实现:

• 多步(multi-step)自举

上述阐述的算法称为TD(0)和Q(0),即一步返回进行学习。可以在前视图采用多步返回的学习就变成它们的改进型。在n-步更新,V(st)更新为n-步返回,定义为,

后视图的合格性踪迹(eligibility trace)提供一个在线的增量实现,则产生TD(λ)和Q(λ)算法,其中λ∈[0,1]。 TD(1)与蒙特卡罗方法相同。合格性踪迹是一种短期记忆,通常在情节(episode)中持续,通过影响权重向量协助学习过程。权重向量是一个长期记忆,在整个系统时间持续,决定估计的价值。合格性踪迹有助于解决长期延迟的奖励和非马尔可夫任务。

为预测算法,TD(λ)用合格性踪迹和衰减参数λ统一了一步TD预测TD(0)和蒙特卡罗方法TD(1)。同理,也可以统一多步TD控制算法。

• 基于模型的RL

Dyna-Q整合学习、行动和规划,不仅从实际经验中学习,还可以通过学习模型的模拟轨迹进行规划。下图是Dyna-Q 的伪代码实现。

• 函数近似

讨论上面的表格案例,其中价值函数或策略以表格形式存储。当状态和/或行动空间很大或连续时,函数逼近是一种泛化的方法。函数逼近的目的是从函数的例子推广,构造整个函数的近似;强化学习中的函数逼近通常将每个备份视为训练示例,并遇到非平稳性、自举和延迟的目标等新问题。线性函数逼近是一种流行的选择,部分原因在于其理想的理论属性。

TD(0)函数近似的伪代码实现:

• 策略优化

与基于价值的方法(如TD学习和Q-学习)相比,基于策略的方法直接优化策略π(a | s;θ)(具有函数逼近),并通过梯度下降更新参数θ。 与基于价值的方法相比,基于策略的方法通常具有更好的收敛性,在高维或连续行动空间有效,并且可以学习随机策略。然而,基于策略的方法通常会收敛到局部最优,无法评估,并且出现高方差。随机策略很重要,因为一些问题只有随机最优策略。

REINFORCE 伪代码实现:

Actor-Critic伪代码实现:

• 参考文献

Y Li,“Deep Reinforcement Learning”, arXiv 1810.06339, 2018

• 附注

当深度神经网络用来表示状态或观测向量时,我们获得深度强化学习(Deep RL)方法,和/或近似任何强化学习的任何组成部分:价值函数vˆ(s;θ)或q ˆ(s,a;θ),策略π(a | s;θ)和模型(状态转换函数和奖励函数)。这里,参数θ是深度神经网络中的权重。当使用“浅度”模型,如线性函数和决策树等,作为函数逼近器时,我们得到“浅度”RL,参数θ是这些模型中的权重参数。注意,浅度模型(例如决策树)可以是非线性的。深度RL和“浅度”RL之间的明显差异是函数逼近器。这类似于深度学习和“浅度”机器学习之间的区别。通常利用随机梯度下降来更新深RL中的权重参数。当无策略性、函数逼近、特别是非线性函数逼近和自举被组合在一起时,可能发生不稳定性和发散。最近的深度Q-网络工作稳定了学习并取得了出色的成果。(来源:自动驾驶之家 本文作者:黄浴(自动驾驶科学家/工程师))


0 个评论

要回复文章请先登录注册