1. DQN

阿里云2000元红包!本站用户参与享受九折优惠!

论文原文

Playing Atari with Deep Reinforcement Learning, Mnih et al, 2013. Algorithm: DQN.

Mnih, Volodymyr, et al. “Human-level control through deep reinforcement learning.” Nature 518.7540 (2015): 529. (Nature版本)


Alogrithm:


Deep Q-learning with Experience Replay


论文要点:

1. 第一次用强化学习算法从零开始训练玩Atari游戏,能够达到比肩人类玩游戏水平的程度;甚至直接使用video输入也能够有较好的效果。

2. 

,反复更新参数使得Q值为作用一次Bellman算子之后的值,Q值会收敛到最优,相应的策略为 

这篇论文主要贡献以及一些细节:

memory replay:构造大小为N的一个experience memory,(s,a,r,s‘,a’)。只保留最新的N个。然后训练的时候数据可以多次使用提高使用率。另外,这样随机采样实际上是对过去的experience进行distribution的学习。同时一定程度上减少divergence的可能性。

去除episode中的correlation:如果采取一个完整的episode进行学习(s,a,r,s’,a’),那么学习过程就会有correlation,比如s1执行了a1,得到r1,进入s2,接着再s2执行a2,得到r2。那么训练出来的Q value就会有偏差,会在(s1,a1,r,s‘, a’)会偏向于选择a2。所以选取experience的时候是使用stochastic的方法选取。

网络的迁移能力:在不同的游戏中,使用一样的网络,一样的参数,只需要对reward进行clipping,就可以使用。

网络结构的改变:之前使用neural network进行计算Q value的时候,输入时(s,a),输出一个Q(s,a)。所以N个action要跑N次,现在只需要跑一次,输入的是进行preprocess之后的84x84x1x4的pixel。输出M个action(8~16)的Q(s,a)。

网络结构:两层卷积,两层FC,使用ReLU。没有Pooling,因为打游戏不像分类,对对位置信息很敏感。

使用了RMSProp进行梯度更新,mini-batch size =32。

[公式] -greedy 从1到固定为0.1。

使用了skip frame,就是每k帧运行一次,之间没有运行的保持最近一次运行的action。


直观的代码实现:

“`

import numpy as np

“`

https://www.jianshu.com/p/be40feaaf6f5

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
NumPy
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论