Python深度学习——softmax的概念

softmax的概念

本文主要内容:
1、softmax的基本概念。

softmax的基本概念

1、分类问题
一个简单的图像分类问题,输入图像的高和宽均为2像素,色彩为灰度。
图像中的4像素分别记为x1,x2,x3,x4。
假设真实标签为狗、猫或者鸡,这些标签对应的离散值为y1,y2,y3。
我们通常使用离散的数值来表示类别,例如y1=1,y2=2,y3=3。

2、权重矢量
o1 = x1w11 + x2w21 + x3w31 + x4w41 + b1
o2 = x1w12 + x2w22 + x3w32 + x4w42 + b2
o3 = x1w13 + x2w23 + x3w33 + x4w43 + b3

3、神经网络图
下图用神经网络图描绘了上面的计算。softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出o1、o2、o3的计算都要依赖于所有的输入x1、x2、x3、x4,softmax回归的输出层也是一个全连接层。
Python深度学习——softmax的概念_第1张图片
既然分类问题需要得到离散的预测输出,一个简单的办法是将输出值oi当作预测类别是的置信度,并将值最大的输出所对应的类作为预测输出,即输出arg maxoi。例如,如果o1、o2、o3分别为0.1、10、0.1,由于o2最大,那么预测类别为2,其代表猫。

4、输出问题
直接使用输出层的输出有两个问题:
一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。例如,刚才举的例子中的输出值10表示“很置信”图像类别为猫,因为该输出值是其他两类的输出值的100倍。但如果o1 = o3 = 1000,那么输出值10却又表示图像类别为猫的概率很低。
另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。

softmax运算符(softmax operator)解决了以上两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:
Python深度学习——softmax的概念_第2张图片
5、计算效率
单样本矢量计算表达式
为了提高计算效率,我们可以将单样本分类通过矢量计算来表达。在上面的图像分类问题中,假设softmax回归的权重和偏差参数分别为
Python深度学习——softmax的概念_第3张图片
设高和宽分别为2个像素的图像样本i的特征为
在这里插入图片描述
输出层的输出为
在这里插入图片描述
预测为狗、猫或鸡的概率分布为
在这里插入图片描述
somftmax回归对样本i分类的矢量计算表达式为
在这里插入图片描述
6、小批量矢量计算表达式
Python深度学习——softmax的概念_第4张图片
softmax函数的实现比较好理解,公式也相对比较简单。

你可能感兴趣的:(Python深度学习——softmax的概念)