常见损失函数

参考资料:常见的损失函数(loss function)总结


损失函数用来评价模型的 预测值真实值的不一致程度,损失函数越好,模型的性能越好。不同模型的损失函数一半也不一样。

损失函数分为经验损失函数结构风险损失函数

  • 经验风险损失函数指预测结果和实际结果的差别
  • 结构风险损失函数是指经验风险损失函数加上正则项

常见的损失函数以及优缺点

1. 0-1 损失函数

0-1 损失函数是指预测指和目标值不相等为1,否则为 0:
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( x ) \text{L}(Y,f(X))=\left\{ \begin{matrix} 1,Y\ne f(X) \\ 0,Y=f(x) \\ \end{matrix} \right. L(Y,f(X))={1,Y=f(X)0,Y=f(x)

特点:
(1)0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太实用。
(2)感知机就是用的这种损失函数u。但是相等这个条件太过严格,因此可以放宽条件,即满足 ∣ Y − f ( x ) ∣ < T |Y-f(x)| < T Yf(x)<T 时认为相等,
L ( Y , f ( X ) ) = { 1 , ∣ Y − f ( x ) ∣ ≥ T 0 , ∣ Y − f ( x ) ∣ < T \text{L}(Y,f(X))=\left\{ \begin{matrix} 1,|Y-f(x)| ≥ T \\ 0,|Y-f(x)| < T \\ \end{matrix} \right. L(Y,f(X))={1,Yf(x)T0,Yf(x)<T

2. 绝对值损失函数

绝对值损失函数是计算预测值与目标值的差的绝对值:
L ( Y , f ( x ) ) = ∣ Y − f ( x ) ∣ L(Y, f(x)) = |Y-f(x)| L(Y,f(x))=Yf(x)

3. 平方损失函数

平方损失函数标准形式如下:
L ( Y , f ( X ) ) = ∑ N ( Y − f ( X ) ) 2 \text{L}(Y,f(X))=\sum\limits_{N}^{{}}{{{(Y-f(X))}^{2}}} L(Y,f(X))=N(Yf(X))2
(1)经常应用于回归问题

4. log 对数损失函数

对数损失函数的标准形式如下:
L ( Y , P ( Y ∣ X ) ) = − l o g P ( Y ∣ X ) L(Y, P(Y|X)) = -logP(Y|X) L(Y,P(YX))=logP(YX)
特点:
(1)log 对数损失函数能非常好的表征概率分布,在很多场景中尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。
(2)健壮性不强,相比于 hiinge loss 对噪声更敏感。
(3)逻辑回归的损失函数就是 log 对数损失函数。

5. 指数损失函数(exponential loss)

指数损失函数的标准形式如下:
L ( Y ∣ f ( x ) ∣ = e x p [ − y f ( x ) ] L(Y|f(x)|=exp[-yf(x)] L(Yf(x)=exp[yf(x)]
特点:
(1)对离群点、噪声非常敏感。经常用在 AdaBoost 算法中。

6. Hinge 损失函数

Hinge 损失函数标准形式如下:
L ( y , f ( x ) ) = m a x ( 0 , 1 − y f ( x ) ) L(y,f(x)) = max(0, 1-yf(x)) L(y,f(x))=max(0,1yf(x))

特点:
(1)Hinge 损失函数表示如果被分类正确,损失为0,否则损失就为 1 − y f ( x ) 1-yf(x) 1yf(x)。SVM 就是使用这个损失函数。
(2)一般的 f ( x ) f(x) f(x) 是预测值,在 -1 到 1 之间,y 是目标值(-1或1)。其含义是, f ( x ) f(x) f(x) 的值在 -1 和 +1 之间就可以了,并不鼓励 ∣ f ( x ) ∣ > 1 |f(x)| > 1 f(x)>1,即并不鼓励分类器过度自信,让某个正确分类的样本距离分割线超过 1 并不会有任何奖励,从而使分类器可以更专注于整体的误差。
(3)健壮性相对较高,对异常点,噪声不敏感,但它没太好的概率解释。

7. 感知损失(preceptron loss)函数

感知损失函数的标准形式如下:
L ( y , f ( x ) ) = m a x ( 0 , − f ( x ) ) L(y,f(x)) = max(0, -f(x)) L(y,f(x))=max(0,f(x))

特点:
(1)是 Hinge 损失函数的一个变种,Hinge loss 对判定边界附近的点(正确端惩罚力度很高。而 preceptron loss 只要样本的判定类别正确的话,它就满意,不管其判定边界的距离。它比 Hinge loss 简单,因为不是 max-margin boundary,所以模型的泛化能力没 hinge loss 强

8. 交叉熵损失函数(cross-etropy loss function)

交叉熵损失函数的标准形式如下:
L = − 1 n ∑ x [ y ln ⁡ a + ( 1 − y ) ln ⁡ ( 1 − a ) ] L=-\frac{1}{n}\sum\limits_{x}{[y\ln a+(1-y)\ln (1-a)]} L=n1x[ylna+(1y)ln(1a)]
注意公式中x表示样本,y表示实际的标签,a表示预测的输出,n表示样本总数量。

特点:
(1)本质上也是一种对数似然函数,可以哦那个与二分类和多酚类任务中。
二分类问题中的 loss 函数如上式。
多分类问题中的 loss 函数(输入数据是softmax或者sigmod函数的输出):
L = − 1 n ∑ i y i ln ⁡ a i L=-\frac{1}{n}\sum\limits_{i}{y_i\ln a_i} L=n1iyilnai

(2)当使用 sigmod 作为激活函数的时候,常用交叉熵损失函数而不用均方差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。

对数损失函数和交叉熵损失函数应该是等价的!!

高频问题
  1. 交叉熵函数与最大似然函数的联系和区别?

区别:交叉熵函数使用来描述模型预测值和真实值的差距大小,越大代表越不相近;似然函数的本质就是衡量在某个参数下,整体的估计和真实的情况一样的概率,越大代表越相近。

联系:交叉熵函数可以由最大似然函数在伯努利分布的条件下推导出来,或者说最小化交叉熵函数的本质就是对数自然函数的最大化。

具体推导参考原博客

  1. 在用 sigmod 作为激活函数的时候,为什么要用交叉熵损失函数,而不用均方差损失函数?

参考资料:常见的损失函数(loss function)总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值