分享好友 厨具导购网站首页 频道列表
有这么一种算法,它会骗人、写诗,还会让游戏里的机器人碾压你
2024-06-18 10:10    8514    中华厨具网

有一款非常魔性的小游戏叫《boxcar 2d》,游戏主要内容是用几何图形和圆形的轮子组成小汽车,不断走过一条有上下波动的“路”,看什么形状的小车可以走的更远。但和大部分游戏不一样的是,不用玩家自己手动拼装小车,整个过程完全由算法自动进行,每次随机生成小车,卡到路上了就重新来过。最后小车会越走越远,整个过程中小车的形状会越来越合适,一开始可能只是个“独轮车”,到后期则会很接近我们生活中摩托车的样子。

要问有什么案例能简单明晰地体现出“智能”、“自学习”的概念,这款游戏一定是我的首选。而这款游戏中,应用的就是遗传算法。

什么是遗传算法?

简单来说,遗传算法是一种随机搜索算法,主要目的是用来优化。和自然界的遗传一样,遗传算法秉持的是适者生存、优胜劣汰。通过选择、交叉和变异,不断迭代出更优秀的解法。

通过编码,将解空间变成编码空间,从中选择当前较为优秀的解当做“父母”,下一步则是将多种解的特征进行交叉,诞生下一代,最后再经过变异成为“子嗣”。如果“子嗣”还是不能符合要求,那就再进行一次上述步骤,直到满足要求。

过程中,较差的基因就会一步步被淘汰。最后再进行解码,就能得到我们想要的结果。总之,这是一个枚举的过程。就像长颈鹿的进化一样,树叶长在高处,每一只鹿都去尝试吃树叶,只有符合“标准”的长颈鹿能够吃到食物、生产下来并诞生后代。

但要注意的是,这种算法很多时候不会给出一个“最优解”,而是给出一些较为接近的次优解,从中矮子里面拔将军。

在哪里能看到遗传算法?

遗传算法经常被用来解决一些调度类的问题,比如确定车间工程流程、飞机航线等等。工程、航行中所需要的资源消耗、时间等等权值看做“染色体”,几种染色体排列组合,最终选择其中的较优方案。

此外,机器人中也会用到遗传算法,尤其是快速定位、路径规划等。就像《boxcar 2d》这个游戏一样,机器人在仿真环境中不断尝试接近目标,路线的优越度随着路线的长度减少,结合机器人对自身位置的感知,最后得出较优解。

同时,遗传算法也可以被应用于帮助神经网络调参数,只是这种方式需要的时间太长、运算量太大,属于性价比较低的参数调整方式。

在游戏中,也能见到遗传算法的影子。很多游戏会有在同一场景面对多轮敌人的“生存模式”,在这一模式中,敌人的属性是会不断增强的,有了遗传算法,就可以根据你自身属性的变化不断改变敌人的属性,以增强游戏的难度。你的法术强度高,敌人就会增加法术防御度,你的攻击穿透性高,敌人就会增加血量。这样一来,相比直接的增加属性,可以有更好的游戏体验。

从骗人到写诗,遗传算法有什么好玩的应用?

以上都是一些适用于实际场景的应用,由于遗传算法简单易用,我们可以看到很多娱乐化的、有趣的应用。

比如说,模仿图形。在一款程序中,我们可以看到遗传算法通过几何图形的不断组合,最终慢慢变成接近案例图形的样子。

同时你还可以亲自调整变异的倾向,最终成果虽然和原图相比还有很大差距,但也不乏自己的风格。不过尝试时就可以发现,整个过程时间很长,某种程度上也体现了遗传算法的低效。

基于上述的功能,遗传算法还有一个非常有趣的玩法,那就是“欺骗”深度学习模型。

2014年有一篇论文曾经写过,深度神经网络(dnn)在图片识别上有着很优异的表现。可当用遗传算法模拟图片时,两张图片在人眼看来一模一样,可深度神经网络却完全识别不出来。或者遗传算法可以模拟出一张人眼看起来是“乱码”的图片,却被深度神经网络识别成正常的图片。

这一点让人们注意到了机器视觉和人类视觉的区别,和人类不一样,机器还是会把图像转化为“数字”,再进行比对、识别。这也导致了,有时候深度神经网络会把一张噪声图识别成动物、建筑等等。

除了生成图片,遗传算法还可以生成音乐、宋词等等。将词语和音符输入,让机器随机组合,加入人类评分机制。整个过程几乎和“让猴子在打字前坐几十年可以写出莎翁作品”的假说差不多。基本上只能用于娱乐,不太适合实操。

其实,目前遗传算法已经慢慢淡出了主流舞台。虽然主旨是为了避开局部最优误区,为无限解集问题寻找答案,可在实际应用时相比梯度和蒙特卡罗算法都没有明显的差异和优势,常常被视作“玄学算法”。比如计算结果的稳定性差、求解过程没有可复制性等等都是遗传算法的缺点。很长一段时间里,遗传算法都被看做只能用来凑论文的算法。

不过理论也和技术一样,会随着实践和研究不断发展,曾经的神经网络也曾被打入冷宫。最近deepmind还提出了把神经网络和遗传算法结合,应用到迁移学习中的案例。或许,有朝一日遗传算法还会重新进入我们的视野。

转载:中国机器人网(原始来源:评论:0)

以上是网络信息转载,信息真实性自行斟酌。

版权/免责声明:
一、本文图片及内容来自网络,不代表本站的观点和立场,如涉及各类版权问题请联系及时删除。
二、凡注明稿件来源的内容均为转载稿或由企业用户注册发布,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性。
三、转载本站原创文章请注明来源:中华厨具网

免责声明:

本站所有页面所展现的企业/商品/服务内容、商标、费用、流程、详情等信息内容均由免费注册用户自行发布或由企业经营者自行提供,可能存在所发布的信息并未获得企业所有人授权、或信息不准确、不完整的情况;本网站仅为免费注册用户提供信息发布渠道,虽严格审核把关,但无法完全排除差错或疏漏,因此,本网站不对其发布信息的真实性、准确性和合法性负责。 本网站郑重声明:对网站展现内容(信息的真实性、准确性、合法性)不承担任何法律责任。

温馨提醒:中华厨具网提醒您部分企业可能不开放加盟/投资开店,请您在加盟/投资前直接与该企业核实、确认,并以企业最终确认的为准。对于您从本网站或本网站的任何有关服务所获得的资讯、内容或广告,以及您接受或信赖任何信息所产生之风险,本网站不承担任何责任,您应自行审核风险并谨防受骗。

中华厨具网对任何使用或提供本网站信息的商业活动及其风险不承担任何责任。

中华厨具网存在海量企业及店铺入驻,本网站虽严格审核把关,但无法完全排除差错或疏漏。如您发现页面有任何违法/侵权、错误信息或任何其他问题,请立即向中华厨具网举报并提供有效线索,我们将根据提供举报证据的材料及时处理或移除侵权或违法信息。