深度强化学习从入门到大师:以Cartpole和Doom为例介绍策略梯度(第四部分)雷峰网

一个确定的策略能将状态映射到行为上。输入一个状态,函数将反馈一个要执行的行为。

确定的策略用在确定的环境,行动执行的环境决定了结果,不存在不确定性。例如,当你下国际象棋把兵从A2移到A3时,你是确定你的兵要移到A3。

另一方面,一个随机的策略输出一个行为集可能的指派。

这意味着不是确定地选择行为a,而是我们有可能能选择不同的(例子中30%的可能,我们选择南)。

随机策略用在环境不确定的情况下。这一个过程也叫部分可测马尔科夫决策过程(POMDP)。

大多数情况下,我们使用第二种策略类型。

优势

深度Q学习已经很厉害,为什么要用策略强化学习方法?

深度学习在使用策略梯度时有三大主要优势:

收敛

策略函数有更好的收敛特性。价值函数在训练时有个问题就是大的震荡。这是因为行为的选择在测算的行为值中可能会戏剧性地任意变小。

另一方面,利用策略梯度,我们仅是循着梯度寻找最佳值。一个平滑的更新出现在每一步中。

由于循着梯度寻找最佳值,我们确保收敛于局部最大值(最坏的情况)或是全局最大值(最好情况)。

策略梯度在高维空间更有效

第二个优势是策略梯度在高维空间或是连续行动时更有效。

深度Q学习的一个问题是它在每一步的预测中对给定当前状态的每一个可能行为分配一个分值(最大化预测将来的奖励)。

但如果是无限可能的行动呢?

例如,在自动驾驶时,在每一个状态中,可能会有近乎无限行为的选择。(调整车轮15°,17.2°,19,4°,鸣笛…)。我们需要为每一个行动输出一个Q值。

另一方面,在策略函数中,要直接调整参数(你将要理解什么是最大值),而不是在每一步估算最大值。

策略梯度能学习随机策略

第三个优势是策略梯度能学习随机策略,而价值函数不能。这也导致两个结果。

其一,我们不需要应用探测和开发的权衡。一个随机策略允许智能体在状态空间探索而不是一直采用相同的行为。这是因为它输出一个行为集上的概率分布。其结果是它将处理探测和开发的权衡而不是硬编码。

我们同样去除感知混淆的问题,它是说我们在两个看起来(或实际上)相同的状态,却需要不同的行为。

例如,我们有一个智能吸尘器,它的目标是吸掉灰尘和避免杀死仓鼠。

我们的吸尘器仅能检测到墙在哪里。

问题:两个红色的方格是相似的状态,因为智能体都能感知到两面上下部的墙。

在确定的策略下,在红色的状态下,智能体选择要么是往右,要么往左,都可能导致智能体被卡住而不能吸尘了。

另一方面,一个优化的随机策略在灰色的格子中时将随机往左或往右移动。其结果是智能体不会被卡住,并能在最大可能的情况下达到目标状态。

劣势

策略梯度有个天然的大劣势。在绝大多数情况下,它将在收敛于局部最大值而不是全局最大值。

尽管如此,我们将看到问题的解决方案。

策略选择

带参数θ的策略π输出行动集的概率分布。

给定状态S,采取带参θ行动a的概率

可怕的是我们怎样才能知道我们的策略是好的呢?

记住策略可被看做是优化问题。我们必须寻找到最佳参数(θ)来最大化得分函数J(θ)。

这里有两步:

这里的主要思想是J(θ)来告诉我们的策略π有多好。策略梯度上升将帮助我们发现最佳策略参数来最大化良好行动的采样。

第一步:策略评分函数J(θ)

为测量我们的策略有多好,我们使用目标函数(或策略评分函数)来计算期望的策略奖励。

有三种等价的方法来优化策略。选择仅仅取决于环境和目标。

首先,在一个情景的环境中,我们取一个开始值,并计算从第一步(G1)开始反馈的均值。这是第整个情景的累积的贴现奖励。

思想很简单,即如果我一直从状态s1开始,从开始状态到结束状态的整体奖励是多少呢?

例如,在突围游戏中,我新玩了一局,但我在破坏了20块砖后丢失了球(游戏结束)。新的情景始终从相同的状态开始。

我利用J1(θ)来计算得分。撞击20个板砖已属不错,但是我想改进得分。为此,我需要通过调参来改进我行为的概率分布。这些在第二步中做。在一个连续的环境中,因为我们不能依赖特定的开始状态,所以我们可以使用平均值。每个状态值通过对应状态发生的概率来加权(因为有些更可能发生)。

第三,使用每步的平均奖励以使我们每步都要获得最高的奖励。

第二步:策略梯度上升

我们有一个策略得分函数告诉我们策略有多好。现在,我们要找寻最大化得分函数的参数θ。最大化得分函数意味着找到最优策略。

为最大化得分函数J(θ),我们需要在策略参数上做梯度上升。

梯度上升是梯度下降的反转。记住梯度永远指向最速变化。

在梯度下降中,我们在函数中选择最速下降方向。同理在梯度上升时,我们在函数中选择最速上升方向。

为何是梯度上升而不是梯度下降?因为我们要在错误函数中使用梯度下降来求最小值。

但是得分函数不是错误函数,它要求最大值的,所以我们使用梯度上升。

思想是找到相应梯度,以使当前策略π在迭代中最大增量方向上更新参数。

我们要找到最好的参数θ*用以最大化得分:

我们的得分函数可以被如下定义:

这是给定策略下期望奖励的总和。

现在,因为我们要做梯度上升,所以要去微分我们的得分函数J(θ)。它也可被如下定义:

我们用这种方式写出函数来展示我们面对的问题。

我们知道策略参数影响行为如何被选择,即我们获得什么样的奖励、我们将看到什么样的状态、有多频繁。

因此,寻找为确保改进的策略的变化可能是个挑战。这是因为性能依赖于行为选择和选择做出后的状态分布。这两者都受策略参数的影响。策略参数在行为上的影响很容易发现,但是在状态分布的情况下怎样发现策略的影响?环境的函数是未知的。

因此,我们面临这样的问题:当梯度依赖于在状态分布下的策略改变的未知影响时,我们利用策略θ的对应来怎么评估梯度。

解决方案是使用策略梯度原理。利用涉及策略θ不包含状态分布的差异方面,为J(θ)(表现)的梯度提供一个分析性表示。

所以,我们如下计算:

记住,我们在随机策略的情况中。这意味着我们的策略输出一个概率分布π(τ;θ)。它将输出给定当前参数θ时的采取步骤(s0,a0,r0…)的概率。

但是,要微分概率函数是比较困难的,除非我们能将其转换为对数。这将使得概率函数能被简单地微分。

这里我们将使用似然比的方法来将结果部分替换成log概率。

现在,让我们将总和转换为一个期望:

正如你所见,我们仅需要计算log策略函数的导数。

我们已经做了很多推导,现在,我们能得出策略梯度的结论:

这个策略梯度告诉我们如果要获得一个更高的得分应怎样通过改变参数θ来转变策略分布。

R(tau)像是个标量值:

如果R(tau)高了,就意味着我们采取行动平均情况下会导致高奖励。我们要推动可见行为的概率(提高采取这些行为的概率)。

另一方面,如果R(tau)低了,我们要降低可见行为的概率。

梯度的策略导致参数在有最高回报的最支持的行动的方向上移动。

蒙特卡洛策略梯度

在笔记中,鉴于我们的任务能分为若干阶段,我们将使用蒙特卡洛方法来设计策略梯度算法。

Initializeθforeachepisodeτ=S0,A0,R1,S1,…,ST:fort<--1toT-1:Δθ=αtheta(logπ(St,At,θ))Gtθ=θ+ΔθForeachepisode:Ateachtimestepwithinthatepisode:Computethelogprobabilitiesproducedbyourpolicyfunction.Multiplyitbythescorefunction.Updatetheweights但是我们在使用该算法时面临一个问题。因为我们仅在每个阶段结束时计算R值,我们将会平均所有行为。哪怕部分行为是非常糟糕的,如果我们的分值是非常高的,这样所有行为都会被平均成好的。

要想有一个正确的策略,我们就需要大量的采样,这将导致很慢的学习。

行为评价器:一个价值算法和策略算法的混合体。

近端策略梯度:确保跟前一个策略的偏差相对小。

我们拍了一段视频,利用Tensorflow在死亡模式下的Doom游戏中应用策略梯度智能体:

综上所述,你已经创建了一个能学习在Doom环境下生存的智能体。厉害吧!

别忘了亲自应用每一个部分代码,这非常重要。尝试增加时代、改变架构、修改学习率、使用更好的硬件环境等等,尽情享受吧!

AI研习社每日更新精彩内容,观看更多精彩内容:雷锋网雷锋网雷锋网

THE END
1.Python混合注意力机制多变量本文探索长短期记忆(LSTM)循环神经网络的结构以学习变量层面的隐藏状态,旨在捕捉多变量时间序列中的不同动态,并区分变量对预测的贡献。利用这些变量层面的隐藏状态,提出了一种混合注意力attention机制来对目标的生成过程进行建模。随后开发了相关训练方法,以联合学习网络参数、变量重要性和与目标变量预测相关的时间重要性。https://blog.51cto.com/u_14293657/12908622
2.基于增量学习的CNNLSTM光伏功率预测光伏功率预测 长短期记忆(LSTM)网络 增量学习 弹性权重整合(EWC)算法https://www.cnki.com.cn/Article/CJFDTotal-DQJS202405004.htm
3.TensorFlow十三LSTM练习lstm增量学习文章浏览阅读556次。https://yq.aliyun.com/articles/202939Mnist: BATCH_SIZE X 784 arrayCCN:BATCH_SIZE X28X28 -->BATCH_SIZE X28x28X1 arrayLSTM:28(NUM_STEPS)个BATCH_SIZE X28 list先试试数据变换:# coding=utf-8import os_lstm增量学习https://blog.csdn.net/lijil168/article/details/82895080
4.人工智能中小样本问题相关的系列模型(一):元学习小样本学习元学习的主要方法包括基于记忆Memory的方法、基于预测梯度的方法、利用Attention注意力机制的方法、借鉴LSTM的方法、面向RL的Meta Learning方法、利用WaveNet的方法、预测Loss的方法等。 2. 基于记忆Memory的方法 基本思路:既然要通过以往的经验来学习,那么是不是可以通过在神经网络上添加Memory来实现呢? https://www.nowcoder.com/discuss/432735
5.lstm原理增量迁移原理介绍华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:lstm原理。https://support.huaweicloud.com/topic/831072-3-L
6.nlp面试题大全LSTM是如何实现长短期记忆功能的? RNN有梯度消失和梯度爆炸问题,学习能力有限。LSTM可以对有价值的信息进行长期记忆,有广泛应用 首先结合LSTM结构图和更新的计算公式探讨这种网络如何实现功能。 与传统的RNN相比,LSTM依然是基于 只不过对内部的结果进行了更加精细的设计:加入了输入门,,遗忘门以及输出门 https://www.jianshu.com/p/c3e3ab89ccab
7.基于LSTM的机场跑道视程预测关键词:长短时记忆网络深度学习跑道视程预测时序预测神经网络预测模型人工智能 Prediction of Runway Visual Range Based on LSTM PENG Lu ,LIU Jun-Kai ,SHENG Ai-Jing,ZHANG Xing-Hai,SUN Wen-Zheng Abstract: Runway visual range (RVR) reflects the pilot’s visual range, which is one of the importanthttps://c-s-a.org.cn/html/2022/5/8492.html
8.一种基于注意力机制的无人机自主导航分层强化学习算法Shin等人[28]使用各种强化学习算法(如无监督学习、监督学习和强化学习)对无人机进行了实验研究。Hodge等人[29]开发了一种通用导航算法,通过无人机机载传感器的数据引导无人机到达问题地点。为了构建通用的自适应导航系统,本研究采用了一种结合增量课程学习和LSTM的近端策略优化DRL算法。Li等[30]提出了一种独特的DRLhttps://www.auto-testing.net/news/show-122010.html
9.一种基于小样本的迭代式增量对话意图类别识别方法1.一种基于小样本的迭代式增量对话意图类别识别方法,其特征在于,该识别方法包括以下步骤:步骤1:针对对话意图中的文本句子进行分词并训练得到词向量;步骤2:针对一部分词向量先后利用LSTM网络和CNN网络特征提取后得到句子向量,将句子向量通过分类单元以训练初步分类模型,将另一部分词向量输入至训练完毕的初步分类模型,得到https://www.qcc.com/zhuanliDetail/94f955987af15c76b7bd63d0b0b01319.html
10.深度学习在基于日志分析的系统异常检测中的应用本文以文献[3]为例,介绍了深度学习模型(LSTM)在基于日志分析的系统异常检测中的应用,详细介绍了日志模板异常检测和日志变量异常检测这两个部分,希望能够带给大家一些启发。 参考文献 [1] Md Zahangir Alom, Tarek M. Taha. The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches.https://cloud.tencent.com/developer/news/230251
11.基于BLS和LSTM的剩余使用寿命预测方法及系统9.有鉴于此,本发明提供了一种基于bls和lstm的剩余使用寿命预测方法及系统,其中,bls具有强大的特征表征和预测能力,能够准确地表示数据特征与预测结果之间的关系;训练速度高且具有增量学习的优势,当网络没有达到预期的性能时,只需要增量学习,且只需要计算增量部分而无需重构整个网络,这大大提高了数据处理的效率。同时,https://www.xjishu.com/zhuanli/55/202211426550.html
12.一文概述联邦持续学习最新研究进展澎湃号·湃客澎湃新闻当前,一般认为持续学习 (Continual Learning) 和增量学习(Incremental Learning)、终身学习 (Lifelong Learning) 是等价表述,它们都是在连续的数据流中训练模型,随着时间的推移,更多的数据逐渐可用,同时旧数据可能由于存储限制或隐私保护等原因而逐渐不可用,并且学习任务的类型和数量没有预定义 (例如分类任务中的类别数)https://www.thepaper.cn/newsDetail_forward_23531390
13.机器学习期末复习题.pdf监督学习 B. 无监督学习 C. 线性决策 D. 增量学习 6. 以下属于聚类方法的是( ABD ) A. k-means B. 层次聚类 C. Fisher鉴别 D. 密度聚类 7. 以下可用于聚类性能测量的评估方法 ( ABCD ) A. Jaccard系数 B. FM指数 C. Rand指数 D. DB指数 8. 以下可行的最近邻分类的加速方案 ( AB ) 14 A. https://m.book118.com/html/2023/0910/5120210043010324.shtm
14.北京大学计算语言学教育部重点实验室10.董秀芳,从动作的重复和持续到程度的增量和强调,《汉语学习》2017年第4期:3-12页。 11.董秀芳,汉语词汇化研究的意义、存在的疑问以及新的研究课题,《历史语言学研究》第11辑:272-283页。商务印书馆,2017年10月。 12.Xiaodong Zhang, Sujian Li, Lei Sha, Houfeng Wang, Attentive Interactive Neural Networhttps://klcl.pku.edu.cn/xzyj/lwfb/article.html