当前位置:   article > 正文

Deep Reinforcement Learning 强化学习详解

deep reinforcement learning

概念

定义

强化学习(Reinforcement Learning,RL),是指一类从(与环境)交互中不断学习的问题以及解决这类问题的方法. 强化学习问题可以描述为一个智能体从与环境的交互中不断学习以完成特定目标(比如取得最大奖励值). 和深度学习类似,强化学习中的关键问题也是贡献度分配问题,每一个动作并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性.

例子:

  • 多臂老虎机(Multi-Armed Bandit Problem)
  • 悬崖行走

image-20200420110155864

两个对象:

  1. 智能体(Agent)可以感知外界环境的状态(State)和反馈的奖励(Reward),并进行学习和决策.
  2. 环境(Environment)是智能体外部的所有事物,并受智能体动作的影响而改变其状态,并反馈给智能体相应的奖励.

五个基本元素:

  1. 状态s 是对环境的表示,可以是离散的或连续的,其状态空间为S.
  2. 动作a 是对智能体的行为,可以是离散的或连续的,其动作空间为A.
  3. 策略π(a|s) 是智能体根据环境状态s 来决定下一步动作a 的函数.
    • 确定性策略:π:S→A
    • 随机性策略:选择动作的概率分布π(a|s)≜p(a|s)
    • 一般使用随机性策略. 随机性策略可以更好地探索环境,并具有多样性
  4. 状态转移概率p(s′|s,a) 是在智能体根据当前状态s做出一个动作s之后,环境在下一个时刻转变为状态s′的概率.
  5. 即时奖励r(s,a,s′)是一个标量函数,即智能体根据当前状态s做出动作a之后,环境会反馈给智能体一个奖励,这个奖励也经常和下一个时刻的状态s′有关.

马尔科夫决策过程

交互序列:

s0,a0,s1,r1,a1,⋯,st−1,rt−1,at−1,st,rt,⋯

其中rt=r(st−1,at−1,st)是第t 时刻的即时奖励

马尔可夫决策过程(Markov Decision Process,MDP)在马尔可夫过程中加入一个额外的变量:动作a,即下一个时刻的状态st+1 和当前时刻的状态st 以及动作at 相关(一阶马尔可夫)

p(st+1|st,at,⋯,s0,a0)=p(st+1|st,at)

其中p(st+1|st,at)为状态转移概率.

给定策略π(a|s),马尔可夫决策过程的一个轨迹(Trajectory)

τ=s0,a0,s1,γ1,a1,⋯,sT−1,aT−1,sT,γT

其概率为:

p(τ)=p(s0)∏T−1t=0π(at|st)p(st+1|st,at).

img


image-20200420112406554

目标函数

轨迹τ 一个回合(Episode)或试验(Trial)所收到的累积奖励:

G(τ)=∑T−1t=0γ(st,at,st+1)

引入一个折扣率降低远期回报的权重. 折扣回报(Discounted Return):

G(τ)=∑T−1t=0γtγt+1

γ∈[0,1] 是折扣率. 当γ 接近于0 时,智能体更在意短期回报;而当γ 接近于1 时,长期回报变得更重要.

最大化期望回报(Expected Return):

J(θ)=Eτ∼pθ(τ)[G(τ)]=Eτ∼pθ(τ)[∑T−1t=0γtγt+1]

值函数(状态值函数和状态-动作值函数)

状态值函数(V函数)

image-20200420115023853

Vπ(s) 称为状态值函数(State Value Function),表示从状态s 开始(到结束),执行策略π 得到的期望总回报

Vπ(s)=Eτ∼p(τ)[∑T−1t=0γtγt+1|τs0=s]

贝尔曼方程(Bellman Equation)(动态规划),表示当前状态的值函数可以通过下个状态的值函数来计算.

递推公式:

image-20200420115742034

如果给定策略π(a|s),状态转移概率p(s′|s,a) 和奖励γ(s,a,s′),我们就可以通过迭代的方式来计算Vπ(s). 由于存在折扣率,迭代一定步数后,每个状态的值函数就会固定不变.

状态-动作值函数(Q 函数)

Qπ(s,a)=Es′∼p(s′|s,a)[γ(s,a,s′)+γVπ(s′)]

状态值函数Vπ(s) 是Q 函数Qπ(s,a) 关于动作a 的期望

Vπ(s)=Ea∼π(a|s)[Qπ(s,a)]

Q函数的贝尔曼方程:

image-20200420120648270

值函数的作用→优化:

假设在状态s,有一个动作a∗使得Qπ(s,a∗)>Vπ(s),说明执行动作a∗的回报比当前的策略π(a|s) 要高,我们就可以调整参数使得策略中执行动作a∗的概率p(a∗|s) 增加.

深度强化学习

神经网络建模策略π(a|s) 和值函数Vπ(s),Qπ(s,a)

值函数方法(Value/Critic)

先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛.

基于值函数的策略学习方法中最关键的是如何计算策略π的值函数,有动态规划或蒙特卡罗两种计算方式.

动态规划

通过贝尔曼方程来迭代计算其值函数. 这种模型已知的强化学习算法也称为基于模型的强化学习(Model-Based Reinforcement Learning)算法,这里的模型就是指马尔可夫决策过程.

限制:

  1. 要求模型已知,即要给出马尔可夫决策过程的状态转移概率p(s′|s,a) 和奖励函数γ(s,a,s′),这个要求很难满足.
  2. 效率问题,即当状态数量较多时,算法效率比较低.

蒙特卡罗方法(MC)

基于采样的学习算法也称为模型无关的强化学习(Model-Free Reinforcement Learning)算法.

 

方法

Q 函数Qπ(s,a) 为初始状态为s,并执行动作a 后所能得到的期望总回报,可以写为:

Qπ(s,a)=Eτ∼p(τ)[G(τs0=s,a0=a)]

其中τs0=s,a0=a 表示轨迹τ 的起始状态和动作为s, a.

如果模型未知,Q 函数可以通过采样来进行计算,这就是蒙特卡罗方法.

假设我们进行N 次试验,得到N 个轨迹τ(1),τ(2),⋯,τ(N),其总回报分别为G(τ(1)),G(τ(2)),⋯,G(τ(N)). Q 函数可以近似为

Qπ(s,a)≈ˆQπ(s,a)=1N∑Nn=1G(τ(n)s0=s,a0=a)

在近似估计出Q 函数之后,就可以进行策略改进. 然后在新的策略下重新通过采样来估计Q 函数,并不断重复,直至收敛.

Exploitation and Exploration

  1. ϵ-贪心法(ϵ-greedy Method):

image-20200420152525225

每次选择动作π(s) 的概率为1−ϵ+ϵ|A|,其他动作的概率为 ϵ|A|.

  1. Boltzmann 探索:

    image-20200420201058499

同策略(on-policy)和异策略(off-policy)

img

同策略:

在蒙特卡罗方法中,如果采样策略是πϵ(s),即ϵ−Greedy,不断改进策略也是πϵ(s) 而不是目标策略π(s). 这种采样与改进策略相同(即都是πϵ(s))的强化学习方法叫做同策略(On-Policy)方法.

异策略:

如果采样策略是πϵ(s),而优化目标是策略π,可以通过重要性采样引入重要性权重来实现对目标策略π 的优化这种采样与改进分别使用不同策略的强化学习方法叫做异策略(Off-Policy)方法.

时序差分学习方法(TD)

img

蒙特卡罗方法一般需要拿到完整的轨迹,才能对策略进行评估并更新模型,因此效率也比较低.

时序差分学习(Temporal-Difference Learning)方法是蒙特卡罗方法的一种改进,通过引入动态规划算法来提高学习效率. 时序差分学习方法是模拟一段轨迹,每行动一步(或者几步),就利用贝尔曼方程来评估行动前状态的价值. 当时序差分学习方法中每次更新的动作数为最大步数时,就等价于蒙特卡罗方法.

将蒙特卡罗方法中Q 函数ˆQπ(s,a)的估计改为增量计算的方式,假设第N 次试验后值函数ˆQπN(s,a) 的平均为:

ˆQπN(s,a)=1N∑Nn=1G(τ(n)s0=s,a0=a)

image-20200420162512079

.
值函数ˆQπ(s,a) 在第N 试验后的平均等于第N − 1 试验后的平均加上一个增量. 更一般性地,我们将权重系数1N改为一个比较小的正数α.

Q函数更新:

image-20200420162942259

时序差分学习是强化学习的主要学习方法,其关键步骤就是在每次迭代中优化Q 函数来减少现实γ+γQ(s′,a′) 和预期Q(s, a) 的差距.

时序差分学习方法和蒙特卡罗方法的主要不同为:

  1. 蒙特卡罗方法需要一条完整的路径才能知道其总回报,也不依赖马尔可夫性质较大方差
  2. 而时序差分学习方法只需要一步,其总回报需要通过马尔可夫性质来进行近似估计小方差,不精确.

 

SARSA (On-Policy)算法(State Action Reward State Action)

由于Bellman方程:

image-20200420164342490

image-20200420164535412

更新ˆQπ(s,a) 只需要知道当前状态s 和动作a、奖励γ(s,a,s′)、下一步的状态s’ 和动作a’.

image-20200420173329436

其采样和优化的策略都是πϵ,即ϵ−Greedy方法,所以为On-Policy算法.

Q-Learning

image-20200420172149723

相当于让Q(s, a) 直接去估计最优状态值函数Q∗(s,a).

img

与SARSA 算法不同,Q 学习算法不通过πϵ,即ϵ−Greedy来选下一步的动作a′,而是直接贪婪选最优的Q 函数,因此更新后的Q 函数是关于策略π 的,而不是策略πϵ 的.

image-20200420173358958

深度Q网络

为了在连续的状态和动作空间中计算值函数Qπ(s,a),我们可以用一个函数Qϕ(s,a) 来表示近似计算,称为值函数近似(Value Function Approximation).

函数Qϕ(s,a)通常是一个参数为ϕ的函数,比如神经网络,输出为一个实数,称为Q 网络(Q-network).

image-20200420173950783

img

目标函数:

image-20200420174244197

这个目标函数存在两个问题:

  1. 目标不稳定,参数学习的目标依赖于参数本身;
  2. 样本之间有很强的相关性.

深度Q 网络采取两个措施:

  1. 目标网络冻结(Freezing Target Networks),即在一个时间段内固定目标中的参数,来稳定学习目标
  2. 经验回放(Experience Replay),即构建一个经验池(Replay Buffer)来去除数据相关性. 经验池是由智能体最近的经历组成的数据集.

image-20200420174609380

深度Q Learning改进

img

img


img


img


img


img


img

img


Q Learning连续Action Space

  1. img
  2. Actor-Critic

基于策略函数的学习方法(Policy/Actor)

强化学习的目标是学习到一个策略πθ(a|s) 来最大化期望回报.

img

一种直接的方法是在策略空间直接搜索来得到最佳策略,称为策略搜索(Policy Search).

策略搜索本质是一个优化问题,可以分为基于梯度的优化和无梯度优化.

策略搜索和基于值函数的方法相比,策略搜索可以不需要值函数,直接优化策略参数化的策略能够处理连续状态和动作,可以直接学出随机性策略.

策略梯度(Policy Gradient)

img

具体推导——梯度上升最大化目标函数:

image-20200420194959326


image-20200420195216442


image-20200420195330797


Reinforce 算法

结合随机梯度上升算法,可以每次采集一条轨迹,计算每个时刻的梯度并更新参数,这称为REINFORCE 算法

image-20200420200630472

带基准线的 REINFORCE 算法:

REINFORCE 算法的一个主要缺点是不同路径之间的方差很大,导致训练不稳定,这是在高维空间中使用蒙特卡罗方法的通病.

当Reward一直为正数时,可能会因采样出现问题。假设有三个action,a,b,c采取的结果得到的reward都是正的,这个正有大有小,假设a和c的Reward比较大,b的Reward比较小,经过update之后,还是会让b出现的几率变小,a、c出现的几率变大。但是sampling时,有可能只sample b和c,这样b、c几率都会增加,a没有sample到,即使其Reward较大,其采样到的概率就自动减少。

image-20200420202124429

固定的Baseline:

img

可学习的Baseline:

为了减小策略梯度的方差,我们引入一个和动作at无关的基准函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/809935
推荐阅读
相关标签