【问题标题】:Basic Machine Learning: Linear Regression and Gradient Descent基础机器学习:线性回归和梯度下降
【发布时间】:2015-06-10 21:41:32
【问题描述】:

我正在 Coursera 上 Andrew Ng 的 ML 课程,对梯度下降有点困惑。我很困惑的公式截图在这里:

在他的第二个公式中,为什么他要乘以第 i 个训练样例的值?我认为当您更新时,您只是减去了步长 * 成本函数(不应该包括第 i 个训练示例。

我错过了什么?这对我来说没有多大意义,特别是因为第 i 个训练示例是一系列值,而不仅仅是一个......

谢谢, 布莱曼

【问题讨论】:

  • 在 Stack Overflow 上提问不是一个正确的问题。 stats.stackexchange.com 会更适合这类问题。

标签: machine-learning gradient-descent


【解决方案1】:

在数学上,我们在这里尝试最小化误差函数

Error(θ) = Σ(yi - h(xi))^2    summation over i.

为了尽量减少错误,我们这样做

d(Error(θ))/dθi = Zero
putting h(xi) = Σ(θi*xi)     summation over i

并推导出上式。

该公式的其余部分可以推理为

梯度下降使用函数本身的斜率来找到最大值。通过采取向下坡度最小的方向,将其视为在山谷中下坡。所以,我们得到了方向,但是步长应该是多少(我们应该继续朝同一个方向移动多长时间?)?

为此,我们也使用斜率。因为在最小坡度为零。(想想谷底,因为它附近的所有点都高于这个。所以,一定有这一点高度减少,坡度为负,高度开始增加,坡度改变符号,变为负到正,在最小值之间是零斜率点。)为了达到 0 斜率,斜率的大小向最小值减小。因此,如果斜率的大小很高,我们可以大步走,如果它很低,我们正在接近最小值,应该小步走。

【讨论】: