逻辑回归对数据进行二分类,非0即1来判别一幅图片是否是猫猫。试想有多个类别需要我们分类,怎么办?现在我们来学习Softmax回归对多分类进行处理,Softmax回归也可以看作是逻辑回归的一种一般形式。

一、Softmax回归

下图中给出了图像及对应的标签,如果要分类应该怎么做?

分类回归树算法函数 分类回归命令_ide


上例中,0=其他,1=cat,2=dog,3=bc

类别的数量一共是 C = #classes = 4

在逻辑回归的基础上,输出层的单元数调整为C=4

分类回归树算法函数 分类回归命令_Soft_02


分类回归树算法函数 分类回归命令_二分类_03

分类回归树算法函数 分类回归命令_Soft_04

分类回归树算法函数 分类回归命令_分类回归树算法函数_05

Softmax的激活函数输入值为(4,1)的向量,输出的(4,1)向量对应四种类别的概率值。
分类回归树算法函数 分类回归命令_分类回归树算法函数_06

分类回归树算法函数 分类回归命令_分类回归树算法函数_07

分类回归树算法函数 分类回归命令_Soft_08

分类回归树算法函数 分类回归命令_分类回归树算法函数_09

分类回归树算法函数 分类回归命令_二分类_10


分类回归树算法函数 分类回归命令_ide_11

看一些Softmax回归的例子

分类回归树算法函数 分类回归命令_分类回归树算法函数_12


没有隐藏层的情况下,图像分类的结果是线性的,有如下结论:

  • Softmax回归有决策边界
  • Softmax回归有两个以上的分类
  • Softmax回归是逻辑回归的一般形式,将二分类扩展到C分类

如果加入隐藏层,那么就可以做非线性分类,决策边界即是曲线。

  • 如何证明C=2时,Softmax就是逻辑回归?
    实际上很好证明,C=2时输出为(2,1)矩阵,仅仅需要将这两个值进行偏移(大于0.5取1,小于0.5取0),即实现了0/1的二分类。

二、训练一个Softmax分类器

首先说说为什么这种分类称作Softmax,其实是对比Hardmax,Hardmax将最大值置1放在对应矩阵位置上,其他位置全部置0.而Softmax就显得温和许多了,计算出每种分类的概率,并且概率之和等于1.

分类回归树算法函数 分类回归命令_ide_13


损失函数Loss function

分类回归树算法函数 分类回归命令_ide_14

为什么这个损失函数合理?

对于识别猫而言

分类回归树算法函数 分类回归命令_分类回归树算法函数_15

其中分类回归树算法函数 分类回归命令_二分类_16

分类回归树算法函数 分类回归命令_分类回归树算法函数_17

期望L变小,那么分类回归树算法函数 分类回归命令_分类回归树算法函数_18需要增大,正好符合第二项逼近1,识别结果为猫。

其实,这就是极大似然估计的一种表现形式!

在多样本训练中的成本函数:

分类回归树算法函数 分类回归命令_ide_19

向量化同样是对多样本进行列堆积,如下图:

分类回归树算法函数 分类回归命令_Soft_20

Softmax实现梯度下降法

分类回归树算法函数 分类回归命令_ide_21


原理和之前学过的反向传播一模一样,但是我们即将引入深度学习框架进行编程。我们只需要保证前向传播是正确的,深度学习框架可以帮我们自动求导实现反向传播过程。