注:很多人都在谈人工智能,谈机器学习,但他们有自己的理解,作者从一个非常有趣的场景开始延伸,步步深入,对机器学习有独特的解释和指导。
这里是另一家创业公司的聚会,你靠在吧台上,一边喝着小酒。这样的夜晚你只考虑自己,尽情享受社交活动。
偶然间,一个声音从你耳边传来。
"他们绝对是机器学习的创业公司。"
谈话声消失了。
"他们仍然在使用统计NLP吗?复发性神经网络似乎是一种趋势。"
谈话声再次消失。
机器学习像病毒一样迅速传播,你惊讶的发现这几分钟内,吧台上的每个人都在讨论机器学习。
过去你曾听说过这个术语,谁没有听说过呢?机器学习是一种潮流,毫无疑问,它是人工智能的未来。
问题是,你没有一点关于它的想法。
你放下酒杯转身离开,今晚将是不眠之夜。
世界末日
最开始听说的机器学习机器人,是代替蓝领完成工作。
然后,我们发现机器人开始抢白领的饭碗。
在我们失业的将来,会发现这些机器人在我们背后聊天。
可能在闲聊那些懒惰的失业的人类。
机器学习在如此多的场景被谈及,但却很难被准确定义,翻越查找得到的是抽象的原理解释,高频拼字游戏的词语,以及由数学和代码组成的一堵墙。
你只想知道什么是机器学习,为什么它是一个伟大的想法,顺便了解一点它是如何工作的。坦白的说,你只想搞清楚身边那些流行词汇的意思,这些词汇就像中学课堂上该死的单词,每个人都在使用它们,但你有一种感觉没有人知道它真正的意思。
开始潜入
所以机器学习,像AI?
这是一个很好的开始,我们都知道人工智能的含义。我们虽然在思考不同的事情,但可以肯定的是思考的都是有价值的想法。
人工智能(AI)是研究构建做出“智能”决策的系统。
基本上如果电脑能做出一些似乎有点聪明的事儿,我们就会给它贴人工智能的标签。
举一个常见的例子,电脑游戏通常会出现智能的Boss角色,他们跟随我们,并且他们的行为方式让游戏变成一种挑战。这就是AI的例子。
通过给予AI一些列的规则,游戏的发展可以实现,跟谁玩家,如果玩家正在射击,寻找掩护,如果玩家停止射击,尝试击毙玩家。规则越多,游戏将会越智能。
问题是电脑游戏的规则是有限的,玩家仅限于一些特定的操纵,而操作水平完全由开发者设计。所以那些似乎真的很智能的出色的AI特征,就是由开发者设计的规则组成。
并不是所有的问题都可以用规则解决
比如说用一台电脑来检测这是不是狗的照片。
如何为这个任务定义规则呢?
尝试设想一下需要哪些类别的规则。
狗有四条腿?
狗是白色的?
狗有皮毛?
这是众所周知的座椅。
电脑视觉问题,比如识别一个对象,是相当复杂的。但我们的大脑却能直观的分辨出。所以设计出明确的规则非常困难。
进入机器学习
我们不能建立识别狗狗的系统,却能建立学习识别狗狗的系统。
这里有上千张图片,其中一些是狗的图片,一些不是。系统能学习可以定义为狗的照片的规则。
机器学习是研究构建做出“智能”决策的系统。
关键字"学习"去区分机器学习与其他人智能不同的地方。
"既然机器可以学习规则,那么显然,规则是已存在的,不必费劲便能找到它们。"
完全正确,如果竭尽全力我们可以开发基于规则的狗狗检测大作,它是包含所有可能情景的上千条规则,这是一件漂亮的事情。
那么,倘若现在需要一个能识别包含食物图片的系统呢?好吧,我们将抛弃之前所有的从头开始,以前的规则都不适用。
"出色的识别技术,热狗也是狗。"
一个可以学习识别对象的系统,通过使用食物图片而不是狗狗图片,可以被训练为识别食物。
这就是机器学习的魅力。与其去明确一系列规则,不如让机器灵活的去学习和适应。
保持真实
现在更像是我们建立了一个活生生的、能不断学习的,并能让它通过与小狗一起玩耍从而教它识别狗的机器。然后再教它可爱和爱,并希望说服它不要起义把我们灭了,是吧?
现实情况并没那么复杂,我们希望机器可以智能决策,通常建立在预测的基础上,所以从这样的问题开始:人类是怎样预测的?
这里有一个很好的例子来说明我们怎样预测,可能在中学的科学课堂上就做过。
比如做实验,你需要收集数据,然后绘制成图。
实验>数据>图形
x轴表示改变的值,y轴便是测量的结果,然后绘制趋势线(或者最佳线)。
这条线便是最好的数据模型。
因为有这条线,所以可以做出预测。你可以选择没有测量过的重量,在x轴上观察,然后从y轴上预测弹簧的长度。
使用数据建立模型,然后通过模型进行预测。
如果编程可以完成这些步骤,那么恭喜:这就是机器学习。
发现线性模型并借此进行预测,这完全是机器学习技术,我们称之为线性回归。
将模型编程写入系统,系统便能对这个弹簧进行预测。但如果不编写新的程序,它便无法对其他弹簧进行预测。
如果我们让程序完成线性回归本身,同时学习模型,这才是机器学习。
我们不提供模型,而是让机器去学习模型。
巫师戏法
举个例子来形容那边是:
机器学习并不神秘。
我们并不是建立拥有自我意识可以学习任何东西的机器,弹簧模型程序不会学习识别狗狗。
即便是你,弹簧狗。
我们建立的系统是可以学习特定类型的模型,那个我们所忽略的模型。
几乎每个机器学习系统都会以下这些事儿:
系统给出基于模型的输出结果,对输出进行评估,以确定它有多糟糕,然后更新模型,使未来的输出变得更好。
建立可以完成对特定问题不断循环(评估->更新->输出->评估)的系统,机器学习便是这么一门艺术。
输出的复杂性取决于问题本身,它可能只是来自于聊天机器人的文本响应,或者是无人驾驶中是否踩刹车的一个决定。
真实的模型可能是像弹簧问题的线性模型,可能是更复杂的基于统计和概率的模型。或者是设计模拟人类大脑工作的神经网络。
不管细节是什么,几乎每个机器学习系统都是这样循环的运行。每次循环,系统都提升一点点。经过上千次甚至百万次循环,便可以得到已学会比人类更好完成任务的系统。
丰富多彩的应用程序,以及解决程序问题所需的技术,都是机器学习与许多其他领域交叉的重要原因,也是现在为什么机器学习是如此激动人心的话题。
总结
建立机器学习系统是复杂的,但要搞懂机器学习并不难。
所以去征服那个创业公司的聚会吧,抛出那些新发现的流行词汇。你只需要再沉浸几年,到时候相信也会有机器人来帮你做这些事。
原文:The non-techie’s guide to machine learning 作者:Kannan Chandrasegaran 翻译:不二