乐趣区

关于强化学习:DeepRoute-Lab-深入浅出强化学习原理篇

强化学习(Reinforcement Learning,RL),是机器学习的根底范式和方法论之一。本文尝试通过对强化学习核心思想和原理的介绍,让读者可能疾速把握强化学习的根底,从而更好地开启下一阶段的学习。

01RL 是什么?

强化学习(Reinforcement Learning,RL),又被称为激励学习、评估学习或者加强学习,是机器学习的范式和方法论之一;用于形容和解决智能体(agent)在与环境的交互过程中,通过学习策略达成回报最大化或者实现特定指标的问题。
机器学习的三大类别:
a. 监督学习
b. 无监督学习
c. 强化学习

图一 机器学习的三大类别

咱们能够通过对狗的训练,来大略领会一下强化学习:
如果狗执行了咱们的指令(action),咱们就给予骨头等处分(reward)
如果狗不执行咱们的指令(action),咱们就给予一些惩办(负向的 reward)
通过肯定工夫的强化(重复)训练,狗就学会了对指令的执行

图二 狗的训练对于狗的训练,能够看作一个单步(step)或者单幕(episode)的强化学习过程,而实在场景的 RL,应该是多幕(episode)的(或者有限)。
注:强化学习中,每一步的信息能够用 < 状态, 动作, 处分 > 的三元组示意,每一幕是指过程终止前的所有步的信息(也被称之为轨迹),这在上面的章节中会具体介绍。

02 马尔可夫性质 & 马尔可夫决策过程

马尔可夫决策过程(Markov decision process,MDP)是强化学习的重要概念。要用强化学习解决一个理论问题,就须要把这个问题形象为马尔可夫决策过程。马尔可夫决策过程,合乎马尔可夫性质(Markov property)。

2.1 马尔可夫性质

什么是马尔可夫性质呢?当一个随机过程,某时刻的状态只取决于上一时刻的状态时,咱们就称该随机过程具备马尔可夫性质(Markov property),用公式示意为 

换句话说,在给定当初的状态时,它的将来与过来状态是条件独立的。具备马尔可夫性质的随机过程,又称为马尔可夫过程(Markov  process)。

图三 马尔可夫性质

2.2 马尔可夫决策过程(Markov decision process)

马尔可夫决策过程在马尔可夫性质的根底上减少了一个决策者管制;它提供了一个数学框架,用于后果局部随机局部受决策者管制影响的状况下对决策建模。某时刻的状态取决于上一个时刻的状态和所采取的口头,用公式示意为

图四 马尔可夫决策过程
强化学习问题,能够形象为马尔可夫决策过程,只是采取的每一个 action,除了随同着状态转移之外,还会失去一个 reward。

03 强化学习问题的形成元素

正如下面所说的,强化学习问题,在马尔可夫决策过程的根底上引入状态转移的处分(reward)。

图五 强化学习的根本元素
基于上图,咱们能够把 RL 的问题或者场景元素分为 3 大类:
1. 根本元素,能够了解为比拟实体的元素   
a.  Agent   
b.  Environment   
c.  Goal(要实现的指标)
2. 次要元素,基于 Markov process 的形象,结构求解的条件   
a.  State (包含以后的状态 s 和下一个工夫步的状态 s’)   
b.  Action   
c.  Reward
3. 外围元素,是 RL 问题求解的外围所在   
a.  Value(价值)
b.  Policy(策略)

那么要用强化学习解决问题,就须要对 policy 和 value 有足够的理解。

04 策略(Policy)& 价值(Value)

咱们先来明确几个术语:
○(单步)处分 reward,用 r 示意。
○   多幕工作累积的 reward,或者 discounted reward,咱们称之为回报(Return),用大写的𝐺来示意。𝐺可能是取自 Gain or Global Return 首字母
○   状态变量空间和动作变量空间别离计作𝒮和𝒜。

4.1 策略(Policy)

从机器学习的角度看,咱们首先要为智能体所采取的策略(Policy)形象一个函数,从而进行后续的求解;Policy 能够用函数:

示意智能体在状态 s 下,采取动作 α 概率。不同的策略函数,影响到智能体对 action 的抉择,action 又会影响到状态的迁徙和失去的 reward 以及最终的回报。

策略又分为确定性策略和随机策略,确定性策略只输入 0 和 1,会有一个明确的 action 批示,要么执行要么不执行。而随机性策略,会输入一个概率值,是否采取某个 action,还须要通过采样失去,所以随机性策略具备更好的摸索能力。

4.2 价值(Value)

价值是从某个状态 s 登程,到多幕工作完结,可能获取到的回报的数学冀望(因为是对将来的预计),价值函数很重要,因为智能体在状态 s 下的体现能够“有多好”,这个“有多好”就是通过价值函数来掂量。

为了解决问题的不便,又把价值函数分为两种:状态 - 价值函数 和 状态 - 动作 - 价值函数。

4.2.1 状态价值函数咱们把策略𝜋下状态𝑠的价值函数计作 vπ(s),即从状态𝑠开始,智能体听从策略𝜋可能失去回报的数学冀望。

4.2.2 状态动作价值函数相似的,咱们把策略𝜋下,由状态𝑠下采取动作𝑎的价值函数,计作 qπ(s, a),示意从状态 s 开始,采取动作𝑎可能失去回报的数学冀望。

很显著咱们能够写出二者的互相示意模式:

咱们有了价值函数之后,就波及到价值函数的最优化问题,这时候就须要引出贝尔曼方程了。

05 贝尔曼方程

“贝尔曼方程(Bellman Equation)”也被称作“动静布局方程(Dynamic Programming Equation)”,由理查·贝尔曼(Richard Bellman)发现。贝尔曼方程是动静布局(Dynamic Programming)这种数学最佳化办法可能达到最佳化的必要条件。此方程将“决策问题在特定工夫点的值”以“来自初始抉择的报酬 及 由初始抉择衍生的决策问题的值”的模式示意。藉这个形式将动静最佳化问题变成较简略的子问题,而这些子问题恪守由贝尔曼所提出的“最佳化原理”。引自:维基百科 - 贝尔曼方程。

简略说,贝尔曼方程把函数示意为递归的模式,从而用 DP 等伎俩进行求解。

5.1 价值函数的贝尔曼方程

咱们首先推导出状态 - 价值函数 vπ(s)的贝尔曼方程模式 :

如果从状态𝑠到状态𝑠‘的处分𝑟是确定的,能够进一步简化。

从下面的公式,咱们能够失去两个信息:
• vπ(s)能够由下一个时刻的 vπ(s’)递归示意
• 对于每个三元组(𝑠, 𝑎, 𝑟) 而言,首先计算𝜋(𝑎 ∣ 𝑠)𝑝(𝑠’, 𝑟 ∣ 𝑠, 𝑎),而后通过对价值进行加权均匀失去。

同样的,咱们也能够失去状态 - 动作 - 价值函数的贝尔曼方程模式:

5.2 最优价值函数的贝尔曼方程

强化学习的优化指标是找到一个最优策略 π使得智能体在一个多幕工作中能够失去最大的(冀望)回报。在无限状态和动作汇合的 MDP 中,至多存在一个策略比其余所有策略都好或者至多存在一个策略不差于其余所有策略,这个策略就是最优策略(optimal policy)。最优策略可能有很多个,咱们都计作 π (s)。
咱们能够失去两种最优价值函数的表白:最优 - 状态 - 价值函数

最优 - 状态 - 动作 - 价值函数

咱们写出贝尔曼方程的模式:

接下来的问题是如何通过最优价值函数来失去最佳策略 π*。

06 求解最优策略

如果状态转移函数和处分函数已知,那么能够用动静布局来求解最优策略了;然而实际上很多场景,并不能失去状态转移函数,那这个时候个别就采纳蒙特卡洛办法,通过足够多的采样来迫近概率分布或者冀望。

然而残缺的蒙特卡洛办法又须要有足够多的样本,特地是对于高纬数据分布,每一步的数据量是很致命的,就会导致求解效率的低下。

咱们能够从随机梯度降落或者小批量梯度降落的思维中找到一些灵感,咱们不须要残缺的蒙特卡洛采样,能够把动静布局和蒙特卡洛的思维联合,一步步地放大求解问题的不确定性,这种办法也叫做时序差分。举个简略的例子来解释下时序差分的思维。

咱们要预测北京到上海的间隔𝐸(𝑑北京 - 上海),如果咱们从北京开车登程到上海,那么肯定是能够失去一个比拟精确的间隔。那如果我只开到了济南,这时候我依然能够更新咱们的𝐸(𝑑北京 - 上海)来升高它的不确定度𝐸(𝑑北京 - 上海)= d 北京 - 济南 +𝐸(𝑑济南 - 上海)。

6.1 动静布局

动静布局算法可能工作的前提是咱们要晓得 MDP 环境的残缺模型:π(a∣s),即以后的策略𝑝(𝑠’, 𝑟 ∣ 𝑠, 𝑎),即状态转移模型和回报函数有两种典型的动静布局算法,这两种动静布局算法的思维,在 TD 中仍然能够工作。

6.1.1 策略迭代 Policy Iteration 策略迭代算法,咱们先抉择一个随机的策略𝜋,而后咱们通过策略评估和策略晋升来进行一直的迭代,使得策略能够收敛到 πt+1=πt.

图七 策略迭代

下面提到了两个关键词,策略评估和策略晋升;策略评估用来评定一个策略的成果,策略晋升是在原有的策略上尝试寻找一个更好的策略,逐渐找到最优的策略。
1. 个别能够用状态价值函数,来作为𝜋(𝑠)的策略评估函数:

2. 能够证实贪婪策略𝜋‘满足策略晋升定理的条件,所以策略 𝜋’ 可能比策略𝜋更好或者至多与其一样好。咱们能够间接贪婪地在每一个状态抉择动作价值最大的动作,也就是:

3. 整体的流程就是

6.1.2 价值迭代 Value Iteration 价值迭代算法更为间接,先通过迭代失去最优状态 - 价值 - 函数𝑣,而后通过最优状态价值函数,间接复原出最优策略 π 。假如咱们曾经失去了𝑣*(s),那么咱们有:最优策略

𝑣*(s)的求解同样间接:
a. 最优状态 - 价值函数的贝尔曼方程:

b. 单步递归式:

c. 一直递归下面两步,直到到找贝尔曼方程的不动点

6.1.3 策略迭代 Policy Iteration vs 价值迭代 Value Iteration 策略迭代 Policy Iteration 价值迭代 Value Iteration 随机策略开始随机的状态价值函数开始算法绝对简单算法绝对简略收敛更快收敛慢一些

6.2 时序差分法

动静布局须要 MDP 环境的残缺模型已知,时序差分法联合了蒙特卡洛和动静布局算法的思维,能够从样本数据中学习和预计策略的价值函数(蒙特卡洛),那么就能够应用 DP 的迭代思维来进行最优价值函数和策略的求解了(动静布局)。这种不须要晓得模型的强化学习办法,又被称为 model-free。

上面咱们来看下时序差分的价值函数预估办法,预估了 v π(s)就能够进行策略评估了,接下来就能够进行策略晋升了。

蒙特卡洛办法预计价值函数的办法是用策略𝜋在 MDP 上采样很多条序列,计算从这个状态登程的回报再求其冀望就能够了。

1. 应用策略𝜋残缺的采样(直到流程完结);因为是残缺流程采样,能够失去最终的回报𝐺,那么咱们也很容易失去每一时间步之后的回报 Gt。

图八 回报 G 的蒙特卡洛预计

2. 针对采样的每一步进行更新(相似梯度回升)。

Gt 示意工夫步𝑡上失去的状态𝑠的回报。
3. 时序差分算法用以后取得的处分加上下一个状态的价值预计来作为在以后状态会取得的回报(北京到上海的间隔预估例子),即:

rt + γv (st+1) − v (st)称为时序差分误差。

另外,蒙特卡洛自身是无偏预计,然而时序差分在更新过程进行了屡次预估,是有偏预计,所以呈现了 Double Q-learning 这种通过样本划分,来纠正偏差的学习办法。

6.3 策略梯度办法

后面介绍的策略迭代和价值迭代中,对价值的建模是必不可少的。绝对地,本节介绍的策略梯度办法则另辟蹊径,间接计算策略的梯度来对策略进行优化。从统计意义上来看,策略梯度办法的优化指标是价值函数对于状态的冀望:

RL 训练的本质是在解决如下优化问题(其中 θ 为策略网路的参数):

每一个训练迭代中,如果咱们晓得优化指标对于网络参数的梯度:

那么咱们就能够应用这个梯度来晋升咱们的优化指标,进而让网络参数凑近最终咱们冀望的策略参数。依据策略梯度定理(的不谨严的表述),该梯度可如下计算:

(对推导过程等感兴趣的读者能够自行参考其余材料,如文献 [5] 的相干章节)直观上,能够如下了解策略梯度定理:从一对给定的状态 s 和动作𝑎,如果能取得一个正向的累计回报(即 qπ(s,𝑎)为正),那么阐明给定的动作𝑎是“无益”的,即梯度的更新该当朝着使得让该动作的输入概率 π(𝑎|s;θ)晋升的方向进行。因为 天然对数函数的枯燥性,这等价于晋升 ln π(a ∣ s; θ)。

基于梯度信息,优化器能够应用任何一种基于梯度的优化办法间接对策略网络的参数进行优化。

在不对价值函数进行建模的状况下,状态 - 动作 - 价值函数 qπ(s,𝑎)可通过蒙特卡洛近似实现,即:实现一幕(episode)摸索,基于所有单步回报,计算出该幕中每一步的累计回报,并用该幕的累计回报来近似近似状态 - 动作 - 价值函数。这样的办法被称之为 REINFORCE。

值得注意的是,蒙特卡洛近似存在方差过大的危险,即梯度的方向可能在邻近优化步之间产生激烈抖动。为了缓解这个问题,策略梯度能够和后面介绍的办法进行组合。如 Actor-critic 办法中,应用神经网络对价值进行建模,能够了解为是策略梯度和价值学习的互补。应用神经网络建模的价值函数,因为神经网络的参数不会产生渐变,因而输入也不会渐变,从而缓解上述方差问题。

最初须要指出的一点是,策略梯度定理的推导过程中假如策略网络的参数为实时更新的参数,因而基于策略梯度定理的本节介绍的办法属于同轨策略(on-policy),即:用于实现摸索的行为策略(behavior policy),和进行参数优化的指标策略(target policy),是雷同参数的网络。同策略无奈应用离线收集的数据,而与之绝对的离轨策略(off-policy)则能够。

07 经典 RL 算法

7.1 Q-learning

图九 Q-learningQ-learning 是一种驰名的基于时序差分和查表法强化学习办法,属于确定性策略 (贪心) 的办法,其 Policy 是 取状态 - 动作 - 价值函数 最大的动作,其策略更新就等价于𝑞(𝑠, 𝑎)的更新了。

确定性策略的问题是会失去摸索能力,所以个别采纳𝜀 − 𝑔𝑟𝑒𝑒𝑑𝑦策略,在抉择 action 的时候以小概率𝜀进行随机。Q-learning 先更新𝑞(𝑠t, 𝑎t)【训练】,再以𝜀 − 𝑔𝑟𝑒𝑒𝑑𝑦来抉择 action【决策】;这种训练和决策序列不统一的办法属于 off-policy(异轨策略);如果训练和决策序列统一,就属于 on-policy(在轨策略或者同轨策略)。Sarsa 就是一种和 Q -learning 相似的 on-policy 算法。

7.2 Sarsa

Sarsa 和 Q-learning 根本一样,惟一的区别是先通过𝜀 − 𝑔𝑟𝑒𝑒𝑑𝑦来抉择好下一步的动作𝑎t+1,而后基于该动作来更新 Q -Table(训练),训练序列和决策序列统一。

7.3 其余经典算法 / 高阶技巧概览

基于 Q -Table 的计划,只能包容无限的状态和动作;而且如果动作和状态很多,基于 Q -Table 的计划也会失去一些泛化能力。因而,能够利用 DNN 的拟合和泛化能力,间接用状态 - 动作来学习“Q-Table”。

图十 DQNQ-learning 的更新规定是:

其指标是使得

靠得足够近,那么 DQN 的 Loss function 能够设定为二者的均方差模式:

能够看到误差指标

都蕴含神经网络的输入,更新网络参数的同时优化指标也在一直地扭转,容易造成神经网络训练的不稳固。为了解决这一问题,DQN 便应用了指标网络(target network)的思维;即应用两套 Q 网络(训练网络和指标网络),用其中的指标网络独自计算

局部,指标网络的参数每 N 步才会与训练网络同步一次。Q-learning、Sarsa、DQN 都属于先学习价值函数,再基于价值函数失去最优策略(个别是基于 e -greedy),这种办法属于 value-base 办法;也能够间接学习 policy 函数 πθ,那么就属于 policy-base,policy-base 绝对于 value-base 有更好的摸索能力。

7.4 其余经典算法 / 高阶技巧概览

除了经典的 RL 算法外,强化学习钻研社区 / 工业界还提出了泛滥高阶技巧。这些高阶技巧联合经典 / 新提出的算法框架,缓解了强化学习中的各种问题(训练指标抖动、价值高估、稠密处分等),为强化学习钻研的推动和工业界的成功实践做出了奉献。限于篇幅,上面简要列举其中有代表性的局部内容:算法 / 技巧作用做法策略梯度中引入基线 REINFORCE with baselineA2C 在训练过程中,减小随机梯度的方差,稳固训练

多价值网络 TD3 缓解高估问题实例化多组价值网络(雷同构造,不同且独立的参数)计算 TD 指标的时候,应用所有(指标)价值网络中的最小值熵正则 SAC 激励训练阶段的摸索指标函数中减少一项熵(推导后将以子网络损失、策略梯度额定项等路径进入训练过程)

随机动作 TD3 激励训练阶段的摸索在训练序列的生成过程中,对策略网络输入的动作上退出噪声进行扰动,激励摸索更多的状态空间

参考文献 / 材料

[1].Sutton, Richard S., and Andrew G. Barto. “Reinforcement learning: An introduction.” Robotica 17.2 (1999): 229-235.[2].https://www.analyticsvidhya.c…[3].https://arshren.medium.com/su…[4]. https://hrl.boyuai.com/chapte…[5].《深度强化学习》王树森及其他,https://github.com/wangshusen…

退出移动版