现实世界中的一些多类别问题需要从数百万个类别中进行选择不同类别的组合。以多类别分类为例,该模型可识别几乎任何事物的图像。
本部分详细介绍了多类别分类的两个主要变体:
一对多提供了一种使用二元分类的方法以跨多个可能的标签进行一系列是或否预测。
假设某个分类问题有N种可能的解决方案,即一对多包含N个独立的二元分类器-一个二元分类器,来预测每个可能的结果。在训练期间,模型会运行一系列二元分类器,对每个分类器进行训练,分类问题。
例如,假设有一张水果的图片,可能会训练不同的识别器,每个识别器都会回答不同的是或否问题:
下图说明了在实践中的运作方式。
这种方法相当合理,很小,但随着类别数量的增加,。
我们可以创建一个更加高效的一对多模型深度神经网络,其中每个输出节点表示不同的类。下图演示了此方法。
您可能已经注意到,图8输出层中的概率值总和不是1.0(或100%)。(实际上,两者的总和为1.43。)在“一对多”模式中方法时,每个二元结果集的概率而不会影响所有其他数据集也就是说,我们要确定的“apple”与“非Apple”而不会考虑水果选项:“橙色”“梨”或“葡萄”。
但是,如果我们想要预测每种水果相互比较?在本示例中,我们不再预测“apple”与“非“apple”,我们想要预测“apple”还是“橙色”与“pear”以及“葡萄”字样。这种类型的多类别分类称为一对一分类。
我们可以使用同一类型的神经元,用于一对多分类的网络架构,具有一个关键更改。我们需要对输出层应用不同的转换。
对于一对多,我们将S型激活函数应用于每个输出这样,每个节点的输出值都介于0到1之间节点,但无法保证这些值的总和正好为1。
对于一对一运算,我们可以应用一个名为softmax的函数,向多类别问题中的每个类别分配以小数表示的概率,所有概率相加之和为1.0。这一附加限制条件有助于训练过程比其他方式更快收敛。
softmax方程如下所示:
请注意,这个公式基本上扩展了逻辑公式回归到多个类别。
下图重新实现了我们的一对多多类别分类。一对一任务的形式来表示。请注意,为了执行softmax,位于输出层正前面的层(称为softmax层)必须具有与输出层相同数量的节点。
请考虑以下softmax变体:
当类别数很小时,完整softmax的开销很小但随着类别数量的增加,费用会变得非常高。候选采样可以提高类别数量。
Softmax假设每个样本只是一个类别的成员。不过,一些样本可以同时是多个类别的成员。对于此类示例:
例如,上面图9中的1:1模型假设每个输入图片只能描绘一种水果:苹果、橙子、梨子或梨子一颗葡萄。然而,如果输入图片可能包含多种类型的水果,就要同时装有苹果和橙子,这时就要用到回归。