各个模型的损失函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各个模型的损失函数相关的知识,希望对你有一定的参考价值。

参考技术A 有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它假设样本服从 伯努利分布(0-1分布) ,然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为: 最小化负的似然函数(即max F(y, f(x)) —-> min -F(y, f(x))) 。从损失函数的视角来看,它就成了log损失函数了。

log损失函数的标准形式 :

取对数是为了方便计算极大似然估计,因为在MLE(最大似然估计, MLE, Maximum Likelihood Estimation)中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到最大值(换言之, 就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大 )。因为log函数是单调递增的,所以logP(Y|X)也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)就等价于最小化L了。

最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布(为什么假设成高斯分布呢?其实这里隐藏了一个小知识点,就是 中心极限定理 ,可以参考 【central limit theorem】 ),最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是: 最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小 。换言之,OLS是基于距离的,而这个距离就是我们用的最多的欧几里得距离。

为什么它会选择使用欧式距离作为误差度量呢(即Mean squared error, MSE),主要有以下几个原因:

平方损失(Square loss)的标准形式如下:

当样本个数为n时,此时的损失函数变为:

Y-f(X)表示的是残差,整个式子表示的是 残差的平方和 ,而我们的目的就是最小化这个目标函数值(注:该式子未加入正则项),也就是最小化残差的平方和(residual sum of squares,RSS)。
在实际应用中,通常会使用均方差(MSE)作为一项衡量指标,公式如下:

上面提到了线性回归,这里额外补充一句,我们通常说的线性有两种情况,一种是因变量y是自变量x的线性函数,一种是因变量y是参数αα的线性函数。在机器学习中,通常指的都是后一种情况。

在 机器学习 算法中,hinge损失函数和SVM是息息相关的。在 线性支持向量机 中,最优化问题可以等价于下列式子:

下面来对式子做个变形,令:

于是,原式就变成了:

如若取λ=12Cλ=12C,式子就可以表示成:

可以看出,该式子与下式非常相似:

前半部分中的ll就是hinge损失函数,而后面相当于L2正则项。

Hinge损失是0-1损失函数的一种代理函数,Hinge损失的具体形式如下:

理解Hinge损失函数:

指数损失是0-1损失函数的一种代理函数,指数损失的具体形式如下:

学过Adaboost 算法 的人都知道,它是前向分步加法算法的特例,是一个加和模型,损失函数就是指数函数。在Adaboost中,经过m此迭代之后,可以得到fm(x):

Adaboost每次迭代时的目的是为了找到最小化下列式子时的参数αα和G:

而指数损失函数(exp-loss)的标准形式如下

可以看出,Adaboost的目标式子就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为:

关于Adaboost的推导,可以参考Wikipedia: AdaBoost 或者《统计学习方法》P145.

0-1损失函数

在分类问题中,可以使用函数的正负号来进行模式判断,函数值本身的大小并不是很重要,0-1损失函数比较的是预测值fw(x(i))与真实值y(i)的符号是否相同,0-1损失的具体形式如下:

0-1损失并不依赖m值的大小,只取决于m的正负号。0-1损失是一个非凸的函数,在求解的过程中,存在很多的不足,通常在实际的使用中将0-1损失函数作为一个标准,选择0-1损失函数的代理函数作为损失函数。

感知损失是Hinge损失的一个变种,感知损失的具体形式如下:

运用感知损失的典型分类器是感知机算法。

Hinge损失对于判定边界附近的点的惩罚力度较高,而感知损失只要样本的类别判定正确即可,而不需要其离判定边界的距离,这样的变化使得其比Hinge损失简单,但是泛化能力没有Hinge损失强。

机器学习中的目标函数、损失函数、代价函数有什么区别?

机器学习中的损失函数

 线性回归损失函数为什么要用平方形式

怎么样理解SVM中的hinge-loss?

以上是关于各个模型的损失函数的主要内容,如果未能解决你的问题,请参考以下文章

(4)损失函数

Keras 模型的验证损失与损失函数输出不匹配

常见的损失函数

机器学习中常见的损失函数

机器学习中的损失函数

损失函数总结