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较大时效果好
框架结构图: