理解梯度下降算法

我正在学习Machine Learning。我在阅读一个名为Linear Regression with one variable的主题时,对Gradient Descent Algorithm的理解感到困惑。

假设我们有一个Training Set,其中一对$(x^{(i)},y^{(i)})$表示(特征/输入变量,目标/输出变量)。我们的目标是为这个训练集创建一个假设函数,用于进行预测。

假设函数:$$h_{\theta}(x)=\theta_0 + \theta_1 x$$

我们的目标是选择$(\theta_0,\theta_1)$,以最佳方式近似我们的$h_{\theta}(x)$,从而在训练集上进行预测。

成本函数:$$J(\theta_0,\theta_1)=\frac{1}{2m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2$$

$$J(\theta_0,\theta_1)=\frac{1}{2}\times Mean Squared Error$$

我们需要最小化$J(\theta_0,\theta_1)$,以获得$(\theta_0,\theta_1)$的值,这些值可以放入我们的假设函数中以最小化它。我们可以通过在$(\theta_0,\theta_1,J(\theta_0,\theta_1))$的图上应用Gradient Descent Algorithm来实现这一点。

我的问题是我们如何选择$(\theta_0,\theta_1)$并绘制曲线$(\theta_0,\theta_1,J(\theta_0,\theta_1))$。在我在线观看的讲座中,讲师讲述了一切,但没有提到图是从哪里来的。


回答:

在每次迭代中,你会有一些h_\theta,你将计算1/2n * sum{(h_\theta(x)-y)^2 | for each x in train set}的值。
在每次迭代中,h_\theta是已知的,每个训练集样本的(x,y)值也是已知的,因此很容易计算上述值。

在每次迭代中,你会有一个新的\theta值,你可以计算新的MSE。

图本身将在x轴上显示迭代次数,在y轴上显示MSE。

作为旁注,虽然你可以使用梯度下降法,但没有必要。这个成本函数是凸的,并且有一个众所周知的单一最小值:$\theta = (X^T*X)^{-1)X^Ty$,其中y是训练集的值(对于大小为n的训练集,维度为1xn),X是2xn矩阵,其中每一行X_i=(1,x_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中创建了一个多类分类项目。该项目可以对…

发表回复

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