我一直在阅读 manning ( https://www.manning.com/books/machine-learning-in-action ) 的《机器学习实战》一书中的逻辑回归章节,它使用梯度上升来计算最佳权重。为什么我们选择梯度上升而不是梯度下降?
逻辑回归中的梯度上升与梯度下降
机器算法验证
机器学习
物流
梯度下降
2022-03-09 22:14:11
4个回答
https://en.wikipedia.org/wiki/Gradient_descent:
要使用梯度下降找到函数的局部最小值,需要采取与当前点处函数的梯度(或近似梯度)的负数成比例的步骤。
相反,如果采取与梯度的正数成比例的步骤,则接近该函数的局部最大值;该过程被称为梯度上升。
换句话说:
- 梯度下降旨在最小化一些目标函数:
- 梯度上升 旨在最大化一些目标函数:
什么是渐变?
它是函数在某一点的导数。基本上,给出该点的直线斜率。如何几何计算这个斜率(只考虑一个二维图和任何连续函数)?您在该点绘制一条切线,该点穿过 x 轴并从该点垂直于 x 轴。它将形成一个三角形,现在计算斜率很容易。此外,如果此切线平行于 x 轴,则梯度为 0,如果它平行于 y 轴,则梯度为无穷大。
为什么要使用上升或下降?
如果我有一个凸函数,那么在底部的梯度或导数为 0。类似地,如果我们在顶部有一个凹函数,梯度或导数为 0。为什么我们对 0 感兴趣?这是因为它可以帮助我们找到函数的最低(凸)或最高(凹)值
现在我们的机器学习有一个成本函数,它们可以是凹的也可以是凸的。如果它是凸的,我们使用Gradient Descent,如果它是凹的,我们使用Gradient Ascent。现在逻辑回归有两个成本函数。当我们使用凸的时候我们使用梯度下降,当我们使用凹的时候我们使用梯度上升。另外,请注意,如果我在凸函数之前添加减号,它会变为凹函数,反之亦然。
如果你想最小化一个函数,我们使用梯度下降。例如。在深度学习中,我们希望最小化损失,因此我们使用梯度下降。
如果你想最大化一个函数,我们使用 Gradient Ascent。例如。在强化学习 - 策略梯度方法中,我们的目标是最大化奖励函数,因此我们使用梯度上升。
其它你可能感兴趣的问题