gmachine1729

我终于用了 tensorflow 了,做了点深度强化学习(Deep Reinforcement Learning)

两年前看到了一位叫做 Yilun Du 的麻省理工计算机博士生,两次国际生物奥赛金牌得主(美国队)的文章,链接为 https://yilundu.github.io/2016/12/24/Deep-Q-Learning-on-Space-Invaders.html 。他写了一个简单但好用的用于深度强化训练 Atari 游戏 Space Invaders 的小框架,用了 openai 的 gym。gym 简而言之是个游戏模拟器,游戏中对应于不同态 (state) 的奖励 (reward) 参数都包含在里面了。

他的那篇博文也相对通俗易懂,把里面用的深度强化学习策略的讲的很清楚。之前,我大概知道 AlphaGo 用的深度强化学习是怎么回事儿的,但理解很肤浅,也没有任何“动手”的经验(不过,深度学习我倒是玩儿过,用了 Scala 和 deeplearning4j)。我还是强调深度学习是个非常工程性的东西,它的数学不难,其数学理论就是个多元链式法则及随机梯度下降法。这些推导出来不难,一个不错的理论物理学家只要有一定的动力推导出来这个模型是基本保证的,只不过它很耗资源,所以深度学习只有在 2010 左右才真正兴起。

我没做多少,就把 Yilun Du 的代码移植到了 Windows 和 Keras 2+, Tensorflow 2+,看似现在 Tensorflow 1 基本不支持了,注意到 Yilun Du 这个是在 2016 年 12 月做的,两年半前。我的大部分时间或许都花在了安装和诊断,剩下的大多在把卷积神经网络的构建的实现改成了符合 Keras 2+ 函数定义,与 Keras 1 相比还是有了不少变化。

训练仅仅用了 CPU,我的 Windows 7 的 GPU 是因特尔而非英伟达的,所以还没有安装 CUDA 及 tensorflow-gpu,不过假设读者有符合要求的计算机设备,欢迎试一试。

以下是我的 fork 了 Yilun Du 的代码仓,Windows 的安装步骤都记载在里面了,安装花俩小时应该就可以跑起来了。当然,国内的人如果无法翻墙下载可能会比较慢,至少可能得花点时间找找国内的镜像。


Error

Anonymous comments are disabled in this journal

default userpic

Your reply will be screened