现有的强化学习主要分为五种:
通过价值选行为:Q-learning、Sarsa、Deep Q Network
直接选行为:Policy Gradients
想象环境并从中学习:Model Based RL

回合更新:基础版的Policy Gradients、Monte-Carlo Learning
单步更新:Q Learning、Sarsa、升级版Policy Gradients

一、Q-Learning


见参考:
https://baijiahao.baidu.com/s?id=1597978859962737001&wfr=spider&for=pc
https://www.jianshu.com/p/29db50000e3f?utm_medium=hao.caibaojian.com&utm_source=hao.caibaojian.com

二、Sarsa

Sarsa具体算法请参考:https://www.baidu.com/link?url=Zd0LKnHffGIji4K9d1rjkxV7mJCOs5uedgabr2x8OLAm-dAa9X1A6FcslSIGwizh8L7vG7jqR9sFuBNLVpH8IrMhfryLHN7wzVw6E0qD-8u&wd=&eqid=abc3e6ec0000a45b000000035bbb0446

三、Sarsa(λ)

Sarsa(λ)具体算法请参考:
https://www.baidu.com/link?url=af1_fWwkNQoUsHn7HyPfxYSSC6msInuG00pgshZhXNXKiHAeMb5tLzf3RN81z-a_KWdbD9i5jq8JqWyewGJh6myp6bzYHxxZKwNKYNlnzKW&wd=&eqid=a85a1423000092ce000000035bbb0c41

四、DQN算法

DQN算法提出的背景,当Q-Table非常之大时,此时像Q-learning那样建立表格已不再合适,是不是有一种可以比较方便直接输出动作或Q值的机制呢?答案当然是有的,这就是DQN。
DQN的思想主要有以下几种:根据状态+动作输出动作的Q值,并选择Q值最大的作为下一步的动作;根据状态直接输出每种动作的Q值,并根据Q值大小来决定下一步将要进行的动作。

更详细内容请参考:https://blog.csdn.net/u013236946/article/details/72871858

五、Policy Grandients

什么是 Policy Gradients

其实策略梯度的基本思想,就是直接根据状态输出动作或者动作的概率。那么怎么输出呢,最简单的就是使用神经网络啦!

我们使用神经网络输入当前的状态,网络就可以输出我们在这个状态下采取每个动作的概率,那么网络应该如何训练来实现最终的收敛呢?

我们之前在训练神经网络时,使用最多的方法就是反向传播算法,我们需要一个误差函数,通过梯度下降来使我们的损失最小。但对于强化学习来说,我们不知道动作的正确与否,只能通过奖励值来判断这个动作的相对好坏。基于上面的想法,我们有个非常简单的想法:

如果一个动作得到的reward多,那么我们就使其出现的概率增加,如果一个动作得到的reward少,我们就使其出现的概率减小。

根据这个思想,我们构造如下的损失函数:loss= -log(prob)*vt

我们简单用白话介绍一下上面这个损失函数的合理性,那么至于从数学角度上为什么要使用上面的损失函数,可以参考:Why we consider log likelihood instead of Likelihood in Gaussian Distribution。

上式中log(prob)表示在状态 s 对所选动作 a 的吃惊度, 如果概率越小, 反向的log(prob) 反而越大. 而vt代表的是当前状态s下采取动作a所能得到的奖励,这是当前的奖励和未来奖励的贴现值的求和。也就是说,我们的策略梯度算法必须要完成一个完整的eposide才可以进行参数更新,而不是像值方法那样,每一个(s,a,r,s’)都可以进行参数更新。如果在prob很小的情况下, 得到了一个大的Reward, 也就是大的vt, 那么-log(prob)*vt就更大, 表示更吃惊, (我选了一个不常选的动作, 却发现原来它能得到了一个好的 reward, 那我就得对我这次的参数进行一个大幅修改)。

这就是 -log(prob)*vt的物理意义啦.Policy Gradient的核心思想是更新参数时有两个考虑:如果这个回合选择某一动作,下一回合选择该动作的概率大一些,然后再看奖惩值,如果奖惩是正的,那么会放大这个动作的概率,如果奖惩是负的,就会减小该动作的概率。

策略梯度的过程如下图所示:

我们在介绍代码实战之前,最后在强调Policy Gradient的一些细节:

  1. 算法输出的是动作的概率,而不是Q值。
  2. 损失函数的形式为:loss= -log(prob)*vt。
  3. 需要一次完整的episode才可以进行参数的更新。

6、Actor-Critic

基本思想和Policy Grandients相同,但是Actor Critic可以进行单步更新/实时更新。
结合了Policy Gradient(Actor)和Function Approximation(Critic)的方法。Actor基于概率选行为,Critic基于Actor的行为评判行为的得分,Actor根据Critic的评分修改选行为的概率。

Actor Critic方法的优势:可以进行单步更新,比传统的Policy Gradient更新速度快。
Actor Critic方法的劣势:取决于Critic的价值判断,但是Critic难收敛,再加上Actor就更难收敛。

7、DDPG算法

其优势表现在,相比于Actor-Critic算法,更容易进行实时更新。

8、AC3算法

采用的是Actor-Critic算法,只是在此基础上,训练了三个网络,这三个网络各自学习,最终都会对决策产生影响。现有的计算机大多是多核处理器,这样就可以把这三个网络放到不同的核中,分别进行训练,效率比较高,要比传统的方式快了许多倍。在python中是通过多线程来完成。

强化学习中的各类算法相关推荐

  1. 深度强化学习中Double DQN算法(Q-Learning+CNN)的讲解及在Asterix游戏上的实战(超详细 附源码)

    需要源码和环境搭建请点赞关注收藏后评论区留下QQ~~~ 一.核心思想 针对DQN中出现的高估问题,有人提出深度双Q网络算法(DDQN),该算法是将强化学习中的双Q学习应用于DQN中.在强化学习中,双Q ...

  2. 强化学习中的动态规划算法(Dynamic Programming)

    文章目录 1.Cliff Walking 环境 2.策略迭代(Policy Iteration) 1)策略评估(Policy Evaluation) 2)策略提升(Policy Improvement ...

  3. 最新综述 | 强化学习中从仿真器到现实环境的迁移

    ©PaperWeekly 原创 · 作者|李文浩 学校|华东师范大学博士生 研究方向|强化学习 最近 survey 了一下 sim2real 领域最近的相关工作,先整理个第一版(共有七篇论文)的总结. ...

  4. 《强化学习周刊》第26期:UCL UC Berkeley发表深度强化学习中的泛化研究综述、JHU推出基于强化学习的人工决策模型...

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

  5. 赠票 | 深度强化学习的理论、算法与应用专题探索班

    文末有数据派赠票福利呦! 深度强化学习是人工智能领域的一个新的研究热点.它以一种通用的形式将深度学习的感知能力与强化学习的决策能力相结合,并能够通过端对端的学习方式实现从原始输入到输出的直接控制.自提 ...

  6. 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法

    2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...

  7. (深入理解)强化学习中Model-based和Model-free的区别是什么

    文章目录 RL的形式化 RL求解算法 model-based:知己知彼,百战百胜 Model-free:两耳不闻窗外事,一心只读圣贤书 总结 RL的形式化 首先我们定义强化学习中的马尔可夫决策过程MD ...

  8. 强化学习中的脉冲神经网络

    简 介: 脉冲强化学习是最近兴起的将脉冲神经网络应用到强化学习中的一个研究领域.固然脉冲神经网络的引入会给强化学习带来一些新的东西,但目前的研究仍然仅仅满足于如何让算法收敛,而没有发挥出脉冲神经网络独 ...

  9. labview叠加白噪声_强化学习中Ornstein-Uhlenbeck噪声是鸡肋吗?

    欢迎转载,转载请注明出处--知乎专栏"机器学习与控制论". 读过DDPG论文[1]的同学几乎都会有一个问题,论文中使用Ornstein-Uhlenbeck噪声用于探索,比较难理解, ...

  10. 线下报名 | YOCSEF TDS:深度强化学习的理论、算法与应用

    时间:7月29日9:00-17:20 地点:北京中科院计算所,一层/四层报告厅(暂定) 报名方式:1.报名链接:http://conf2.ccf.org.cn/TDS  2.点击文末阅读原文报名  3 ...

最新文章

  1. 三元组损失 Triplet Loss及其梯度
  2. Mac OS使用技巧之十:Finder的详细使用方法
  3. 计算机与人脑_类脑计算机:一种新型的计算系统
  4. android studio Cmake undefine func
  5. JAVA10 十大特性
  6. python mysql in语句_基于Python的mysql语句入门学习笔记
  7. 做购物车系统时利用到得几个存储过程
  8. eclipse中open resource.不显示class文件
  9. 搞了很久终于突破了一点瓶颈,fighting!!!!!!!!!!!!!!!!
  10. 微软MIX10开幕 支持在线观看
  11. WebService报错javax xml ws soap SOAPFaultException javax xml
  12. Unity3D(五)渲染管线
  13. java 泛洪攻击_网易有道后端实习面经
  14. Magento发布前检查清单
  15. echarts最简单的南丁格尔玫瑰图+图例
  16. android wp主题,WP主题:ebou4
  17. 【洛谷 2504】聪明的猴子
  18. Python 基础 1.0
  19. 电子商务计算机考研学校排名,电子商务考研院校排名
  20. 一个账号多路由器拨号失败服务器无响应,PPPoE拨号失败 PPPoE拨号失败服务器无响应怎么办?...

热门文章

  1. FileOprSer.class.php(文件上传与下载类)
  2. php调用一个c语言写的接口问题
  3. win8.1硬盘安装ubuntu14.04双系统
  4. oracle sql试题
  5. AngularJS的ng-click阻止冒泡
  6. 28. 正确理解由reverse_iterator的base()成员函数所产生的iterator的用法
  7. java 内省 反射_理解Java的反射与内省及其区别
  8. termux无法安装引导程序包_Windows 10出现升级BUG:无法保留用户个人数据
  9. matlab拟合分析画不出线,lsqcurvefit曲线拟合后,用polt函数画不出拟合的图形
  10. 本地差分隐私 随机响应_大数据时代下的隐私保护(二)