Softmax概念:
Softmax
函数主要用于多分类问题。由于网络层的输出的区间一般是无法确定的,所以就需要将结果进行generalize
,softmax
的工作就是将输出转化为值为正且同一组输出值的和为1的一组概率值,将所有输出结果放入到同一个标尺中进行衡量,能够更加有效的估计输出值的误差。
理解起来也很容易,将大家看为一个整体,以整体为一个基准,看每个输出在整体中的占比(影响力)。这种方法也叫归一化,在数据预处理时经常会看到。
假设最终预测结果为三类,分别为y1,y2,y3,特征为x1,x2,x3,x4,经过网络层后的输出值为o1,o2,o3,y^1,y^2,y^3为经过softmax
处理后的分类结果。其式子如下:
o1=x1w11+x2w21+x3w31+x4w41+b1o2=x1w12+x2w22+x3w32+x4w42+b2o3=x1w13+x2w23+x3w33+x4w43+b3
y^1,y^2,y^3=softmax(o1,o2,o3)
y^1=∑i=13exp(oi)exp(o1),y^2=∑i=13exp(oi)exp(o2),y^3=∑i=13exp(oi)exp(o3)
交叉熵损失函数
平方损失函数,其式如下:
Loss=∣∣∣y^(i)−y(i)∣∣∣2/2
平方损失函数并不适用于特定的分类问题,因为一般的平方损失函数是有上限(所有标签都为False
,损失值依旧为有效值),并且平方损失函数过于的严格,例如y^1(i)=y^2(i)=0.2比y^1(i)=y^2(i)=0.4的损失小很多,虽然两者都是同样是正确的预测结果。
交叉损失函数则可以使用整个非负域来反映优化的程度。从本质上看,平方差的意义和交叉熵的意义不一样。概率理解上,平方损失函数意味着模型的输出是以预测值为均值的高斯分布,损失函数是在这个预测分布下真实值的似然度,softmax损失意味着真实标签的似然度。分类问题中的标签,是没有连续的概念的。1-hot作为标签的一种表达方式,每个标签之间的距离也是没有实际意义的,所以预测值和标签两个向量之间的平方差这个值不能反应分类这个问题的优化程度。
H(y(i),y^(i))=−j=1∑qyj(i)logy^j(i)
ℓ(Θ)=n1i=1∑nH(y(i),y^(i)),ℓ(Θ)=n1i=1∑nH(y(i),y^(i))