为什么不用平方误差(MSE)作为Logistic回归的损失函数?

在学习logistic regression(逻辑斯蒂回归)的时候,我们用类似交叉熵的损失函数Log误差: L ( y − y ^ ) = − ∑ i = 1 n y i log ⁡ ( y ^ i ) L(y-\hat{y})=-\sum_{i=1}^{n}y_i\log(\hat{y}_i) L(yy^)=i=1nyilog(y^i),而不是在线性回归里常用的平均平方误差(MSE): L ( y − y ^ ) = ∑ i = 1 n ( y i − y ^ i ) 2 L(y-\hat{y})=\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 L(yy^)=i=1n(yiy^i)2.

我最近找到一篇博文讲得不错,这两天翻译一下,顺便求一波thesis高分😏

Why not Mean Squared Error(MSE) as a loss function for Logistic Regression? – Rajesh Shreedhar Bhat, Souradip Chakraborty

在这篇博文中,我们主要对比在逻辑斯蒂回归中的log loss(对数损失)和mean squared error(平均平方误差),并且根据经验和数学分析证明为什么我们推荐使用“log loss”

分类问题和损失函数基础

两种误差的数学公式如下图:
Log loss:
Log loss
Mean Squared Loss:在这里插入图片描述

在上面两公式中的字母含义如下:
y y y: actual label(真实标签)
y ^ \hat{y} y^: predicted value(预测标签)
n n n: number of classes(类别数)

当我们有一个两个类的数据集时( n = 2 n=2 n=2),我们用“0”和“1”来表示这两个类。

下面我们展示当预测标签和真实标签出现错误的时候,为什么log-loss比MSE更优

例如:

  • 在数据集中的样例的真实标签是“1”
  • 在用sigmoid函数之后,预测值给的标签是“0”

当以MSE为损失值:
( 1 − 0 ) 2 = 1 (1 - 0)^2 = 1 (10)2=1
当以log loss为损失值:
在计算之前,我们先来看一下 log ⁡ ( x ) \log(x) log(x)的函数图像
logx

可以看出当 x x x趋近于0时, log ⁡ ( x ) \log(x) log(x)倾向于负无穷。

因此。loss value损失值为:
− ( 1 × log ⁡ ( 0 ) + 0 × log ⁡ ( 1 ) ) → i n f i n i t y -(1\times \log(0) + 0\times \log(1)) \rightarrow infinity (1×log(0)+0×log(1))infinity
可以看出,计算MSE的损失值大大小于log loss.因此可以得到结论:计算MSE不会重重地惩罚错误分类,哪怕是完全分错!

然而,当预测准了的时候,我们再计算一下损失值如下:
真实标签:“1”
预测值:“1”
MSE: ( 1 − 1 ) 2 = 0 (1-1)^2 = 0 (11)2=0
Log loss: − ( 1 × log ⁡ ( 1 ) + 0 × log ⁡ ( 0 ) ) = 0 -(1\times \log(1) + 0\times \log(0))=0 (1×log(1)+0×log(0))=0

至此,我们已经展示了MSE对于二分类问题不是一个好的选择。相似的结论可以扩展到(one-hot)1-热点编码的多分类问题。

MSE和在Logistic回归的非凸问题

在分类问题中,我们通常会利用梯度下降手段(例如Newton Raphson,梯度下降等等)通过最小化损失函数去寻找系数的最优解。因此如果损失函数是非凸的,我们无法保证总能找到全局最小值,相对地,我们会很可能陷入局部最小值。

在这里插入图片描述

在证明为什么MSE在logistic 回归中不是一个凸函数之前,让我们来看一下函数为凸的条件是什么。

n − n- n维区间上的一个实值函数是凸的:任意两点的连线都等于或者大于函数图像。(如下图)

在这里插入图片描述

如果 f f f是二次可微的而且定义域是实数轴,我们有如下结论:
f f f是凸的,当且仅当 f ′ ′ ( x ) ≥ 0 f''(x) \geq0 f′′(x)0.也就是损失函数的二重微分大于等于0,因此是凸的,关于凸函数可以参考这只影片

现在我们将数学地证明对于逻辑斯蒂回归的MSE损失是非凸的

简单来讲,假设对于一个给定数据集只有一个特征" x x x"和"二分类标签",下图中 f ( x ) = M S E f(x)= MSE f(x)=MSE并且 y ^ \hat{y} y^是在用了sigmoid函数之后的预测值标签

在这里插入图片描述

从上式中,因为 y ^ ∈ [ 0 , 1 ] \hat{y}\in[0,1] y^[0,1],所以 y ^ × ( 1 − y ^ ) \hat{y}\times(1-\hat{y}) y^×(1y^)这个函数永远在 [ 0 , 1 4 ] [0,\frac{1}{4}] [0,41]。我们要证明 H ( y ^ ) H(\hat{y}) H(y^) [ 0 , 1 ] [0,1] [0,1]上是否一直为正,所以不需要考虑这部分。这导致我们必须检查对于任意的" x x x", H ( y ^ ) H(\hat{y}) H(y^)是否是正的,以检查其是否是凸函数。

我们已知 y y y可以取的值是0或者1.因此我们对于这两种情况分别检查凸函数的条件

在这里插入图片描述

在上述情况,也就是当 y = 0 y=0 y=0时候。当 y ^ ∈ [ 0 , 2 / 3 ] \hat{y}\in [0,2/3] y^[0,2/3],函数 H ( y ^ ) ≥ 0 H(\hat{y})\geq0 H(y^)0,并且当 y ^ ∈ [ 1 / 3 , 1 ] \hat{y}\in [1/3,1] y^[1/3,1] H ( y ^ ) ≤ 0 H(\hat{y})\leq0 H(y^)0。这代表函数是非凸的

在这里插入图片描述

y = 1 y=1 y=1。当 y ^ ∈ [ 0 , 1 / 3 ] \hat{y}\in [0,1/3] y^[0,1/3],函数 H ( y ^ ) ≤ 0 H(\hat{y})\leq0 H(y^)0,并且当 y ^ ∈ [ 1 / 3 , 1 ] \hat{y}\in [1/3,1] y^[1/3,1] H ( y ^ ) ≥ 0 H(\hat{y})\geq0 H(y^)0。这同样代表函数是非凸的

因此,基于以上分析我们已经得到在logistic回归中的MSE是非凸的,因此我们不推荐使用之。

log loss在Logistic回归的凸性

下面来到我们的最终问题了:那么“log loss”函数是凸的吗?我们会数学地展示对于logistic回归log损失函数是凸的

在这里插入图片描述

其中 θ \theta θ是自变量 x x x的系数

从上面公式的最后一行( l o g log log损失函数的二重微分)可以看出:平方项始终是非负的,并且我们知道 e x e^x ex的值域是 ( 0 , + ∞ ) (0,+\infty) (0,+)。因此最终项始终是非负的,从而可以得到我们的最终结论:

l o g   l o s s log\ loss log loss函数在所有情况下都是凸函数!!

  • 60
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值