机器学习中的损失函数

本文深入探讨了各种损失函数,包括0-1损失、平方损失、绝对损失、对数损失、指数损失、对率损失和hinge损失。分析了MSE与MAE在处理离群点时的不同表现,介绍了经验风险最小化和结构风险最小化的原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

监督学习问题是在假设空间中选取模型作为决策函数,对于给定的输入X,由f(x)给出对应的输出Y,这个输出的预测值可能与真实值一致或不一致,可以用损失函数(loss function)代价函数(cost function) 来度量预测错误的程度。

  • 0-1损失函数:

f(x)={1,Yf(X)0,Y=f(X)f(x)={1,Y≠f(X)0,Y=f(X)
  • 平方损失函数:

L(Y,f(X))=(Yf(X))2L(Y,f(X))=(Y−f(X))2
def mse(true, pred):
    return np.sum(((true – pred) ** 2))


from sklearn.metrics import mean_squared_error
  • 绝对损失函数:

L(Y,f(X))=|Yf(X)|L(Y,f(X))=|Y−f(X)|
def mae(true, pred):
    return np.sum(np.abs(true – pred))

from sklearn.metrics import mean_absolute_error

MSE vs MAE

  • 由于MSE对误差(e)进行平方操作(y - y_predicted = e),如果e> 1,误差的值会增加很多。如果我们的数据中有一个离群点,e的值将会很高,将会远远大于|e|。这将使得和以MAE为损失的模型相比,以MSE为损失的模型会赋予更高的权重给离群点
  • MAE损失适用于训练数据被离群点损坏的时候(即,在训练数据而非测试数据中,我们错误地获得了不切实际的过大正值或负值)

如果离群点是会影响业务、而且是应该被检测到的异常值,那么我们应该使用MSE。另一方面,如果我们认为离群点仅仅代表数据损坏,那么我们应该选择MAE作为损失。

  • 对数损失函数(对数似然损失函数):

L(Y,P(Y|X))=logP(Y|X)L(Y,P(Y|X))=−logP(Y|X)
  • 指数损失(exponential loss):

lexp(z)=exp(z)lexp(z)=exp(−z)
  • 对率损失(logistic loss):

llog(z)=log(1+exp(z))llog(z)=log(1+exp(−z))
  • hinge损失:

lhinge(z)=max(0,1z)lhinge(z)=max(0,1−z)

经验风险最小化:当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计(MLE)。

结构风险最小化:防止过拟合提出的策略,在经验风险熵加上表示模型复杂度的正则化项或罚项。贝叶斯估计中的最大后验概率估计(MAP)就是结构风险最小化的一个例子。

《统计学习方法》 P7

《机器学习》 P130

《深度学习》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值