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

常见的待见函数和损失函数是同一个意思,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function)。

我们用训练集训练一个模型时,常见情况是寻找一个损失函数,然后使用优化算法如梯度下降算法让该损失值最小,然后结束迭代即模型就训练好了,之后便是拿测试集来测试该模型的鲁棒性。当然具体问题具体分析,真正训练模型时需要考虑的点蛮多的,这里仅仅是列举常见的一些损失函数以供自己以后查阅。


1. 0-1损失函数

它是一种较为简单的损失函数,如果预测值与目标值不相等,那么为1,否则为0,即:

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

可以看出上述的定义太过严格,如果真实值为1,预测值为0.999,那么预测应该正确,但是上述定义显然是判定为预测错误,那么可以进行改进为Perceptron Loss。

2. 感知损失函数

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

其中t是一个超参数阈值,如在PLA(Perceptron Learning Algorithm,感知机算法)中取t=0.5。

3. 铰链函数(hinge loss)

Hinge Loss作为SVM推导的损失函数去逼近0-1 Loss;很明显可以看出0-1是理想情况下的损失函数显式表达,SVM在感知机(Perceptron)的基础上,通过最大化分类边界(max margin)去进行分类;

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

更多请参见:Hinge-loss

4. 平方损失函数

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

5. 绝对值误差函数

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

6. 交叉熵损失函数

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

7. 指数误差函数

常用于boosting算法中,如AdaBoost。即:

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


正则

一般来说,对分类或者回归模型进行评估时,需要使得模型在训练数据上使得损失函数值最小,即使得经验风险函数最小化,但是如果只考虑经验风险(Empirical risk),容易过拟合(详细参见防止过拟合的一些方法),因此还需要考虑模型的泛化能力,一般常用的方法便是在目标函数中加上正则项,由损失项(Loss term)加上正则项(Regularization term)构成结构风险(Structural risk),那么损失函数变为:

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

其中λ是正则项超参数,常用的正则方法包括:L1正则与L2正则,详细介绍参见:防止过拟合的一些方法

各损失函数图形如下:

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

参考:
https://zhuanlan.zhihu.com/p/32847834
https://www.zhihu.com/question/52398145
https://www.jianshu.com/p/9b4d7de5c6c9
https://blog.csdn.net/heyongluoyao8/article/details/52462400