非技术人员的机器学习入门指南

人工智能是当前最热门的话题之一,仿佛一夜之间传遍大街小巷。经常能听到有理想、有抱负的开发者说想学习人工智能,又或是企业的管理者说想在产品或服务中实现人工智能。机器学习作为成就人工智能最重要的一种分支类型,如今,科技巨头们无不在对其加紧布局,迎接市场爆发。虽然炙手可热,但是很多时候,人们只有模糊的概念,并不了解什么才是机器学习。

世界末日?

首先,我们听说机器学习正在取代蓝领的工作:

人工智能时代,蓝领的未来在哪里?

然后,我们发现白领的工作也不安全:

Watson治疗癌症准确率超90%,医生该高兴还是难过?

抛开工作不看,发现机器之间居然可以聊天:

FB意外发现:聊天机器人开始自创语言了!

甚至,机器已经开始独孤求败了:

AlphaGo Zero证明 机器无需帮助即可成为超人

机器学习在很多不同的背景下被讨论着,所以很难把握它究竟是什么。通过搜索你可能获得一堆抽象的理论解释、或者是拼词游戏、又或是一堆数学公式和代码。

开始学习

所以,机器学习,就是……人工智能?

我们都或多或少了解人工智能的定义。关于人工智能,每个人有不同的定义,但有一点是共通的:

人工智能是以人类智能相似的方式做出反应的机器智能。

基本上,如果一台计算机做了一些看起来很聪明的事情,就可以将其标记为人工智能。

用一个可能遇到的例子解释:电脑游戏中通常有智能的敌人角色,他们通过不停跟在玩家周围的行事方式,使游戏更具挑战性。游戏的开发者通过一套规则来实现这一点:

跟随玩家;
如果玩家正在射击,找掩护;
如果玩家停止射击,尝试攻击玩家;

这些规则越多,游戏就越聪明。

电脑游戏的开发通常是有限的。玩家只能执行一些特定的、由开发人员设计的操作。所以,开发者可以想出一些看起来非常聪明的AI人物规则。(下面这张图里的人物很聪明吧?)

并非所有的问题都可以通过规则来解决

假设我们想要一台电脑来检测这是不是狗的照片:

如何为此任务定义规则?

  • 有四条腿?
  • 白色的?
  • 有皮毛?

得到下图:

计算机视觉问题,比如识别一个物体,是很复杂的。但是人类的大脑几乎直观地解决了。所以,真的很难明确地定义规则。

进入机器学习

我们不用建立一个识别狗的系统,而是建立一个可以学习识别狗的系统。

喂给它成千上万的图像资源,包含狗的,不包含狗的。让他自己学习定义狗的规则。

机器学习就是让机器可以像人类一样学习。

关键词“学习”是将机器学习与其他类型的人工智能区分开来的。

“你说机器可以自己学习添加规则。那么,这些规则确实存在咯。我们只是不够努力去发现它们。“

完全正确!如果努力+努力,可能会开发出一个基于检测狗规则的杰作。这个系统可能涵盖成千上万条规则,包含狗特征的方方面面。但如果现在想让这个系统再检测包含食物的图片呢?那我们只好扔掉之前所有的努力,从头开始,因为狗的那些规则都不适用(可能只有“热狗”适用吧)。

简单的办法还是通过扔给它食物的图片来训练学习识别食物。

这才是机器学习的正确打开方式。我们有一个灵活的机器,可以学习和适应,而不是给它一套固定的规则。

保持真实

听起来像是建了一个鲜活的、可以学习的有机体,让它与小狗玩,以识别狗。然后,我们教它爱的意义,并说服它不要在崛起之后杀了所有人类。

现实情况要复杂得多。我们希望机器学习做决定(通常根据预测)。那么从这个问题开始:人类如何做出预测?

以下是如何进行预测的一个例子(中学生水平),假设你进行弹簧实验,收集数据,并将其绘制在图表上。

x轴是弹簧负重变量,y轴是测量结果。然后,在图上绘制趋势线

这是对数据进行最佳建模的线。现在你有这条线,你可以做出预测。你可以选择一个未测量过的负重量,读出y轴的预测值。

使用数据,建立一个模型,并用它做出预测。如果你把这些步骤写成了一个可以执行的程序,这就是机器学习吗?不完全是,定义线性模型并用它来做出预测:这是一种机器学习技术,称为线性回归

我们可以将模型编程到系统中,然后系统可以对这个弹簧做出预测。但如果要预测其他弹簧,就得编写新的代码。所以,如果我们教程序自己进行线性回归模型学习,那才是机器学习。

Hocus Pocus(诡计)

从上面这个例子中可以学习一件事情,那就是:

机器学习不是变魔术

我们并没有建立一个能够学习一切的自我意识机体。弹簧的例子永远不会学会识别狗(也许能识别弹簧狗)。

我们建立一个可以学习一种特定类型模型的系统,所需要的只是确定何种模型。几乎所有的机器学习系统都具基于下面的模式:

系统给出一个基于模型的输出,然后评估这个输出以确定它有多糟糕,然后再更新模型,使未来的输出更好一些。机器学习就是针对不同问题建立一个可执行这个循环的系统。不同的问题,输出可能大相径庭。可能是聊天机器人的文本回应,或者是一个自动驾驶汽车决定是否需要踩刹车。实际的模型可以像弹簧的问题一样是线性的,也可能是一个更为复杂的、基于统计和概率的模型,又或是一个神经网络,旨在模拟人类大脑的工作方式。无论细节如何,几乎每个机器学习系统都在运行该循环。每循环一个周期,系统改善一点点。经过数千甚至数百万次的循环之后,即可以得到比任何人类处理同样任务上表现更好的系统。

机器学习有多种多样的应用,也需要融合各行各业的技术,所以它与许多其他领域相结合。这也是为什么当前机器学习是如此热门的原因。

总结

建立一个机器学习系统很复杂,但是理解机器学习的机理却很简单吧。下次遇到开头那样的聚会,不会再云里雾里、一片茫然了吧?你甚至可以抛出自己观点见解,让别人对你刮目相看!

坚持原创分享,您的支持将鼓励我继续创作!