开发 | 如何从零训练神经网络玩游戏?这里有一段详细的解读视频

AI科技评论消息,最近,Youtube 上的知名游戏博主 SethBling 训练了一个叫 MariFlow 的神经网络来玩 Mario Kart 游戏。在进行15个小时的游戏训练并做了一些针对性的改进后,这个神经网络在 50cc Mushroom Cup 中获得了金牌。

这并不是 SethBling 第一次在游戏中应用神经网络“通关”。此前 SethBling 曾经创建了另一个神经网络MarI/O,通过训练,这个神经网络自己演变成玩“超级马里奥世界”(Super Mario World)的高手。SethBling还拍摄了一个六分钟的视频来解释通过神经网络来进行游戏的原理。他设计了一个四层的神经网络,通过计算,程序会给出它认为在某个点上应该按下什么键的预测。通过这个视频,或许你也可以举一反三,做出更好的应用例子(例如赛车游戏)。

和AI科技评论来看一下构建这个神经网络中 SethBling 的思路吧:

游戏当中,我们可以看到Mario在一直全速奔跑,全程没有任何停顿,并能快速躲开类似上图这样高难度的子弹袭击,最终到达终点的时候剩余时间为354秒。

让我们重头开始看看神经网络是如何进行决策的:如上图所示,这是一个只有4层的神经网络模型,通过对最左侧的输入图像的计算(红色的短线代表Mario、白色方块代表不会移动的物体如地面,黑色方块代表会移动的物体如敌人,等等),最终得出最右侧的8个按键的输出状态(SethBling解释说,神经网络中的神经元和神经树突并不总是被亮起的,这也是我们所说的只使用到了我们一小部分的大脑)。

而在一开始的时候,机器的表现非常笨拙,甚至不会按任何键。在这样的过程中,系统会尝试切换不同的模拟状态,通过尝试了很久后才学会了向右移动;

在遇到子弹的时候也不会跳跃躲避;

那么神经网络是如何学习的呢?还是从最初的简单状况开始,绿色线代表正激励连接,而红色表示负激励连接。自要从目前的状态所激活的是绿色的正激励连接,那么Mario就只管一直按右键狂奔;

当红色的负激励连接被激活时,则切换到相应的状态,如上图中按下A键做一个跳跃动作;

如果没有任何链接被激活,那么Mario就站在那里。这只是一个简单的示意:如果神经网络中的节点和连接越复杂,系统能做出的选择也更多,最终做出最合适的选择;

那么神经网络是如何从简单进化到复杂的呢?我们设定一个函数Fitness,这个函数值取决于Mario奔跑的距离以及所用的时间,奔跑距离越大、所用时间越短,Fitness值越大,而只有获得最大值的模型才能被选为下一代演化的基础模型,而在下一代演化中在关键节点上(如上图吃到子弹游戏结束)会产生随机突变(AI科技评论注:这和生物进化的过程非常相似,只有最适应环境的种类才能生存繁衍),在这样不断演变中达到最优解。

在上图的34代演化得分图中,我们可以看到机器在进化过程中也遇到了一些瓶颈,但最终克服了这些瓶颈取得了好成绩。

这一方法,SethBling称之为NEAT(Neuro Evolution of Augmenting Topologies,增强拓扑神经演化),在 Kenneth Stanley 和 Ari 的论文中也有讲述。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

如何从零训练神经网络玩游戏?这里有一段详细的解读视频

Youtube 上的知名游戏博主 SethBling训练了一个叫 MariFlow 的神经网络来玩 Mario Kart 游戏。看懂他怎么做的,你也能举一反三。...

3687
来自专栏大数据文摘

AI小视频 | 原创灵魂手绘,聊个5分钟的人工智能

1986
来自专栏人工智能LeadAI

基于Tensorflow实现FFM

github:https://github.com/sladesha/deep_learning

2083
来自专栏Petrichor的专栏

深度学习: pooling (池化 / 降采样)

对于网络结构而言,上面的层看下面的层经过pooling后传上来的特征图,就好像在太空上俯瞰地球,看到的只有山脊和雪峰。这即是对特征进行宏观上的进一步抽象。

4802
来自专栏人工智能头条

MLlib中的Random Forests和Boosting

1223
来自专栏量化投资与机器学习

HMM模型在量化交易中的应用(R语言版)

? 马尔科夫性 如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程。 函数形式:X(t+1) = f( X...

3398
来自专栏生信宝典

贝叶斯学习记录

这篇文章用于记录学习贝叶斯定理及其应用过程中的记录,希望由浅及深的提供一份自我学习教程。 引子 概率的定义:概率是一个0-1之间的数,代表了我们对某个事实或预测...

2046
来自专栏PPV课数据科学社区

如何「科学的比较」机器学习模型表现?

最近在赶paper,码字的时间不多,也刚好借着这个机会践行“写少、少写,写好”。今天谈谈如何对比多个机器学习算法的性能,阅读本文需要基本的统计检验知识,比如明白...

42910
来自专栏阮一峰的网络日志

神奇的图像处理算法

几周前,我介绍了相似图片搜索。 这是利用数学算法,进行高难度图像处理的一个例子。事实上,图像处理的数学算法,已经发展到令人叹为观止的地步。 Scriptol列出...

4288
来自专栏AI科技评论

开发 | 手工搭建神经网络太费劲?来试试精确度高达94.1%的进化算法

AI科技评论按:阳春三月,辽阔的南美洲大草原上,两只体格强健的雄性美洲豹正在为争夺一只拥有美丽花纹的雌豹,进行着一场血腥而又激烈的较量。它们心里很清楚,成者为王...

35714

扫码关注云+社区