基础机器学习:线性回归和梯度下降

我在Coursera上参加了Andrew Ng的机器学习课程,对梯度下降有些困惑。我感到困惑的公式截图在这里:

Formula in question

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

我错过了什么?这对我来说不太合理,特别是因为第i个训练样本是一系列值,而不仅仅是一个值…

谢谢,@bclayman


回答:

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

Error(θ) = Σ(yi - h(xi))^2    对i求和。

为了最小化误差,我们进行

d(Error(θ))/dθi = Zeroputting h(xi) = Σ(θi*xi)     对i求和

并推导出上述公式。

其余的公式可以解释为

梯度下降利用函数本身的斜率来寻找最大值。可以把它想象成在山谷中下山,通过选择最小向下的斜率方向。所以,我们得到了方向,但步长应该是什么(我们应该在同一个方向上继续移动多远)?

我们也使用斜率来确定步长。因为在最小值处斜率为零。(想象一下山谷的底部,因为它附近的所有点都比它高。所以,必定有一个点,在这个点上高度在减少,斜率为负,然后高度开始增加,斜率改变符号,从负变为正,而在中间,最小值是斜率为零的点。)为了达到零斜率,斜率的幅度在接近最小值时会减小。因此,如果斜率的幅度大,我们可以迈出大步,而如果斜率的幅度小,我们正在接近最小值,应该迈出小步。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注