机器学习编程:从编码到深度学习
上QQ阅读APP看书,第一时间看更新

1.2 监督学习

在机器学习的各种方法中,监督学习是迄今为止成果最令人印象深刻的一种。下面是监督学习解决像肺炎诊断这类问题的基本原理。

要进行监督学习,我们需要从一组样本数据开始,每个样本都带有计算机可以学习的标签。例如:

如你所见,样本可以是很多不同的东西:数据、文本、声音、视频等。此外,标签可以是数值,也可以是类型。数值标签只是一个数值,就像温度-柠檬水转换器一样。类型标签表示预先定义的集合中的某个类别,例如在犬种检测器的例子中。使用一些想象力,你可以想出很多其他例子来预测一些事物,根据数值或者类型的标签来预测其他事物。

我们假设已经收集了一些标记过的样本。现在可以进行监督学习的两个阶段:

阶段1:训练阶段

我们将带有标签的样本提供给一个用于发现模式的算法。例如,该算法可能会注意到,所有的肺炎扫描图片都具有某些共同的特征(可能是某些不透明的区域),而这些特征在非肺炎扫描图片中是没有的。这个阶段称为训练阶段,因为算法会一遍又一遍地观看样本数据,并学习识别这些模式。

阶段2:预测阶段

现在算法已经知道了肺炎的样子,于是切换到预测阶段。我们可以在这个阶段收获训练工作的成果。向训练过的算法展示未被标注的X光扫描图片,算法会告诉我们它是否具有肺炎特征。

这里还有关于监督学习的另一个例子——一种可以识别动物类型的系统。每个输入数据是一张关于某种动物的图片,每个样本的标签是图片中动物的物种。在训练阶段,我们向算法展示带标签的图像。在预测阶段,我们向算法展示一张未被标注的不带标签的图像,要求算法对该图像的标签进行猜测。

前面已经说过,计算机程序可以在机器学习的过程中“算出”数据。监督学习就是这种过程的一个例子。在传统的编程过程中,可以编写一个程序让计算机由输入算出输出;在监督学习中,只要给出程序输入和输出的样本数据,计算机就能自己学会如何从一个输入算出一个输出。

既然你已经阅读了关于监督学习的一种高屋建瓴的解释,那么可能会有比初学时更多的问题。我们说过,监督学习程序在样本数据中“注意共同的特征”,并“发现模式”——但它是如何做到的呢?让我们从一个抽象的层次开始,看看这个魔法是如何实现的。