DRL形成背景
深度强化学习(Deep Reinforcement Learning)顾名思义,是深度学习与强化学习的结合,因此深度强化学习弥补了DL和RL的不足之处。
- 深度学习最近火热,大家也都有所了解,就是通过多层网络和非线性变换,去学习数据的分布式特征表示,因此深度学习侧重于对事物的感知和表达。
- 而强化学习,了解的同学都知道,通过奖惩机制去挖掘最优策略,因此它侧重于学习解决问题的策略。
因此由于深度学习特征感知能力强却缺乏决策能力,引入了深度强化学习这个概念。
强化学习
要了解深度强化学习,首先要了解强化学习这个概念,接下来就简单介绍一下强化学习的基础知识。
强化学习是从环境状态到动作空间的映射的一种学习。它的基础是马尔可夫决策过程(MDP),即:当前状态只与上一个状态有关,不考虑上一个状态之前的累积影响。
通常MDP被定义为一个四元组(S,A,R,P):
- S代表状态空间,St表示agent在t时刻所处的状态。
- A代表动作空间,at表死agent在t时刻所进行的动作。
- R代表奖励/惩罚reward,可以代表一个学习过程的反馈,其中rt+1代表在t时刻St状态下,做出at动作后,转移到达St+1状态所获得的奖励。
- P代表策略空间,代表符号为表示从状态空间S到动作空间A的一个映射。表示为agent在状态st选择at,执行该动作并以一定的概率转移到下一个状态st+1。
除了四元组,强化学习还有两个重要的函数,分别为值函数和Q函数。两个函数均代表求解的一个累积奖励,即agent的目标并非当前的奖励最大,而是平均累积奖励最大。
- 值函数,通常用V(s)表示,代表在状态s下采用策略的长期累积奖励。
- Q函数,考虑了当前状态(值函数)和下一步动作(策略函数)。然后根据状态-动作组合,返回了累积奖励,表示为Q(s,a)
除此之外,我们注意到强化学习是一个动态规划的过程,因此它的学习方式定义为Q-learning。强化学习的任务归结到动态规划寻优问题,即为每一个状态找到最优的动作。Q-learning是一种value-based方法,核心为Bellman最优化等式:
通过Bellman最优化等式求解Q值函数并进行更新,这个过程称为Q-learning。
Q-learning是一种表格方法,根据过去出现的状态统计和迭代Q值,因此适用空间较小,导致其没有预测能力;没出现过的状态Q-learning无法处理,因此导致其没有泛化能力。因此引出了深度强化学习,通过引入深度神经网络端到端地拟合Q值,使其具有预测能力。
深度强化学习
目前来讲,根据一些文献来看,DRL的主要方法分为基于值函数、基于策略梯度和基于多agent。这里我们就介绍基于值函数的深度强化学习方法,引出深度Q网络---DQN。
算法如下:
其中能够使DQN有效的两个重要的trick就是经验回放(Experience Replay)和分离目标网络(Separate Target Network)。
- 经验回放:由于数据都是有相关性的,不满足样本间独立同分布的条件,通过存储下来所有样本,并随机抽取样本除去相关性,为神经网络的权重创造一个均值更新。
- 分离目标网络:原始的Q-learning计算真实值y值使用的是和Q-network相同的网络,这样通常Q大的时候y也会很大,模型的震荡和发散的可能性很大。而构建一个独立于Q-network的target network来计算y,使训练的发散可能性降低更加稳定。