从Playing Atari with Deep Reinforcement Learning 看神经网络的输入,学习的状态空间

我的未来我决定 提交于 2019-12-26 02:47:04

Introduction:学习直接从高维的感观输入(视觉,语音)去直接控制智能体是强化学习一个长期的挑战。一些成功的RL应用都是依赖于hand-crafted的特征。最近深度学习的进步使提取高水平的特征成为了可能。

参考传送门:https://blog.csdn.net/qq_34718684/article/details/89386302  Playing Atari with Deep Reinforcement Learning 

1、预处理:剪裁、灰度化、下采样 

Atari 游戏之Breakout,原始图像是:每帧128color的210x160pixel图像,为减小状态空间维数和满足gpu的2d卷积神经网络需要方形输入,对原始图像进行与处理。                           

                                      

                                                 预处理前                                                                                 预处理后

                                            

注释1:img函数,剪裁31-195像素,游戏相关图像。

注释2:img_temp.mean(axis=2)函数 原图像的灰度图 

注释3:IM_SIZE 下采样参数,缩放后的图像大小,设置为80

注释3:imresize函数 下采样,等比例压缩图片尺寸

参考传送门:http://c.biancheng.net/view/1976.html   DQN算法原理及应用(实现Atari游戏)

2、定义输入

输入为84*84*4

为什么输入为4帧?只看上图不能确定板子是向左还是向右,要理解游戏当前的状态,需要考虑动作和观测的序列。因此,考虑四个动作和观测序列的输入来确认情况并训练智能体。

3、定义目标网络 target_network

用DQN的副本建立一个目标网络,并不跟DQN 一起更新,为 DQN 网络生成目标价值函数。每一步中正常更新 DQN,同时在规律性的时间间隔之后更新 target_network。

* 由于所有更新都在 TensorFlow 会话中进行,因此需要使用名称作用域来区分 target_network 和 DQN 网络。

4、 导入必要模块,定义训练的超参数、定义DQN类

5、建立会话函数,预测动作函数,执行动作函数,更新策略网络函数。

另:

强化学习资料库:http://www.bubuko.com/infodetail-3171920.html 【干货总结】| Deep Reinforcement Learning 深度强化学习

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!