【机器学习】损失函数

简介

损失函数用来评价模型的预测值和真实值不一样的程度,损失函数值越小,通常模型的性能越好。

损失函数分为经验风险函数(指预测结果和实际结果的差别)和结构风险函数(经验风险函数加正则项)。

函数分类

回归问题

回归问题所对应的损失函数为 L1 损失函数和 L2 损失函数。(又称绝对值损失函数和平方损失函数)(w 为真实值的权重)

L1 loss:L(y,ˆy)=w(θ)|ˆyy|L2 loss:L(y,ˆy)=w(θ)(ˆyy)2

其中,L2 对于偏离观测值的输出给予很大的惩罚,且是平滑函数,在求解其优化问题时有利于误差梯度的计算。L1 对偏离真实值的输出没那么敏感,因此在观测中存在异常值时有利于保持模型稳定。

分类问题

0-1 损失函数

指预测值和目标值不相等则为1,否则为0。

L(Y,f(X))={1, Yf(X)0, Y=f(X)

该损失函数不考虑预测值和真实值的误差程度,也就是说只要预测错误,预测错误差一点和差很多是一样的。感知机就是用的这种损失函数,但是由于相等这个条件太过严格,我们可以放宽条件,即满足 |Yf(X)|<T时认为相等即判断正确。

L(Y,f(X))={1, |Yf(X)|T0, |Yf(X)|<T

对数损失函数

主要在逻辑回归中使用

L(Y,P(Y|X))=logP(Y|X)

能够很好的表现概率分布,如果需要知道结果属于每个类别的置信度,那它非常适合。

铰链损失函数(Hinge损失函数)

是一个分段连续函数,其在分类器分类完全正确时取0。使用铰链损失对应的分类器是支持向量机,铰链损失的性质决定了 SVM 具有稀疏性,即分类正确但概率不足1和分类错误的样本被识别为支持向量被用于划分决策边界,其余分类完全正确的样本没有参与模型求解 。

L(Y,f(X))=max(0,1Yf(x))

交叉熵损失函数

C=1nx[ylna+(1y)ln(1a)]

其中,x 表示样本,y 表示实时的标签,a 表示预测的输出,n 表示样本总数量。

在使用 sigmoid 函数作为激活函数时,常用交叉熵损失函数而非均方差损失函数,能够完美解决平方损失函数权重更新过慢的问题。

Author: iwannaeat
Link: https://iwannaeat.github.io/2020/11/19/【机器学习】损失函数/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.