机器学习-常见的损失函数比较
在机器学习每一个算法中都会有一个目标函数,算法的求解过程是通过对这个目标函数优化的过程。在分类或者回归问题中,通常使用损失函数(代价函数)作为其目标函数。损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好,不同的算法使用的损失函数不一样。损失函数可以很好得反映模型与实际数据差距的工具,理解损失函数能够更好得对后续优化工具(梯度下降等)进行分析与理解。在工业上很多时候遇到复杂的应用场景问题,其实最难的一关是如何写出损失函数,即自定义损失函数。
通常提到损失函数,我们不得不提到代价函数(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并不会有任何奖励,从而使分类器可以更专注于整体的分类误差。
机器学习-常见的损失函数比较相关推荐
- 了解机器学习回归的3种最常见的损失函数
机器学习中的损失函数是衡量你的ML模型的预测结果准确性的一个指标. 损失函数将以两项作为输入:模型的输出值和标准答案的期望值.损失函数的输出称为损失,它是衡量我们的模型在预测结果方面做得有多好. 损失 ...
- AI理论知识基础(26)-机器学习常见损失函数, 共轭梯度法(2)
机器学习常见损失函数, 共轭梯度法(2)
- 机器学习之常见的损失函数(loss function)
解决一个机器学习问题主要有两部分:数据和算法.而算法又有三个部分组成:假设函数.损失函数.算法优化.我们一般在看算法书或者视频教学时,更多的是去推算或者说参数估计出其假设函数,而往往不太注重损失函数, ...
- 机器学习中常见的损失函数_机器学习中最常见的损失函数
机器学习中常见的损失函数 现实世界中的DS (DS IN THE REAL WORLD) In mathematical optimization and decision theory, a los ...
- 机器学习中常见的损失函数
常见的损失函数:https://zhuanlan.zhihu.com/p/58883095
- 机器学习中的损失函数
机器学习中的损失函数 目录(?)[-] 一log对数损失函数逻辑回归 二平方损失函数最小二乘法 Ordinary Least Squares 三指数损失函数Adaboost 四Hinge损失函数SVM ...
- 深度学习中常见的损失函数
文章来源于AI的那些事儿,作者黄鸿波 2018年我出版了<TensorFlow进阶指南 基础.算法与应用>这本书,今天我把这本书中关于常见的损失函数这一节的内容公开出来,希望能对大家有所帮 ...
- 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
https://blog.csdn.net/u010976453/article/details/78488279 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f( ...
- 经验 | 深度学习中常见的损失函数(loss function)总结
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器学习算法与自然语言处理出品 单位 | 哈工大SCIR实 ...
最新文章
- 用jQuery实现文件的上传,后台为spring+mybatis
- Redis源码解析——双向链表
- 摧枯拉朽,说说ES6的三把火
- Python-OpenCV 处理图像(四)(五):图像直方图和反向投影 图像中边界和轮廓检测
- Java继承Thread类创建多线程
- Python模拟Linux的Crontab, 写个任务计划需求
- javascript --- 异步工作流的动态排队技术
- jquery +做CheckBoxList全选,反选
- oracle11g数据文件路径,oracle11g trace路径和diagnostics路径的变化
- JavaScript 为何会成为最受欢迎的编程语言?
- 君が呼ぶ メギドの丘で 美吉特之丘的呼唤 游戏感想
- Excel为图表添加趋势线和公式
- Navicat Premium 中文版注册码
- 网络工程师面试题收集
- simpleBGC32-软件代码开源
- 大部分人朋友圈仅三天可见的原因,竟然是……
- 和菲利普•科特勒的《营销管理》一样,这些都是比较好的市场营销书籍
- 计算机相近专业职称,计算机专业技术职称有哪些?
- EMC VNX5400 File NAS证书过期问题
- 甘特图:编制项目计划的步骤