深度强化学习 (强化学习)

文章编号:44043 资讯动态 2024-12-09 DQN深度强化学习

深度强化学习-深度Q网络(DQN)介绍

深度强化学习-深度Q网络(DQN)介绍

原始的深度强化学习是纯强化学习,其典型问题为马尔科夫决策过程(MDP)。马尔科夫决策过程包含一组状态S和动作A。状态的转换是通过概率P,奖励R和一个折衷参数gamma决定的。概率转换P反映了转换和状态转变的奖励之间的关系,状态和奖励仅依赖上一时间步的状态和动作。

强化学习为Agent定义了环境,来实现某些动作以最大化奖励(这些动作根据policy采取)。对Agent的优化行为的基础由Bellman方程定义,这是一种广泛用于求解实际优化问题的方法。为了解决Bellman优化问题,我们使用了一种动态编程的方法。

当Agent存在于环境中并转换到另一个状态(位置)时,我们需要估计状态V(s)(位置)-状态值函数的值。一旦我们知道了每个状态的值,我们就可以找出执行Q(S, A)-动作值函数的最佳方法(只需遵循值最高的状态)。

这两个映射或函数相关性很高,可以帮助我们找到问题的最佳策略。从状态值函数我们可以看出遵循策略的Agent,处于的S状态有多好。

深度强化学习-深度Q网络(DQN)介绍

但是,动作值函数q(s,a)是从状态S开始,采取动作A,并遵循策略π的折现收益,并告诉我们从特定状态采取特定动作的效果。

深度强化学习-深度Q网络(DQN)介绍

很明显,状态值函数和Q函数之间的区别在于值函数体现状态的良好性,而Q函数体现状态中的动作的良好性。

MDP由Bellman方程求解,Bellman方程是以美国数学家Richard Bellman的名字命名的。该方程有助于寻找最优的策略和价值函数。代理根据所施加的策略选择操作(策略——正式地说,策略定义为每种可能状态下操作的概率分布)。代理可以遵循的不同策略意味着状态的不同值函数。然而,如果目标是使收集到的奖励最大化,我们必须找到最好的可能的政策,称为最优政策。

深度强化学习-深度Q网络(DQN)介绍

另一方面,最佳状态值函数的值,比所有其它值函数(最大返回值)都要大,因此,最佳值函数也以通过代入最大Q值来进行估算:

深度强化学习-深度Q网络(DQN)介绍

最后,值函数的贝尔曼等式(Bellman equation)可表示如下:

深度强化学习-深度Q网络(DQN)介绍

类似地,Q函数的贝尔曼等式可表示如下:

深度强化学习-深度Q网络(DQN)介绍

基于最佳状态值函数以及上述的状态值函数、动作值函数的等式,我们可以写出最终的最佳值函数的等式,该等式称作贝尔曼最佳等式:

深度强化学习-深度Q网络(DQN)介绍

深度强化学习-深度Q网络(DQN)介绍

通常,强化学习的问题通过Q学习算法来解决。这里,如上所言,智能体与环境交互并接收奖励。目标是用足最佳策略(选择动作的方法),以取得最大奖励。在学习过程中,智能体更新Q(S,A)表(当回合结束时,任务完成,目标达到)。

Q学习算法通过以下步骤实现:

2、用epsilon贪心策略选取一个行动,然后进入下一个状态S’

3、根据更新等式来更新前一个状态的Q值:

深度强化学习-深度Q网络(DQN)介绍

最好是从解决来自OpenAI gym的 Frozen Lake 开始。

在冻湖环境里(最好能熟悉OpenAI的描述),智能体可处理16种状态,执行4个不同的动作(在一个状态中)。在这种情况下,我们的A(S,A)表的大小是16x4。

Frozen Lake代码如下,你也可以点击 此处 查看~

深度强化学习-深度Q网络(DQN)介绍

深度强化学习-深度Q网络(DQN)介绍

请注意上面给出的Q算法属于时序差分学习算法(Temporal Difference Learning algorithms)(由Richard S. Sutton于1988年提出)。Q算法是一种线下策略(off-policy)算法(这种算法具有从旧的历史数据学习的能力)。Q学习算法的扩展是SARSA(在线策略(on-policy)算法)。唯一区别在于Q(S,A)表的更新:

深度强化学习-深度Q网络(DQN)介绍

2. 深度强化学习(深度Q网络--DNQ)

当所有可到达的状态处于可控(能够迭代)并且能存储在计算机RAM中时,强化学习对于环境来说是足够好用的。然而,当环境中的状态数超过现代计算机容量时(Atari游戏有12833600个状态),标准的强化学习模式就不太有效了。而且,在真实环境中,智能体必须面对连续状态(不离散),连续变量和连续控制(动作)的问题。

知道了智能体所处的环境的复杂性(状态数量,连续控制),标准的、定义明确的强化学习Q表就得被深度神经网络(Q网络)取代了,后者可以把环境状态映射为智能体动作(非线性逼近)。网络架构,网络超参数的选择以及学习都在训练阶段(Q网络权重的学习)中完成。DQN允许智能体探索非结构化的环境并获取知识,经过时间积累,他们可以模仿人类的行为。

下图(在训练过程中)描述了DQN的核心概念,图中,Q网络做非线性逼近,把状态映射为动作值。

在训练过程中,智能体与环境交互,并接收数据,这些数据在Q网络的学习过程中会用到。智能体探索环境,建立一个转换和动作输出的全图。开始时,随机进行动作,随着时间推移,这样做越来越没效果。在探索环境时,智能体尽量查询Q网络(逼近)以决定如何行动。我们把这种方式(综合了随机行为和Q网络查询)称为epsilon贪心方法(epsilon贪心动作选择块),也就是说利用概率超参数epsilon在随机和Q策略间进行选择。

我们所讲的Q学习算法的核心来自于监督学习。

如前所述,我们的目标是用深度神经逼近一个复杂的非线性函数Q(S,A)。

跟监督学习一样,在DQN中,我们定义损失函数为目标和预测值之间的方差,我们也更新权重尽量减少损失(假定智能体从一个状态转换到另一个状态,进行了某个动作a,获取奖励r)。

深度强化学习-深度Q网络(DQN)介绍

在学习过程中,我们使用两个不相关的Q网络(Q_network_local和Q_network_target)来计算预测值(权重θ)和目标值(权重θ’)。经过若干步骤后,目标网络会被冻结,然后拷贝实际的Q网络的权重到目标网络权重。冻结目标Q网络一段时间再用实际Q网络的权重更新其权重,可以稳定训练过程。

深度强化学习-深度Q网络(DQN)介绍

为使训练过程更稳定(我们要避免用比较关联的数据来训练网络,如果基于连续更新最后转换来进行训练的话, 这种情况就有可能发生),我们引入重播缓冲区,它能记住智能体所经历的行为。然后,用重播缓冲区里的随机样本来进行训练(这可以减少智能体的经历之间的关联性,并有助于智能体从更广泛的经历中进行学习)。

2. 预处理环境,并把状态S输入DQN, 后者会返回该状态中所有可能的动作的Q值。

3. 用epsilon贪心策略选取一个动作:当有概率epsilon时,我们选择随机动作A,当有概率1-epsilon时,选取具有最高Q值的动作,例如A=argmax(Q(S, A, θ))。

4. 选择了动作A后,智能体在状态S中执行所选的动作,并进行到新状态S ,接收奖励R。

5. 把转换存储在重播缓冲中,记作

6. 下一步,从重播缓冲区中抽取随机批次的转换,并用以下公式计算损失:

深度强化学习-深度Q网络(DQN)介绍

7. 针对实际网络参数,执行梯度下降,以使损失最小化。

8. 每隔k步之后,拷贝实际网络权重到目标网络权重中。

在这一段中,我展示Udacity(深度强化学习)的工程代码的结果。

本工程的目标是训练智能体如何在方块环境中通过移动来采集黄色香蕉。工程要求在100个连续回合中获取+13的平均分。

b. 在导航工程中,使用下列参数设置神经网络架构和超参数:

以下是每回合的奖励图,显示出智能体在玩了2247回合后,能收到的平均奖励(超过100回合)有至少+13。

输入层FC1:37节点输入,64节点输出

隐藏层FC2:64节点输入,64节点输出

隐藏层FC3:64节点输入,64节点输出

输出层:64节点输入,4节点输出----动作的大小

BUFFER_SIZE = int(1e5) # 重播缓冲区大小BATCH_SIZE = 64 # 最小批量大小GAMMA = 0.99 # 折扣率TAU = 1e-3 # 用于目标参数的软更新LR = 5e-4 # 学习率UPDATE_EVERY = 4 # 更快网络的快慢Epsilon start = 1.0Epsilon start = 0.01Epsilon decay = 0.999

深度强化学习-深度Q网络(DQN)介绍

深度强化学习-深度Q网络(DQN)介绍

图2. 智能体学习的平均得分

如果有深度学习的相关经验,那么未来工作将主要集中于图像处理方面(从像素中学习)。下图展示了DQN的架构,图中,我们输入游戏画面,Q网络逼近游戏状态中所有动作的Q值。动作由我们讨论过的DQN算法进行选择。

深度强化学习-深度Q网络(DQN)介绍

其次,未来的工作将集中在生成一个决斗(Dueling)式DQN。在这个新的架构中,我们指定新的优势函数,这个函数计算出智能体执行的一个动作,比其它动作好了多少(优势可为正也可为负)。

Dueling DQN架构与上面讲的DQN相同,只不过最后的全连接层分成两股(见下图所描述)。

若环境的一个状态有确定数量的动作空间,绝大多数计算出来的动作对状态没有什么影响。此外,有些动作有冗余效应。在这种情况下,新的dueling DQN将会比DQN架构估算出来的Q值更精确。

其中一股计算值函数,另一股计算优势函数(用于决定哪个动作更优)。

深度强化学习-深度Q网络(DQN)介绍

最后,我们考虑一下从人类的偏好中进行学习 (OpenAI和Deep Mind) 。这个新概念的核心思想是从人类的反馈中学习。接收人类反馈的智能体,将尽力进行人类期望的动作,并相应地设置奖励。人类与智能体的直接交互 ,会有助于降低设计奖励函数和复杂的目标函数的难度。

深度强化学习-深度Q网络(DQN)介绍

你可以通过我的Github找到本工程的全部源码:

想要继续查看该篇文章相关链接和参考文献?

点击【 深度强化学习-深度Q网络(DQN)介绍 】即可访问!

福利大放送——满满的干货课程免费送!

「好玩的Python:从数据挖掘到深度学习」该课程涵盖了从Python入门到CV、NLP实践等内容,是非常不错的深度学习入门课程,共计9节32课时,总长度约为13个小时。。

课程页面:

「计算机视觉基础入门课程」本课程主要介绍深度学习在计算机视觉方向的算法与应用,涵盖了计算机视觉的历史与整个课程规划、CNN的模型原理与训练技巧、计算机视觉的应用案例等,适合对计算机视觉感兴趣的新人。

课程页面:

现AI研习社将两门课程免费开放给社区认证用户,只要您在认证时在备注框里填写「Python」,待认证通过后,即可获得该课程全部解锁权限。心动不如行动噢~

原创文章,未经授权禁止转载。详情见 转载须知 。

深度强化学习-深度Q网络(DQN)介绍

全局中部横幅
602游戏盒子

602游戏平台,从成立之出就制定了做玩家喜爱、信任的游戏平台的理念,全体工作人员做的每一个决策都是从玩家的角度出来,充分以玩家为导向。希望有了602的陪伴,您的游戏之路更加精彩,更加有趣!

江苏维创散热器制造有限公司

江苏维创散热器制造有限公司主要产品包括散热器、中冷器、散热器配件、发电机组及配件制造、加工、销售,自营及技术的进出口业务。

理论研究网

理论研究网为您提供北大中文核心期刊、CSSCI南大核心期刊、国家级、省级学术期刊的论文投稿指导,论文发表,以及期刊在线订阅等有关学术理论研究服务。

广州翔云网络科技有限公司

翔云网络(www.aqxyun.com)是国内专业的云安全平台,为用户网站、游戏、APP等提供黑客攻击云防护、云加速服务,使用翔云云安全可有效防御黑客攻击,防DDOS,防CC攻击,防病毒,网站全球提速200%以上。

山工阀门(山东)有限公司

山工阀门(山东)有限公司专业对山东地区生产销售阀门成套产品,是山东闸阀、截止阀、球阀、止回阀、蝶阀、水力控制阀、调节阀、旋塞阀、给排水消防阀门、脱硫脱硝阀门,衬四氟阀门等多个系列通用阀门的生产厂家、供应商。

元素全屋定制

元素全屋定制整合了市场发展规律,提出全新的商业模式,定位“高端全屋居家定制”,聘请高级设计师精心设计,结合纯实木家具多年来的生产经验,采用意大利设计和欧洲工艺标准,通过产品品质、设计创意、服务理念等所有细节做到真正意义上的高端。并且携手一线软装品牌,进行全方位定制服务,打造真正的全屋定制。

中水东北勘测设计研究有限责任公司

中水东北勘测设计研究有限责任公司水利行业甲级设计电力行业甲级设计

大字符喷码机

福州零点自动化设备有限公司生产销售各类大字符喷码机及喷码机油墨,欢迎来电13559178800

jQuery特效

素材牛致力于收集网站模板、jQuery特效、PHP实例教程、程序源码、网站模板等素材供大家免费下载。并搭建最便捷的素材发布平台,我们的口号:素材牛,打造最精准的素材发布、分享平台!

福建省人民政府门户网站

中国福建,福建省人民政府官方网站;福建省人民政府门户网站(简称中国福建政府网),是福建省人民政府和省人民政府各部门,以及各设区市、县(市、区)人民政府在国际互联网上发布政务信息、提供在线服务和公众参与的综合服务平台。

山东振宇厨业有限公司【官网首页】

山东振宇厨业有限公司主要生产销售:厨房设备、厨具设备、餐厅设备、学校食堂设备、学校烹饪设备、商用厨房设备、炊具设备以及各种不锈钢调理设备、炉具,咨询电话:0543-2856122,传真:0543-2856133

空调机三角带

上海赤丰机电设备有限公司是优质的“空调机三角带,进口联组广角带,耐高温三角带”供应商,主要经营产品有:盖茨空压机三角带,日本三星三角带,罗茨风机皮带,破碎机三角带,进口广角带,防静电三角带,盖茨GATES同步带,螺杆空压机皮带,日本三星MITSUBOSHI同步带,联组广角带,进口同步带,冷却塔皮带.

全局底部横幅