最近,在学习深度学习中的一系列损失函数。本文就softmax loss损失函数做原理分析。
思路:softmax函数–>softmax loss损失函数
1.softmax函数
-
首先,要明白的是,softmax是一个函数;
-
然后,要明白的是,该函数的输出值是一个向量,且取值范围为[0,1]。
-
最后,要明白的是,该函数是个输出函数。
公式如下所示:
S
j
=
e
a
J
∑
k
=
1
T
e
a
k
S_j=\frac{e^{a_J}}{\sum_{k=1}^{T}{e^{a_k}}}
Sj=∑k=1TeakeaJ
其中,
T
T
T代表样本输出总类别数;
a
k
a_k
ak表示输出结果中第
k
k
k个位置上的数值。
如:10分类问题,其中每个样本输出的结果是靠近10个标签值的概率值。当概率最大的为分类结果时,其余视为0。经典示意图如下(图1、图2)所示:
2.softmax loss损失函数
softmax loss是一个损失函数。公式如下所示:
L
=
−
∑
J
=
1
T
y
j
l
o
g
S
j
L=-\sum_{J=1}^{T}{y_j}{log}{S_j}
L=−J=1∑TyjlogSj
其中,
S
J
S_J
SJ是softmax函数输出的向量的第
j
j
j个值,表示该样本靠近标签的概率值;
y
j
y_j
yj的取值为0或1,当得到分类结果正确时,取值1,其余情况取值0。
从下方函数图3可以看出,当得到正确分类项得到的概率值越低( l o g S j logS_j logSj),其对应损失函数( L L L)也就越大。