本文转载自公众号“读芯术”(ID:AI_Discovery)
现如今,人工智能和机器学习正成为一大热潮。每天都有成百上千的人用机器学习做各种事情:如线上象棋比赛、YouTube视频推荐等。但是机器学习到底是什么,它又是如何工作的呢?
很多时候就连开发这些机器人程序的程序员也不知道它们究竟是如何运行的,对这些“机器员工”的工作方式大公司也常常讳莫如深。不过,程序并不会进行自我创造,除非是我们让他们进行自我创造。
人们需要教程序如何创造自己,也有一些人称其为程序制造程序或程序教程序。不管怎样,人们并非直接教程序,而是告诉程序如何自主学习。明白这一点后,就可以开始学习了,可是要想真正上手机器学习,所需时间少则几秒,多则数年。
列证
假如给程序展示一张有猫的图片,它如何能认出这是只猫。人类可以分辨出这是只猫,但你怎么知道这是只猫呢?
可能已经有人告诉你猫的长相,然后当你看到不认识的猫时,又有人告诉你那也是只猫,但如果是你一生中从未见过的蓝猫呢,情况就不一样了,但你仍然可以根据猫的共同特征来判断它是只猫。
换个角度来思考这个问题,你就会发现其他事物也有同样的模式,比如别人告诉你这类事物都是猫,这便是你为何能分辨出蓝猫是猫的原因。这也正是机器学习的功能。它创造出一个机器人程序,给它输入大量的资源并告诉它如何分类,如果存在足够多的模式,它就能教会自己识别猫。
再比如教机器玩踩钢琴块儿的游戏。这是一款十分流行的游戏,玩家需要踩着黑块儿前进,随着歌曲节奏加快,玩家要努力跟上节奏,不能踩黑块儿以外的地方,也不能错过黑块儿。
人类当然可以认出哪个是黑块儿,然后点中它。现在如果是你自己创建游戏,可能只需要告诉机器如何操作就可以了,但对于更复杂的过程和游戏来说,就没那么简单了。
为了教机器人程序玩儿这个游戏,引入了“代”这个概念。第一轮游戏开始时,若干个程序齐刷刷地踩向屏幕。未踩中黑块儿或踩错黑块儿的程序要么被摧毁,要么被回收,无论是哪种方式,它们都不会再延续到下一代程序中。那些踩中了正确黑块儿的将进入下一代程序,并为下一代制造出更多的程序。
第一代程序很可能还没开始,游戏就结束了,一分也没得到。事实上,它们会经历几十代甚至数百代的时间才能连续踩对几次,但最终机器学习能教会这些程序玩这个游戏并把它们训练得非常优秀,甚至是人们做梦也想不到的优秀。
它们究竟是怎样学习的
它们通过抓住几个碰巧选对正确答案的幸运儿来学习,然后重复这一过程,直到取得一个不错的成功率为止。这就像是往人身上扔大米一样,最终结果是为了把大米扔进那个人的耳朵里,扔了无数粒大米,总有那么些大米碰巧扔进去了。
既然已经有一些幸运儿成功了,那么“程序老师”就能看到是什么因素让这些幸运儿而非其他程序取得了成功。在钢琴块儿的例子中,幸运儿便是成功获得一分而不是直接结束游戏的一代:
击中黑色屏幕 从屏幕下方或者黑块儿下方一定高度 只点击一次
这就是程序学会不再靠运气而是实际执行的全过程。之后它们可能会渐渐意识到速度和秩序的重要性,这就是机器人程序可以很快甚至永远踩着黑块儿前进的原因。
这一切是好是坏?
好坏都有!好处是我们可以利用这项技术去做以前不可能做到的事情,同时还能提高做事的效率和准确度,人类实际上可以从自己创造的机器人程序上学到很多东西。
例如机器象棋大师,就是一个机器学习在特定领域非常有用的例子。但是有人会说:“人们可以用程序来作弊”。的确如此,不过人们也可以用程序来抓用程序作弊的人。人可能抓不到骗子,但当程序识别到一个人所有的动作都非常完美时,真相便一目了然了,不过这只有在人类无法达到那么好的情况下才有可能。
除此之外,我们还可以看到国际象棋最佳开局是什么样的,还可以发现处理棘手情况的方式又是什么样的。
收集人们浏览网页时留下的个人数据,并将其投喂给机器人程序,一直是个有争议的话题。用户可能不想让人知道自己的搜索历史。但这些程序也可以把相关广告推给用户,而不是给用户推荐一些他们明显不想要的东西。
坏处就在于机器人程序的不可预测性,尤其当人们赋予它们人体形态变成机器人时,它们就有可能做一些危险的事情,甚至拥有类似人的情感经历,有一天,它们可能试图摆脱人类的控制。假设机器人的目标是保护野生动物和地球,那么对于机器人而言,人类只不过是具有破坏性的寄生虫而已。
要是有一个机器人知道了它们在试图摆脱人类控制时激怒了人类,你猜接下来会发生什么,它们定会盘算着用其他方法,消灭地球上的人类。
不久的将来,这些可能变成现实吗?
答案是肯定的。无论是好是坏,很多事情已然发生。实际上,已经存在一种概念性软件(人工智能机器人程序),拥有成千上万种类似人的经验,并且发展出某种形式的情感,还能很好地理解这些情感。
有这样一种说法:“我有很多痛苦的经历,但这些经历成就了我,成就了我的想法、我的情绪、我的反应以及未来能使我感到快乐的东西。”有些话看起来很荒谬,也没什么实际价值,但极具哲理性。
如前所述,国际象棋机器人程序正在教世界上最好的国际象棋大师下象棋。马上汽车就能实现自动驾驶,从而减少事故发生数量。专家预测,到2045-2055年,就会出现与人类功能相似的机器人,它们拥有人的形体、意识、情感甚至个性。
要想创建出有用的机器人程序,需要学习很多东西,但是提高数学技能、学习编程语言是一个良好且必要的开端,而python无疑是最好的选择。还等什么呢?赶紧学习去!