几种常见的损失函数「建议收藏」

几种常见的损失函数「建议收藏」1.损失函数、代价函数与目标函数  损失函数(LossFunction):是定义在单个样本上的,是指一个样本的误差。  代价函数(CostFun

大家好,又见面了,我是你们的朋友全栈君。

1. 损失函数、代价函数与目标函数

  损失函数(Loss Function):是定义在单个样本上的,是指一个样本的误差。
  代价函数(Cost Function):是定义在整个训练集上的,是所有样本误差的平均,也就是所有损失函数值的平均。
  目标函数(Object Function):是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是(代价函数+正则化项)。

2. 常用的损失函数

  这一节转载自博客

(1)0-1损失函数(0-1 loss function)

\[L(y, f(x)) = \begin{cases} 1, & {y \neq f(x) } \\ 0, & {y = f(x)} \end{cases} \]

  也就是说,当预测错误时,损失函数为1,当预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度。只要错误,就是1。

(2)平方损失函数(quadratic loss function)

\[L(y, f(x)) = (y – f(x))^2 \]

  是指预测值与实际值差的平方。

(3)绝对值损失函数(absolute loss function)

\[L(y, f(x)) = | y -f(x) | \]

  该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。

(4)对数损失函数(logarithmic loss function)

\[L(y, p(y|x)) = – \log p(y|x) \]

  这个损失函数就比较难理解了。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。

(5)Hinge loss

  Hinge loss一般分类算法中的损失函数,尤其是SVM,其定义为:

\[L(w,b) = max \{0, 1-yf(x) \} \]

  其中 $ y = +1 或 y = -1 $ ,$ f(x) = wx+b $ ,当为SVM的线性核时。


3. 常用的代价函数

(1)均方误差(Mean Squared Error)

\[MSE = \frac{1}{N} \sum_{i=1}^N (y^{(i)} – f(x^{(i)}))^2 \]

  均方误差是指参数估计值与参数真值之差平方的期望值; MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。( $ i $ 表示第 $ i $ 个样本,$ N $ 表示样本总数)
  通常用来做回归问题的代价函数

(2)均方根误差

\[RMSE = \sqrt{\frac{1}{N} \sum_{i=1}^N (y^{(i)} – f(x^{(i)}))^2 } \]

  均方根误差是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。
  通常用来作为回归算法的性能指标

(3)平均绝对误差(Mean Absolute Error)

\[MAE = \frac{1}{N} \sum_{i=1}^N |y^{(i)} – f(x^{(i)})| \]

  平均绝对误差是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。
  通常用来作为回归算法的性能指标

(4)交叉熵代价函数(Cross Entry)

\[H(p,q) = – \sum_{i=1}^{N} p(x^{(i)}) \log {q(x^{(-i)})} \]

  交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其中 $ p(x) $ 是指真实分布的概率, q(x) 是模型通过数据计算出来的概率估计。
  比如对于二分类模型的交叉熵代价函数(可参考逻辑回归一节):

\[L(w,b) = -\frac{1}{N} \sum_{i=1}^{N} (y^{(i)} \log {f(x^{(i)})} + ( 1- y^{(i)}) \log {(1- f(x^{(i)})})) \]

  其中 $ f(x) $ 可以是sigmoid函数。或深度学习中的其它激活函数。而 $ y^{(i)} \in { 0,1 } $ 。
  通常用做分类问题的代价函数。


引用及参考:
[1] https://blog.csdn.net/reallocing1/article/details/56292877
[2] https://blog.csdn.net/m_buddy/article/details/80224409
[3] https://blog.csdn.net/chaipp0607/article/details/76037351
[4] https://blog.csdn.net/shenxiaoming77/article/details/51614601

写在最后:本文参考以上资料进行整合与总结,文章中可能出现理解不当的地方,若有所见解或异议可在下方评论,谢谢!
若需转载请注明https://www.cnblogs.com/lliuye/p/9549881.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154310.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 对单片机毕业设计的理解「建议收藏」

    对单片机毕业设计的理解「建议收藏」对单片机毕业设计的理解我的大学生活即将快要结束了,在这期间,我帮好几个人都做了关于单片机的毕业设计,其中也有接挺多这种单子赚了点辛苦费的,其中有关于51单片机的,也有STM32单片机的,甚至STM32可以细分为F1系列和F4系列。本来我是没有想接单的,一开始是一个高中同学,因为是同一个专业但是不同学校,他的毕业设计就是关于单片机的,他那时就求助我,然后我直接帮他完成了,我帮他做完全是因为关系好,结果帮他做完后他就给我介绍了他的一个大学同学也想完成他的毕业设计,所以我就做了,最后做完也是给了点辛苦费。没想到

  • dm268_实时的意思

    dm268_实时的意思最近正好又用到DM368开发板,就将之前做的编解码的项目总结一下。话说一年多没碰,之前做的笔记全忘记是个什么鬼了。还好整理了一下出图像了。不过再看看做的这个东西,真是够渣的,只能作为参考了。项目效果就是,编码encode然后通过rtsp传输在VLC上实时播放。用的是sensor是 MT9P031。一、内核配置让其支持MT9P031二、硬件设计错误排查启动信息错误,无法检测到MT9

  • Transfer: Javascript实现网页水印(非图片水印)

    Transfer: Javascript实现网页水印(非图片水印)

  • sql中listagg用法_listagg是不是公开的函数

    sql中listagg用法_listagg是不是公开的函数跃然一笑MySQLSELECTFieldA,GROUP_CONCAT(FieldBORDERBYFieldBSEPARATOR’,’)ASFieldBsFROMTableNameGROUPBYFieldAORDERBYFieldA;Oracle&DB2SELECTFieldA,LISTAGG(FieldB,’,’)WITHIN…

  • 域名绕过备案使用国内服务器_如何查看服务器的端口

    域名绕过备案使用国内服务器_如何查看服务器的端口现今,互联正成为企业的竞争优势。然而,受限于跨运营商集成挑战、品质参差不齐,以及冗长的网络供应时间等,使得企业无法在数字经济中,实现强而有力的竞争。天下数据免备案CDN平台,为企业提供灵活的“一站式海外免备案CDN解决方案”。让企业提高全球用户的访问体验、创造新的价值。免备案CDN的原理免备案CDN加速原理是将源站内容分发至海外多个高防服务器节点,通过智能管理系统对网络流量分配控制,使用户从…

  • mybatis拦截器详解_短信拦截器

    mybatis拦截器详解_短信拦截器Mybatis拦截器介绍目录前言Interceptor接口注册拦截器Mybatis可拦截方法利用拦截器进行分页  拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号