您的位置:首页 > 其它

关于梯度上升和梯度下降的理解

2017-08-13 22:23 477 查看
在求极值的问题中,有梯度上升和梯度下降两个最优化方法。梯度上升用于求最大值,梯度下降用于求最小值。

如logistic回归的目标函数:



代表的是概率,我们想求概率最大值,即对数似然函数的最大值,所以使用梯度上升算法。

而线性回归的代价函数:



代表的则是误差,我们想求误差最小值,所以用梯度下降算法。

那么问题来了,挖掘机技术哪家强?哦不不不,为啥求最大值是梯度上升,求最小值是梯度下降?

举个栗子,来看两个函数:





我们现在用梯度下降求第一个函数的最小值,该函数求导得 f(x)=2x。如果随机取一点并使用梯度下降得到最小值,那么每次更新的就是其梯度,梯度也就是最陡峭的方向导数,方向导数是切线的斜率(先可以简单这么理解,严格来说并不能这么解释)。

每次的更新方式就是:



减号后面一部分就是2x。

现在把图像切分一下,先看左半部分,当随机的点在左半时,x为负,即梯度2x<0。那么更新就是在x基础上减去一个负数,相当于x加一个正数,所以x沿x轴的正方向移动;再看右半部分,当随机的点在右半时,x为正,即梯度2x>0。那么更新是在x基础上减去一个正数,相当于x沿着x轴负方向移动。正好一前一后使x在向极小值移动(极小值处梯度为0,所以x不更新)。

====

再看第二个函数,我们用梯度上升求它的最大值,每次更新方式为:



该函数求导得f(x)=-2x。同样我们先看左半部分,当随机点在左半时,x为负,即梯度-2x>0,所以更新x相当于沿着x轴正方向移动;同理随机点在右半部分时,更新x相当于沿着x轴负方向移动。两种移动都慢慢靠近最后停在极大值上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息