logo资料库

Human-level control through deep reinforcement learning 理解.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
通过增强学习达到人类控制的水平
本文的目标
遇到的困难
解决办法
2.我们使用一个迭代更新算法调整Q函数向目标值的方向,而且是周期性的更新,从而可以降低和目标之间的相
DQN的突出表现
算法基本流程
总结
通过增强学习达到人类控制的水平 本文实验成果 将算法应用到 Atari 2600 游戏中,使用像素点和游戏分数作为输入,我们的 DQN 机器人展示了一个可以和专业玩家相比较的水准,在 49 个游戏中在超过半数的 游戏中可以达到人类的分数的 75%。 实现该成果的策略 创建一个全新的 Agent,基于 Deep Q-network,能够直接从高维的原始输入数据 中通过 End-to-End 的增强学习训练来学习策略.代理通过一些列的观察、动作和 回馈来进行交互。我们代理的目标是选择一个能够使未来的积分最高的的动作. 本文的目标 单一的算法解决某个领域的多类有挑战性的工作,也就是通用的人工智能。Deep Q-network(DQN)是本文提出的核心算法。 实现方法 结合深度卷积神经网络(DNN)和增强学习(Q-learning) 遇到的困难 增强学习的困难在其很容易不稳定甚至发散。不稳定的原因,主要是数据的相关 性太强导致小的权值更新会导致策略大的变化。 解决办法 1.我们使用生物学启发而来的一种机制叫做经验延迟,它会把数据随机化,因此 这样会删除观测数据之间的相关性并且平滑数据数据分布 2.我们使用一个迭代更新算法调整 Q 函数向目标值的方向,而且是周期性的更 新,从而可以降低和目标之间的相关性。 3.虽然也存在其他算法,但不如我们的算法,原因是他们对于非常大的神经网络
会非常低效. DQN 的突出表现 使用 t-SNE 算法来可视化高维数据,相似的 state 会放在接近的位置。有时候可 能 state 不相似,但期望的 reward 相近。结论是 这个网络能够从高维的原始输入中学习支持可适应规则的表征。 能够发现相对长的策略,虽然依然无法应对很长策略的游戏 预处理: 由于该算法是直接处理 Atari 游戏的裸数据,一帧是 210×160 个像素点,128 色,数据量非常大,对计算能力和记忆存储量提出了很高的要求。我们提前进行 预处理是为了减低输入量的维度和对 Atari 仿真器进行一些处理。首先,对单帧 进行编码,对每个像素的颜色值取最大值(在已编码的帧和之前的帧中,比如 m 帧,m=4,m 也可以设为 3 或 5),这样可以消除由于闪烁造成的部分图像的缺失。 第二部,我们从 RGB 帧中提取 Y 通道的数据(即亮度数据)并重新调整为 84×84 的数据。 模型架构(结合图): 我们使用的结构是,输入状态,输出该状态下每个动作的 Q 值。 结构图如图 1 所示。其中神经网络的输入是由预处理之后的结果—84×84×4 的 图像;第一层隐含层包括 32 个 8×8 的滤波器,步幅是 4,后面跟一个非线性整 流器(a rectifier nonlinearity);第二层隐含层包括 64 个 4×4 的滤波器, 步幅是 2,后面加一个非线性整流器;第三层隐含层包括 64 个 3×3 的滤波器, 步幅是 1,后面跟一个整流器;最后一个隐含层是全连接,包含 512 个整流单元; 输出层是线性全连接层,输出的个数是 action 的个数。 训练细节: 在 Atari 游戏中检验 DQN 算法时,网络结构、学习算法和超参数的设定都没有变, 唯一变得是 reward,并且将 reward 值修剪在-1~1 之间。 在这个实验中,我们使用了 RMSProp 算法,最小的学习步数是 32,策略是ε
-greedy 算法,在前一百万帧数据中,ε从 1 线性下降到 0.1,之后保持固定不 变。我们一共训练了大约 5 千万帧数据,记忆库的容量是一百万帧。 本实验借用了之前训练 Atari 算法时的技巧,使用了跳帧技巧,即不是每一帧都 看、选择动作、学习,而是跳过几帧,在这跳过的几帧中选取的动作跟这几帧之 前的动作相同。 DQN 算法中所采用的超参数的数值见 extended data table1。 最终评价方式: 策略为ε-greedy,其中ε=0.05,用训练好的 DQN 参数来进行测试,玩每个游戏 30 遍,每遍最长 5 分钟,每次的初始状态都是随机取。评价的目的是为了减少 过拟合的程度。 算法基本流程 1)初始化 replay memory D,容量是 N 用于存储 训练的样本 2)初始化 action-value function 的 Q 卷积神经网络 ,初始的参数θ随机 3)初始化 target action-value function 的卷积神经网络,结构和 Q 的一样, 参数θ∗ −初始等于 Q 的参数 For episode = 1,M do 初始化状态系列 s1,并对其进行预处理得到 4 * 84 * 84 的视频帧 for t=1,T do // 每个 episode 篇章训练一定的时间 根据概率 e(很小)选择一个随机的动作 或者根据当前的状态输入到当前的网络中 (用了一次 CNN)计算出每个动作的 Q 值,选择 Q 值最大的一个动作(最优动作) 执行上面的动作 a 就可以得到 reward(得分)以及下一个图像 那么下一个状态就往前移动一帧,依然是 4 帧的图像,再次处理得到新的网络输 入 存储(上一个状态,使用的动作,得到 reward,下一个状态)数据 到 replay memory 来做训练 接下来从 D 中随机选取一个存储的数据来训练网络 计算当前状态的目标 action-value,根据 bellman 公式得到: 如果 episode 结束,那么就是得到的 reward,如果没有结束,那么就将下一个
处理好的状态输入到网络,使用 target 网络 参数(上面的 3)),得到最大的 Q 值,然后按下面公式计算: (用第二次 CNN) 接下来就是计算当前状态和动作下的 Q 值,将当前处理好的状态输入到网络,选 择对应的动作的 Q 值。(用第三次 CNN) 根据 loss function 通过 SGD 来更新参数 每 C 次迭代后更新 target action-value 网络的参数为当前的参数 end end 总结 我们致力于利用单一的算法解决某个领域的多类有挑战性的工作,也就是通用的 人工智能.创建一个全新的 Agent,基于 Deep Q-network,能够直接从高维的原始 输入数据中通过 End-to-End 的增强学习训练来学习策略.这个工作在高维数据 输入和动作输出之间建立了桥梁,使得人工智能代理可以有擅长一些列的挑战性 的工作。
分享到:
收藏