【机器学习】常见的损失函数

机器学习中常见的损失函数
损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x) 与真实值 YY 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x))L(Y,f(x)) 来表示。损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。
一,回归问题
1,MSE(均方误差)(Mean Square Error)
均方误差也叫方法损失函数或者最小二乘法
作为机器学习中常常用于损失函数的方法,均方误差频繁的出现在机器学习的各种算法中,但是由于是舶来品,又和其他的几个概念特别像,所以常常在跟他人描述的时候说成其他方法的名字。
均方误差的数学表达为:
M S E = 1 n ∑ i n ( y i − f ( x i ) ) 2 MSE=\frac{1}{n}\sum_{i}^{n}(y_i-f(x_i))^2 MSE=n1in(yif(xi))2
如公式所示,通过计算每个预测值和实际值之间的差值的平方和再求平均,机器学习中它经常被用于表示预测值和实际值相差的程度。平方损失函数是光滑的,可以用梯度下降法求解,但是,当预测值和真实值差异较大时,它的惩罚力度较大,因此对异常点较为敏感。

2,RMSE(均方根误差)
即RMSE (均方根误差)(Root Mean Square Error)
对方差开平方就是均方差,而均方差又称标准差,即:
R M S E = 1 n ∑ i n ( y i − f ( x i ) ) 2 RMSE=\sqrt{\frac{1}{n}\sum_{i}^{n}(y_i-f(x_i))^2} RMSE=n1in(yif(xi))2
与MSE一样对于异常点也是非常敏感。

3,MAE (平均绝对误差)
M A E = 1 n ∑ i = 0 n ∣ y i ^ − y i ∣ MAE=\frac{1}{n}\sum_{i=0}^{n}|\hat{y_i}-y_i| MAE=n1i=0nyi^yi

4,MAPE(平均绝对百分比)
M A P E = ∑ i = 1 n ∣ y i − f ( x i ) y i ∣ ∗ 100 n MAPE=\sum_{i=1}^{n}|\frac{y_i-f(x_i)}{y_i}|*\frac{100}{n} MAPE=i=1nyiyif(xi)n100
MAPE不仅仅考虑预测值与真实值的误差,还考虑了误差与真实值之间的比例,在某些场景下,比如房价从0.5w到5w之间,将0.5预测成1.0与将5.0预测成4.5,实际上预测差距是非常大的,如果用RMSE的话两者效果相同,而用MAPE的后者要比前者好一些。

二,分类问题
1,0-1损失函数
f ( x ) = { 0 y=f(x) 1 y!=f(x) f(x)= \begin{cases} 0& \text{y=f(x)}\\ 1& \text{y!=f(x)} \end{cases} f(x)={01y=f(x)y!=f(x)
或者是:
f ( x ) = I ( y ( x ) ) f(x)=I(y(x)) f(x)=I(y(x))
2,logLoss (对数损失函数,也叫binary cross entropy,二元交叉熵损失,LR)
log loss function表达式:
l o g l o s s = − 1 m ∑ i = 0 m ( y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ) logloss=-\frac{1}{m}\sum_{i=0}^{m}(y_ilog(p_i)+(1-y_i)log(1-p_i)) logloss=m1i=0m(yilog(pi)+(1yi)log(1pi))
其中 y i y_i yi是个样本的真实标签, p i p_i pi是第i个样本预测为正样本的概率。

3,Cross-Entropy损失函数
交叉熵刻画的是两个概率分部之间的距离,或可以说其刻画的是通过概率分布q来表达概率分布p的困难程度,p代表正确答案,q代表的是预测值,交叉熵越小,两个概率的分布越接近。
交叉熵损失函数通常使用在softmax上,而softmax通常使用在神经网络的末端,使其预测结果以概率的形式输出。
交叉熵损失函数的数学表达如下所示:
H ( p , q ) = − ∑ i = 0 m ∑ j = 1 n p ( x i j ) l o g ( q ( x i j ) ) H(p,q)=-\sum_{i=0}^{m}\sum_{j=1}^{n}p(x_{ij})log(q(x_{ij})) H(p,q)=i=0mj=1np(xij)log(q(xij))
m为样本数量,n为样本所属的不同类别个数。 p ( x i j ) p(x_{ij}) p(xij)表示样本i所属类别j, q ( x i j ) q(x_{ij}) q(xij)表示预测样本i属于类别j的概率。

logloss与交叉熵的对比
对数损失函数(Log loss function)和交叉熵损失函数(Cross-entroy loss funtion)在很多文献内是一致的,因为他们的表示式的本质是一样的。但是两种损失函数所对应的上一层结构不同,log loss经常对应的是Sigmoid函数的输出,用于二分类问题;而cross-entropy loss经常对应的是Softmax函数的输出,用于多分类问题。
所以在神经网络中经常使用cross-entropy作为评判参数优化的函数,而在二分类的场景下经常使用log loss作为评判参数优化的函数。

4,Hinge损失函数(SVM)
用于svm,svm通过间隔最大化方式,通过拉格朗日乘子法转化成对偶问题进行建模求解的。
Hinge-loss的数学表达如下:
L ( y ) = m a x ( 0 , 1 − f ( x ) ) L(y) = max(0,1-f(x)) L(y)=max(0,1f(x))
5,指数损失函数(exp-loss)
应用于AdaBoost。
指数损失(exp-loss)函数的标准形式为:
L ( y , f ( x ) ) = e x p ( − y ∗ f ( x ) ) L(y,f(x))=exp(-y*f(x)) L(y,f(x))=exp(yf(x))
在Adaboost算法学习的过程中,经过m轮迭代之后,可以得到 f m ( x ) f_m(x) fm(x) :
f m ( x ) = f m − 1 ( x ) + a m ∗ G m ( x ) f_m(x)=f_{m-1}(x)+a_m*G_m(x) fm(x)=fm1(x)+amGm(x)
在给定n个样本的情况下,Adaboost的损失函数为:
L ( y , f ( x ) ) = 1 n ∑ i = 0 n e x p ( − y i ∗ f ( x i ) ) L(y,f(x))=\frac{1}{n}\sum_{i=0}^{n}exp(-y_i*f(x_i)) L(y,f(x))=n1i=0nexp(yif(xi))

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯拿铁go

你的打赏是我更新最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值