Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

4.1 机器学习与分类

分类的目标是接收单个输入(每个输入称为一项观测,observation),提取输入的有用特征或属性,再把它分入一组离散类别中的某一类。把输入记作 xx,输出来自固定类别集合 Y={y1,y2,,yM}Y=\{y_1,y_2,\ldots,y_M\},目标是返回 YY 中的预测类别。输出类别集合有时也记作 CC

在情感分析中,输入 xx 可以是一篇评论或其他文本,输出集合 YY 可以是:

{positive,negative}\{\mathrm{positive},\mathrm{negative}\}

或者:

{0,1}\{0,1\}

在语言识别中,输入是需要判断书写语言的文本,输出集合 YY 是语言集合:

Y={ 阿布哈兹语, 阿伊努语, 阿尔巴尼亚语, 阿姆哈拉语,...祖鲁语,祖尼语}Y = \{\text { 阿布哈兹语}, \text { 阿伊努语}, \text { 阿尔巴尼亚语}, \text { 阿姆哈拉语},... \text {祖鲁语}, \text {祖尼语} \}

完成分类的方法有很多。一种方法是使用人类手写规则,例如:

如果词“love”出现在 xx 中,而且前面没有“don’t”,则分类为正面。

手写规则可以成为现代 NLP 系统的组件,例如下文将看到,情感分析可以使用手工编写的正面词和负面词列表。不过,随着情境或数据随时间变化,规则可能很脆弱;而且许多任务中的不同特征存在复杂交互,例如上面规则中“don’t”的否定作用,因此人类很难制定在众多情境下都有效的规则。

另一种稍后介绍的方法,是向大语言模型发出提示,请它为某段文本提供标签。提示可以非常强大,但也存在弱点:语言模型经常产生幻觉,而且可能无法解释选择某类别的原因。

因此,最常见的分类方法是监督式机器学习(supervised machine learning)。在这种范式中,除了输入和输出类别集合,还具有带标签训练集和学习算法。第 3 章把训练集作为计算 n 元统计的场所;而在监督式机器学习中,训练集带有标签,也就是包含一组输入观测,并且每项观测都关联正确输出(“监督信号”)。通常把含 mm 个输入/输出对的训练集写成下面的形式;对于文本分类,每个输入 xx 是文本,并由人工标注相应的正确类别:

训练集:{(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))}(4.1)\text {训练集:} \{(x ^ {(1)}, y ^ {(1)}), (x ^ {(2)}, y ^ {(2)}), \ldots , (x ^ {(m)}, y ^ {(m)}) \}\tag{4.1}

我们使用带圆括号的上标表示训练集中的单项观测或实例。因此,情感分类训练集可以是一组句子或其他文本,每项都带有正确情感标签。

目标是从训练集中学到一个分类器,把新输入 xx 映射到其正确类别 yYy\in Y。为此,分类器学习发现训练句子中的特征,例如“awesome”或“awful”等词。逻辑回归等概率分类器(probabilistic classifier)不仅给出答案,即观测所属类别,还给出它属于该类别的概率。类别上的概率分布可以为下游决策提供有用信息;组合多个系统时,避免过早作出离散决定也很有用。逻辑回归等概率分类器包含四个组成部分:

  1. 输入的特征表示。每项输入观测 x(i)x^{(i)} 表示成特征向量 [x1,x2,,xn][x_1,x_2,\ldots,x_n]。输入 x(j)x^{(j)} 的第 ii 项特征通常记作 xi(j)x_i^{(j)},有时简写为 xix_i;还会看到 fif_ifi(x)f_i(x),或多类别分类中的 fi(c,x)f_i(c,x)

  2. 分类函数。它为每个输出类别 yiy_i 计算概率 P(y=yix)P(y=y_i|x),由此计算估计类别。本章将介绍用于分类的 sigmoid 和 softmax 工具。

  3. 学习时希望优化的目标函数,通常涉及最小化一个与训练样例错误对应的损失函数。本章将介绍交叉熵损失函数。

  4. 优化目标函数的算法。本章介绍随机梯度下降算法。

从最高层看,逻辑回归以及任何概率机器学习分类器都包含两个阶段:

**训练:**使用随机梯度下降和交叉熵损失训练系统;对逻辑回归而言,就是训练下文介绍的权重 w\mathbf{w} 和偏置 bb

**测试:**给定测试样例 xx,为每个输出类别 yiy_i 计算概率 P(y=yix)P(y=y_i|x)。得到概率向量后,返回概率更高的标签 y=1y=1y=0y=0

逻辑回归既能把观测分成两个类别,例如“正面情感”和“负面情感”,也能分成多个类别。双类别情形的数学更简单,因此接下来几节先从 sigmoid 函数开始介绍这种特殊逻辑回归;第 4.7 节再转向多于两个类别的多项逻辑回归和 softmax 函数。