【损失函数系列】softmax loss损失函数详解

1.损失函数:

        损失函数(loss function)是用来评测模型的预测值f(x)与真实值Y的相似程度,损失函数越小,就代表模型的鲁棒性越好,损失函数指导模型学习。根据损失函数来做反向传播修改模型参数。机器学习的目的就是学习一组参数,使得预测值与真值无限接近。

2.softmax loss:

        它是损失函数的一种,是softmax和cross-entropy loss组合而成的损失函数。

        先看softmax,其函数形式如下:其中z就是某个神经网络全连接层输出的一组结果,例如分类问题,做4分类,z就是一个1*4的向量。j就是0~3下标号。zk就是全连接层第k个值。

                                                                               (1)

 全连接输出向量z的每个值没有大小限制,显然通过(1)后就强制将它给限制在0~1之间了,变成概率值。

        cross-entropy loss 交叉熵损失函数在我的博客详细写了下:https://blog.csdn.net/gbz3300255/article/details/106810047。

这里就直接上交叉熵的公式了:

                                                                  (2)

f(zc)就是上面的f(fzk),就是 softmax函数的输出值。yc就是样本真值喽。公式(2)就是最终的损失函数值了。

举例说明:例如真实样本标签为

yc = [0, 0, 1, 0]。  

而第一个预测结果为

f(z1) = [0.1, 0.1,  0.7, 0.1]

f(z2) = [0.25, 0.2, 0.3, 0.35]

f(z3) = [0.15, 0.2, 0.1, 0.55]

显然第一个预测结果是对的,第二个,第三个都是错的。他们的损失函数值分别为

Lz1 = -log0.7

Lz2 = -log0.3

Lz3 = -log0.1

L函数图像如下:

                              【损失函数系列】softmax loss损失函数详解_第1张图片

显然,与真值越接近,损失函数越小,与真值相去越远 ,损失函数越大。优化过程就是不断的将与真值接近的那个概率值提升,提升,再提升,让损失函数降低,降低,再降低。

 

 

 

 

你可能感兴趣的:(机器学习)