会玩超级玛丽,机器学习能有多难?
更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud
“机器学习”、‘神经网络’——如果你经常阅读新闻,一定与这两个词打过照面。机器学习的应用已进入医疗、金融、物流等各行各业,如果你不理解它们的含义,恐怕每天刷一刷新闻都是大写的懵。好消息来了!即便你不是数学家、不是工程师,只要你玩过超级玛丽,就一定能搞懂机器学习的基本概念。
网络开发与安全专家 Adam Wattis 写的这篇文章,就希望用简单易懂的类比,打破人们对机器学习术语艰深难懂的印象,能充满自信地阅读机器学习主题的各种文章。
增强学习
机器学习与普通的软件相比所不同的是,普通软件需要程序员明确地写下指令,而机器学习则能够自己学会如何成功完成手头的任务。举一个被称为增强学习的例子:程序会获得一个**输入值**,经过自己的“思考”后得出一个**输出值**,并会根据其输出值获得相应的**奖赏**,程序经过无数次地重复这个过程,学会什么样的输出能获得更高的奖赏。这样想的话,所谓机器学习的过程与人类学习的过程(巴甫洛夫训练小狗的方式)是不是挺相似?
或者,与我们第一次打游戏的时候,学习游戏规则的过程是不是很相似?我们就一起回到童年,想象自己第一次遇见超级玛丽。
输入
打开游戏,你看到一个简单的2D环境中有一个萌萌的马里奥和各种小物件。这就是你的输入值。
输出
你有四个键可以用:左、右、蹲、跳,这就是你的输出值。你得根据输入值(马里奥遇到了金币),决定自己选择哪一个输出(蹲下还是起跳)。
奖赏
即便没有人明确地教你游戏规则,很快你也会发现,毫无目的地随便走走没法获得什么奖赏,但是如果撞到了金币奖赏就会高一点,如果跳到了神秘盒子奖励就更高。不过,如果被敌人打了就会获得惩罚——或者说,负的奖励。如果撞到了敌人 Goomba 则一踩就挂——或者说,死亡奖励。
挂了没关系,还能重新来过。当你再一次看到 Goomba,你就会试试其他的“输出值”来避免“死亡奖励”。再玩几把,你就知道可以跳过 Goomba,继续活命。
增强学习也就是这么一回事。跟人一样,机器一开始也是一张白纸、一无所知,经过不断试错,知道如何更快地过关、获得更好的结果。这在机器学习中,就叫做“训练”。
训练
正如刚才所说,机器从一开始就像刚出生的婴儿,是一张白纸、一无所知。要想让机器完成任务,必须让机器进行训练,给它一些训练的数据。假以时日,机器学习算法就知道如何成功完成任务了。不过,训练可能得要很长一段时间,所以必须给机器提供高质量的训练数据,才能获得更准确的结果。
总结
一句话总结全文:机器学习与传统意义上的程序不同,反而与人类的学习过程很相似。
传统的程序是通过一些条件语句硬性规定的程序。如果用传统程序玩超级玛丽,就得输入此类的代码:if 发现危险,执行“起跳”或是别的动作;else 继续前进。这与机器学习的根本不同在于,一段时间后,机器学习就能自主决定该做什么行动,遇到类似的任务时,不需要重新编程就能直接上手。试想你已经从游戏菜鸟升级为超级玛丽高手,当你遇到第二个游戏,你也能快速上手。你玩的游戏越多,你就越擅长游戏,即便每个游戏都略有不同。机器学习也是同理,过往的“经验”能让它更快地学习。
现在,“机器学习”这个词看上去没有那么吓人了吧?超级玛丽这个基本框架,但愿能帮助你理解机器学习在未来的广泛应用。
本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。
文章原标题《Understanding basics of machine learning through Super Mario》
作者简介:Adam Wattis,全栈网络开发创业者,热衷网络安全与科技,更多文章可见 Http://adamwattis.com。
译者:炫,审校:袁虎。
文章为简译,更详细的内容,请查看原文。
最后更新:2017-09-20 17:32:41