损失函数 - 努力的孔子

yanshw 2021-08-05 原文


损失函数


损失函数,也可叫做 目标函数、代价函数 等,其意义不是完全一致,但是大体相同,不必纠结概念

 

0-1 损失:Zero-one loss

预测与实际相等为 0,不相等为 1;

缺点:定义太过严格,比如预测为 0.99,实际为 1,显然预测没问题,但是上述损失为  1

应用:不常用

感知损失:Perceptron Loss

它是对 0-1 损失的改进,允许有一定的误差

预测与实际在误差范围内为 0,超过误差范围为 1 

应用:不常用 

 

 

铰链损失:Hinge loss

解决间隔最大化问题

y 为实际,y‘ 为预测;

在 SVM 中,y‘ 取值在 -1 到 1 之间,不鼓励 |y\’| > 1,这意味着模型过度自信,让单个正确分类的样本距离分割线超过 1 时,yy‘ > 1,1 – yy‘ < 0,而 hinge loss 强制取 0,这意味着 负数并不会对模型的优化起到减小损失的作用,

这样做使得 SVM 更专注于整体的误差

如果预测正确,损失为 0;

如果预测错误,yy‘ < 0,损失为 1-yy‘;

优点:健壮性好,噪声不敏感

缺点:缺乏很好的概率解释

应用:SVM 解决几何间隔最大化

在线性支持向量基中,loss 如下

作如下变形

loss 变成

 

 

对数损失:log 损失

log 损失的本质是对数似然函数;      【在交叉熵中有解释】

它包含了 cross-entropy loss 和 softmax loss;

它适用于 输出概率 的分类模型;

注意 P(Y|X) 表示 softmax 之后,真实 label 对应的那个概率,是单个值,不同于下面的交叉熵,交叉熵里面 y 和 a 都是 一个 概率向量;

缺点:log 或者 exp 都是放大了错误,这样使得模型对噪声敏感

应用:逻辑回归,softmax 分类

交叉熵:cross-entropy loss

x 表示样本, y 表示实际, one-hot,a 表示预测,是一组概率,n 为样本数

 

交叉熵的本质是 对数似然函数

p 为发生的概率,y 为发生 or 未发生,0 or 1;  【p 为实际,y 为预测】

应用:最常用的二分类损失函数

 

 

指数损失

如果预测正确,yf(x) 为正,-yf(x) < 0,loss 变小,exp(-yf(x)) < 1;

如果预测错误,yf(x) 为负,-yf(x) > 0,loss 变大,exp(-yf(x)) > 1;

加 exp 的作用是放大 错误;

缺点:log 或者 exp 都是放大了错误,这样使得模型对噪声敏感

应用:Adaboost

 

 

绝对值损失

也叫 L1 范数损失,L1 loss

应用:回归

均方差 

应用:最常用的回归损失函数

 

 

 

以上损失函数可视化如下图

 

 

 

参考资料:

https://www.cnblogs.com/lliuye/p/9549881.html

https://blog.csdn.net/zhangjunp3/article/details/80467350    这篇讲得比较深入

https://zhuanlan.zhihu.com/p/58883095

https://zhuanlan.zhihu.com/p/35027284

https://zhuanlan.zhihu.com/p/47202768

https://mp.weixin.qq.com/s/qWJaMTHNAh4cxEIhfpURDA

发表于
2020-03-03 10:52 
努力的孔子 
阅读(343
评论(0
编辑 
收藏 
举报

 

版权声明:本文为yanshw原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yanshw/p/10721400.html

损失函数 - 努力的孔子的更多相关文章

  1. 关于出现Discuz! Database Error(1040) notconnect错误的解决办法【转】 – cccmon

    关于出现Discuz! Database Error(1040) notconnect错误的解决办法【转】 其 […]...

  2. 教你简单的去运营一个社区论坛 – 互联网自媒体博客

    教你简单的去运营一个社区论坛   首先运营是个很宽泛的词。往大说,可以上升到运作,管理,这就包括决策,内容,技 […]...

  3. Android 单元测试覆盖率计算 – work hard work smart

    在工程下面的build.gradle 增加配置 1.增加Plugin apply plugin: \̵ […]...

  4. 稳压二极管型号大全(转载) – JHJ_BABY

    稳压二极管型号大全(转载) 稳压二极管型号大全 美标稳压二极管型号: 500mW部分: 1N4614  1.8 […]...

  5. [Windows_UEFI & BIOS]详解 Secure Boot 和 Winows 8 及 UEFI启动 的关系

    一、自由软件基金会的呼吁 上周,2012年将近结束的时候,自由软件基金会(FSF)发出呼吁,要求人们继续支持反 […]...

  6. 用HTML+CSS编写课程表及个人简历表 – 苯苯瓜

    用HTML+CSS编写课程表及个人简历表 1、编写如下图课程表: 2、代码如下: <!DOCTYPE h […]...

  7. 使用SublimeText2搭建PHP IDE,window环境 – AnyKoro

    使用SublimeText2搭建PHP IDE,window环境 2012-01-01 13:52  AnyK […]...

  8. 简易的手机通讯录添加联系人界面 – 饭饭草原

    简易的手机通讯录添加联系人界面 <RelativeLayout xmlns:tools=”h […]...

随机推荐

  1. 手机端也能用的车牌识别技术

    手机端也能用的车牌识别技术 “车牌识别技术”,顾名思义,就是识别车牌信息的一种技术。那它到底作何解释呢?又是怎 […]...

  2. eclipse 项目资源与 java 编译器级别不致总是;说明资源路径位置类型Java编译器级别不匹配t

    问题:Description Resource Path Location Type Java compile […]...

  3. APP开发——客户端,忘记密码,修改密码,注册的完整实现,个人中心的基本显示

    2021-08-21 解决了重复注册的问题 任务: 1.忘记密码和修改密码的界面和代码,获取验证码 2.个人中 […]...

  4. Json 数字转换

    0.999999999999999945 以上的Json都能转化为1,小于这个的小数都转化为0. 好奇怪的的J […]...

  5. 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 […]...

  6. 微信小程序 js xmss json 使用

    app.js App({ onLaunch (options) { // Do something initi […]...

  7. 从零开始搭建Java开发环境第三篇:最新版IDEA常用配置指南,打造你的最酷IDE

    刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,工欲善其事必先利其器。 比如 […]...

  8. linux运维面试前,先来检查这些基础知识忘了没?

    知乎上有这样一个问题:一个新手面试 Linux 运维工作至少需要知道哪些知识?其中有一个答案对这一话题的解读非 […]...

展开目录

目录导航