理解梯度下降算法

我正在学习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

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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