重温强化学习之深度强化学习
1、简介
输入特征和真实特征相距比较远,加一个深度学习提取源的特征
2、基于值函数的深度强化学习
意义:不用函数近似无法解决大规模的问题,用函数近似训练不稳定,首次证明了能够通过原始像素解决游戏问题,并且对所有游戏通用
主要论文:
Playing Atari with Deep Reinforcement Learning (2013)
Human-level control through deep reinforcement learning(2015)
关键技术:
Q-learning + DNN
Experience Replay
Target Network
DQN算法:
DQN主要分为两个部分:一部分是交互,一部分是学习
DQN主要贡献是:1、经验回放(解决数据相关性问题) 2、构建target-Network(减小误差)
之前存在的问题是数据之间存在相关性,例如游戏画面,前一秒的画面和下一秒的画面之间存在的关系,所以为了解决这种情况通过采样的方式把当前状态、动作、奖励和下一个状态存入到经验池当中(对应上面图片Store transition(....) in D)
这里注意一下,因为你存入数据(数据的策略)和下一次从这里面抽样用的策略不是一个策略,所以是异策略,这也是不选用sarsa 算法而是Q-learning算法的原因
从上述算法可以看出更新参数之后,每隔C步之后,重新把Q网络复制新的Q网络
针对DQN的改进1:Double DQN:
主要论文:Deep Reinforcement Learning with Double Q-learning(2016)
地址连接:https://arxiv.org/pdf/1509.06461v3.pdf
之前存在的问题是:Q-learning中存在过估计:
理解例子:
对于状态s下,如果对于所有的a,真实的q(s,a)均为0,但是估计值由于不精确,会导致有些大于0,有些小于0.对估计值取最大,会引入一个正向的偏差
主要针对DQN对y进行变化:
针对DQN的改进2:Dueling DQN
主要优势:对于很多状态并不需要估计每个动作的值,增加了V函数的学习机会,V函数的泛化性能好,当有新动作加入时,并不需要重新学习,减少了Q函数由于状态和动作维度差导致的噪声和突变
主要论文:Dueling Network Architectures for Deep Reinforcement Learning(2016)
地址连接:https://arxiv.org/abs/1511.06581
针对DQN的改进3:Prioritized Experience Replay
主要改进:针对DQN来说,DQN一个重要的改进就是Experience Replay,训练时从经验池均匀采样,所以针对这部分改进:Prioritized Experience Replay就是维护一个带优先级的Experience Replay,具体有如下几方面:
不同的经验的权重不同;用TD误差去衡量权重;需要使用sum-tree以及 binary heap data structure去实现;新的transition的TD误差会被设置为最大;类似DP中的优先清理;Experience Replay使得更新不受限于实际经验的顺序,Prioritized Experience Replay 使得更新不受限于实际经验的频率
主要论文:Prioritized Experience Replay
具体使用时存在一些问题:TD误差对噪声敏感;TD误差小的Transition长时间不更新;过多关注TD误差大的transition丢失样本多样性;使用某种分布采样经验,会引入误差
解决办法:
1、两种变体:
或
2、加入重要性采样来消除误差
Prioritized Experience Replay算法
结构图:
Rainbow:
论文:Rainbow: Combining Improvements in Deep Reinforcement Learning
结合DQN及多种DQN变体:
具体参考论文,论文中实验结果截图如下所示:
3、基于策略的深度强化学习
策略梯度框架
1)、DPG:
主要论文:Deterministic Policy Gradient Algorithms(2014)
将策略梯度定理用到了高维和连续动作
常规的策略梯度方法无法用到高维和连续动作空间
连续动作无法使用概率分布输出的形式
高维动作空间中采样费时
随机策略梯度是通过采样的方式估算策略梯度,需要在状态空间和动作空间内采样
直接采用确定性策略输出:a = pi(s)
实现的过程中出现几个问题:
1)确定性策略情况下如何求策略梯度?
2)如何探索?
DPG证明确定性策略梯度定理的存在,并且和Q函数梯度建立关系:
只需要对状态S进行积分,使用off-policy的方式探索并更新(需要重要性采样)
2)DDPG
主要论文:Continuous Control with Deep Reinforcement Learning (2016)
结合DQN和DPG,使用DQN两种技术:Experience Replay 和 Target Network,利用随机过程产生探索性动作
DDPG算法:
3) A3C
主要论文:Asynchronous Methods for Deep Reinforcement Learning(2016)
Online的算法和DNN结合后不稳定(样本关联性),通过创建多个agent在多个环境执行异步学习构建batch:来自不同环境的样本无相关性,不依赖于GPU和大型分布式系统,不同线程使用了不同的探索策略,增加探索量
A3C算法:
4)A2C
改异步为同步,能更好的利用GPU,在batch_size较大时效果好
框架结构图:
重温强化学习之深度强化学习相关推荐
- 【强化学习】深度强化学习入门介绍
深度强化学习是一种机器学习,其中智能体(Agent,也翻译作代理)通过执行操作(Action)和查看结果(Reward)来学习如何在环境中采取最佳的动作或策略. 自 2013 年Deep Q-Lear ...
- 叶梓老师人工智能培训之强化学习与深度强化学习提纲(强化学习讲师培训)
强化学习与深度强化学习提纲(强化学习讲师培训) 第一天 强化学习 第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym,Te ...
- AI内训讲师叶梓-强化学习与深度强化学习提纲(强化学习讲师培训)
叶梓老师更多教程资料可点击个人主业查看 第一天 强化学习 第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym ...
- 深度强化学习和强化学习_深度强化学习:从哪里开始
深度强化学习和强化学习 by Jannes Klaas 简尼斯·克拉斯(Jannes Klaas) 深度强化学习:从哪里开始 (Deep reinforcement learning: where t ...
- 深度学习stride_深度强化学习成名作——DQN
前言:其实很早之前就想开始写写深度强化学习(Deep reinforcement learning)了,但是一年前DQN没调出来,没好意思写哈哈,最近呢无意中把打砖块游戏Breakout训练到平均分接 ...
- 基于强化学习与深度强化学习的游戏AI训练
github地址 一.摘要 在本次大作业中由两个项目组成. 第一个小项目即为简单AI走迷宫游戏,通过强化学习的Q-learning算法,对AI进行训练来让其能以大概率找打一条通关路径并基本按照该路径进 ...
- 深度强化学习1——强化学习到深度强化学习
从事深度强化学习有一段时间了,整理了网上的一些资料,写几篇博客作为知识的梳理和总结. 开讲前,先给大家看个深度强化学习的例子,下面是深度学习cnn和强化学习结合玩吃豆人的游戏 看图像我们会发现吃豆人会 ...
- 【深度学习】深度强化学习初学者指南
一.说明 GAN(Generative Adversarial Networks)是一种深度学习模型,它由两个神经网络组成:一个生成网络和一个判别网络.生成网络学习如何生成类似于给定数据集的新数据,而 ...
- 《ARPG游戏深度强化学习 》深度强化学习概念:ARPG0.1世界的构造
深度强化学习概念:ARPG0.1世界的构造 背景:决策.计划及更复杂的任务需要更高水平的智能.更强的人工智能系统还需要具备推理.思考和规划能力. 深度学习=深度神经网络+数据平衡+各类体系化的优化算法 ...
最新文章
- 微软职位内部推荐-Software Development Engineer II
- 高程数据处理_珠峰长高了吗?新高程怎么算出来的?揭秘
- java自定义分页标签_自定义分页标签--仿javaeye分页效果
- div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!
- 简述 Python 的 Numpy、SciPy、Pandas、Matplotlib 的区别
- php 获取硬盘所有分区,硬盘怎么分为整数分区|电脑硬盘分区整数对照表
- 4.自定义的Spring Boot Starters
- mysql汪晓青课后答案_MySQL数据库基础实例教程
- 西南科技大学OJ题 插入排序算法实现1016
- 武田收到CHMP同意ALUNBRIG® (brigatinib)用于ALK+非小细胞肺癌一线治疗的肯定意见
- mysql commit用法_sql commit用法
- 七、VUE基础——悦听音乐播放器案例(vue+axios)
- 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
- 【IM-03】Web端匿名聊天
- Excel如何批量查询手机号码归属地
- ECharts地图使用
- Android教程 -05 Android6.0权限的管理
- vm虚拟机内置终端字体间隔大
- centos7.6下载地址
- 怎样才能成为一个优秀的产品经理
热门文章
- 如何让一个类可以被foreach枚举?
- js:进一步关闭(范围:下一个)
- debian 7上安装svn
- Enabling Redo Log Transport Compression with active dataguard
- SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...
- Repeater、GridView等 操作XML
- PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
- 如何使用cmd进入打印机选项_cmd调用设备和打印机
- 《剑指offer》c++版本 10. 斐波那契数列
- android+模拟器皮肤,自定义android模拟器皮肤和键盘映射