下载此文档

人工智能应用导论实验手册-FlippyBird游戏实验手册.pdf


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
该【人工智能应用导论实验手册-FlippyBird游戏实验手册 】是由【青山代下】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【人工智能应用导论实验手册-FlippyBird游戏实验手册 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..:。通过构建模型训练计算机玩游戏能力,模型训练输入数据包括游戏的每一帧的图像、小鸟的动作列表(跳跃、无操作)、计算机做出动作之后的reward、游戏是否结束的标志。计算机获得的信息其实和人类玩家是一样的,模拟人类行为进行深度学****网络模型训练与应用,让计算机学会自己玩游戏,项目通过分步从flappybird游戏渲染、手动控制、模型构建、模型训练、自动玩游戏过程,使读者能够:(1)体验一个完整的强化学****算法让计算机自己玩游戏。(2)掌握游戏设计与强化学****相结合的基本用法。:运行与体验flappybird游戏flappybird是一款简单又困难的手机游戏。FlappyBird比较流行,游戏需要控制一只不断下降的小鸟来穿越障碍物,点击屏幕则让小鸟上升一段距离,不点击屏幕小鸟继续下降,若小鸟碰到障碍物或地面,则游戏失败。请同学们运行FlapPyBird_game/,这个是flappybird游戏,通过键盘控制看看自己玩游戏分值。步骤二:游戏渲染游戏是通过以帧为单位进行渲染,下面程序将实现一帧的游戏的展示。通过运行代码:,得到初始的游戏界面展示。运行程序结果如图4-49所示:图4-49游戏帧渲染步骤三:游戏动作控制与界面图像输出:..但是在此过程一直没有动作输入,小鸟飞行是不受控制,(a_t)中参数a_t就是传入游戏的中动作。如果a_t[0]=1那么不鸟不进行跳动作,如果a_t[1]=1,小鸟将进行跳动作,因此程序在后续所有帧中一直执行为跳动作。通过运行代码:,得到固定的游戏动作控制,运行程序结果如图4-50所示:图4-50游戏一直执行跳动作步骤四:游戏键盘控制为了实现能够通过键盘来控制小鸟的跳动作,,当输入为向下、空格、向上时,将a_t[1]置为1,执行跳动作,其他输入保持默认不执行跳动作,这样就可以实现键盘控制游戏中的小鸟动作。另外还可以修改game/,具体为:原来代码:BACKGROUND_PATH='assets/sprites/background-'修改后代码:BACKGROUND_PATH='assets/sprites/background-'运行代码:,得到通过键盘控制的游戏,代码中主要添加了如下关键代码:():==QUITor(====K_ESCAPE):()()==KEYDOWNand(====K_UP):a_t[1]=1#flapthebirda_t[0]=0#runtheselectedactionandobservenextstateandreward运行程序结果如图4-51所示::..图4-51键盘控制游戏步骤五:强化学****网络创建FlappyBird游戏需要通过点击或者不点击屏幕来控制一只不断下降的小鸟来穿越障碍物。下面采用强化学****来进行自动化游戏。通过构建卷积神经网络,利用Q-learning的变体进行训练,其输入是原始像素,输出是估计未来奖励的价值函数。由于深度Q网络是在每个时间步从游戏屏幕上观察到的原始像素值进行训练的,测试发现去除原始游戏中出现的背景可以使其收敛更快,因此在模型训练过程将去掉背景图像进行训练,如图4-52所示去掉了背景图进行训练。图4-52去掉背景图像进行训练网络架构如图4-53所示。第一层将输入图像与8x8x4x32像素大小的内核以步长4进行卷积。然后将输出通过2x2最大池化层。第二层以2的步幅与4x4x32x64内核进行卷积。然后再次进行最大化池。第三层以1的步幅与3x3x64x64像大小的内核进行卷积。然后再进行一次最大池化。最后一个隐藏层由256个完全连接的ReLU节点组成。:..图4-53神经网络架构最终输出层的维度与游戏中可以执行的有效动作的数量相同,其中第0个索引值对应于什么都不做,第1个索引值对应执行跳动作。该输出层的值表示给定每个有效动作的输入状态的Q函数。在每个时间步,网络使用贪心策略执行对应于最高Q值的任何动作。代码路径:,在代码创建了神经网络模型。运行程序结果如图4-54所示:图4-54网络结构步骤六:数据预处理与模型训练数据预处理:在将图片输入到神经网络之前,首先需要对图片进行预处理,这里主要通过opencv的COLOR_BGR2GRAY和THRESH_BINARY将图片转成灰度并进行二值化处理,这样有利于提升计算速度。同时,还需要将图片resize成80x80的形式,堆叠最后4帧以生成用于网络需要的80x80x4大小,将其输入到网络中,代码如下:x_t=((x_t,(80,80)),)ret,x_t=(x_t,1,255,)s_t=((x_t,x_t,x_t,x_t),axis=2)模型训练:项目中采用DeepQ-Learning(DQN),通过在探索的过程中训练网络,最后所达到的目标就是将当前状态输入,得到的输出就是对应它的动作值函数,也即f(s)=q(s,a),这个f就是训练的网络。DQN有两个特性,work和ExperienceReplay,主要包括网络。中进行训练,每进行多次训练以后,,网络时,不需要计算Loss和考虑Train过程。在学****的过程中,会设定一个Memory空间,这个空间会记录好每一次的MDP过程,也即<s,a,r,s’>.在一开始时,Memory会先收集记录,当记录达到一定数量时,开始学****每次从memory中随机选择一个适当的大小记忆块,这些记忆块中包含了经验(experience)也即MDP过程,并且是随机选择的,所以解决了记录相关性的问题,将这些经验中的s作为输入,计算出q_evaluation,将s’得到q_next,之:..,赋值完成以后,通过q_next来计算下一步的最大动作值,从而计算Loss,。训练参数:值得注意的是该程序并没有一开始就进行训练,需要经历observe、explore、train三个状态:首先前1000个时间步OBSERVE,处于观测(observe)状态,这个状态不做任何操作。其次需要经过2000000个时间步EXPLORE,处于探索(explore)状态,这个状态随机进行动作选择,目的是给数据库增加数据。(这里我有些怀疑原作者的这个2000000是否过大,因为我尝试运行可两小时才经过50000步,需要很长时间才开始训练)最后进入train状态,开始训练。数据库设置:在DQN理论介绍时提到,DQN的一大特点就是设置了数据库,后续的每次训练从数据库中抽取数据。这样可以破坏样本的连续性,使得训练更加有效。程序中,使用了一个队列deque来当作数据库,数据库大小REPLAY_MEMORY设置为50000,如果数据库容量达到上限,将会把最先进入的数据抛出,即队列的先入先出。首先,,然后将数据库队列为最大500,00次数据(REPLAY_MEMORY=50000#numberofprevioustransitionstoremember)。通过在前10,000个时间帧中随机均匀地选择动作来开始训练,而不更新网络权重。这样在训练开始之前填充数据库队列。epsilon就是用来控制贪婪程度的值,epsilon可以随着探索时间不断提升(越来越贪婪),在接下来的3000,。(FPS=30)选择一个动作,高epsilon会使其抖动比较大,从而使小鸟很容易撞到游戏屏幕的顶部。该条件将使Q函数收敛相对较慢,因为它仅在epsilon较低时才开始寻找其他条件。在训练期间,在每个时间步,网络从重放内存中采样大小为32的小批量进行训练,并使用Adam优化算法对上述损失函数执行梯度步骤,。代码路径:,实现强化学****进行模型训练,准确度会越来越高,执行这个程序,训练次数与效果如表4-4所示:表4-4强化学生训练次数与效果训练次数效果5万次这只笨鸟只会一直往上飞10万次似乎略有进步,不会一直总是往上飞20万次有了大致的方向,尝试越过第一个柱子30万次基本可以正确地找到第一个柱子间隙的方位并尝试越过40万次已经有很高的几率过第一个柱子,并且有一定几率过第二个柱子50万次过多个柱子的几率更高了100万次已经达到了普通玩家的正常水平,能顺利通过5~8个柱子200万次几乎无敌了,失败是极低概率才会发生:..万次观察了十几分钟都没有失败,应该已经无敌了要训练比较好的效果需要30个小时左右,训练出来的模型玩游戏的分数要远远超过人工玩家,效果如图4-55所示:图4-55强化学****训练好的效果步骤七:模型保存为了能够持续训练以及能够保存好训练的结果,将训练模型与结果进行保存,模型保存works中。代码路径:#workssaver=()(())checkpoint=():(sess,)print(,)else:print()本项目应用Haar算法实现人脸检测采集,应用Keras构建神经网络,实现人脸动态识别。完成了食堂刷脸结算的中最核心的动态人脸识别功能。通过该项目实践体验,读者可以了解计算机视觉应用开发的一般流程,掌握人脸检测、人脸识别的基础原理与基本技能。读者完成项目实训后,可以进一步对代码进行模块化整理,尝试将比较独立的功能封装为函数或类的形式。任务总结:本项目完成了使用强化学****方法实现让计算机自己玩游戏,本项目通过对强化学****让计算机自己玩游戏。通过构建模型训练计算机玩游戏能力,模型训练输入数据,并对模型进行训练,观察到自动玩游戏过程越来越准确。通过本实验可以完整的体验利用强化学****算法实:..FlippyBird自动玩游戏的整个应用训练过程。读者使用同样的算法来解决现实生活中类似问题,提高通过强化学****方法解决实际问题的能力。:..项目名称姓名学号小组名称(适合小组项目)实施过程记录测试结果总结后期改进思考成员分工(适合小组项目)姓名职责完成情况组长评分考核评价评价标准::按时完成项目任务。:知识技能的掌握情况。:实施报告详实、条理清晰。:在完成基本任务之外,有创新、有突破者加分。:团队分工合理、协作良好,组员得分在项目组得分基础上根据组长评价上下浮动。

人工智能应用导论实验手册-FlippyBird游戏实验手册 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小932 KB
  • 时间2024-04-18