博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DQN算法分析
阅读量:2352 次
发布时间:2019-05-10

本文共 1455 字,大约阅读时间需要 4 分钟。

转载自:    

Deep Q learning算法分析

Step 1: 用一个深度神经网络来作为Q值的网络,参数为ω 

Q(s,a,ω)Qπ(s,a)

Step 2: 在Q值中使用均方差mean-square error 来定义目标函数objective function也就是loss function 

上面公式是s,a,即下一个状态和动作,这里用了David Silver的表示方式,看起来比较清晰。可以看到,这里就是使用了Q-Learning要更新的Q值作为目标值。有了目标值,又有当前值,那么偏差就能通过均方差来进行计算。

Step 3:计算参数ω关于loss function的梯度 

Step 4: 使用SGD实现End-to-end的优化目标 

有了上面的梯度,而可以从深度神经网络中进行计算,因此,就可以使用SGD 随机梯度下降来更新参数,从而得到最优的Q值。

DQN训练

  • 我们这里分析第一个版本的DQN,也就是NIPS 2013提出的DQN。 
    这里写图片描述 
    图1:DQN网络结构图

这个网络的输入是 4 个 84×84 的灰度游戏屏幕。这个网络的输出是是每一个可能动作的 Q 值(Atari 中有 18 个动作)。 

这里写图片描述
图2:NIPS 2013 DQN算法

1、初始化replay memory D 容量为N

2、用一个深度神经网络作为Q值网络,初始化权重参数

3、设定游戏片段总数M

4、初始化网络输入,大小为84*84*4,并且计算网络输出

5、以概率ϵ随机选择动作at或者通过网络输出的Q(max)值选择动作at

6、得到执行at后的奖励rt和下一个网络的输入

7、根据当前的值计算下一时刻网络的输出

8、将四个参数作为此刻的状态一起存入到D中(D中存放着N个时刻的状态)

9、随机从D中取出minibatch个状态

10、计算每一个状态的目标值(通过执行at后的reward来更新Q值作为目标值)

11、通过SGD更新weight

  • 我们这里分析第二个版本的DQN,也就是NIPS 2015提出的DQN。 

    这里写图片描述
    图2:NIPS 2015 DQN算法

    1、初始化replay memory D,容量是N 用于存储训练的样本

2、初始化action-value function的Q卷积神经网络 ,随机初始化权重参数θ

3、初始化 target action-value function的Q^卷积神经网络,结构以及初始化权重θ和Q相同

4、设定游戏片段总数M

5、初始化网络输入,大小为84*84*4,并且计算网络输出

6、根据概率ϵ(很小)选择一个随机的动作或者根据当前的状态输入到当前的网络中 (用了一次CNN)计算出每个动作的Q值,选择Q值最大的一个动作(最优动作)

7、得到执行at后的奖励rt和下一个网络的输入

8、将四个参数作为此刻的状态一起存入到D中(D中存放着N个时刻的状态)

9、随机从D中取出minibatch个状态

10、计算每一个状态的目标值(通过执行at后的reward来更新Q值作为目标值)

11、通过SGD更新weight

12、每C次迭代后更新target action-value function网络的参数为当前action-value function的参数

参考文献:

  1. 以及
  2. Playing Atari with Deep Reinforcement Learning 
  3. Human-level control through deep reinforcement learning 
你可能感兴趣的文章
杭州兆合陈洋:微气象大民生,气象微信平台研发探索
查看>>
百姓网前端工程师@CSS魔法:重拾 CSS 的乐趣
查看>>
探索React:组件间通信过程解析
查看>>
微信从业人员推荐阅读的100本经典图书
查看>>
反馈知识库Bug,赢取CSDN定制保温杯
查看>>
基于Spark的异构分布式深度学习平台
查看>>
如何在Angular中使用动画
查看>>
AngularJS开发指南——Animations
查看>>
美团酒店Node全栈开发实践
查看>>
大生态里的小生态:IBOS开源OA借道云市场构建高价值协同云
查看>>
产品经理必须了解的运营之道:通过数据看本质
查看>>
CSDN已推出30多个知识库 你所关注的技术领域在其中吗?
查看>>
React知识库内容精选:10篇文章让你迅速了解该框架
查看>>
C++知识库内容精选 尽览所有核心技术点
查看>>
红帽发布混合云应用新品JBoss EAP 7
查看>>
2016红帽年度创新大奖榜单揭晓
查看>>
2016年,我们为什么要学习C++?
查看>>
Qt专家、订阅号“程序视界”创建者安晓辉:引导你逐步深入学习C++
查看>>
Java程序员修炼之路
查看>>
CSDN邀您一起构建Ruby知识库,率先掌握第一手学习资源
查看>>