当前位置:   article > 正文

想明白多分类,必须得谈逻辑回归_多分类逻辑回归

多分类逻辑回归

1 引例

《跟我一起机器学》 中,我们已经介绍了什么是逻辑回归回归。但是为了能更好的与深度学习相关内容进行衔接,在本篇文章中我们依旧是首先回顾一下逻辑回归,然后再一步步引入多分类直至过渡到深度神经网络的相关学习中。

1.1 从逻辑回归说起

我们都知道逻辑回归其实并不是一个回归任务,而是一个彻彻底底的分类任务。之所以当时被称之为回归其原因之一就是逻辑回归在最后预测的时候首先是输出一个 [ 0 , 1 ] [0,1] [0,1]的连续值,然后我们再来人为的指定一个阈值进行分类。也就是,你还可以将逻辑回归先看成是一个回归任务,然后再根据预测得到的阈值进行分类。因此,对于一个包含有4个特征输入的逻辑回归模型,我们同样可以用如下结构图进行表示:

图 1. 逻辑回归结构图(偏置未画出)

如图1所示,左边 x 1 x_1 x1 x 4 x_4 x4为模型的输入。输入特征经过线性组合后再经激活函数sigmoid作用后便能得到一个位于区间 [ 0 , 1 ] [0,1] [0,1]的连续值。最后,通过设定一个阈值来对不同样本进行分类得到类标 y y y,完成整个二分类任务。可以看出,其与线性回归的唯一区别就在于对输出层的处理上。

1.2 问如何解决多分类问题

在说完逻辑回归这个二分类模型后,我们是不是自然而然的就会想到如何进行多分类的任务呢?因为在实际情况中,绝大多数任务场景都不会是一个简单的二分类任务。在**《跟我一起机器学习》**中我们介绍过可以通过建立多个二分类模型利用One-vs-All的思想来完成多分类任务。

图 2. 多分类示意图(偏置未画出)

如图2所示为通过三个逻辑回归模型来完成一个三分类任务的解决方案。对于包含有A、B、C三个类别的分类任务来说,图2所示的三个模型将分别以[1,0,0][0,1,0][0,0,1]的划分方式将所有的数据样本重新进行类别划分。也就是说第一个模型在建模时仅把A类样本认为是正样本,其余两类均看作是负样本;而第二个模型在建模时仅把B类样本认为是正样本其余的均为负样本。最后,对于同一个样本,其所属类别应是三个分类器输出可信度最高的分类器所对于的类别。

2 从单分类到多分类

对于图2所示的这种表示方法来说,当分类类别较多时表示起来可能就不太那么方便;并且明显可以看出,图2所示的结构图可以进行简化,因为其输入均为一样。

图 3. 多分类结构图(偏置未画出)

从图3可以看出,这种表示形式比图2简洁了许多,其中中间部分不同黑色实线均表示不同的权重参数。同时,我们在利用图3所示的结构进行预测时,只需要选择三个输出部分置信值最高的所对应的类别即可。因此,哪怕是再多的分类的问题,我们也可以如法炮制的进行下去。一切看起来都是那么的合理与自然。

在介绍逻辑回归时我们说过,经过激活函数 g ( ⋅ ) g(\cdot) g()作用后可以将原本取值为 ( − ∞ , + ∞ ) (-\infin,+\infin) (,+)的输出映射到范围 [ 0 , 1 ] [0,1] [0,1]中,进而可以看作是输入样本被预测为正样本时的概率。如果是通过图3所示的结构进行预测时,某个输入样本可能会得到这么一个结果 [ 0.8 , 0.7 , 0.9 ] [0.8,0.7,0.9] [0.8,0.7,0.9]。虽然根据前面的规则该样本应该被认为是属于第三个类别,但这样的结果似乎看起来不那么友好。如果能有一种方法将这三个置信值进行归一化,使得三者在大小的关系仍旧不变,但是三者相加等于1,那么我们就可以将这个输出结果直接看作是该样本属于某一类的概率,然后依旧是选择最大的即可。例如将上面的 [ 0.8 , 0.7 , 0.9 ] [0.8,0.7,0.9] [0.8,0.7,0.9]归一化成 [ 0.33 , 0.30 , 0.37 ] [0.33,0.30,0.37] [0.33,0.30,0.37]

注:上面这一段其实并不算是要引入Softmax的主要原因,其真正原因待介绍完反向传播后再进行介绍。

2.1 softmax回归

上面我们说到想找一种方法将输出的结果进行归一化,那有没有这样的方法呢?答案是当然有,而Softmax回归就是其中之一。同逻辑回归一样,Softmax也是一种分类模型,并且它还是一种多分类模型。

图 4. 三分类Softmax结构图(偏置未画出)

同上面介绍的逻辑回归一样,Softmax回归首先进行人就是各个特征之间的线性组合,即:
o 1 = x 1 w 1 + x 2 w 2 + x 3 w 3 + x 4 w 4 + b 1 o 2 = x 1 w 5 + x 2 w 6 + x 3 w 7 + x 4 w 8 + b 2 o 3 = x 1 w 9 + x 2 w 10 + x 3 w 11 + x 4 w 12 + b 3 (1)

o1=x1w1+x2w2+x3w3+x4w4+b1o2=x1w5+x2w6+x3w7+x4w8+b2o3=x1w9+x2w10+x3w11+x4w12+b3
\tag{1} o1o2o3=x1w1+x2w2+x3w3+x4w4+b1

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号