基础机器学习:线性回归和梯度下降
Basic Machine Learning: Linear Regression and Gradient Descent
我在 Coursera 上学习 Andrew Ng 的 ML class,我对梯度下降有点困惑。我困惑的公式截图在这里:
他的第二个公式,为什么要乘以第i个训练样例的值?我以为当你更新时你只是减去步长 * 成本函数(它不应该包括第 i 个训练示例。
我错过了什么?这对我来说意义不大,特别是因为第 i 个训练示例是一系列值,而不仅仅是一个...
谢谢,
克莱曼
从数学上讲,我们在这里尝试最小化误差函数
Error(θ) = Σ(yi - h(xi))^2 summation over i.
为了尽量减少错误,我们这样做
d(Error(θ))/dθi = Zero
putting h(xi) = Σ(θi*xi) summation over i
并推导上述公式
公式的其余部分可以推理为
梯度下降使用函数本身的斜率来寻找最大值。把它想象成在一个山谷中下坡,沿着向下坡度最小的方向走。所以,我们得到了方向,但步长应该是多少(我们应该继续朝同一个方向移动多长时间?)?
为此我们也使用坡度。因为最小坡度为零。(想想山谷的底部,因为它附近的所有点都比这个高。所以,必须有一个点,高度在降低,坡度为负,高度开始增加,坡度改变符号,变为负到正,最小值之间是零斜率点。)要达到 0 斜率,斜率的大小会向最小值减小。因此,如果斜率的大小很高,我们可以采取大步,如果斜率很低,我们正在接近最小值,应该采取小步。
我在 Coursera 上学习 Andrew Ng 的 ML class,我对梯度下降有点困惑。我困惑的公式截图在这里:
他的第二个公式,为什么要乘以第i个训练样例的值?我以为当你更新时你只是减去步长 * 成本函数(它不应该包括第 i 个训练示例。
我错过了什么?这对我来说意义不大,特别是因为第 i 个训练示例是一系列值,而不仅仅是一个...
谢谢, 克莱曼
从数学上讲,我们在这里尝试最小化误差函数
Error(θ) = Σ(yi - h(xi))^2 summation over i.
为了尽量减少错误,我们这样做
d(Error(θ))/dθi = Zero
putting h(xi) = Σ(θi*xi) summation over i
并推导上述公式
公式的其余部分可以推理为
梯度下降使用函数本身的斜率来寻找最大值。把它想象成在一个山谷中下坡,沿着向下坡度最小的方向走。所以,我们得到了方向,但步长应该是多少(我们应该继续朝同一个方向移动多长时间?)?
为此我们也使用坡度。因为最小坡度为零。(想想山谷的底部,因为它附近的所有点都比这个高。所以,必须有一个点,高度在降低,坡度为负,高度开始增加,坡度改变符号,变为负到正,最小值之间是零斜率点。)要达到 0 斜率,斜率的大小会向最小值减小。因此,如果斜率的大小很高,我们可以采取大步,如果斜率很低,我们正在接近最小值,应该采取小步。