深度学习_深度学习基础知识_使用softmax和sigmoid来做多分类和多标签分类

多分类和多标签分类的区别

多分类: 一个样本属于且只属于多个分类中的一个,一个样本只能属于一个类,不同类之间是互斥的,比如图片中一个狗只能被划分成狗,不能被划分成猫。

多标签分类: 一个样本可以属于多个类别(或标签),不同类之间有关联,比如一个电动车可以被划分成“电动车”和“车”,这连个标签不是互斥的,而是有关联的。

用softmax做多分类和多标签分类

我们假设,一个神经网络模型最后的输出是一个向量logits = 【1,2,3,4】,这个就是神经网络全连接层的输出。我们假设一共有4个类别。

softmax可以将logits转换成一个概率分别,然后取概率值最大的最为样本的类别。这个情况是将softmax用于多分类。

我们同样可以取概率的top前几作为最终的多个标签,或者设置一个阈值,并取大于概率阈值的几个类别。这个情况我们将softmax用于多标签分类。

用sigmoid做多标签分类

sigmoid一般不用来做多分类,而是用来做二分类的。

它将一个标量数字转换成【0,1】之间的数,如果大于一个设定的概率阈值,我们认为其属于某一类,否则不属于某一类。

那么我们如何使用sigmoid进行多标签的分类呢?

我们可以针对logits中每个分类计算的结果分别使用一个sigmoid分类器,分别判定样本是否属于某个类别。

在上述向量logits中,使用sigmoid分类器将4个数字都变成【0,1】之间的概率值,假设结果为【0.02,0.06,0.8,0.6】,然后我们设置4个个概率值,比如0.3,0.3,0.3,0.3,如果概率值大于0.3判定符合类别,那么类别3和类别4都符合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章