作者:hooly
微信公号:一口袋星光
我们都知道应该用Cross Entropy的方法求解Logistic Regression的问题,今天我们解释一下为什么用Square error解Logistic regression是有问题的。
首先:
fw,b(x)是一个关于z的sigmod函数而z是和参数w以及b有关的对于x的线性函数。
所以有如下公式:
我们使用Linear Regression求解时候的求Square error的Loss function如下:
对w求偏导:
假设:
则有:
当fw,b(x) = 1,有L对w的偏导数 = 0;close to target
当fw,b(x) = 0 ,有L对w的偏导数 = 0;far from target
以上说明:无论我们和结果接近还是远离,我们这一点的偏导数都是0。这就和我们想要的“和结果相近时导数->0;和结果远离时,导数>0”这个观点不一致。这是为什么呢?
我们把参数的变化对total loss的影响做图如下:
在Cross entropy图中:在距离目标很近的地方,微分值是很小的;距离目标很远的地方,微分值是大的。
在Square error图中:距离目标很近的地方也就是最低点,微分值是小的;但是当你距离目标远的时候,你的微分值也是很小的。
因为你在用Square error方法中做gradient descent 的时候,如果你的微分值很小,你不知道你是距离目标很近还是很远,这时候你的update的速度是非常慢的,特别卡。
作者:hooly
微信公号:一口袋星光
我会在微信公号上持续更新我的文章,你来讨论我很欢迎。