LLIS寒假学习(4):动手学深度学习(pytorch版):softmax回归解读

对比线性回归模型其输出为连续值,softmax回归模型的输出则为离散值
对于像图像类别这样的离散值预测问题,我们可以使用诸如softmax回归在内的分类模型。

一.具体问题

考虑一个简单的图像分类问题,其输入图像的高和宽均为2像素,且色彩为灰度。这样每个像素值都可以用一个标量表示。我们将图像中的4像素分别记为 x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4。假设训练数据集中图像的真实标签为狗、猫或鸡(假设可以用4像素表示出这3种动物),这些标签分别对应离散值 y 1 y_1 y1 y 2 y_2 y2 y 3 y_3 y3 。我们通常使用离散的数值来表示类别,例如 y 1 = 1 y_1=1 y1=1 y 2 = 2 y_2=2 y2=2 y 3 = 3 y_3=3 y3=3。如此,一张图像的标签为1、2和3这3个数值中的一个。虽然我们仍然可以使用回归模型来进行建模,并将预测值就近定点化到1、2和3这3个离散值之一,但这种连续值到离散值的转化通常会影响到分类质量。因此我们一般使用更加适合离散值输出的模型来解决分类问题。

二.softmax回归模型

softmax回归跟线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。因为一共有4种特征和3种输出动物类别,所以权重包含12个标量(带下标的 w w w)、偏差包含3个标量(带下标的 b b b),且对每个输入计算 o 1 o_1 o1 o 2 o_2 o2 o 3 o_3 o3这3个输出:
o 1 = x 1 w 11 + x 2 w 21 + x 3 w 31 + x 4 w 41 + b 1 o_1=x_1w_{11}+x_2w_{21}+x_3w_{31}+x_4w_{41}+b_1 o1=x1w11+x2w21+x3w31+x4w41+b1
o 2 = x 1 w 12 + x 2 w 22 + x 3 w 32 + x 4 w 42 + b 2 o_2=x_1w_{12}+x_2w_{22}+x_3w_{32}+x_4w_{42}+b_2 o2=x1w12+x2w22+x3w32+x4w42+b2
o 3 = x 1 w 13 + x 2 w 23 + x 3 w 33 + x 4 w 43 + b 3 o_3=x_1w_{13}+x_2w_{23}+x_3w_{33}+x_4w_{43}+b_3 o3=x1w13+x2w23+x3w33+x4w43+b3
既然分类问题需要得到离散的预测输出,一个简单的办法是将输出值 o i o_i oi当作预测类别是 i i i的置信度,并将值最大的输出所对应的类作为预测输出,即输出 a r g i m a x o i arg_imaxo_i argimaxoi,例如,如果 o 1 o_1 o1 o 2 o_2 o2 o 3 o_3 o3分别为0.1,10,0.1,由于 o 2 o_2 o2最大,那么预测类别为2,其代表猫。
此时出现两个问题:

  1. 输出值的范围不确定。
  2. 由于输出值不确定,以及真实标签是离散值,因此不好衡量预测误差。

**softmax运算符(softmax operator)**解决了以上两个问题。
通过数学运算,将输出值变换成正值且和为1的概率分布:
在这里插入图片描述
其中在这里插入图片描述
很明显,经过对数处理后,输出值全为正值且 y ^ 1 + y ^ 2 + y ^ 3 = 1 \hat{y}_1+\hat{y}_2+\hat{y}_3=1 y^1+y^2+y^3=1。这时候,如果 y ^ 2 = 0.8 \hat{y}_2=0.8 y^2=0.8,不管 y ^ 1 \hat{y}_1 y^1 y ^ 3 \hat{y}_3 y^3的值是多少,我们都知道图像类别为猫的概率是80%。

三.矢量计算表达式

根据回归模型的定义,我们可以将上文提到的 o 1 o_1 o1 o 2 o_2 o2 o 3 o_3 o3的表达式一并写成矢量的形式进行计算。
在这里插入图片描述
设高和宽分别为2个像素样本的特征为
在这里插入图片描述
输出层的输出为
在这里插入图片描述
预测为狗、猫或鸡的概率为
在这里插入图片描述
总的softmax回归计算表达式
在这里插入图片描述
补充概念:
神经网络图:
在深度学习中,我们可以使用神经网络图直观地表现模型结构。下图使用神经网络图表示softmax回归模型。神经网络图隐去了模型参数权重和偏差。
在这里插入图片描述
在所示的神经网络中,输入分别为 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3, x 4 x_4 x4,因此输入层的输入个数为4。输入个数也叫特征数或特征向量维度。同理,该输出层的输出个数为3。
由于输出层的计算依赖全部的输入,也就是说,输出层中的神经元和输入层中各个输入完全连接。因此,这里的输出层又叫全连接层(fully-connected layer)或稠密层(dense layer)。

四.交叉熵损失函数

在上述图像分类的例子里,如果其中一个预测值比其他两个预测值大,那么就可以说明问题了。在衡量误差的时候,平方损失对于分类问题就显得过于严格,例如, y ^ 1 = y ^ 2 = 0.2 \hat{y}_1=\hat{y}_2=0.2 y^1=y^2=0.2 y ^ 1 = 0 \hat{y}_1=0 y^1=0, y ^ 2 = 0.4 \hat{y}_2=0.4 y^2=0.4的损失要小很多,虽然两者都有同样正确的分类预测结果 y ^ 3 \hat{y}_3 y^3.
引入概念:交叉熵(cross entropy)

原文解释:
在这里插入图片描述
推荐博客:一文搞懂交叉熵在机器学习中的使用

交叉熵损失函数:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45850972/article/details/104747498
今日推荐