小学生都懂的LogisticalRegression为什么不用MSE

首先介绍两个主要演员  
1. MSE损失函数:  $$L =\frac{1}{n}* \sum_{1}^{n}(y-y^*)^2$$   其中$y^*$是对y的预测  
2. Sigmoid激活函数: $$y^*=\frac{1}{1+e^{-z}}$$ 要知道LR用的就是这个,其中z=$W^TX$

忽略到Z对W的导数,因为考虑的是损失函数和激活函数的影响,而Z对W的导数只是(定量)的X

所以用\frac{dL}{dz}来考虑   
那么对于中学水平都能容易求导得到
                                                             $$\frac{dL}{dz} = c_0 *(y-y^*)y^*(1-y^*)$$ (c0是常数后面仍掉)

回到熟悉的初中数学!!!  
分情况讨论   
1.y=1  

               \frac{dL}{dz}=(1-y^*)^2*y^*

你说看不清???直接利用工具,其实稍微求个导数就知道1/3和1是两个极值点
结论是当y=1,我们预测0.3左右能最快更新.但最坏情况就是接近0,也就是错误很大,导数很小!!!也就是你0要纠正到1很困难,毕竟你是要加上这个小小的梯度有关的纠正.

%matplotlib inline
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0,1,5000)
y = (1-x)**2*x
plt.plot(x,y)

2.y=0 ,其实按照类比这个问题是对称(把y和1-y互换能证明问题等价),为了更清楚再来一遍

\frac{dL}{dz} = -(y^*)^2*(1-y^*)

%matplotlib inline
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0,1,5000)
y = -x**2*(1-x)
plt.plot(x,y)

显然1纠正到0,在0.666...左右最能纠正问题,而在靠近1,导数绝对值猛烈的降低了!可以认为最好情况有多快,接近最差情况就有多慢,而且慢的程度也就是二阶导数也是递增函数.

下结论!为啥不用这货,因为这家伙在很多例子错的离谱反而更正的很慢!!!继续深究有理由怀疑!对于差的少量样本很可能有大偏执!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值