逻辑回归对数据进行二分类,非0即1来判别一幅图片是否是猫猫。试想有多个类别需要我们分类,怎么办?现在我们来学习Softmax回归对多分类进行处理,Softmax回归也可以看作是逻辑回归的一种一般形式。
一、Softmax回归
下图中给出了图像及对应的标签,如果要分类应该怎么做?
上例中,0=其他,1=cat,2=dog,3=bc
类别的数量一共是 C = #classes = 4
在逻辑回归的基础上,输出层的单元数调整为C=4
Softmax的激活函数输入值为(4,1)的向量,输出的(4,1)向量对应四种类别的概率值。
看一些Softmax回归的例子
在没有隐藏层的情况下,图像分类的结果是线性的,有如下结论:
- 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.
损失函数Loss function
为什么这个损失函数合理?
对于识别猫而言
其中
期望L变小,那么需要增大,正好符合第二项逼近1,识别结果为猫。
其实,这就是极大似然估计的一种表现形式!
在多样本训练中的成本函数:
向量化同样是对多样本进行列堆积,如下图:
Softmax实现梯度下降法
原理和之前学过的反向传播一模一样,但是我们即将引入深度学习框架进行编程。我们只需要保证前向传播是正确的,深度学习框架可以帮我们自动求导实现反向传播过程。