常见回归和分类的损失函数

原文链接:GitHub - massquantity/Loss-Functions

常见回归和分类损失函数比较

损失函数的定义为,衡量真实值和预测值之间不一致的程度,一般越小越好。为了便于不同损失函数的比较,常将其表示为单变量的函数,在回归问题中这个变量为,在分类问题中则为。下面分别进行讨论。

回归问题的损失函数

回归问题中和皆为实数,因此用残差 来度量二者的不一致程度。残差(的绝对值)越大,则损失函数越大,学习出来的模型效果就越差(这里不考虑正则化问题)。
常见的回归损失函数有

  • 平方损失 (squared loss)
  • 绝对值 (absolute loss) :
  • Huber损失 (huber loss) :
    其中最常用的是平方损失,然而其缺点是对于异常点会施以较大的惩罚,因而不够robust。如果有较多异常点,则绝对值损失表现较好,但绝对值损失的缺点是在处不连续可导,因而不容易优化。

Huber损失是对二者的综合,当小于一个事先指定的值时,变为平方损失,大于时,则变成类似于绝对值损失,因此也是比较robust的损失函数。三者的图形比较如下:
[站外图片上传中...(image-bbe46-1619331359945)]

分类问题的损失函数

对于二分类问题,,损失函数常表示为关于的单调递减形式。如下图:

image

被称为margin,其作用类似于回归问题中的残差 。

二分类问题中的分类规则通常+为

可以看到如果,则样本分类正确, 则分类错误,而相应的分类决策边界即为。所以最小化损失函数也可以看作是最大化margin的过程,任何合格的分类损失函数都应该对margin<0的样本施以较大的惩罚。

1、 0-1损失 (zero-one loss)

0-1损失对每个错分类点都施以相同的惩罚,这样那些“错的离谱“ (即 )的点并不会收到大的关注,这在直觉上不是很合适。另外0-1损失不连续、非凸,优化困难,因而常使用其他的代理损失函数进行优化。

2、Logistic loss

logistic Loss为Logistic Regression中使用的损失函数,下面做一下简单证明:
Logistic Regression中使用了Sigmoid函数表示预测概率:



因此利用,可写为,此为一个概率模型,利用极大似然的思想:

                $$max(\prod P(y|x)) = max(\prod \frac{1}{1+e^{-yf(x)}})$$

两边取对数,又因为是求损失函数,则将极大转为极小:

这样就得到了logistic loss。



如果定义,则极大似然法可写为:

取对数并转为极小得:

上式被称为交叉熵损失 (cross entropy loss),可以看到在二分类问题中logistic loss和交叉熵损失是等价的,二者区别只是标签y的定义不同。

。。。。。。。。


image

你可能感兴趣的:(常见回归和分类的损失函数)