机器学习-常见的损失函数比较

       

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

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

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

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

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

 

                     

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

                                                  

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

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

                                                        

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

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

                                              

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

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

 

几种常见的损失函数

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损失函数的标准形式: 
                                            

    在极大似然估计中,通常都是先取对数再求导,再找极值点,这样做是方便计算极大似然估计。损失函数L(Y,P(Y|X))L(Y,P(Y|X)) 是指样本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并不会有任何奖励,从而使分类器可以更专注于整体的分类误差。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值