Deep Reinforcement Learning 强化学习详解

概念

Deep Reinforcement Learning 强化学习详解_第1张图片

定义

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

例子:

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

Deep Reinforcement Learning 强化学习详解_第2张图片

两个对象:

  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).

Deep Reinforcement Learning 强化学习详解_第3张图片


Deep Reinforcement Learning 强化学习详解_第4张图片

目标函数

轨迹τ 一个回合(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函数)

Deep Reinforcement Learning 强化学习详解_第5张图片

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

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

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

递推公式:

Deep Reinforcement Learning 强化学习详解_第6张图片

如果给定策略π(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):

Deep Reinforcement Learning 强化学习详解_第7张图片

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

  1. Boltzmann 探索:

    Deep Reinforcement Learning 强化学习详解_第8张图片

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

Deep Reinforcement Learning 强化学习详解_第9张图片

同策略:

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

异策略:

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

时序差分学习方法(TD)

Deep Reinforcement Learning 强化学习详解_第10张图片

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

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

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

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

Deep Reinforcement Learning 强化学习详解_第11张图片

.
值函数ˆ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’.

Deep Reinforcement Learning 强化学习详解_第12张图片

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

Q-Learning

image-20200420172149723

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

Deep Reinforcement Learning 强化学习详解_第13张图片

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

Deep Reinforcement Learning 强化学习详解_第14张图片

深度Q网络

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

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

Deep Reinforcement Learning 强化学习详解_第15张图片

Deep Reinforcement Learning 强化学习详解_第16张图片

目标函数:

image-20200420174244197

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

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

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

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

Deep Reinforcement Learning 强化学习详解_第17张图片

深度Q Learning改进

Deep Reinforcement Learning 强化学习详解_第18张图片

Deep Reinforcement Learning 强化学习详解_第19张图片


Deep Reinforcement Learning 强化学习详解_第20张图片


Deep Reinforcement Learning 强化学习详解_第21张图片


Deep Reinforcement Learning 强化学习详解_第22张图片


Deep Reinforcement Learning 强化学习详解_第23张图片


Deep Reinforcement Learning 强化学习详解_第24张图片

Deep Reinforcement Learning 强化学习详解_第25张图片


Q Learning连续Action Space

  1. Deep Reinforcement Learning 强化学习详解_第26张图片
  2. Actor-Critic

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

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

Deep Reinforcement Learning 强化学习详解_第27张图片

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

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

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

策略梯度(Policy Gradient)

Deep Reinforcement Learning 强化学习详解_第28张图片

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

Deep Reinforcement Learning 强化学习详解_第29张图片


Deep Reinforcement Learning 强化学习详解_第30张图片


Deep Reinforcement Learning 强化学习详解_第31张图片


Reinforce 算法

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

Deep Reinforcement Learning 强化学习详解_第32张图片

带基准线的 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较大,其采样到的概率就自动减少。

Deep Reinforcement Learning 强化学习详解_第33张图片

固定的Baseline:

Deep Reinforcement Learning 强化学习详解_第34张图片

可学习的Baseline:

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

因为b(st)和at无关,image-20200420202500491

为了有效减小方差,b(st) 和G(τt∶T) 越相关越好,一个很自然的选择是令b(st)为值函数Vπθ(st). 但是由于值函数未知,我们可以用一个可学习的函数Vϕ(st) 来近似值函数,目标函数为

image-20200420205726765

采用随机梯度下降法,参数ϕ的梯度为

image-20200420205813886

策略函数参数θ的梯度为

image-20200420205840875

Proximal Policy Optimization (PPO)——(On-Policy&Off-Policy)

Deep Reinforcement Learning 强化学习详解_第35张图片

Deep Reinforcement Learning 强化学习详解_第36张图片

Actor-Critic算法

演员-评论员算法(Actor-Critic Algorithm)是一种结合策略梯度和时序差分学习的强化学习方法.

  • 其中Actor是指策略函数πθ(a|s),即学习一个策略来得到尽量高的回报
  • Critic是指值函数Vϕ(s),对当前策略的值函数进行估计.

借助于值函数,Actor-Critic算法可以单步更新参数,不需要等到回合结束才进行更新.

Deep Reinforcement Learning 强化学习详解_第37张图片

Deep Reinforcement Learning 强化学习详解_第38张图片

在每步更新中,分别进行策略函数πθ(a|s) 和值函数Vϕ(s)的学习.

一方面,更新参数ϕ使得值函数Vϕ(st) 接近于估计的真实回报ˆG(τt∶T),即

image-20200420204935570

另一方面,将值函数Vϕ(st)作为基线函数来更新参数θ,减少策略梯度的方差,即

image-20200420205029432

在每步更新中,演员根据当前的环境状态s 和策略πθ(a|s) 去执行动作a,环境状态变为s’,并得到即时奖励γ.

  • Critic(值函数Vϕ(s))根据环境给出的真实奖励和之前标准下的打分(r+γVϕ(s′)),来调整自己的打分标准,使得自己的评分更接近环境的真实回报.

  • Actor则跟据Critic的打分,调整自己的策略πθ,争取下次做得更好.

开始训练时,Actor随机表演,Critic随机打分. 通过不断的学习,Critic的评分越来越准,Actor的动作越来越好.

Deep Reinforcement Learning 强化学习详解_第39张图片

Deep Reinforcement Learning 强化学习详解_第40张图片

总结

一般而言,基于值函数的方法在策略更新时可能会导致值函数的改变比较大,对收敛性有一定影响;而基于策略函数的方法在策略更新时更加更平稳些,但因为策略函数的解空间比较大,难以进行充分的采样,导致方差较大,并容易收敛到局部最优解. Actor-Critic算法通过融合两种方法,取长补短,有着更好的收敛性.

Model-based learning

Deep Reinforcement Learning 强化学习详解_第41张图片

Model-Based优缺点:

Deep Reinforcement Learning 强化学习详解_第42张图片

Deep Reinforcement Learning 强化学习详解_第43张图片

确定性策略

将策略梯度的思想推广到确定性的策略上,提出了确定性策略梯度(Deterministic Policy Gradient,DPG)算法.

  • 好处是方差会变得很小,提高收敛性.
  • 缺点是对环境的探索不足,这可以通过异策略的方法解决.

利用DQN 来估计值函数,提出深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法. DDPG 算法可以适合连续的状态和动作空间.

分布式Multi-Agent

因为不同环境中的智能体可以使用不同的探索策略,会导致经验样本之间的相关性较小,所以能够提高学习效率.

A3C算法(Asynchronous Advantage Actor-Critic)

Deep Reinforcement Learning 强化学习详解_第44张图片

部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes,POMDP)

POMDP 依然具有马尔可夫性质,但是假设智能体无法感知环境的状态s,只能知道部分观测值o和环境信息。

逆向强化学习(Inverse Reinforcement Learning,IRL)

在某些情况下,智能体无法从环境得到奖励,只有一组轨迹示例(Demonstration).比如在自动驾驶中,我们可以得到司机的一组轨迹数据,但并不知道司机在每个时刻得到的即时奖励. 虽然我们可以用监督学习来解决,称为行为克隆. 但行为克隆只是学习司机的行为,并没有深究司机行为的动机.

逆向强化学习(Inverse Reinforcement Learning,IRL)就是指一个不带奖励的马尔可夫决策过程,通过给定的一组专家(或教师)的行为轨迹示例来逆向估计出奖励函数γ(s,a,s′) 来解释专家的行为,然后再进行强化学习.

分层强化学习

指将一个复杂的强化学习问题分解成多个小的、简单的子问题,每个子问题都可以单独用马尔可夫决策过程来建模。

转自:https://xmzzyo.github.io/2020/04/19/Note-Deep-Reinforce-Learning/

你可能感兴趣的:(强化学习,python,数据结构与算法)