之前讲了TD算法和DQN,但实际上原始的DQN效果并不是很理想,因此本节主要讲解一些TD算法或者DQN的改进策略。包括经验回放, 高估问题(目标网络target network,double Q-learning),噪声网络(Noisy Net)


目录

经验回放:

高估问题:

噪声网络(Noisy Net):


经验回放:

TD算法的缺点:

1.经验的浪费,当四元组用过一次后就被丢弃了。事实上经验是可以被重复利用的

2.四元组之间具有相关性,由于四元组之间包括st和,导致两个相邻四元组之间具有很强的关联性。事实上这种相关性是有害的,需要进行打散处理。如果大家有看我之前的博文,在实战中,数据初始化时一般都有打散这个过程。

因此使用经验回放,既可以重复利用避免浪费,也可以打散,消除相关性。

经验回放数组(Replay Buffer),大小为n是超参数,需要自行调节。只能容纳n条数据,当满的时候会删除最早的数据。

经验回放现在已经被广泛使用,下面介绍其中一个变种,优先经验回放,用非均匀抽样代替均匀抽样。

数据的重要性存在一定差异,通过TD error来判断重要性,绝对值越大,越重要。我们思考一下,越重要的数据是越难获得的,因此通过重要数据训练的较少,偏差也较大,所以TD error绝对值越大重要性越高。

因此产生了两种抽样方式:第一种是抽样概率正比于TD error的绝对值再加上一个很小的偏移量(防止TD error为0);第二种是直接对重要性分级,优先级高的对应概率大。

我们之前利用随机梯度下降是需要用到学习率的,是一个固定不变的超参数。但之前是均匀抽样,现在是非均匀抽样,学习率不能一成不变。如果抽样概率较大,学习率应该较小,反之则反之。学习率*,其中是0~1的。

当均匀抽样时,p1=p2=...=pn=1/n,则每个概率都是1/n,因此学习率不需要变化。但非均匀抽样时p是会不同的,因此学习率不断变化。由此公式可以看出重要性越高,p越大则学习率越小是超参数,需要自己调整。

但是在实际情况中会存在新收集到的数据还未训练,不存在TD error的情况,此时我们只需要将它的TD error设置为最大值,也就是具有最高的优先级。每次使用一组数据时要重新计算它的TD error,并更新。


高估问题:

在这里简单回顾一下自举:利用自身的估计值来更新自身。可以看这篇博客深度强化学习-强化学习基础-SARSA算法(四)

高估问题的原因:1.在计算TD目标时,对t+1时刻的估计会用到t+1时刻的最大值,可能会产生高估。2.利用自举,如果本轮已经出现高估,下一轮需要用上一轮的结果,则会使高估更严重。

总结来说:利用DQN估计最优动作价值,计算TD目标时做最大化,最大化会导致高估,则算出的TD目标是对动作价值的高估,接着利用自举又传播回DQN自己,导致DQN出现高估。如此一来恶性循环。

坏处:我们知道DQN算法最终的目的是选择一个价值最大的动作,高估本身不是问题,高估如果是均匀的,每次选择的动作不受影响。如果高估不是均匀的,不同的动作受到的高估不同,就会导致错误。但在实际应用中DQN的高估是非均匀的

原理:TD算法每次从经验回放数组中取出一组数据,用来更新DQN参数。前面提到TD目标存在高估,TD算法在更新时,向已经高估的TD目标靠拢,则会使更新后的值变大。则每次调用t时刻的四元组就会使TD目标向t时刻的状态和动作靠拢,但是不同时刻的四元组在经验回放数组中是不均匀的,因此高估也是非均匀的。

解决方案:方法1:不要使用自己的自举来更新DQN,而是用另一个神经网络来计算TD目标,称为目标网络,目的在于切断自举。方法2:double DQN,用来缓解最大化造成的高估,也需要用目标网络。

介绍一下目标网络(Target Network):DQN是使用一个神经网络来近似最优动作价值函数,现在可以用两个神经网络,目标网络和DQN的网络结构相同,但是参数不同。两个网络的用途不同,DQN主要用于控制agent,收集经验(四元组)。目标网络的用途就是计算TD目标,用目标网络得出的结果去更新DQN的参数,一定程度上缓解了自举。此时需要注意,后续更新参数只更新了DQN的参数w,并未更新目标网络的参数w1。对w1的更新是一段时间后直接赋予w的值,或与w的值加权平均。

double DQN:我们先把DQN细细划分以下步骤,第一步是求出最大权值对应的动作a,第二步是更新TD目标yt,由在t时刻奖励rt和上一步的动作a代入网络得出估计值。两步都使用DQN就是普通的DQN方法,表现较差;假如利用目标网络,第一步和第二步都是应用目标网络来求TD目标,此时表现会比较好一点。接下来使用Double DQN:第一步做选择选出动作a,使用的是DQN,第二步求TD目标使用目标网络。再次强调DQN和目标网络网络结构使相同的,仅参数不同


噪声网络(Noisy Net):

可以显著提高 DQN 的表现。噪声网络的应用不局限于 DQN,它可以用于几乎所有的强化学习方法。

原理:

参数w替换成w=+分别是均值和标准差,是神经网络的参数,需要从经验中学习,参数w就是从该正态分布中得来的。是随机噪声,服从于标准正态分布,即均值为0,方差为1。参数w和偏移b都被替换。

噪声DQN:

DQN是属于异策略,之前我们的使用的用于收集数据的行为策略为Greedy贪婪策略。它带有一定的随机性,可以让智能体探索更多未知的状态。然而噪声DQN也带有一定的随机性,可以起到和贪婪策略一样的作用。并且作为行为策略效果更好,每做一个决策就要随机生成一个新的

训练过程:从标准正态分布中做抽样,得到的每一个元素。

TD 目标:

损失函数:

其中的 也是随机生成的噪声,但是它与 不同。对参数 分别更新,都使用梯度下降公式,并且二者有各自的学习率。

做完训练之后,可以用噪声 DQN 做决策。做决策的时候不再需要噪声,因此可以把参数设置成全零,只保留参数。这样一来,噪声DQN就变成标准的DQN。在训练的时候往 DQN 的参数中加入噪声,不仅有利于探索,还能增强鲁棒性。噪声 DQN训练的过程中,参数带有噪声,训练迫使DQN在参数带噪声的情况下最小化TD error,也就是迫使DQN容忍对参数的扰动。训练出的 DQN 具 有鲁棒性:参数不严格等于也没关系,只要参数在的邻域内,DQN做出的预测都应该比较合理。

简单解释一下鲁棒性:即使参数被扰动,DQN 也能对动作价值 做出可靠的估计。假设在训练的过程中不加入噪声。把学出的参数记作µ。当参数严格等于µ的时候, DQN 可以对最优动作价值做出较为准确的估计。但是对做较小的扰动,就可能会让噪声网络DQN的输出偏离很远。

深度强化学习-基于价值学习的高级技巧(五-1)相关推荐

  1. 深度强化学习-基于价值学习的高级技巧-对决网络(五-2)

    对决网络实属比较复杂和难以理解,我在博客末尾加上一点自己的总结与理解,虽然可能不太严谨,但绝对通俗易懂,大家一看就会!如有问题欢迎留言,本人几乎全天在线. 目录 公式: 网络: maxA的作用: 再理 ...

  2. 深度强化学习-基于价值的强化学习-TD算法和Q学习(三)

    本文主要介绍TD算法和Q学习算法 目录 TD算法: Q学习算法: 同策略,异策略: TD算法: 即时间差分 (Temporal Difference):此处用举例子方法来帮助大家理解 1.假设我从天津 ...

  3. 《强化学习周刊》第33期:UdeM | 基于不确定性估计的样本高效深度强化学习

    No.33 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  4. 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)

    基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...

  5. 深度丨深度强化学习研究的短期悲观与长期乐观(长文)

    文章来源:机器之心 深度强化学习是最接近于通用人工智能(AGI)的范式之一.不幸的是,迄今为止这种方法还不能真正地奏效.在本文中,作者将为我们解释深度强化学习没有成功的原因,介绍成功的典型案例,并指出 ...

  6. 【强化学习-医疗】用于临床决策支持的深度强化学习:简要综述

    Article 作者:Siqi Liu, Kee Yuan Ngiam, Mengling Feng 文献题目:用于临床决策支持的深度强化学习:简要综述 文献时间:2019 文献链接:https:// ...

  7. 变革尚未成功:深度强化学习研究的短期悲观与长期乐观

    深度强化学习是最接近于通用人工智能(AGI)的范式之一.不幸的是,迄今为止这种方法还不能真正地奏效.在本文中,作者将为我们解释深度强化学习没有成功的原因,介绍成功的典型案例,并指出让深度强化学习奏效的 ...

  8. 【强化学习】变革尚未成功:深度强化学习研究的短期悲观与长期乐观

    选自alexirpan 机器之心编译 参与:Nurhachu Null.刘晓坤 深度强化学习是最接近于通用人工智能(AGI)的范式之一.不幸的是,迄今为止这种方法还不能真正地奏效.在本文中,作者将为我 ...

  9. 第二十七课.深度强化学习(二)

    目录 概述 价值学习 Deep Q Network DQN的训练:TD算法(Temporal Difference Learning) 策略学习 Policy Network 策略网络训练:Polic ...

最新文章

  1. 实现当UILable的内容超出其范围后自动滚动效果
  2. 突发!Spring 也沦陷了。。。
  3. Mybatis(17)注解方式增删改查单表
  4. cad在曲线上一点画垂线lisp_【每日问答24】pdf转CAD的第一种方法(内含往期)
  5. android onclick执行顺序,浅谈onTouch先执行,还是onClick执行(详解)
  6. 暴跌3000亿,“酱茅”怎么了?
  7. IOS开发之MVC模式的介绍
  8. 【报告分享】2021中国人才趋势报告.pdf(附下载链接)
  9. 进程间的六种通信方式
  10. VirtualBox 网络链接配置
  11. 深度 linux支持debian,基于Debian的Linux发行版安装深度音乐及其插件
  12. android程序设计背景,android – 以可编程方式设置drawable作为背景
  13. Python Django 之 jQuery
  14. HBuilder X 连接苹果手机(IOS)详细教程。Windows: 连接iOS手机调试项目
  15. 分页控件-Kaminari
  16. 数字公路探索新范式,维谛技术(Vertiv)助力智慧高速“再提速”
  17. 网络设备的两个结构体net_device和in_device
  18. 搭建商城系统怎么选择合适的运营模式?
  19. Ubuntu服务器配置mysql8
  20. 《如何五分钟创建自己的新币token 》Dapp开发 Web3+以太坊+智能合约开发 (一)

热门文章

  1. 惠普台式电脑引导不了系统_hp台式机进bios设置u盘启动不了系统使用win10系统
  2. java实现简单的图书管理系统(以及代码中用了特殊注释TODO,XXX,FIXME),compare接口
  3. 做聊天机器人平台就是赌博
  4. Python 小技之实现的鲜花盛宴,你准备好了吗?
  5. ZingGrid JavaScript 1.5.0 Crack
  6. 1.0 最详细EasyTouch触摸摇杆 控制物体移动
  7. 用于包管理的基本命令APT-GET和APT-CACHE
  8. 我之看法--赵丹阳与巴菲特的午餐
  9. 连锁店收银系统如何帮助鞋店管理好分店?
  10. 图像特征提取(VGG和Resnet特征提取卷积过程详解)