[边啃辣条边码字] 多年前记得在一个游戏网站上偶然邂逅BOXCAR2D,这款把“进化”带入到游戏里的FLASH小游戏就让老九惊艳万分,这种感觉无异于第一次了解到什么叫“元胞自动机”和生命游戏。甚至在办公室都忍不住挂在一旁时刻关注“进化”的历程,当年顶头上司还以为我在捣鼓什么黑科技。
那个年代机器学习对我来说还是一个遥不可及的概念,而游戏蕴含的基因算法和我早期的一些思维实验不谋而合。虽然后来种种原因和这条路几乎走上分岔口。
游戏地址:http://www.boxcar2d.com
有意愿的朋友可以把flash下载下来以供收藏。
Boxcar2D算法简介
Boxcar2D将小车的构造规则融合在一串看上去的“乱码”(实际上这就是小车的基因)中。它将形体翻译为随机生成的“矢量”坐标,将车轮抽象为顶点、轴角、半径三个数值,最终形成一条命名为“染色体”的数据串。
在后续进化的过程中,作者实现了轮盘赌选择策略和锦标赛选择策略,通过多辆小车产生的种群,在2D模拟的物理环境下的实际跑分来决定“繁殖”权,最终实现遗传中的染色体交换。
仅此还不能产生良好的进化效果,作者另外又增加了突变的设定:
突变:除了交叉之外,每一代染色体都会经历突变。这意味着小车的每个方面(或染色体中的变量)将会改变的概率,这由用户设置的突变率滑动条确定。当突变几率触发时,会在所需范围内随机选择一个新值。
实际感受这种算法和“进化”的魅力,还是请看官去游戏中亲自体验再说吧。
理性分析BOXCAR2D的“表现”
与其说这是一个“机器学习”的尝试,倒不如说是一款基于“基因进化”的模拟实验。它并不基于任何现实大数据,而是根据其本身的跑分和设定自然演化,相比于现实意义,技术和哲学的意义更大。作为一款可能有十年历史的小游戏,与时下的“人工智能”对照,还没有应用到实质性的统计学以及逻辑模型中的多层网络,但是已经让人足够畅想,未来的虚拟世界会是什么样的。
虽然后来机器学习进入了一个瓶颈期,但是这并不影响人类对“进化”的本质无限的好奇心和求知欲。直到2016年Demis Hassabis主创的Alphago横空出世,神经网络、深度学习、蒙特卡洛算法走上舞台,机器学习再一次进入了实质性的飞跃期。
“期待して、未来の世界”