25、二分类、多分类与多标签问题的区别

二分类、多分类与多标签的基本概念

二分类:表示分类任务中有两个类别,比如我们想识别一幅图片是不是猫。也就是说,训练一个分类器,输入一幅图片,用特征向量x表示,输出是不是猫,用y=0或1表示。二类分类是假设每个样本都被设置了一个且仅有一个标签 0 或者 1。


多类分类(Multiclass classification): 表示分类任务中有多个类别, 比如对一堆水果图片分类, 它们可能是橘子、苹果、梨等. 多类分类是假设每个样本都被设置了一个且仅有一个标签: 一个水果可以是苹果或者梨, 但是同时不可能是两者。


多标签分类(Multilabel classification): 给每个样本一系列的目标标签. 可以想象成一个数据点的各属性不是相互排斥的(一个水果既是苹果又是梨就是相互排斥的), 比如一个文档相关的话题. 一个文本可能被同时认为是宗教、政治、金融或者教育相关话题。

多分类问题与二分类问题关系

 两类问题是分类问题中最简单的一种。而很多多类问题可以被分解为多个两类问题进行求解。

多标签问题与二分类问题关系

 

这幅图中有一栋房子、树、云、草,具有多个标签。多标签问题主要体现含有什么标签,而多分类问题主要体现区分出。

整个网络是fully connected全连接网络。 

* 网络结构是输入层=你的特征的维度。 

* 隐藏层是500*100,激励函数都是relu。隐藏层的节点数量和深度请根据自己的数量来自行调整,这里只是举例。 

* 输出层是你的label的维度。使用sigmoid作为激励,使输出值介于0-1之间。 

* 训练数据的label请用0和1的向量来表示。0代表这条数据没有这个位的label,1代表这条数据有这个位的label。假设3个label的向量[天空,人,大海]的向量值是[1,1,0]的编码的意思是这张图片有天空,有人,但是没有大海。 

* 使用binary_crossentropy来进行损失函数的评价,从而在训练过程中不断降低交叉熵。实际变相的使1的label的节点的输出值更靠近1,0的label的节点的输出值更靠近0。

总结

 

分类问题名称

输出层使用激活函数

对应的损失函数

二分类

sigmoid函数

二分类交叉熵损失函数

多分类

softmax函数

多类别交叉熵损失函数

多标签分类

sigmoid函数

二分类交叉熵损失函数

参考文献

[1] https://juejin.im/post/5b38971be51d4558b10aad26

posted @ 2019-10-27 18:55  Andy_George  阅读(2722)  评论(0编辑  收藏