Softmax与分类模型
今天完成的依然是day1打卡内容中的~
学习内容:
- softmax回归的基本概念
- 如何获取Fashion-MNIST数据集和读取数据
- Softmax回归模型的从零开始实现,实现一个对Fashion-MNIST训练集中的图像数据进行分类的模型
- 使用pytorch重新实现Softmax回归模型
Softmax的基本概念
-
分类问题
一个简单的图像分类问题,输入图像的高和宽均为2像素,色彩为灰度(channel=1)。图像中的4个像素分别标记为x1,x2,x3,x4。
假设真实标签为狗、猫或者鸡,这些标签对应的离散值为y1=1,y2=2,y3=3。 -
权重矢量
-
神经网络图
下图用神经网络图描绘了上面的计算。softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出o1、o2、o3的计算都要依赖于所有的输入x1、x2、x3、x4,softmax回归的输出层也是一个全连接层。
输出问题
直接使用输出层的输出有两个问题:(个人认为这两点也很好的回答了“为什么要在分类任务的输出层后加softmax?”这个问题)
1.首先,由于输出层的输出值范围不确定,我们难以直观上判断这些值的意义。例如,刚才举的例子中输出值10表示“很置信”图像类别为猫,因为该输出值是其他两类输出值的100倍。但如果o1=o3=1000,那么输出值10却又表示图像类别为猫的概率很低。
2.另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。softmax运算符解决了以上两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:
因此,softmax运算不改变预测类别输出。
- 小批量矢量计算表达式
交叉熵损失函数
模型训练和预测
在训练好softmax回归模型后,给定任一样本特征,就可以预测每个输出类别的概率。通常,我们把预测概率最大的类别作为输出类别。如果它与真实类别(标签)一致,说明这次预测是正确的。
我们将使用准确率(accuracy)来评价模型的表现。它等于正确预测数量与总预测数量之比。
放一个练习题~