【机器学习】什么是损失函数?
一、定义
损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。
经典机器学习算法,他们最本质的区别是分类思想(预测f(x)的表达式)不同,有的是基于概率模型,有的是动态规划,表象的区别就是最后的损失函数不同。
二、分类
损失函数(loss function)分为经验风险损失函数和结构风险损失函数,经验风险损失函数反映的是预测结果和实际结果之间的差别,结构风险损失函数则是经验风险损失函数加上正则项(L0、L1(Lasso)、L2(Ridge))。
三、常见损失函数
1、0-1损失函数(zero-one loss)
0-1损失是指,预测值和目标值不相等为1,否则为0:
特点:
(1)0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用;该损失函数不考虑预测值和真实值的误差程度,也就是说只要预测错误,预测错误差一点和差很多是一样的。
(2)感知机就是用的这种损失函数。但是相等这个条件太过严格,因此可以放宽条件,即满足 时认为相等,
这种损失函数用在实际场景中比较少,更多的是用俩衡量其他损失函数的效果。
2、绝对值损失函数
绝对值损失函数是计算预测值与目标值的差的绝对值:
3. log对数损失函数
主要在逻辑回归中使用,样本预测值和实际值的误差符合高斯分布,使用极大似然估计的方法,取对数得到损失函数,log对数损失函数的标准形式如下:
损失函数L(Y,P(Y|X))L(Y,P(Y|X))是指样本X在分类Y的情况下,使概率P(Y|X)达到最大值。
经典的对数损失函数包括entropy和softmax,一般在做分类问题的时候使用(而回归时多用绝对值损失(拉普拉斯分布时,μ值为中位数)和平方损失(高斯分布时,μ值为均值))。
特点:
(1) log对数损失函数能非常好的表征概率分布,在很多场景尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。
(2)健壮性不强,相比于hinge loss对噪声更敏感。
(3)逻辑回归的损失函数就是log对数损失函数。
4. 平方损失函数
实际结果和观测结果之间差距的平方和,一般用在线性回归中,可以理解为最小二乘法,平方损失函数标准形式如下:
特点:经常应用于回归问题。
5. 指数损失函数(exponential loss)
指数损失函数的标准形式如下:
特点:对离群点、噪声非常敏感。经常用在AdaBoost算法中。
6. 铰链损失函数(Hinge 损失函数)
Hinge损失函数标准形式如下:
特点:
(1)hinge损失函数表示如果被分类正确,损失为0,否则损失就为 。SVM就是使用这个损失函数。
(2)一般的 是预测值,在-1到1之间,
是目标值(-1或1)。其含义是,
的值在-1和+1之间就可以了,并不鼓励
,即并不鼓励分类器过度自信,让某个正确分类的样本距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的误差。
(3) 健壮性相对较高,对异常点、噪声不敏感,但它没太好的概率解释。
7. 感知损失(perceptron loss)函数
感知损失函数的标准形式如下:
特点:是Hinge损失函数的一个变种,Hinge loss对判定边界附近的点(正确端)惩罚力度很高。而perceptron loss只要样本的判定类别正确的话,它就满意,不管其判定边界的距离。它比Hinge loss简单,因为不是max-margin boundary,所以模型的泛化能力没 hinge loss强。
8. 交叉熵损失函数 (Cross-entropy loss function)
交叉熵损失函数的标准形式如下:
注意公式中 表示样本,
表示实际的标签,
表示预测的输出,
表示样本总数量。
特点:
(1)本质上也是一种对数似然函数,可用于二分类和多分类任务中。
二分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):
多分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):
(2)当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。
补充:对数损失函数和交叉熵损失函数应该是等价的。下面说明由知乎用户@Areshyy提供
参考:https://zhuanlan.zhihu.com/p/58883095
https://blog.csdn.net/chkay399/article/details/81878157
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?