交叉熵损失cross entropy loss
通常在回归问题中会采用均方误差(MSE)作为损失函数,在分类任务中则常用交叉熵损失函数作为目标函数衡量模型预测结果与真实标签之间的差异程度。此外,在深度学习模型设计中我们会将交叉熵损失与Softmax激活函数结合使用这是因为单独使用交叉熵损失时其输出结果并不一定位于[0,1]区间内而通过Softmax作用使其映射到该区间从而实现对不同类别的概率预测

这里,yi是预测值,y’i是label
我们为什么要使用交叉熵呢?
比如我们给你两组数据

通常我们统计表1和表2的正确率均为33.3%。然而通过深入分析发现(表2)的表现明显优于(表1),主要由于其在数据处理上的优势。具体来说(误差来源)的概率估算在表2中更为精准。这使得我们需要找到一种有效的方法来比较这两个模型的效果。
我们用crossentropy来计算loss:
table1:第一项:- ((ln0.2)*0+(ln0.2)*0+(ln0.6)*1) = -ln0.6
同理,table1:loss = -(ln0.6+ln0.4+ln0.1)/3 = 1.243
table2:loss = -(ln0.6+0.4+0.3) = 0.877
那么我们明显看出来table2要比table1更好。
我们用MSE来计算loss:
table1:第一项:(0.2-0)^2+ (0.2-0)^2 +(0.6-1)^2 = 0.24
同理:table1:loss = (0.24+0.54+0.06)/3 = 0.28
table2:loss = (0.24+0.54+0.74)/3 = 0.507
这样看来MSE也很好啊
当采用均方误差(MSE)作为损失函数时,
经过Softmax激活后的输出呈现起伏状态,
包含多个局部极值点,
即非凸优化问题 (non-convex)。
相比之下,在采用交叉熵损失函数的情况下,
这是一个凸优化问题,
梯度下降法中应用时具有良好的收敛特性。
为了解决分类问题,在计算每个类别(label)的概率时必须将其表示为 one hot 形式,并通过max函数确定最终的分类结果。最初我们讨论了,在计算各个类别概率的过程中所使用的方法是 softmax 函数

给定输入数据集S=[1,2,3]时,在经过softmax层处理后会输出结果向量[0.09, 0.24, 0.67]。这些数值分别对应于该样本属于第一类、第二类和第三类的概率值分别为:第一类为9%,第二类为24%,第三类为67%。
