在机器学习每一个算法中都会有一个目标函数,算法的求解过程是通过对这个目标函数优化的过程。在分类或者回归问题中,通常使用损失函数(代价函数)作为其目标函数。损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好,不同的算法使用的损失函数不一样。损失函数可以很好得反映模型与实际数据差距的工具,理解损失函数能够更好得对后续优化工具(梯度下降等)进行分析与理解。在工业上很多时候遇到复杂的应用场景问题,其实最难的一关是如何写出损失函数,即自定义损失函数

通常提到损失函数,我们不得不提到代价函数(Cost Function)及目标函数(Object Function)。

损失函数(Loss Function) 直接作用于单个样本,用来表达样本的误差

代价函数(Cost Function)是整个样本集的平均误差,对所有损失函数值的平均

目标函数(Object Function)是我们最终要优化的函数,也就是代价函数+正则化函数(经验风险+结构风险)

我们给定输入变量Size,记为 X,拟合目标Price,记为 Y,上面三个图的函数依次为

这个函数就称为损失函数(loss function),或者叫代价函数(cost function),损失函数越小,就代表模型拟合的越好

由于模型开发过程中输入输出是一个训练集,每一条训练数据都存在一个损失,那么针对于整个训练集的平均损失,即代价函数(Cost Function),或者称作经验风险(empirical risk),如下:

模型训练的过程就是不断的迭代以保证这个经验风险函数的最小化。但是从上面的三个坐标图所示,最后一个图的经验风险函数最小了,因为它对历史的数据拟合的最好,但是在实际中,肯定不是最好的,因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(Over-Fitting),主要原因是第三个函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险最小化,还要让结构风险最小化。

这个时候就需要定义了一个函数,这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(Regularization),常用的有L1,L2范数,最终的优化函数就变为:

即最优化经验风险和结构风险(代价函数+正则化函数),而这个函数就被称为最终的目标函数

上面的例子来分析:最左面的结构风险最小(模型结构最简单),但是经验风险最大(对历史数据拟合的最差),最右面的经验风险最小(对历史数据拟合的最好),但是结构风险最大(模型结构最复杂),中间的达到了二者的良好平衡,最适合用来预测未知数据集。

几种常见的损失函数

0-1损失函数(0-1 Loss Function)

平方损失函数(Quadratic Loss Function)

绝对值损失函数(Absolute loss Function)

对数损失函数(Logarithmic Loss Function)或者对数似然损失函数

如果是0-1损失函数(绝对值损失函数),感知机就是用的这种损失函数

如果是平方损失(Square loss),那就是最小二乘法,线性回归;

如果是对数损失(log-Loss),那就是逻辑回归;

如果是铰链损失(Hinge Loss),那就是著名的SVM了;

如果是指数损失(exp-Loss),那就是Boosting了;

1. 0-1损失函数和绝对值损失函数
    0-1损失是指,预测值和目标值不相等为1,否则为0:

   感知机就是用的这种损失函数。但是由于相等这个条件太过严格,因此我们可以放宽条件,即满足 |Y−f(X)|<T|Y−f(X)|<T 时认为相等。

绝对值损失函数为:

2. log对数损失函数
    逻辑斯特回归的损失函数就是对数损失函数,在逻辑斯特回归的推导中,它假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接着用对数求极值。逻辑斯特回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了log损失函数。
log损失函数的标准形式: 
                                            

在极大似然估计中,通常都是先取对数再求导,再找极值点,这样做是方便计算极大似然估计。损失函数 是指样本X在分类Y的情况下,使概率P(Y|X)达到最大值(利用已知的样本分布,找到最大概率导致这种分布的参数值)。

3. 平方损失函数
    最小二乘法是线性回归的一种方法,它将回归的问题转化为了凸优化的问题。最小二乘法的基本原则是:最优拟合曲线应该使得所有点到回归直线的距离和最小。通常用欧几里得距离进行距离的度量。平方损失的损失函数为:          
                                              

4. 指数损失函数
   AdaBoost就是一指数损失函数为损失函数的。
指数损失函数的标准形式:

5. Hinge损失函数
    Hinge损失函数和SVM是息息相关的。在线性支持向量机中,最优化问题可以等价于

这个式子和如下的式子非常像:

其中l(wxi+byi)l(wxi+byi)就是hinge损失函数,后面相当于L2正则项。
Hinge函数的标准形式:

y是预测值,在-1到+1之间,t为目标值(-1或+1)。其含义为,y的值在-1和+1之间就可以了,并不鼓励|y|>1|y|>1,即并不鼓励分类器过度自信,让某个正确分类的样本的距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的分类误差。

机器学习-常见的损失函数比较相关推荐

  1. 了解机器学习回归的3种最常见的损失函数

    机器学习中的损失函数是衡量你的ML模型的预测结果准确性的一个指标. 损失函数将以两项作为输入:模型的输出值和标准答案的期望值.损失函数的输出称为损失,它是衡量我们的模型在预测结果方面做得有多好. 损失 ...

  2. AI理论知识基础(26)-机器学习常见损失函数, 共轭梯度法(2)

    机器学习常见损失函数, 共轭梯度法(2)

  3. 机器学习之常见的损失函数(loss function)

    解决一个机器学习问题主要有两部分:数据和算法.而算法又有三个部分组成:假设函数.损失函数.算法优化.我们一般在看算法书或者视频教学时,更多的是去推算或者说参数估计出其假设函数,而往往不太注重损失函数, ...

  4. 机器学习中常见的损失函数_机器学习中最常见的损失函数

    机器学习中常见的损失函数 现实世界中的DS (DS IN THE REAL WORLD) In mathematical optimization and decision theory, a los ...

  5. 机器学习中常见的损失函数

    常见的损失函数:https://zhuanlan.zhihu.com/p/58883095

  6. 机器学习中的损失函数

    机器学习中的损失函数 目录(?)[-] 一log对数损失函数逻辑回归 二平方损失函数最小二乘法 Ordinary Least Squares 三指数损失函数Adaboost 四Hinge损失函数SVM ...

  7. 深度学习中常见的损失函数

    文章来源于AI的那些事儿,作者黄鸿波 2018年我出版了<TensorFlow进阶指南 基础.算法与应用>这本书,今天我把这本书中关于常见的损失函数这一节的内容公开出来,希望能对大家有所帮 ...

  8. 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)

    https://blog.csdn.net/u010976453/article/details/78488279 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f( ...

  9. 经验 | 深度学习中常见的损失函数(loss function)总结

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器学习算法与自然语言处理出品    单位 | 哈工大SCIR实 ...

最新文章

  1. 用jQuery实现文件的上传,后台为spring+mybatis
  2. Redis源码解析——双向链表
  3. 摧枯拉朽,说说ES6的三把火
  4. Python-OpenCV 处理图像(四)(五):图像直方图和反向投影 图像中边界和轮廓检测
  5. Java继承Thread类创建多线程
  6. Python模拟Linux的Crontab, 写个任务计划需求
  7. javascript --- 异步工作流的动态排队技术
  8. jquery +做CheckBoxList全选,反选
  9. oracle11g数据文件路径,oracle11g trace路径和diagnostics路径的变化
  10. JavaScript 为何会成为最受欢迎的编程语言?
  11. 君が呼ぶ メギドの丘で 美吉特之丘的呼唤 游戏感想
  12. Excel为图表添加趋势线和公式
  13. Navicat Premium 中文版注册码
  14. 网络工程师面试题收集
  15. simpleBGC32-软件代码开源
  16. 大部分人朋友圈仅三天可见的原因,竟然是……
  17. 和菲利普•科特勒的《营销管理》一样,这些都是比较好的市场营销书籍
  18. 计算机相近专业职称,计算机专业技术职称有哪些?
  19. EMC VNX5400 File NAS证书过期问题
  20. 甘特图:编制项目计划的步骤

热门文章

  1. DevExpress v17.2新版亮点——CodeRush篇(二)
  2. 安装windows系统时遇到的大坑——鼠标键盘没反应
  3. RMAN深入解析之--控制文件
  4. ALS爱立思脚本调用参考
  5. Debina解决浏览器中乱码(将系统字体改为中文)
  6. 用 Spring Boot 纯手工打造私人云网盘!!!
  7. GFS架构启示 | Google File System
  8. 微服务(Microservices)【翻译】
  9. 结构型模式:外观模式(门面模式)
  10. Java 多态中成员变量与成员属性的特点【复习】