机器学习中常见的损失函数
损失函数是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的Φ是正则化项或者叫惩罚项,它可以是L1,也可以是L2,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的θ值。下面主要列出几种常见的损失函数:
n log对数损失函数(逻辑回归)
n 平方损失函数(最小二乘法)
n 指数损失函数(Adaboost)
n Hinge损失函数(SVM)
n 0-1损失
n 绝对值损失
- log对数损失函数(逻辑回归)
Logistic回归的损失函数就是对数损失函数,在Logistic回归的推导中,它假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接着用对数求极值。Logistic回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了log损失函数,其标准形式:
Logistic回归目标式子如下:
如果是二分类的话,则m值等于2,如果是多分类,m就是相应的类别总个数。
- 平方损失函数(最小二乘法, Ordinary Least Squares )
最小二乘法是线性回归的一种方法,它将回归的问题转化为了凸优化的问题。最小二乘法的基本原则是:最优拟合曲线应该使得所有点到回归直线的距离和最小。通常用欧式距离进行距离的度量。当样本个数为n时,此时的损失函数变为:
Y-f(X)表示的是残差,整个式子表示的是残差的平方和,而我们的目的就是最小化这个目标函数值(注:该式子未加入正则项),也就是最小化残差的平方和。
而在实际应用中,通常会使用均方差(MSE)作为一项衡量指标,公式如下:
- 指数损失函数(Adaboost)
指数损失函数(exp-loss)的标准形式如下:
可以看出,Adaboost的目标式子就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为:
关于Adaboost的推导,可参考《统计学习方法》P145.
- Hinge损失函数(SVM)
Hinge loss用于最大间隔(maximum-margin)分类,其中最有代表性的就是支持向量机SVM。Hinge函数的标准形式:
其中,t为目标值(-1或+1),y是分类器输出的预测值,并不直接是类标签。其含义为,当t和y的符号相同时(表示y预测正确)并且|y|≥1时,hinge loss为0;当t和y的符号相反时,hinge loss随着y的增大线性增大。可以参考《统计学习方法》P113.
- 0-1损失函数
在分类问题中,可以使用函数的正负号来进行模式判断,函数值本身的大小并不是很重要,0-1损失函数比较的是预测值与真实值的符号是否相同,0-1损失的具体形式如下:
- 绝对值损失函数
绝对损失函数的意义和平方损失函数差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大,其形式为:
以上简单列出几种常见的损失函数,详情可参考相关资料进行深入了解。