关注微信公众号“”机器学习算法面试“获取更多机器学习和深度学习方面的面试题
问题引入
大家最熟悉的莫过于LR模型了,LR模型用的激活函数是sigmod,使用的损失函数是交叉熵,但是它为啥不用MSE呢,按理说MSE也可以刻画预测和实际值的偏差大小呀?
问题解答
LR的基本表达形式如下:
使用交叉熵作为损失函数的梯度下降更新求导的结果如下:
首先得到损失函数如下:
计算梯度如下:
如果我们使用MSE作为损失函数的话,那损失函数以及求导的结果如下所示:
可以看到使用MSE作为损失函数的话,它的梯度是和sigmod函数的导数有关的,如果当前模型的输出接近0或者1时,就会非常小,接近0,使得求得的梯度很小,损失函数收敛的很慢。但是我们使用交叉熵的话就不会出现这样的情况,它的导数就是一个差值,误差大的话更新的就快,误差小的话就更新的慢点,这正是我们想要的。因此,我们需要用交叉熵而不是MSE作为损失函数。
网友评论