【总结】深度学习中的损失函数
1. 铰链损失/合页损失 Hinge Loss
SVM常用损失函数
-
函数表达式
L ( y , f ( x ) ) = m a x ( 0 , 1 − y ⋅ f ( x ) ) L(y,f(x)) = max(0,1-y·f(x)) L(y,f(x))=max(0,1−y⋅f(x)) -
函数图像
通过上图可知,当 y ⋅ f ( x ) > 1 y·f(x)>1 y⋅f(x)>1时, l o s s = 0 loss=0 loss=0;否则, l o s s = 1 − y ⋅ f ( x ) loss=1-y·f(x) loss=1−y⋅f(x)。也就是说,只有被正确分类的时候,loss才为0。
2. 交叉熵 Cross-entropy Loss
(1)用于二分类
表示样本abel与预测值为正类概率的关系
- 函数表达式
C = − 1 N ∑ i [ y i l n ( p i ) + ( 1 − y i ) l n ( 1 − p i ) ] C = -\frac{1}{N}\sum_i[y_iln(p_i)+(1-y_i)ln(1-p_i)] C=−N1∑i[yiln(pi)+(1−yi)ln(1−pi)]
其中,
y i y_i yi——样本 i i i的label,正类为1,负类为0;
p i p_i pi——样本 i i i的预测值为正类的概率。
(2)用于多分类
-函数表达式
C
=
−
1
N
∑
i
∑
k
[
y
i
k
l
n
(
p
i
k
)
]
C = -\frac{1}{N}\sum_i\sum_k[y_{ik}ln(p_{ik})]
C=−N1∑i∑k[yikln(pik)]
其中,
y
i
k
y_{ik}
yik——样本
i
i
i的label,与正类类别相同为1,否则为0;
p
i
k
p_{ik}
pik——样本
i
i
i的预测值为第
k
k
k类的概率。
- 优点
使用逻辑函数得到概率,并结合交叉熵当损失函数时,在模型效果差的时候学习速度比较快,在模型效果好的时候学习速度变慢 - 缺点
sigmoid(softmax)+cross-entropy loss 擅长于学习类间的信息,因为它采用了类间竞争机制,它只关心对于正确标签预测概率的准确性,忽略了其他非正确标签的差异,导致学习到的特征比较散。基于这个问题的优化有很多,比如对softmax进行改进,如L-Softmax、SM-Softmax、AM-Softmax等。
3. 均方误差MSE
- 函数表达式
M S E = 1 n ∑ i n ( y i ^ − y i ) 2 MSE = \frac{1}{n}\sum_i^n(\hat{y_i}-y_i)^2 MSE=n1∑in(yi^−yi)2 - 缺点
逻辑回归配合MSE损失函数采用梯度下降法进行学习时,在训练初始阶段学习速率非常慢
参考
(1) 机器之心——机器学习大牛最常用的5个回归损失函数,你知道几个?
(2) 一文读懂机器学习常用损失函数(Loss Function)
(3) 损失函数 - 交叉熵损失函数