首页 🌀深度学习

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

一、Softmax回归

下图中给出了图像及对应的标签,如果要分类应该怎么做?
在这里插入图片描述
上例中,0=其他,1=cat,2=dog,3=bc
类别的数量一共是 C = #classes = 4
在逻辑回归的基础上,输出层的单元数调整为C=4
在这里插入图片描述
$$z^{[L]}=w^{[L]}a^{[L-1]}+b^{[L]},z:(4,1)$$

$$t=e^{z^{[L]}},t:(4,1)$$

$$a^{[L]}=\frac{t_i}{\sum_{j=1}^4t_i},a:(4,1)$$

Softmax的激活函数输入值为(4,1)的向量,输出的(4,1)向量对应四种类别的概率值。
$$z^{[L]=}\left[ \begin{matrix} 5\\ 2\\ -1 \\ 3 \end{matrix} \right]$$

$$t=\left[ \begin{matrix} e^5\\ e^2\\ e^{-1} \\ e^3 \end{matrix} \right]=\left[ \begin{matrix} 148.4\\ 7.4\\ 0.4 \\ 20.1 \end{matrix} \right]$$

$$\sum_{j=1}^4 t_i=176.3$$

$$a^{[L]}=\frac{t_i}{176.3}$$

在这里插入图片描述

请输入图片描述
看一些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(\widehat y ,y)=-\sum_{j=1}^4 y_i log\widehat y_j$$
为什么这个损失函数合理?
对于识别猫而言
$$y=\left[ \begin{matrix} 0\\ 1\\ 0 \\ 0 \end{matrix} \right]$$
其中$y_1=y_3=y_4=0,y_2=1$
$$L(\widehat y ,y)=-y_2log\widehat y_2=-log\widehat y_2$$
期望L变小,那么$\widehat y_2$需要增大,正好符合第二项逼近1,识别结果为猫。
其实,这就是极大似然估计的一种表现形式!
在多样本训练中的成本函数:
$$J=\frac{1}{m} \sum_{i=1}^m L(\widehat y ,y)$$
向量化同样是对多样本进行列堆积,如下图:
在这里插入图片描述

Softmax实现梯度下降法
在这里插入图片描述
原理和之前学过的反向传播一模一样,但是我们即将引入深度学习框架进行编程。我们只需要保证前向传播是正确的,深度学习框架可以帮我们自动求导实现反向传播过程。



文章评论