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

程序员游戏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(编译/仲浩 审校/毛梦琪)

IE10里的捕捉模式和响应式设计 在“亚马逊商店”出售自己:产品经理这么找工作 【CTO俱乐部第92期】大规模存储与电商架构演化实战分享 刘黎明:PaaS是非主流业务,要与IaaS融合 个人手机游戏开发者之死 为什么苹果的应用审核是个笑话? 程序员性格怪癖是才华横溢的表现,还是危险分子的征兆? JavaScript Source Map详解 8条学习编程的可靠建议 一周消息树:亲爱的GitHub,我们怎么访问不了你? [回顾] 2012年几大编程语言就业趋势分析 研发周报:微软无视W3C 拒绝遵循WebRTC标准 移动周报:夫妻档闯江湖 事业爱情双丰收 当服务器遇见锤子:第六届AWS全球创业大赛落幕 C# DataTable 和List之间相互转换的方法 iPad如何在三年内改变世界 划时代的成果:新DNA存储技术 轻而易举装下世界 谷歌产品设计:Larry Page的魅力革命 开源移动统计工具Countly更新 支持Unity 3D DailyCost传奇设计师访谈,彰显HTML5移动应用优势 如何成为一名架构师? Apache Hadoop集群的安全性架构 Wood Camera开发者访谈:我们如何冲到榜首的 代码审查:程序员内炼之道 Twitter Q1推广告API 收入剑指10亿 Dell:在OpenStack成熟后才会推出服务 一个开源工作者对开源与赚钱的一些想法 宏碁:Windows8仍不成功 Chrome表现令人意外 雅虎发布Q4财报 净利润同比下滑8% 游戏机禁售令起风波,索尼任天堂股价大涨 国外开发者吐槽Facebook Android设计一例 新作一系统需要用条形码输入,用asp.net作,需要与条形码输入器的硬件进行交流吗?条形码的硬件选用什么比较好?价格是多少? 请问各位大虾,那里有COM以及COLLECTION对象编程的文章和例程? 一个保存文件对话框的问题 一个很菜的问题,实在不会 sql语句怎么写? 关于服务器端和客户端通信的问题,急,请各位大虾帮忙 error LNK2001: unresolved external symbol "public: char __thiscall bcdtoasc::secondchar(char)" (?secondchar@bcdtoasc@@QAEDD@Z) 文本框的问题 关于 ACCESS 添加记录的问题? 为什么我在数据窗口中的sql语句中使用参数有错误?提示invalid和不完整! 在UNIX下如何编译C++程序 请教一个COM对象创建的问题 如何获取DropDownlist的SelectedItem.Text? lirun(笨笨狗)请进来领分 怎么得到数据库中的id值。 有点痛,不知道是什么病,大家帮忙看看 GOOGLE被中国"冷处理" 请介绍一本好一点的Winsock函数编程的书,电子书或者纸书都可以 关于全局CDatabase; mysqldump备份数据库时总是出错? 谁有http://211.100.6.72的源代码最好有附带的数据库连接说明。200 在2000server上安装oracle的问题,求教! 怎样深层理解delphi的类变量 数据库中日期范围怎么比较? 如何将Access的数据导入SQL-server 散分了,高手请进---.net不能够bug ???怎样在Delphi中对导出到Excel文件单元格进行划线???? 在VB中如何进行程序的数据输入有效性验证? 请上次回答我NT问题的同志进来拿分,上次只给了100 如何学winzip那样,在弹出菜单中增加一个新的项目 英国有好点的软件公司吗? 高分求救水晶报表问题? 从数据库中取最新的第10~第20条纪录的sql语句如何写啊?各位大侠帮忙啊 记录集问题 sco unix下可以运行tcpdump吗? 无法启动X,出现cound not init font path element unix:7100,removing from list...could not open default font 'fixed' 请问是否可以在VC++下编写一个声音程序,如何编写?(只要能发出一个或两个音符就可以了) 程序员今年还可以报吗? 在flash里面,用什麼命令,可以把gif變成矢量圖?? 怎么用TC编写一个显示320*240的16色位图的程序? 用什么函数可以得到msflexgrid的行号(row的值)? 请朋友们帮忙推荐几本PB8的关于B/S和三层结构编程的书 网上邻居的问题! 在ASP.NET中,控件好像不能被设置成控件数组,请高手回答 Word文章被锁定了! 非常奇怪的数据连接问题 乐晕了,散分! 数据库问题 韩国公司展示防性侵袭的贞操内裤(图文) asp+oracle中关于字符串相加的问题。 各位大哥,我对sybase很陌生,有几个简单的问题想请教,很急,在线等待!!! 怎么求铁离子,硫酸根离子,硝酸根离子的个数比问题如下;溶液中含有镁离子,铁离子,硫酸根离子,硝酸根离子,其中铁离子,硫酸根离子,硝酸根离子的个数比3;3;1 请问人体血液内二氧化碳分压含量随年龄增长如何变化? 日本地震 是 什么板块 与什么板块 挤压造成的? ZN和硫酸反应生成H2,加入NANO3和NA2SO4为什么速度不会加快,而CUSO4会加快?是因为ZN会和CU2+反应吗?而且CU2+的氧化性比H+强,那样的话H2是不是减少了? 女生长高的年龄段 创新思维要如何培养? 圆形方孔铜钱与五株钱的区别 请问男人和女人,到底到什么年龄才正真停止长高了 地球内核到底是液态还是固态的?3Q如果是固态的,那磁场还能产生吗? 圆形方孔铜钱懂得进一个不认识的铜钱,怎么看怎么不知道是哪个朝代的,大师来看看 为什么有些人到某些年龄段.就会在很短的时间内长高很快. 地球外核液态 内核固态 为什么 圆形方孔铜钱的重大影响快 男生长高的年龄可以到几岁? 平均体重的增加与年龄增长成正比例么 圆形方孔铜钱的影响 3道高一立体几何证明题17.如图所示,四棱锥P-ABCD的底部为一直角梯形,BA⊥AD,CD⊥AD,CD=2AB,PA⊥底面ABCD,E为PC的中点.(1)证明:EB‖平面PAD;(2)若PA=AD,证明:BE⊥平面PDC.18.如图,在直三棱柱ABC-A,B,C 平均体重的增加与年龄增长成正比例吗?试举例说明理由. 戴上电焊镜,当焊接时看不准焊口怎么办 高一立体几何证明题1)设P是三角形ABC所在平面外一点,P和A,B,C,角BAC为直角,求证平面PCB垂直于平面ABC2)正方体ABCD-A1B1C1D1的棱长为1,P,Q分别是线段AD1,BD上的点,且D1P:PA=DQ:QB=5:12.问题(1)求证PQ平 平均体重的增加与年龄增长成正比例吗?试举例说明理由急急急 手工焊接管道,水平对接固定口.315mm直径的管道,打底焊接和盖面.焊接角度摆动方法.和焊接电流 推力怎么�手工焊接管道,水平对接固定口.315mm直径的管道,打底焊接的焊接角度,运条方法和电 怎样做立体几何证明题, 体重会随年龄增长而增加吗 在地球上有哪些不是固态,液态和气态的东西? 输出电阻为0的意义书上有句话:电路输出电阻为0,具有恒压特性,电路带负载后运算关系不变 创新思维的案例题,知道的帮忙做做吧.发现新大陆的哥伦布在一次庆功宴上,面对王公贵族对他的新发现的嘲笑,向嘲笑者提出一个简单的问题.他拿起餐桌上的一个鸡蛋说:“谁能把这个鸡蛋 有什么东西在任何形态下(气态 液态 固态)都不导电 日本地震版块是什么?全部位于该板块的大陆是什么? 创新思维的案例题,知道的帮忙做做吧.一共4题40.1978年7月28日,美国探险家考克斯创造了登山运动的奇迹,成为登上克罗拉州赛柯屋脊的世界第一人.登上赛柯屋脊只有唯一一条路,多年来即使是 厨房里有什么东西是属于气态物质的?液态物质的?固态物质的? 在水中加入等物质的量的银离子,铅离子,钠离子,硫酸根离子,硝酸根离子,氯离子,该溶液放在用惰性材料作电极的电解槽中,通电片刻,则氧化产物与还原产物的质量比为A:35.5:10.8 B:16:207 C:8:1 什么是创新思维? 几种东西分固态、液态和气态空气 冰 水 铁块 干冰 水蒸气 酱油 牛奶 粉笔灰 熟鸡蛋 什么年龄段的女人最想要 一台三相电机功率15千瓦,电压380伏功率因素0.85 .要多大平方线 谁知道人体产生的废物有哪些排出体外的途径?泌尿系统有哪些结构组成?尿是如何形成和排出的? 高一立体几何题已知空间四边形ABCD中,AB=CD=3,EF分别是BCAD上的点,并且BE:EC=AF:FD=1:2,EF=√7,求AB和CD所成角的大小 一台原设计在50HZ电源上供电的三相电机,现改在电压大小相同,频率为60HZ的电网上运行电机的效率和功率因素有什么变化,请说明理由 人体的废物主要以() 的形式通过()排出体外 女人一般什么年龄段最漂亮 简述细胞学说的基本内容 当大气压是101.3kpa,问位于水下面20m深处的绝对压力是多少? 四棱锥P-ABCD,若E为PD上任意一点(与P、D不重合),底面ABCD为任意四边形,则在棱PC上是否同样存在一点F,使BF‖平面AEC?没有图了.. 在实验室里制取氧气二氧化碳时,它们的收集方法相同的是A排水集气法B向下排空气法C排食盐水集气法D向上排空气法 自己的己可以组成什么词 当大气压为101.3kPa,问位于水面下20米深处的绝对压力是多少 女人什么年龄段特别需要性爱?我老婆有点性冷淡,我又很需要,我27岁了.一个月来不到7/8次.很不爽,我应该怎么办? 沽可以组成什么词? 什么是计量仪器检定 如下图.正三棱柱ABC-DEF中,G是AC的中点.求证;AE 平行 平面BGF “己” 可以组成几个词? 随着年龄增长身体发生了什么变化? 哪个年龄段的女人最漂亮啊 2,2,3,3-四甲基戊烷与Cl2发生取代反应,生成的一氯代物有几种是与什么有关的 H原子个数? 随着年龄的增长人身体的力气是否随着变化? 未成年人指什么年龄段的人? H2SO3与,Zn反应,NaNO3固体加入后,生成H2的量是否改变,化学反应速率是否改变,如何改变 阿拉斯加雪橇犬成犬随着年龄的增长身体或毛会发生什么变化? 如何培养创新意识
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘