作者:阿米特·V. 乔希 来源:大数据DT(ID:hzdashuju)
艾伦·图灵(Alan Turing)对人工智能的定义如下:
如果窗帘后面有一台机器,并且有人正在与之互动(无论以何种方式,例如音频或打字等),并且如果该人觉得他正在与另一个人互动,那么这台机器就是人工智能的。
这是定义AI的一种非常独特的方式。它并不直接针对智能的概念,而是专注于类人的行为。事实上,这一目标的范围甚至比单纯的智能更为广泛。从这个角度来看,AI并不意味着要建造一台可以立即解决任何问题的超智能机器,而是要建造一台能模仿人类行为的机器。
然而,仅仅制造模仿人类的机器听起来并不有趣。从现代角度来看,每当我们谈到AI时,指的是能够执行以下一项或多项任务的机器:理解人类语言,执行涉及复杂操纵的机械任务,在很短的时间内解决可能涉及大量数据的基于计算机的复杂问题,并以类人的方式回复答案,等等。
电影《2001:太空漫游》中描述的超级计算机HAL非常接近现代AI的观点。它是一台机器,能够处理各种来源的大量数据,并以极快的速度生成对其的见解和总结,并且能够以类人的交互方式(如语音对话)将这些结果传达给人类。
从类人行为的角度来看,人工智能有两个方面。一方面,机器是智能的并且能够与人类交流,但是没有任何运动功能。HAL就是这类人工智能的例子。另一方面,涉及与类人的运动能力的物理交互,这涉及机器人领域。
术语“机器学习”或简称ML(Machine Learning),是亚瑟·塞缪尔(Arthur Samuel)在1959年用机器解决跳棋游戏的背景下提出的。该术语指的是一种计算机程序,它可以学习产生一种行为,而这种行为不是由程序的作者明确编程实现的。相反,它能够显示出作者可能完全没有意识到的行为。
-
-
量化当前行为和理想行为之间的误差或某种形式的距离的度量;
-
使用量化误差指导程序在后续事件中产生更好行为的反馈机制。
可以看出,第二个和第三个因素很快使这个概念变得抽象,并强调其深层的数学根源。机器学习理论中的方法对于构建人工智能系统至关重要。
-
-
-
为简单起见,让我们将机器学习系统看作一个黑盒,在给定一些输入时会产生些输出。如果我们已经有一个历史数据,该历史数据包含一组输入的一组输出,则基于这些数据的学习称为监督学习。
监督学习的一个经典示例是分类。假设我们已经测量了3种不同类型的花( Setosa山鸢尾、 Versicolor变色鸢尾、 Virginica弗吉尼亚鸢尾)的4种不同的属性(尊片长度、尊片宽度、花瓣长度和花瓣宽度)。
我们对每种花的25种不同示例进行了测量。然后,这些数据将用作训练数据,其中有可用于训练模型的输入(4个测量的属性)和相应的输出(花的类型)。然后以监督的方式训练合适的机器学习模型。一旦模型被训练好,就可以根据萼片和花瓣的尺寸对任何花(在三种已知类型之间)进行分类。
在无监督学习范式中,标记数据是不可用的。无监督学习的一个经典例子是“聚类”。考虑与前面小节中描述的相同示例,在该示例中,我们对三种类型的花的萼片和花瓣尺寸进行了测量。但是,在本例中,我们没有每组测量的花的确切名称。我们所拥有的只是一组测量值。此外,我们被告知这些测量值属于三种不同类型的花。
在这种情况下,可以使用无监督学习技术自动识别三组测量值(所属的)类簇。但是,由于标签未知,我们所能做的就是将每个类簇称为flower-type-1、flower-type-2和flower-type-3。如果给出一组新的测量值,我们可以找到它们最接近的类簇,并将它们归类为其中之一。
强化学习是一种特殊的学习方法,需要与监督和无监督方法分开对待。强化学习涉及来自环境的反馈,因此它并不是完全无监督的,但是,它也没有一组可用于训练的标记样本,因此不能将其视为有监督的。在强化学习方法中,系统不断地与环境进行交互以寻求产生期望的行为,并从环境中获取反馈。
划分机器学习方法的另一种方式是根据它们处理的数据类型进行分类。接收静态标记数据的系统称为静态学习方法。处理随时间不断变化的数据的系统称为动态方法。每种方法都可以是有监督的,也可以是无监督的,但是,强化学习方法始终是动态的。
静态学习是指对作为单个快照获取的数据进行学习,并且数据的属性随时间保持不变。一旦在数据上训练了模型(使用监督学习或无监督学习),就可以在将来的任何时间将训练后的模型应用于类似的数据,而且该模型仍然有效,并将按预期执行。典型的例子是不同动物的图像分类。
这也称为基于时间序列的学习。这类问题中的数据对时间敏感,会随着时间不断变化。因此,模型训练不是一个静态的过程,而是需要不断地(或在每个合理的时间窗口之后)对模型进行训练,以保持有效。
此类问题的典型例子是天气预报或股票市场预测。一年前训练过的模型对于预测明天的天气或预测明天任何股票的价格将完全无用。两种类型的根本区别在于状态的概念。在静态模型中,模型的状态是不变的,而在动态模型中,模型的状态是时间的函数,它在不断变化。
在处理各种数据集时,维数通常是一个令人困惑的概念。从物理角度看,维度是空间维度:长度、宽度和高度。(为了简单起见,我们不把时间当作第四维度来深入研究物理学。)在任何现实生活的场景中,我们遇到的都不超过这三个维度。
但是,当我们处理用于机器学习的数据时,通常有几十个、数百个甚至更多个维度。为了理解这些高维度,我们需要研究维度的基本性质。
空间维度的定义使得每个维度都与其他两个维度垂直或正交。这种正交性对于三维空间中的所有点都有唯一表示至关重要。如果维度不是互相正交的,则空间中的相同点可以具有多种表示形式,并且基于此的整个数学计算将失败。
例如,如果我们将三个坐标设置为长度、宽度和高度,并具有任意的原点(原点的精确位置仅会更改坐标值,但不会影响唯一性属性,因此只要它在整个计算过程中保持不变,任何原点的选择都是可以的。)
坐标(0,0,0)标记原点本身的位置。坐标(1,1,1)将标记一个点空间,该点空间在每个维度中均距原点1个单位,并且是唯一的。没有其他坐标系可以表示空间中的相同位置。
现在,让我们将这个概念扩展到更高的维度。在数学上添加更多的维度相对容易,但是很难在空间上可视化它们。如果我们添加第四个维度,则它必须与之前的所有三个维度都正交。在这样的四维空间中,原点的坐标为(0,0,0,0)。三维空间中的点(1,1,1)可以在四维空间中具有坐标(1,1,1,0)。
只要确保正交性,就可以保证坐标的唯一性。同样地,我们可以有任意数量的维度,所有的数学计算仍然成立。
考虑前面描述的鸢尾花数据示例。输入有4个特征:萼片和花瓣的长度和宽度。由于这4个特征相互独立,所以它们可以看作是正交的。因此,当使用鸢尾花数据解决问题时,我们实际上是在处理四维输入空间。
即使从数学的角度来看,增加任意数量的维度都是可以的,但是仍然存在一个问题。随着维度的增加,数据的密度呈指数下降。
例如,如果我们在训练数据中有1000个数据点,并且数据具有3个独有的特征。假设所有特征的值在1~10之间。所有这1000个数据点都位于一个大小为10×10×10的立方体中。因此,密度为1000/1000或每单位立方体1个样本。如果有5个独有的特征而不是3个,那么数据的密度很快就会下降到每单位5维立方体0.01个样本。
数据的密度很重要,因为数据的密度越高,找到一个好模型的可能性就越大,模型准确性的置信度就越高。如果密度很低,则使用该数据的训练模型的置信度就会很低。因此,尽管高维在数学上是可以接受的,但是人们需要注意维数,以便能够开发出具有高置信度的良好的机器学习模型。
在开发和应用机器学习模型时,总是会遇到多种可能的解决方案和多种可能的方法来获得答案。很多时候,对于哪种解决方案或哪种方法比其他方法更好,没有任何理论指导。在这种情况下,奥卡姆剃刀原理的概念(有时也称为简约原则)可以有效地应用。该原理指出:
一个人不应该做出超过最低需求的假设,或者换句话说,当一个解决方案有多种选择时,最简单的方法就是最好的。
这个原理不完全是一个定理,不能作为一个定量规则或方程来应用。但是,在现实生活中做出这样的决定时,它是一个强有力的有效的概念指南。
还需要注意的是,这条规则创建了一种折中的形式,一方面,我们拥有更多复杂性形式的信息,另一方面,我们却拥有更少的简单性形式的信息。人们不应该过于简单化问题,以致丢失一些核心信息。奥卡姆剃刀原理的另一个衍生方面是更简单的解决方案往往具有更多的泛化能力。
在设计机器学习系统时,需要注意的另一个有趣的概念来自Wolpert和Macready的论文,其形式是“没有免费的午餐”定理或优化中的NFL定理。该定理实质上指出:
如果一个算法在某类问题上表现得更好,那么它会以在其他类别的问题上性能下降的形式付出代价。换句话说,对于所有类型的问题,你都无法拥有单一最佳的解决方案。
这个定理需要更多地作为指导原则而不是定律,因为在所有可能的问题类别中,一个设计良好的算法完全有可能胜过其他设计不太好的算法。但是,在实际情况下可以从这个定理推断出,我们不能对所有的问题都采用同一个解决方案,并期望它在所有的情况下都能很好地工作。
收益递减规律通常出现在经济和商业场景中。它指出,随着现有员工人数的增加,增加更多的员工来完成一项工作开始产生越来越少的收益。
从机器学习的角度来看,这一规律可以应用于特征工程。从给定的数据集中,人们只能提取一定数量的特征,在此之后,性能上的收益开始减少,付出的努力是不值得的。在某些方面,它与奥卡姆剃刀原理一致,并增加了更多的细节。
在机器学习开始真正意义上的商业化之前,很少有其他系统已经突破常规计算的边界。其中一个显著的应用是专家系统。
艾伦·图灵的定义标志着机器智能被认可的时代的开始,人工智能领域也随之诞生。然而,在早期(一直到20世纪80年代),机器智能或机器学习领域仅限于所谓的专家系统或基于知识的系统。专家系统领域的顶尖专家之一,Edward Feigenbaum博士,曾经这样定义专家系统:
一种智能计算机程序,使用知识和推理过程来解决很难解决的以至于需要大量的人类专业知识才能解决的问题。
这种系统能够替代某些领域的专家。这些机器经过编程,用于执行基于复杂逻辑运算的复杂启发式任务。
尽管这些系统能够取代特定领域的专家,但如果我们将其与人类智能进行比较,就会发现它们并不是真正意义上的“智能”系统。原因是系统被“硬编码”为仅解决特定类型的问题,如果需要解决一个更简单但完全不同的问题,这些系统将很快变得完全无用。
尽管如此,这些系统还是非常流行和成功的,特别是在需要重复但高度精确的性能的领域,例如诊断、检查、监测和控制。
关于作者:Ameet V.Joshi,博士,目前是微软的一名数据科学经理。他于2006年在密歇根州立大学获得博士学位。他拥有超过15年的机器学习算法开发方面的经验,涉及各种不同的工业领域,包括管道检查、家庭能源分解、微软Cortana智能和CRM中的商务智能。
本文摘编自《机器学习与人工智能:从理论到实践》,经出版方授权发布。
推荐语:全面介绍了人工智能和机器学习技术的理论和应用。为人工智能和机器学习提供了直观、易懂的学习指南,较少使用数学。结合应用介绍所有机器学习和人工智能技术及实现。
老铁,三连支持一下,好吗?↓↓↓