神经网络:多类别分类

您之前遇到了 二元分类 可以从两个可能的选项中选择其一,例如:

  • 指定电子邮件是垃圾邮件还是非垃圾邮件。
  • 特定肿瘤是恶性或良性的。

在本节中,我们将介绍 多类别分类 模型,并从多种可能性中进行选择。例如:

  • 这只狗是小猎犬、巴吉度猎犬还是寻血猎犬?
  • 这朵花是西伯利亚鸢尾、荷兰鸢尾、蓝旗鸢尾吗? 还是矮胡须鸢尾?
  • 那架飞机是波音 747、空客 320、波音 777 还是 Embraer 190?
  • 这是一张苹果、熊、糖果、狗还是鸡蛋的图片?

现实世界中的一些多类别问题需要从数百万个类别中进行选择 不同类别的组合。以多类别分类为例, 该模型可识别几乎任何事物的图像。

本部分详细介绍了多类别分类的两个主要变体:

一对多

一对多提供了一种使用二元分类的方法 以跨多个可能的标签进行一系列是或否预测。

假设某个分类问题有 N 种可能的解决方案,即一对多 包含 N 个独立的二元分类器 - 一个二元分类器, 来预测每个可能的结果。在训练期间,模型会运行 一系列二元分类器,对每个分类器进行训练, 分类问题。

例如,假设有一张水果的图片, 可能会训练不同的识别器,每个识别器都会回答不同的是或否 问题:

  1. 这是一张苹果的图片吗?
  2. 这张图片是橙色的吗?
  3. 这是一张香蕉的图片吗?
  4. 这张图片是葡萄吗?

下图说明了在实践中的运作方式。

图 9.将梨作为输入传递到 4 个不同
      二元分类器模型。第一个模型预测“apple”或“非”
      “apple”,而其预测结果是“not apple”。第二个模型
      “橙色”即“not orange”,即预测为“not orange”。通过
      第三个模型即“not pear”,其预测结果是
      “pear”。第四个模型预测“grape”或“非葡萄”字样,而其
      而不是“葡萄”。 <ph type="x-smartling-placeholder">
</ph> 图 9.一颗梨作为输入传递到四个不同的 二元分类器。第一种、第二和第四个模型(预测 图片是苹果、橙子还是葡萄) 来预测负类别。第三个模型(预测 图片是梨)预测正类别。

这种方法相当合理, 很小,但随着类别数量的增加, 。

我们可以创建一个更加高效的一对多模型 深度神经网络,其中每个输出节点表示不同的 类。下图演示了此方法。

图 10。一个具有以下架构的神经网络:输入层
      1 个节点、包含 3 个节点的隐藏层、包含 4 个节点的隐藏层,
      输出层,其中包含 4 个节点。向输入节点馈送一个梨图像。
      对输出层应用 S 型激活函数。每个
      输出节点表示该图像是指定的
      水果。输出节点 1 表示“Is apple?”值为 0.34
      输出节点 2 表示“Is orange?”(是橙色吗?)值为 0.18
      输出节点 3 表示“Is pear?”(是梨吗?)值为 0.84
      输出节点 4 表示“Is grape?”(是葡萄吗?)值为 0.07 <ph type="x-smartling-placeholder">
</ph> 图 10.使用 模型。将 S 型激活函数应用于输出 每个输出值都表示 图片是指定的水果。该模型预测,有 84% 图片是梨的概率, 葡萄。

一对一 (softmax)

您可能已经注意到,图 10 的输出层中的 总和不是 1.0(或 100%)。(实际上,两者的总和为 1.43。)在“一对多”模式中 方法时,每个二元结果集的概率 而不会影响所有其他数据集也就是说,我们要确定 的“apple”与“非 Apple”而不会考虑 水果选项:“橙色”“梨”或“葡萄”。

但是,如果我们想要预测每种水果 相互比较?在本示例中,我们不再预测“apple”与“非 “apple”,我们想要预测“apple”还是“橙色”与“pear”以及“葡萄”字样。 这种类型的多类别分类称为一对一分类

我们可以使用同一类型的神经元, 用于一对多分类的网络架构,具有一个关键更改。 我们需要对输出层应用不同的转换。

对于一对多,我们将 S 型激活函数应用于每个输出 这样,每个节点的输出值都介于 0 到 1 之间 节点,但无法保证这些值的总和正好为 1。

对于一对一运算,我们可以应用一个名为 softmax 的函数, 向多类别问题中的每个类别分配以小数表示的概率, 所有概率相加之和为 1.0。这一附加限制条件 有助于训练过程比其他方式更快收敛。

下图重新实现了我们的一对多多类别分类。 一对一任务的形式来表示。请注意,为了执行 softmax, 位于输出层正前面的层(称为 softmax 层)必须具有 与输出层相同数量的节点。

图 11. 采用以下架构的神经网络:输入
      有 1 个节点的隐藏层、有 3 个节点的隐藏层、有 4 个节点的隐藏层,
      输出层,其中包含 4 个节点。向输入节点馈送一个梨图像。
      将 softmax 激活函数应用于输出层。每个
      输出节点表示该图像是指定的
      水果。输出节点 1 表示“Is apple?”值为 0.19
      输出节点 2 表示“Is orange?”(是橙色吗?)值为 0.12
      输出节点 3 表示“Is pear?”(是梨吗?)值为 0.63
      输出节点 4 表示“Is grape?”(是葡萄吗?)值为 0.06 <ph type="x-smartling-placeholder">
</ph> 图 11.神经网络实现一对一分类,使用 softmax 层。每个输出值都表示 输入图片是指定的水果,而不是其他三种水果 (所有概率的总和为 1.0)。该模型预测,有 63% 图片是梨的概率。

Softmax 选项

请考虑以下 softmax 变体:

  • 完整 softmax 是我们一直以来讨论的 softmax;即 softmax 会计算每个可能的类别的概率。

  • 候选采样是指 softmax 计算概率的 但仅随机抽取一个样本, 负标签。例如,如果我们想要确定 无论输入图片是小猎犬还是寻血猎犬,我们都不必 为每个非狗狗样本提供概率。

当类别数很小时,完整 softmax 的开销很小 但随着类别数量的增加,费用会变得非常高。 候选采样可以提高 类别数量。

一个标签还是多个标签

Softmax 假设每个样本只是一个类别的成员。 不过,一些样本可以同时是多个类别的成员。 对于此类示例:

  • 您不能使用 softmax。
  • 您必须依赖于多个逻辑回归。

例如,上面图 11 中的 1v1 模型假设每个输入 图片只能描绘一种水果:苹果、橙子、梨子或梨子 一颗葡萄。然而,如果输入图片可能包含多种类型的水果, 就要同时装有苹果和橙子,这时就要用到 回归。