softmax loss
1.softmax函数
softmax函数是一种常用的激活函数,通常用于多分类任务中。给定一个向量,softmax函数将每个元素转化为一个介于0~1之间的概率值,并且所有元素的概率之和为1。softmax函数的定义如下:
softmax
(
z
)
i
=
e
z
i
∑
j
=
1
K
e
z
j
\operatorname{softmax}(z)_i=\frac{e^{z_i}}{\sum_{j=1}^Ke^{z_j}}
softmax(z)i=∑j=1Kezjezi
其中
z
z
z是输入向量,
K
K
K是向量的维度。softmax函数的作用是将输入的原始分数(通常称之为logits1)转化为表示各个类别概率的分布。
2.交叉熵损失函数
交叉熵损失函数是用来衡量两个概率分布之间的差异性的一种度量方式。在深度学习中,常用交叉熵损失函数来衡量模型预测的概率分布与真实标签的分布之间的差异,从而作为优化目标来训练模型。
对于二分类问题,交叉熵损失函数的定义如下:
Binary Cross Entropy Loss
=
−
1
N
∑
i
=
1
N
[
y
i
log
(
p
i
)
+
(
1
−
y
i
)
log
(
1
−
p
i
)
]
\text{Binary Cross Entropy Loss}=-\frac1N\sum_{i=1}^N\left[y_i\log(p_i)+(1-y_i)\log(1-p_i)\right]
Binary Cross Entropy Loss=−N1i=1∑N[yilog(pi)+(1−yi)log(1−pi)]
其中
y
i
y_i
yi是真实标签,
p
i
p_i
pi是模型预测的概率值,
N
N
N是样本数。
对于多分类问题,交叉熵损失函数的定义如下:
Cross Entropy Loss
=
−
1
N
∑
i
=
1
N
∑
k
=
1
K
y
i
,
k
log
(
p
i
,
k
)
\text{Cross Entropy Loss}=-\frac1N\sum_{i=1}^N\sum_{k=1}^Ky_{i,k}\log(p_{i,k})
Cross Entropy Loss=−N1i=1∑Nk=1∑Kyi,klog(pi,k)
其中
y
i
,
k
y_{i,k}
yi,k是第
i
i
i 个样本属于第
k
k
k 个类别的真实标签,
p
i
,
k
p_{i,k}
pi,k 是模型预测的第
i
i
i 个样本属于第
k
k
k 个类别的概率值,
N
N
N 是样本数,
K
K
K 是类别数。
3.softmax loss损失函数(重点)
softmax loss是深度学习中最常见的损失函数,完整的叫法为 Cross-entropy loss with softmax。softmax loss 由Fully Connected Layer,Softmax Function和Cross-entropy Loss组成。
softmax loss就是将softmax函数和交叉熵损失函数结合在了一起。
Softmax Loss
=
−
1
N
∑
i
=
1
N
∑
k
=
1
K
y
i
,
k
log
(
exp
(
z
i
,
k
)
∑
j
=
1
K
exp
(
z
i
,
j
)
)
\text{Softmax Loss}=-\frac1N\sum_{i=1}^N\sum_{k=1}^Ky_{i,k}\log\left(\frac{\exp(z_{i,k})}{\sum_{j=1}^K\exp(z_{i,j})}\right)
Softmax Loss=−N1i=1∑Nk=1∑Kyi,klog(∑j=1Kexp(zi,j)exp(zi,k))
其中
y
i
,
k
y_{i,k}
yi,k 是第
i
i
i 个样本属于第
k
k
k 个类别的真实标签,当样本
i
i
i 属于类别
k
k
k 时,
y
i
,
k
=
1
y_{i,k}=1
yi,k=1;否则,
y
i
,
k
=
0
y_{i,k}=0
yi,k=0。
z
i
,
k
z_{i,k}
zi,k 是样本
i
i
i 关于类别
k
k
k 的得分logits,
N
N
N 是样本数,
K
K
K 是类别数。
4.带有temperature参数的softmax loss
带有温度参数
T
T
T 的 softmax loss的损失函数如下:
Loss
=
−
1
N
∑
i
=
1
N
∑
k
=
1
K
y
i
,
k
log
(
exp
(
z
i
,
k
/
T
)
∑
j
=
1
K
exp
(
z
i
,
j
/
T
)
)
\text{Loss}=-\frac1N\sum_{i=1}^N\sum_{k=1}^Ky_{i,k}\log\left(\frac{\exp(z_{i,k}/T)}{\sum_{j=1}^K\exp(z_{i,j}/T)}\right)
Loss=−N1i=1∑Nk=1∑Kyi,klog(∑j=1Kexp(zi,j/T)exp(zi,k/T))
参考
1.Large-Margin Softmax Loss for Convolutional Neural Networks
3.深度学习中的温度参数(Temperature Parameter)是什么?
😃😃😃
logits就是一个向量,该向量下一步通常被输入到激活函数中,如softmax、sigmoid中。 ↩︎