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