—— Human-level control through deep reinforcement learning
文章结合深度神经网络和增强学习,仅仅输入高维度的视觉数据和游戏得分,训练出能玩不同游戏的AI 玩家,并在多个游戏中表现优于人类玩家。主要解决了Q值不稳定的问题,并将神经网络的每个输出对应action的Q值函数。
一.游戏运行
在玩游戏的过程中,引入AI agent与人类玩家pk,根据少量的先验知识,比如输入游戏得分和视频图像,建立可用于多任务的算法(通用人工智能)。并在49个游戏中优于人类玩家的表现。
如果模型已经训练好了,AI agent 玩一次游戏的整个过程如下:
1.输入:将截屏的图像进行预处理和压缩,从一帧RGB图像中取出Y通道,并将 210*160像素的图像转换成84*84,使用最近的4帧作为输入,预处理用函数ϕ表示。
2.输出action:输入的图像,经过过滤器、三个卷积层和两个全连接层,输出action 即|a|。[其中用到的超参,m,k(跳帧),network,在游戏中都是已知的。]
3.在游戏中行动,得到每个Q值Q(s, a)表示对应的状态s。
4.得出奖赏:Agent根据得到的当前状态s的Q值,运用一定的策略εgreedy(s到a的映射),从action set中选择a,采取行动,模拟的环境根据action,反馈新的游戏状态,得出当前的奖赏reward,使用四元组et=(st,at,rt,st+1)表示上述信息,作为训练数据,即replay memory。
[ action set 是游戏中的按键。reward 正反馈:reward为1;负反馈:reward为-1;不变:reward为0。这样能在训练不同游戏时做到统一,但不能区分反馈的分数的多少。]
二.最优化游戏策略
问题的关键在于如何选择最佳策略,也就是累计未来奖励reward,这也是agent的目标。
以前使用非线性逼近器逼近Q值是不稳定的,而其他稳定的方法,在大的网络上比较慢。
并且之前的方法大多将历史信息和动作一起作为神经网络的输入,这种架构的需要一个独立的前向传递去针对每个动作的动作值函数Q进行计算。
这就是这篇paper要解决的问题和创新所在。
不稳定性的原因在于:
1.the correlations present in the sequence of observations.
2.the fact that small updates to Q may significantly change the policy and therefore change the data distribution.
3.the correlations between the action-values(Q) and the target values.
针对不稳定性:
replay memory 经验回放,就是在四元组et=(st,at,rt,st+1)的集合D中随机采样训练CNN,这样提高了数据的使用率,打破连续采样的样本序列的相关性,使训练更有效,避免使用连续序列时,模型重复做出的相同最优决策导致的局部最优和不收敛。
对于第二个问题,使用Q’的迭代方式。针对每一个动作计算一个值函数Q,每个输出对应一个动作。这样神经网络的输入就只有状态的表征(state representation)。这样每个输出就是针对输入状态输出的对应于每个动作的预测的值函数。
训练得到最优reward的过程:
(1).future rewards定义为:
T为终止时间,t为当前时间,future rewards 就是将现在到终止的所有reward相加,并乘以指数衰减的系数。
(2).使用深度神经网络近似最优的动作值函数:
表示当前状态s下,采取行为a之后最大化收益的期望。
(3).为了在大的神经网络上高效运行,用CNN近似 :
(4).表示CNN参数,损失函数为:
表示前面若干次迭代的CNN参数,为了防止过拟合。
接下来就可使用CNN反向求导法则训练得到。
整个算法流程为:
简述为:
初始化replay memory 集合D
随机初始化值函数Q的权重,初始化目标值函数Q’的权重使其等于Q的权重
对每个episode(初始到终止状态的过程)的每个时间阶段t:
初始化状态序列S,和预处理函数。
根据概率ε选择随机的action,
模拟运行a得到reward,下一个状态St
将四元组存到集合D中
从D中选择minibatch,定义y,根据损失函数更新网络参数
每个一段时间重置Q’