Menu Close

什么是机器学习?计算机如何从数据中学习

机器学习(Machine Learning)是现代人工智能背后最重要的技术之一。

什么是机器学习?计算机如何从数据中学习

垃圾邮件过滤、推荐系统、欺诈检测、图像识别、语音识别、自动驾驶汽车、搜索引擎,以及许多其他应用,都在使用机器学习技术。

但是,机器学习到底是什么意思?

计算机真的会“学习”吗?

机器学习和普通程序设计又有什么区别?

其实,机器学习最基本的思想并没有想象中那么复杂。

传统程序设计通常需要程序员自己写出各种规则,而机器学习采用了另一种方法:我们给计算机提供大量示例,然后利用算法,从这些示例中寻找有用的规律。

最终得到的结果,叫作一个模型(Model)

下面我们一步一步来看机器学习到底是怎样工作的。

1. 传统程序设计使用规则

要理解机器学习,最好先从传统程序设计开始。

在普通程序设计中,程序员通常需要明确告诉计算机应该遵循哪些规则。

从概念上,可以把它表示成:

数据 + 规则 → 输出

例如,我们希望编写一个程序,判断一个数字是不是偶数。

程序员可以直接写出一条非常简单的规则:

如果一个数字除以 2 没有余数,那么它就是偶数。

计算机所做的事情,只是执行这条规则。

这里并不存在所谓的“学习”。

因为程序员已经知道答案背后的规律,并且明确告诉了计算机应该怎样判断。

当问题具有清楚、稳定而且容易描述的规则时,这种传统编程方式非常有效。

但是,现实世界中的很多问题并没有这么简单。

2. 有些问题很难用规则描述

假设我们想开发一个程序,用来识别垃圾邮件。

理论上,我们可以尝试编写成千上万条规则。

例如:

如果邮件中包含某些特定词语,就提高它的垃圾邮件评分。

如果邮件中出现大量可疑链接,再提高它的评分。

如果发件人身份未知,也可以进一步提高评分。

问题在于,真实世界中的电子邮件非常复杂。

垃圾邮件发送者会不断改变邮件内容和表达方式。

与此同时,正常邮件有时也会包含一些看起来很可疑的词语或链接。

如果试图通过人工编写规则来覆盖所有可能出现的情况,规则数量会迅速膨胀,最终变得极其复杂,甚至难以维护。

这正是机器学习开始发挥作用的地方。

我们不再试图自己描述所有规则,而是让算法直接从数据中寻找规律。

3. 机器学习从示例中学习

假设我们收集了数千封、数百万封,甚至更多电子邮件。

其中一部分被标记为:

垃圾邮件

另外一些被标记为:

非垃圾邮件

这些带有已知答案的示例,就成为机器学习系统的训练数据(Training Data)

机器学习算法会分析这些数据,寻找能够帮助区分垃圾邮件和正常邮件的模式。

从概念上,可以表示为:

训练数据 → 学习算法 → 模型

训练过程最重要的结果,就是得到一个模型

模型中包含了机器学习系统从训练数据中学到的各种数值关系。

训练完成以后,我们就可以把一封模型以前从未见过的新邮件交给它。

这时,整个过程变成:

新数据 → 模型 → 预测

例如:

新邮件 → 模型 → 96% 的概率是垃圾邮件

程序员并不需要事先写出所有可能出现的垃圾邮件规则。

相反,模型通过大量示例,自己学习到了有助于判断垃圾邮件的模式。

这就是机器学习最核心的思想:

从数据和示例中学习规律。

4. “学习”到底是什么意思?

“学习”这个词,有时候会让机器学习听起来非常神秘。

但计算机的“学习”,并不等于人类真正意义上的学习。

从最基本的层面来说,机器学习实际上是一种数学优化过程

在训练过程中,模型首先会做出预测。

然后,系统会把模型的预测结果和正确答案进行比较。

如果模型预测错了,系统就会计算这个预测产生了多大的误差。

接下来,系统会调整模型内部的一些数值,希望让下一次预测的误差更小。

这个基本过程可以表示为:

预测 → 误差 → 调整 → 新的预测

这一过程可能重复成千上万次、数百万次,甚至数十亿次。

随着训练不断进行,模型通常会逐渐变得更擅长完成某一项任务,并产生更加有用的预测结果。

模型中那些不断被调整的数值,通常叫作参数(Parameters)

因此,当我们说一个机器学习系统正在“学习”时,通常真正表达的意思是:

系统根据数据不断调整模型中的参数,使模型的预测结果逐渐变得更好。

这里并没有什么魔法。

它的背后仍然是计算、数学、数据和优化。

5. 训练模型和使用模型是两回事

机器学习通常可以分成两个非常重要的阶段。

第一个阶段叫作训练(Training)

在训练过程中,系统读取大量训练数据,并不断调整模型内部的参数。

训练可能需要巨大的计算能力,因为系统可能需要处理非常庞大的数据集,同时反复更新大量参数。

第二个阶段通常叫作推理(Inference)

推理发生在模型训练完成以后。

这时候,我们把新的输入数据交给已经训练好的模型,让模型给出预测结果。

仍然以垃圾邮件识别为例:

训练:

数百万封已经标记的邮件 → 学习 → 垃圾邮件检测模型

推理:

新邮件 → 已训练模型 → 垃圾邮件或非垃圾邮件

训练的目标,是建立和调整模型

推理的目标,则是使用已经训练好的模型处理新的数据

训练和推理之间的这种区别,几乎贯穿整个现代机器学习领域。

6. 机器学习的主要类型

机器学习并不是只有一种方法,而是包含多种不同的学习方式。

其中最常见的一种叫作监督学习(Supervised Learning)

在监督学习中,训练数据通常包含已经知道的正确答案。

前面介绍的垃圾邮件识别就是监督学习。

因为训练邮件已经被提前标记为“垃圾邮件”或者“非垃圾邮件”。

另一种常见方法叫作无监督学习(Unsupervised Learning)

在无监督学习中,数据通常没有预先提供明确的正确答案。

算法需要自己分析数据,从中发现有用的结构、相似性或者不同的数据群组。

第三种重要方法叫作强化学习(Reinforcement Learning)

在强化学习中,一个系统通过不断采取行动,并根据得到的反馈来学习。

如果某个行动产生了比较好的结果,系统可能获得较高的奖励。

如果行动带来的结果较差,系统得到的奖励可能就比较低。

通过不断尝试不同的行为并观察结果,系统逐渐学习怎样采取更好的行动。

监督学习、无监督学习和强化学习解决的问题并不完全相同。

但它们背后共享一个非常重要的思想:

系统通过数据或者经验改善自己的行为,而不是完全依赖程序员事先手工编写的规则。

7. 机器学习、深度学习和人工智能

人工智能(Artificial Intelligence)、**机器学习(Machine Learning)深度学习(Deep Learning)**这几个词经常被混在一起使用。

但它们并不是完全相同的概念。

人工智能是其中范围最广的概念。

它描述的是那些被设计用来完成我们通常认为需要“智能”才能完成任务的计算机系统。

机器学习则是实现人工智能的一种方法。

机器学习不要求程序员手工编写系统所有行为规则,而是让系统通过数据学习模式。

深度学习则是机器学习中的一个进一步分类。

深度学习通常使用包含很多层的神经网络(Neural Networks),从大量数据中学习更加复杂的模式。

从概念上可以理解为:

人工智能

机器学习

深度学习

也就是说,深度学习属于机器学习,而机器学习又属于更广泛的人工智能领域。

今天的大语言模型、现代图像生成系统、语音识别系统,以及许多其他人工智能技术,都高度依赖深度学习。

但是,无论模型变得多么复杂,机器学习最基本的思想仍然没有改变:

从数据中学习有用的模式,再利用这些模式进行预测或者做出决策。

8. 为什么机器学习如此重要

传统程序设计仍然非常重要。

如果一个问题具有清晰、稳定而且可靠的规则,那么直接把这些规则写进程序,很可能仍然是最简单、最可靠的解决方案。

机器学习真正发挥优势的地方,是那些规律非常复杂,很难由程序员直接描述的问题。

例如:

识别人脸。

理解人类语音。

检测异常金融交易。

推荐电影。

识别图片中的物体。

判断一封电子邮件是不是垃圾邮件。

对于这些问题,如果试图人工列举所有可能出现的规则,往往会变得极其困难。

机器学习提供了另外一种思考方式。

传统程序设计通常问的是:

程序员应该写什么规则?

而机器学习问的是:

计算机能够从数据中学到什么模式?

从“人工编写所有规则”转向“让系统从数据中学习规律”,是现代人工智能发展过程中最重要的思想变化之一。

Conclusion

机器学习听起来可能非常复杂,但它最基本的思想其实非常直接。

在传统程序设计中:

数据 + 规则 → 输出

规则由程序员提供。

而在机器学习中:

训练数据 → 学习算法 → 模型

算法利用大量示例建立模型。

模型训练完成以后:

新数据 → 模型 → 预测

所谓“学习”,并不意味着计算机突然拥有了和人类一样的思考能力。

它真正意味着的是:

系统利用数据调整模型内部的数学参数,让模型逐渐变得更擅长完成某一项特定任务。

从垃圾邮件过滤、推荐系统,到计算机视觉、语音识别,再到今天的生成式人工智能,这个看似简单的思想,已经成为现代计算机技术的重要基础之一。

理解了机器学习最基本的工作方式以后,我们就可以继续追问下一个更加重要的问题:

机器学习模型究竟是什么?

Posted in 人工智能教程