如果预测值为概率,真实值是0、1标签,那么为什么不能用MSE作为训练二元分类的损失函数呢?
8个回答
如果要具体地说的话,那是因为用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面试题库 DS面经不用MSE也是有理论依据的。理论依据来源于surrogate loss function。
准确率(accuray)是不连续的,所以需要用连续的函数来代理。
红色是Hing Loss,绿色是Log Loss,而浅蓝色是MSE。明显可以看出浅蓝色不是好的代理,所以优化MSE并不能优化模型的准确度。
CrossEntropy比MSE的优点是:
1.在nobodyoo1中说的,MSE有梯度消失的问题。
2.在Andrew Ng的ppt中(参考),$MSE(y,\sigma(X^Tw))$是non-convex。有很多local minimum。
这个所谓的“Non-convex”应该指因为梯度消失问题,数据点是loss上的saddle point,如果learning rate不是足够大,有些saddle point会变成很难跳出的“local minimum”。
SofaSofa数据科学社区DS面试题库 DS面经我的理解是MSE可以作为二元分类的损失函数,但是效果不好。
其实某种意义上也可以将二元分类看做回归问题,即将$y=1$,$y=0$看做实数域上的两个值就可以了,不要想着类别,最终应该也可以得到一个模型,但是效果很差(网络上有人试过,你也可以自己试一试)。
其实机器学习很多问题是很灵活的,对于很多问题,可以考虑不同的模型、损失函数等等,但是当然要具体问题具体分析选择适合他的喽
SofaSofa数据科学社区DS面试题库 DS面经如果把平方损失函数用在逻辑回归上,那么就是下图这样的过程
最后两行的意思说,如果真是标签是1,你的预测值越接近接近0,梯度越小。这样的目标函数显然是无法进行二元分类的。
SofaSofa数据科学社区DS面试题库 DS面经 相关主题
怎么理解surrogate loss function代理损失函数?
2回答
logloss的取值范围是多少?一般好的分类器能达到多少?
5回答
关于损失函数h(x), J(x), cost的概念问题
1回答
python求logloss
1回答
focal loss是什么?
1回答
LR中若标签为+1和-1,损失函数如何推导,求大佬解答
3回答
逻辑回归的损失函数是怎么来的
2回答
我们谢绝在回答前讲“生动”的故事。
我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。
我们谢绝答非所问。
我们谢绝自己不会、硬要回答。
我们感激每一个用户在编写答案时的努力与付出!