如果预测值为概率,真实值是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面经