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较大时效果好

框架结构图:

重温强化学习之深度强化学习相关推荐

  1. 【强化学习】深度强化学习入门介绍

    深度强化学习是一种机器学习,其中智能体(Agent,也翻译作代理)通过执行操作(Action)和查看结果(Reward)来学习如何在环境中采取最佳的动作或策略. 自 2013 年Deep Q-Lear ...

  2. 叶梓老师人工智能培训之强化学习与深度强化学习提纲(强化学习讲师培训)

    强化学习与深度强化学习提纲(强化学习讲师培训) 第一天 强化学习   第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym,Te ...

  3. AI内训讲师叶梓-强化学习与深度强化学习提纲(强化学习讲师培训)

    叶梓老师更多教程资料可点击个人主业​​​​​​​查看 第一天 强化学习   第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym ...

  4. 深度强化学习和强化学习_深度强化学习:从哪里开始

    深度强化学习和强化学习 by Jannes Klaas 简尼斯·克拉斯(Jannes Klaas) 深度强化学习:从哪里开始 (Deep reinforcement learning: where t ...

  5. 深度学习stride_深度强化学习成名作——DQN

    前言:其实很早之前就想开始写写深度强化学习(Deep reinforcement learning)了,但是一年前DQN没调出来,没好意思写哈哈,最近呢无意中把打砖块游戏Breakout训练到平均分接 ...

  6. 基于强化学习与深度强化学习的游戏AI训练

    github地址 一.摘要 在本次大作业中由两个项目组成. 第一个小项目即为简单AI走迷宫游戏,通过强化学习的Q-learning算法,对AI进行训练来让其能以大概率找打一条通关路径并基本按照该路径进 ...

  7. 深度强化学习1——强化学习到深度强化学习

    从事深度强化学习有一段时间了,整理了网上的一些资料,写几篇博客作为知识的梳理和总结. 开讲前,先给大家看个深度强化学习的例子,下面是深度学习cnn和强化学习结合玩吃豆人的游戏 看图像我们会发现吃豆人会 ...

  8. 【深度学习】深度强化学习初学者指南

    一.说明 GAN(Generative Adversarial Networks)是一种深度学习模型,它由两个神经网络组成:一个生成网络和一个判别网络.生成网络学习如何生成类似于给定数据集的新数据,而 ...

  9. 《ARPG游戏深度强化学习 》深度强化学习概念:ARPG0.1世界的构造

    深度强化学习概念:ARPG0.1世界的构造 背景:决策.计划及更复杂的任务需要更高水平的智能.更强的人工智能系统还需要具备推理.思考和规划能力. 深度学习=深度神经网络+数据平衡+各类体系化的优化算法 ...

最新文章

  1. 微软职位内部推荐-Software Development Engineer II
  2. 高程数据处理_珠峰长高了吗?新高程怎么算出来的?揭秘
  3. java自定义分页标签_自定义分页标签--仿javaeye分页效果
  4. div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!
  5. 简述 Python 的 Numpy、SciPy、Pandas、Matplotlib 的区别
  6. php 获取硬盘所有分区,硬盘怎么分为整数分区|电脑硬盘分区整数对照表
  7. 4.自定义的Spring Boot Starters
  8. mysql汪晓青课后答案_MySQL数据库基础实例教程
  9. 西南科技大学OJ题 插入排序算法实现1016
  10. 武田收到CHMP同意ALUNBRIG® (brigatinib)用于ALK+非小细胞肺癌一线治疗的肯定意见
  11. mysql commit用法_sql commit用法
  12. 七、VUE基础——悦听音乐播放器案例(vue+axios)
  13. 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
  14. 【IM-03】Web端匿名聊天
  15. Excel如何批量查询手机号码归属地
  16. ECharts地图使用
  17. Android教程 -05 Android6.0权限的管理
  18. vm虚拟机内置终端字体间隔大
  19. centos7.6下载地址
  20. 怎样才能成为一个优秀的产品经理

热门文章

  1. 如何让一个类可以被foreach枚举?
  2. js:进一步关闭(范围:下一个)
  3. debian 7上安装svn
  4. Enabling Redo Log Transport Compression with active dataguard
  5. SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...
  6. Repeater、GridView等 操作XML
  7. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
  8. 如何使用cmd进入打印机选项_cmd调用设备和打印机
  9. 《剑指offer》c++版本 10. 斐波那契数列
  10. android+模拟器皮肤,自定义android模拟器皮肤和键盘映射