说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

程序员游戏Style:亚特兰大极客使用机器学习玩转Flappy Bird

HTML文档下载 WORD文档下载 PDF文档下载
无限的重开始和撞柱子,这绝对不是程序员玩Flappy Bird该有的节奏。对于极客光环笼罩的人类,节奏绝对该是这样的:XX小时的重开始后,笨鸟完全停不下来了!

【编者按】Flappy Bird虽然下架了,但是相信仍有一大部分人还挣扎在它的阴影之下——游戏看似简单,但得分只在小两位数上徘徊,有时甚至是可怜的一位数。搜狗产品经理@光芊源更简单的分析了这个游戏会火的原因:用户往往抱着“可以拿高分”的心态,却总是因为“没注意”而失败。在回答中,网友@任杰还进行了适当的补充:1,Restart成本很低,秒秒钟的事情;2,平滑的难度曲线,再开始不会感到突兀。不管出于什么原因,Flappy Bird确实火了一把——不仅稳坐App Store和Google Play免费应用排行榜将近一个月,下载量高达5000万次,好评59万条,应用内平均每天广告收入更达5万美元。然而,这个火爆绝对是建立在无数玩家的“痛苦”之上,于是在几番高分无果的情况下,来自CAMPUS BUZZ的小伙SarvagyaVaish决定从自己的专业入手,使用机器学习玩转这头笨拙的小鸟。

以下为译文:

观看视频请访问原文

这是流行游戏Flappy Bird上的一次极客运动,尽管这个游戏已经在App Store和Google Play下架,但是网络上还流行着许多山寨应用,比如Flappy Bird Typing Tutor和Flappy Math Saga。在玩了几分钟这个游戏后,我看到了一个检验自己机器学习技巧的实践机会——让小鸟学会如何自己来玩游戏,而上面这个视频也证明了经过良好训练的Flappy Bird基本上已经可以完全躲避障碍。

机器学习过程

开始时我的选择是Android应用,计划使用Monekyrunner来获取画面和点击命令,然而Monekyrunner 1到2秒的画面捕捉时间完全满足不了我的最低需求。随后,我发现了@mrspeaker的游戏引擎、Omega500以及用于typing的Flappy Bird版本,这些都非常适合我们的用例,于是我就果断拆掉了它的typing组件并添加了一些Q Learning代码。

强化学习

这里有一些基本规则:智能体,也就是这里的Flappy Bird,在某个状态下总会执行一个特定的动作,而在状态发生改变后会得到相应的奖励。基于情况的不同,有许多不同的变体会被使用,比如:Policy Iteration、Value Iteration、Q Learning。

关于Q Learning的详细介绍可以点击这里,下面则是算法:


状态矢量空间

在这里一共设计了3个参数:1,小鸟与低管道的垂直距离;2,小鸟与下一个管道出口的水平距离;3,小鸟是否死亡。


行为

对每个状态,我设计了两个可能存在的行为:点击或者是什么都不做。

奖励

奖励完全依赖于“Life”参数,仍然存活则+1,失败则-1000。

学习循环

数组Q初始化为0,同时也总采取最佳操作,这些操作将最大化我的预期奖励。

第一步,观察Flappy Bird所处的状态,并执行可以最大化预期奖励的操作。让游戏引擎执行“tick”操作,随之Flappy Bird进入下一个状态s’。

第二步,观察s’及状态下的奖励,+1则表示小鸟还活着。

第三步,通过Q Learning规则来修改Q数组。Alpha的值被设置成0.7,因为我们需要一个确定的状态,也让学习的可能最大化;同时,Y和lambda都被设置成了1。

第四步,将当前状态设置为s’并重新开始。

结语

完整视频请访问原文

初步训练成功大约花了6-7个小时(得分150+),学习速度通过使用更多的例子来提升,最后将它们的经验贡献给同一个数组。另一个提升学习途径的方式是输入更好的学习数据。更多代码详情可见FlappyBirdRL GitHub页面。

原文链接: Flappy Bird hack using Reinforcement Learning(编译/仲浩 审校/毛梦琪)

推荐5款超实用的.NET性能分析工具 OpenStack基金会主席Alan Clark访华 欢迎提问 程序员的十大烦恼 兼顾性能和兼容体验:HTML5时代的浏览器全面测试 Lisp的本质 Amazon工作环境恶劣员工高流失率 为何却依然能持续成功和创新? 对几个软件开发传统观点的质疑和反驳 [实战分析] 编写高效的JavaScript程序 Twitter的系统编程 百度高通达成合作 为Android终端提供云服务 EasyHadoop技术沙龙在北京、广州两地齐发 CloudStack技术沙龙:committer李学辉及中航信分享 思科为什么愿意花12亿美元收购云计算网络初创公司Meraki? 谷歌有麻烦了!联邦贸易委员会正调查其搜索业务 当数据中心遭遇污水 微软新能源数据中心的诞生 2012vForum:更加注重开发者 腾讯赵伟:Hive在腾讯分布式数据仓库的实践 Apple将在2013年启动香港数据中心的建设 顶级域名扩张受阻:ICANN透露部分域名存争议 硅谷创业教父Paul Graham:如何获得创业好点子? GDC2012特别报道:中西方游戏开发思想在这里融合 应用示例和对象是编程的未来吗? 为什么2012年HTML5发展远未达预期 当程序不再工作时,程序员说 独立游戏开发者易犯的9大致命错误 “Do Not Track”的前世今生 《Warcraft是怎样炼成的(三)》:从Demo到游戏 无限强大的超级马里奥AI 以Google第二代数据库产品MegaStore为理论模式 探索HBase系统 传Google明年推Chrome OS触摸屏上网本 下载自己过去的Tweets?用户准备好了吗? 一个关于打印的简单问题?在线等,急? 有对KYLIX熟悉的吗,请发表一些东东撒:) 如何在程序内屏蔽掉Alt+Tab这组系统功能键? 各位节日快乐!!! 请各位搞VxWorks 的高手指导一下菜鸟!一定进来看看!谢谢! C/s结构,从一个c端发一些数据(如报表等)到另一个c端,接收到后最好能返回一个成功消息,有什么好的方案么 我受不了,救命啊 如何使得树形控件中的一个没有子项目的目录前面显示为减号或不显示'+'和'-'? 如何实现将页面的内容导入到word中?在线等,急! 怎么回事?主机名可以CONNECT到SQL服务器,用IP地址不行了 打印的问题!!!! pb8与win2000server 小小问题?如何得到窗体右上角关闭,最大化,最小化的句柄??? 多少分才能有两绿三角?多少分才能有一个红星? 哪位同志知道网站的风格像 win xp? 请问哪里可以下载xml spy的中文帮助文件? 请教如何将.cab包解开 50分﹕HELP!!!為什么我的report分發后﹐項目全錯位了﹐應如何解決﹖ 各位,在工程中怎样用资源文件(*.res) !!请问如何利用ADO做三层设计? 哪位大哥有vfw.pas的啊?60分相赠 ATL在中国的现状怎样,大家进来说说!!! 如何黑一个网吧~~~ 急:问个初级问题,希望能得到解决 这个论坛不错! 能不能让C盘只读不写啊? 为什么CopyMemory在NT下的效率与在98下的效率不同! cmos密码如何破解 database控件的问题????? 关于if 语句! 急急急...所以的程序一运行报错:This Example Program Can Only Be Run From With The IDE? 我的机器一运行该页面就慢 怎样设置FileListBox1的路径 free,delete ,Free()的区别? 初学网络,从何学起?如何过渡 请问生成EXE文件以后,要把PB下的哪些dll文件拷贝过去,全部都要吗??还是只要拷贝几个就可以,请问是哪几个? 如何实现自动编号(在线等待) 请问如何在使用insert into时同时使用select和values语句?(十万火急) 怎样改变ListView1在详细显示模式下表头的高度(调用小5号字体)? 我用的是TomCat,请大侠们帮我看看这段调用access数据库的jsp程序那里错了!每次都提示“From字句语法错误”! 如何对数据窗口中的内容进行批量修改?急!!!!! 全上海暂无业者,联合起来!!! 请问如何在使用insert into时同时使用select和values语句?(十万火急) 高分解答!!!谢谢!!!! 字符'\'在c++中当什么看 初学者的problem,讲一讲 一个菜问题 我的爱机是不是感冒了? 关于.NET的资源占用问题? 大侠们好!!!为什么我用DBEdit输入中文可是在DBGrid中显示的是“#”?? 请教Sybase高手3个问题 电镀桌脚开始生锈了,有什么办法可以去锈? 高压电容柜与电容器并联的电压互感器做什么用,说是放电线圈,具体是什么原理? 形容拘谨 谨慎的词语我只等30分钟 求 怎么去除电镀板锈渍 变电站并联电容器组的作用是什么? 3P空气开关是否能改成1P一个和2P开关一个? 电能表上的空气开关按上后,屋内总空气开关跳闸;屋内总线上的空气开关按上后,电能表上的空气开关跳闸. 变电站电容器电容器的单位是什么? 拘谨拘束,写出相应的词语 电容降压电路的功耗到底为多少?相比提供相同的功率的开关电源,功耗是大还是小?请专家指教.我采用1UF的电容降压组成一个12V的稳压电源,输出最大电流为60MA左右,按理论上讲电容不消耗功, 地球上什么地方温度最高? 形容拘谨,不自然,不安定的样子.(什么词?) 11600吨水的等价值与当量值是多少? 地球哪个地方温度最高? 什么样的玉米秸秆打捆机可以捆出300~400公斤的方捆 已知水的密度是1.0*10^3kg/m^3标准煤的热值是3.4*10^7j/kg求5t水的体积? 空气开关1P﹢N和2P各指什么意思?有什么区别?家用空气开关总开关,不用带漏电的会不会好点,因为怕家中一处漏电导致全部停电… 诗人思念家乡的诗句和 诗人一腔爱运用国热情的诗句 数学画圈圈的题, 地球上什么地方的温度最高? 请告诉我爱国主义题材的古诗和思念家乡亲人的古诗各一首!要题目、诗人、诗人的朝代 画圈圈的2.3题帮忙解答下谢谢了过程和结果 “形容死得毫无价值”这个意思的词语是什么? 变电站一次二次部分都包括什么 直流屏的作用是什么 形容死的词 8086/8088系统中有20根地址线,它的存储空间最大是多少?将该内存空间顺序分为16段,每段64K,试写出第二段和最末段的地址范围. 消费量与需求量的区别?我想请问一下,消费量与需求量具体概念及区别是什么?从实际生活经验上来分析,请解释消费量等同于需求量吗? 死的有意义有价值的相关诗句 8086存储器系统的1MB空间为什么要分为奇偶两个部分,字访问时应注意什么 什么是石油表观消费量 太阳温度很高是因为它在发生着核聚变,地球中心有五千度的温度是因为什么?有的说是公转造成的,可是地...太阳温度很高是因为它在发生着核聚变,地球中心有五千度的温度是因为什么?有的 埃菲尔铁塔是什么时间建造的 找出自己感受最深的句子画出来,并说说自己的解释《美好的发现者》 什么是温度在运动中核聚变 法国的埃菲尔铁塔是什么时候建成的? 只需要画圈圈的题 18 1 表皮中有神经末梢吗 埃菲尔铁塔是什么时候建立的? 青岛海湾大桥全长是多少 埃菲尔铁塔为什么这样建? 1.十指连心是不是因为表皮内分布有感觉神经末梢?2.当一只苍蝇飞到你面前是你的眼睛会闭上是因为?2.A.感觉 B.刺激 C.反射 青岛海湾大桥(胶州湾跨海大桥)的建筑特点和意义 什么是数字化变电站 地球上什么地方温度最高? 三台各1P的冷暖空调,应安装多大的空气开关?我计划给三个房间同时安装均为1P的冷暖空调(1P×3台),以备夏季降温,初春和深秋季节取暖之用.请这三台冷暖空调共用一个空气开关.为了安全,请 国内数字化变电站有哪些 比喻非常有滋味 是什么词语的意思? 1p空调配多大的空气开关 碘当量是怎么算的 核聚变产生的几亿的温度是怎么测的?用什么仪器测啊,好像没有东西能承受几亿度的高温啊 房间里同时开启一台电脑一个热水壶1P的空调一台电视需要装多大的空气开关 读了文中画横线的句子,你有什么感受? 地球为什么有天气 胶州湾跨海大桥在现在胶州湾隧道的地方建跨海大桥就好了啊,为什么偏偏选胶州湾最宽处建跨海大桥? 谁能讲解一下电容器放电线圈的工作原理?如题,我现在在站里看放电线圈的原理图,但是还是不知道它是怎么放电的,电容器正常工作的时候是怎么不放电的!特别是它工作的时候是否也在放电? 现在的地球温度是多少` 胶州湾跨海大桥长多少米 户外的电容器组怎样经放电线圈放电那需要人手工放电吗 拘谨 ,拘束的相应词语
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘