在【机器学习12:分类 Classification】一文中,笔者介绍了二元分类模型,它可以在两个可能的选择之一之间进行选择,例如:
- 电子邮件是垃圾邮件还是非垃圾邮件。
- 肿瘤是恶性的或良性的。
在本文中,我们将研究多类分类,它可以从多种可能性中进行选择。例如:
- 这只狗是比格犬、巴吉度猎犬还是寻血猎犬?
- 这朵花是西伯利亚鸢尾、荷兰鸢尾、蓝旗鸢尾还是矮须鸢尾?
- 该飞机是波音 747、空客 320、波音 777 还是巴西航空工业公司 190?
- 这是苹果、熊、糖果、狗还是鸡蛋的图像?
在现实世界中,多分类问题需要从数百万个单独的类中进行选择。例如一个可以识别几乎任何东西的图像的多类分类模型。
目录
1.一对多
2.多类神经网络:Softmax
2.1 Softmax 选项
2.2 一个标签 vs 许多标签
3.参考文献
1.一对多
一对一提供了一种利用二元分类的方法。给定一个具有 N 个可能解决方案的分类问题,一对多解决方案由 N 个独立的二元分类器组成 - 每个可能的结果都有一个二元分类器。在训练过程中,模型运行一系列二元分类器,训练每个分类器回答一个单独的分类问题。例如,给定一张狗的图片,可能会训练五个不同的识别器,其中四个将图像视为反例(不是狗),一个将图像视为正例(狗)。那是:
- 这张图片是苹果吗?不。
- 这张图片是一只熊吗?不。
- 这张图是糖果吗?不。
- 这张图片是狗吗?是的。
- 这张图片是鸡蛋吗?不。
当类总数较小时,这种方法相当合理,但随着类数量的增加,效率会越来越低。我们可以使用深度神经网络创建一个效率明显更高的一对多模型,其中每个输出节点代表不同的类。下图建议了这种方法:
图 1. 一对多神经网络
2.多类神经网络:Softmax
回想一下,逻辑回归生成 0 到 1.0 之间的小数。例如,电子邮件分类器的逻辑回归输出为 0.8,表明电子邮件有 80% 的可能性是垃圾邮件,20% 的可能性不是垃圾邮件。显然,电子邮件是垃圾邮件或非垃圾邮件的概率之和为 1.0。
Softmax 将这一想法扩展到了多类别世界。也就是说,Softmax 为多类问题中的每个类分配小数概率。这些小数概率之和必须为 1.0。这个额外的约束有助于训练比其他情况更快地收敛。例如,回到我们在图 1 中看到的图像分析,Softmax 可能会生成属于特定类别的图像的以下可能性:
班级 | 可能性 |
---|---|
苹果 | 0.001 |
熊 | 0.04 |
糖果 | 0.008 |
狗 | 0.95 |
蛋 | 0.001 |
Softmax 是通过输出层之前的神经网络层实现的。Softmax 层必须具有与输出层相同的节点数。
图 2. 神经网络中的 Softmax 层
2.1 Softmax 选项
考虑 Softmax 的以下变体:
-
Full Softmax:就是我们一直讨论的 Softmax;也就是说,Softmax 计算每个可能类别的概率。
-
Candidate sampling:意味着 Softmax 计算所有正标签的概率,但仅计算负标签的随机样本。例如,如果我们有兴趣确定输入图像是小猎犬还是猎犬,则不必为每个非狗示例提供概率。
当类别数量较少时,Full Softmax 相当便宜,但当类别数量增加时,Full Softmax 会变得非常昂贵。候选采样可以提高具有大量类别的问题的效率。
2.2 一个标签 vs 许多标签
Softmax 假设每个示例都是一个类的成员。然而,某些示例可以同时是多个类的成员。对于这样的例子:
- 不可以使用 Softmax。
- 必须依赖多重逻辑回归。
例如,假设您的示例是仅包含一个项目(一块水果)的图像。Softmax 可以确定该物品是梨、橙子、苹果等的可能性。如果您的示例是包含各种事物的图像(不同种类水果的碗),那么您将不得不使用多重逻辑回归。
3.参考文献
链接-https://developers.google.cn/machine-learning/crash-course/multi-class-neural-networks/video-lecture