前面有介绍逻辑回归模型是如何从二分类推广到多分类,参见 二分类 到 多分类 之 逻辑回归多分类推广。这次谈一谈单目标分类到多目标分类。

首先,解释一下二者的区别。单目标分类是指每个样本只能属于一个类别,比如训练猫狗分类器时,一张图片中只能包含猫或者狗; 多目标则一个样本中可以同时包含多个类别,如一张图片中可以同时包含一只猫和狗。注意,二分类和多分类都属于单目标分类的范畴。

1. 基本思路

首先,还是回顾一下逻辑回归模型的基本思路:

  1. 对于单个样本 x x x,根据多项式函数 f ( x ) = ω i T x f(x)=\omega_i^T x f(x)=ωiTx,得到其属于类别 i i i 的得分 s i s_i si;
  2. 通过非线性函数将样本属于各个类别的得分 s = ( s 0 , … , s n ) s=(s_0, …,s_n) s=(s0,sn) 映射为概率值 p = ( p 0 , … , p n ) p=(p_0, …,p_n) p=(p0,pn),其中,n为总类别数;
  3. 最后计算交叉熵作为 loss,反向梯度传播求解参数 ω \omega ω

其中,第二步的非线性函数:

  • 对于二分类逻辑回归模型,为 logistic 函数,
  • 对于多分类逻辑回归模型,则为 sigmoid 函数,如下图所示。

单目标分类 到 多目标分类 之 逻辑回归多目标分类推广

详细介绍参见 二分类 到 多分类 之 逻辑回归多分类推广

2. 概率值转换

在前面的文章里我们有提到,对于多分类,如果需要将 p p p 当做概率值,则需要保证:样本属于各个类别的概率和为1。但这是基于一个假设,即各个类别之间是互斥的。也就是说一张图片要么属于猫,要么属于狗,不能即是猫又是狗。

但是对于多目标分类,类别之间是不完全互斥的。一张图片中既可以有猫也可以有狗,那分类器就要能够同时识别到这两个类别。这种时候,样本属于各个类别的概率就是相互独立的。我们更倾向于将这个问题定位为多个二分类问题。即对于每个类别而言,都是一个二分类问题。

以博主童年的回忆举个例子,我们要训练一个猫狗老鼠的分类器。对于下面这张图片,里面同时包含猫和老鼠两个类别。那我们可以将这个分解为三个子问题:

1)图中是否有猫
2)图中是否有狗
3)图中是否有老鼠

单目标分类 到 多目标分类 之 逻辑回归多目标分类推广

这三个问题每一个都是二分类问题。就可以采用二分类的思想通过 logistic 函数将每个类别得分 s i s_i si 转换为相应的概率值 p i p_i pi。即:
p 猫 = 1 1 + e s 猫 p 狗 = 1 1 + e s 狗 p 老 鼠 = 1 1 + e s 老 鼠 p_猫 = \dfrac{1}{1+e^{s_猫}} \\ p_狗 = \dfrac{1}{1+e^{s_狗}} \\ p_{老鼠} = \dfrac{1}{1+e^{s_{老鼠}}} p=1+es1p=1+es1p=1+es1

注意:此时得到的概率值 p = ( p 猫 , p 狗 , p 老 鼠 ) p=(p_猫, p_狗,p_{老鼠}) p=(p,pp),加和不为1。因为每个类别的概率值都是单独通过logistic 函数计算得到的。

3. loss定义

在前面的文章里我们有提到,分类模型中 loss 一般都是使用的交叉熵函数。其对于二分类和多分类问题都适用,参见Loss进化史

对于多分类,由于样本属于各个类别的概率是相互独立的,所以定义 loss 时仍旧沿用的二分类问题处理的方式:通过交叉熵分别计算样本属于每个类别的loss,再加和。即

L 猫 = − [ y 猫 ⋅ l o g ( p 猫 ) + ( 1 − y 猫 ) ⋅ l o g ( 1 − p 猫 ) ] L 狗 = − [ y 狗 ⋅ l o g ( p 狗 ) + ( 1 − y 狗 ) ⋅ l o g ( 1 − p 狗 ) ] L 老 鼠 = − [ y 老 鼠 ⋅ l o g ( p 老 鼠 ) + ( 1 − y 老 鼠 ) ⋅ l o g ( 1 − p 老 鼠 ) ] L_猫 = -[y_猫 \cdot log(p_猫) + (1-y_猫) \cdot log(1-p_猫)] \\ L_狗 = -[y_狗 \cdot log(p_狗) + (1-y_狗) \cdot log(1-p_狗)] \\ L_{老鼠} = -[y_{老鼠} \cdot log(p_{老鼠}) + (1-y_{老鼠}) \cdot log(1-p_{老鼠})] \\ L=[ylog(p)+(1y)log(1p)]L=[ylog(p)+(1y)log(1p)]L=[ylog(p)+(1y)log(1p)]

最终,该样本的loss为 L = L 猫 + L 狗 + L 老 鼠 L = L_猫 + L_狗 + L_{老鼠} L=L+L+L

4. 总结

总之,当标签类别之间是互斥时,适合选择softmax回归分类器;当标签类别之间不完全互斥时,适合选择建立多个独立的logistic回归分类器。

最后附上这三种问题的汇总对比图:

单目标分类 到 多目标分类 之 逻辑回归多目标分类推广

相关文章:

  • 2021-05-17
  • 2021-09-05
  • 2022-12-23
  • 2022-01-21
  • 2022-02-08
  • 2022-12-23
  • 2021-09-02
  • 2022-12-23
猜你喜欢
  • 2021-04-04
  • 2021-11-28
  • 2021-12-03
  • 2021-05-05
  • 2022-02-27
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案