全文共3323字,预计学习时长9分钟
图源:unsplash
我们总能听到机器学习、深度学习、神经网络这样的词,但是你是否清楚这里的“学习”到底意味着什么?它只是销售软件和服务的营销词汇吗?还是说科学家真的创造了类似人脑的组件并令其在机器内部运行呢?机器会占领世界吗?
别担心,还没到那个时候。本文就将为你祛魅机器学习,科学家是如何教计算机完成人类的任务,甚至在某些情况下比人类做得还好。笔者将用最直白的话给大家解释这个问题,努力让任何领域的人都可以理解。
为什么需要学习?
在学习开始之前,解决问题离不开算法的编写。算法只是一组规则,往里面输入后得到的输出即可作为问题的解决方案。
请考虑以下情况:有一个数字列表,要求你按升序排序,有很多算法可以解决此任务。这些算法通过获取列表,执行一些规则和操作,然后返给你排好序的列表。对于计算机科学家来说,这种问题“很容易”解决。他们只需要思考并提出一种算法来解决任务。
但同时,有些问题不是那么容易用算法解决。人们开始对计算机有了更多的要求,他们希望机器具有解决艰巨任务的超能力,是那种连科学家都完全不知道如何编程的任务。
例如:如何编写一种算法,以获取动物的图像并输出其类型?对于人类而言,这是一项非常容易的任务,但对于算法来讲就是一件很复杂的事儿了。人类知道如何对动物照片进行分类,但是他们不知道如何描述他们为获得答案所采取的步骤。因此,出现了一个重要的问题——如何解决连人类都不知道如何描述的问题?
算法的世界!
互联网中,算法无处不在。你正在阅读本文,是因为有一种算法把这篇文章呈现在了你眼前,可能是因为你点击了什么,然后算法会记录你打开的链接。该算法决定了你搜索查找照片所看到的内容,甚至可以为你制作一个小电影。
股市充满了算法,交易需要进行。当你购买东西时,该算法确定价格,并且在你的账户监视交易是否遭到欺诈。
这些小小的算法塑造了你的世界。当它们在过去的人造算法机器人中工作时,人类可以提供“如果这样,那么该那样”形式的解释说明。但许多问题太大而又难以简单阐明,例如在一秒钟的十亿次金融交易中发现欺诈性交易,算法能想办法发挥作用。
图源:unsplash
设想,一个航空公司如何设定飞机座位的最高价?用户现在要支付的价格由算法机器人确定。虽机器也并不完美,但比人类能做到的要好得多!没有人知道,甚至建造它们或将来将要建造它们的人都不知道他们是如何做到的。
人工算法的失败
图片中是什么?是蜜蜂,还是3?对于人类来说,即使是小孩子也很容易说出答案,但用一种机器人语言(一种逻辑门语言)告诉机器人就不太可能实现了。
不是3不是蜜蜂
我们只知道那是蜜蜂和3,我们可以用言语来区分它们,但是机器人无法理解言语,而正是大脑中的联系才使我们分清二者。
虽然我们大脑中的单个神经元可以很容易被理解,但是组成大脑的神经元簇却很难被理解。虽然我们无法理解这个整体,但是它起着潜移默化的作用。所以,要想让一个机器人在蜜蜂和数字3之间进行分类,你不需要直接建造这样的机器人,只需要建造一个建造机器人的机器人和一个教授机器人的机器人。这些机器人的大脑十分简单,一个优秀程序员可以轻而易举做出来。
记住,建造机器人是用来建造的,但教师机器人并不用于教学,只用于测试学生机器人。
训练有素的教师机器人
实际上,学生机器人并不擅长测试。起初,建造机器人在任意机器人的大脑中进行随机连接,于是教师机器人接收到了一些非常特殊的学生机器人,教师机器人需要教他们如何区分蜜蜂和数字3。人类首先需要给机器人老师一堆蜜蜂和数字3的照片,并告诉他们这是什么。
学生机器人参加了测试,但他们做得不好。这不是他们的错,他们被建造时就是这样的。他们被重新带回建造机器人那边,那些做得好的会被放在一边,其他的则会被回收利用。
建造机器人仍然不擅长建造机器人,但现在它将那些做得好的机器人留下来,并用新组合的变化进行复制,然后送回学校。新的学生机器人到了之后,老师机器人一次又一次地测试它们,建造机器人一次又一次地建造,平均测试分数一次又一次地提高,先是60%,最后直到99.99%的完美。
以前,人类可以为他们的机器和机器人编写算法,但现在,我们做到了让机器通过任务模式进而创建自己的算法
所以一个测试和试错的方法已经完成了,这并不是针对一个或两个机器人,而是针对十亿个不同的机器人,有不同的随机连接,而且测试题又有十亿页长。如前所述,这是针对那些bot语言中存在的问题,那些我们无法告诉机器人的问题。
人类无法训练的机器人
老师机器人并不是在监管一个有十几个学生的老校舍,而是一个有几千名学生的无限仓库,考试不是10道题,而是100万道题,他们究竟考了多少次?
无限校舍
建造机器人会不断重复构建过程(随机连接)。起初,留下来的学生只是幸运而已。但是,通过组合足够多的幸运机器人,只保留那些有用的,然后随机地组合出新的副本,最终一个学生机器人出现了,它不是靠运气,而且可能几乎不能区分蜜蜂和数字3。这一点被复制,并被应用到所有其他机器人。
慢慢地,平均测试分数上升,下一轮生存所需的分数也越来越高——从50%到60%,70%,80%,90%,95%,等等。
当我们继续这个循环,最终,从无限大的校舍里,一个可以分辨出照片中的一只蜜蜂和数字3的学生机器人会出现,准确率高达99.999%。这个数字意味着在假设的1000000张照片集合中,只有1张照片出错!
但是学生机器人是如何做到这一点的,无论是教师机器人,建造机器人,甚至是人类的监督者都无法理解,学生机器人本身也是如此。在保留了这么多有用的随机变化之后,它的线路和芯片就变得极其复杂。虽然一行代码不难理解,可代码簇就难了。就是因为这样,机器人的代码整体很难被我们理解。
这是可的,但也同时令人沮丧,特别是学生机器人只擅长已经被教过的问题。如果照片是倒置的,或者照片不是蜜蜂,比如猫,它就会觉得很困惑。我们的机器人老师不能教所有的东西,所有的人类监工能做的是给它更多的问题,使测试更长,连最好的机器人会出的错也要训练到。
理解这一点很重要,这也是公司非常喜欢收集数据的一个原因——更多的数据等于更多的测试,等于更好的机器人。当你在网站上做“你是人类吗”的测试时,你不仅证明了你是人类,而且也在帮助建立这个测试,让机器人能够读、数、分辨山峦上的交通灯、马和人。
在互联网上的任何地方,后台都有一些测试来增加用户的互动,或者设定合适的价格来使得收益最大化,或者从你所有的朋友那里“偷钱”。你喜欢朋友分享的文章,这是让机器人根据你的联系人了解你喜欢什么的一种方式。如果它是可测试的,那么它就是可被教的!
至少在一段时间内,教师和学生机器人将从数据备选库中毕业,正式成为领域中的算法。我们习惯了这样的想法:我们使用的工具,即使自己不懂但总有人懂,但随着机器学习发展,我们越来越处在一个人类使用工具或被工具使用的位置,没有人、甚至它们的创造者也不懂。我们只能希望可以用测试来指导工具,并且用起来顺手。
识别蜜蜂和3只是一个简单的例子。现实世界的一些应用包括:早期发现癌症,我们训练机器人理解各种癌症发展和分类模式,辨别恶性癌症(严重、紧急医疗)或良性(稍不严重、最小的医疗保健);解决航空公司座位价格;提前数月预测危险的龙卷风;还有自动除颤器的应用等等。
自动除颤器
虽然对人类来说一些算法已成黑箱,但也不用担心机器人会占领世界。正如机器学习专家Andrew Ng所说:“担心机器人接管世界就像担心火星上的人口过剩一样。我们还没到那时候呢!”
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范