二元分类为什么不能用MSE做为损失函数?

  统计/机器学习 监督式学习 损失函数    浏览次数: 2364
3

如果预测值为概率,真实值是0、1标签,那么为什么不能用MSE作为训练二元分类的损失函数呢?


 

剪叔   2018-03-05 13:27



   6个回答 
9

不用MSE也是有理论依据的。理论依据来源于surrogate loss function

准确率(accuray)是不连续的,所以需要用连续的函数来代理

红色是Hing Loss,绿色是Log Loss,而浅蓝色是MSE。明显可以看出浅蓝色不是好的代理,所以优化MSE并不能优化模型的准确度。


SofaSofa数据科学社区 DS面经 问答 实战

染盘   2018-03-08 11:13

谢谢!长见识了! - 剪叔   2018-03-09 05:37
5

我的理解是MSE可以作为二元分类的损失函数,但是效果不好。

其实某种意义上也可以将二元分类看做回归问题,即将$y=1$,$y=0$看做实数域上的两个值就可以了,不要想着类别,最终应该也可以得到一个模型,但是效果很差(网络上有人试过,你也可以自己试一试)。

其实机器学习很多问题是很灵活的,对于很多问题,可以考虑不同的模型、损失函数等等,但是当然要具体问题具体分析选择适合他的喽

SofaSofa数据科学社区 DS面经 问答 实战

dzzxjl   2018-03-05 21:16

5

如果要具体地说的话,那是因为用MSE作为二元分类的损失函数会有梯度消失的问题。

给你推导一番:

$loss=\sum^{N}_{i}(y_{i}-\sigma(w^{T}x_{i}))^{2}$    ,其中$\sigma(w^{T}x_{i})=\frac{1}{1+exp(-w^{T}x_{i})}$

$\frac{\partial loss}{\partial w}=\sum^{N}_{i}(-2(y_{i}-\sigma(w^{T}x_{i}))\sigma(w^{T}x_{i})(1-\sigma(w^{T}x_{i}))x_{i})$

因为$\sigma(w^{T}x_{i})$的优化目标是接近$y_{i}$

所以$\sigma(w^{T}x_{i})$和$(1-\sigma(w^{T}x_{i}))$中的一个也会越来越接近0,也就是梯度消失。

而CrossEntropy的梯度是$\sum^{N}_{i}(\sigma(w^{T}x_{i})-y_{i})x_{i}$就没有这个问题。


关于CrossEntropy的梯度用SGD计算逻辑回归时的迭代公式是什么?

SofaSofa数据科学社区 DS面经 问答 实战

nobodyoo1   2018-07-30 16:03

对于正确分类的数据点,CE梯度有一项趋近0,MSE中有两项趋近于0,也就是MSE的梯度消失速度是CE的平方。我觉得梯度消失的问题也不会太严重,因为是正确分类的数据点的梯度才接近0,错误的数据点还是会有较大的梯度。 - Zealing   2018-07-31 00:34
3

CrossEntropy比MSE的优点是:

1.在nobodyoo1中说的,MSE有梯度消失的问题。

2.在Andrew Ng的ppt中(参考),$MSE(y,\sigma(X^Tw))$是non-convex。有很多local minimum。


SofaSofa数据科学社区 DS面经 问答 实战

Zealing   2018-10-09 05:51

2

感觉这就是个常识。均方根误差(MSE)只能用回归,二元分类一般用log loss。

我也不知道有没有什么科学道理。


SofaSofa数据科学社区 DS面经 问答 实战

Robin峰   2018-03-06 11:35

1

之所以用logloss来作为逻辑回归的损失函数,是因为它是通过最大似然估计得到的。

类似地,mse是线性回归的损失函数,也是通过最大似然估计得到的。


SofaSofa数据科学社区 DS面经 问答 实战

Marvin_THU   2018-07-30 14:01



  相关主题

如何理解GBDT里面“损失函数的负梯度在当前模型的值,可以作为残差的估计”?   1回答

Hamming Loss汉明损失的计算公式是什么?   1回答

logloss的取值范围是多少?一般好的分类器能达到多少?   5回答

关于损失函数h(x), J(x), cost的概念问题   1回答

cross entropy是什么意思?   1回答

怎么理解surrogate loss function代理损失函数?   2回答

python求logloss   1回答

focal loss是什么?   0回答

hinge loss的公式是什么?   1回答

Gini指数、Gini系数、Gini不纯是一回事吗?   2回答

用SGD计算逻辑回归时的迭代公式是什么?   2回答

逻辑回归的损失函数是怎么来的   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!