了解梯度下降算法

时间:2015-04-05 17:35:15

标签: algorithm machine-learning

我正在学习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 ^ {( ⅰ)})^ 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))$。在网上讲座,我在看。导师告诉了一切,但没有提到情节会来的地方。

1 个答案:

答案 0 :(得分: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维度)和{{1} }是2xn矩阵,其中每一行X