为什么拦截参数会在意外方向上增加?

问题描述 投票:-1回答:1

我正在进行2次梯度下降迭代(初始条件:learning_rate = 0.1,[w0,w1] = [0,0])以找到适合简单的线性模型的2个参数(y_hat = w0 + w1 * x)数据集,x = [0,1,2,3,4]和y = [0,2,3,8,17]。通过使用闭合公式,我发现w0 = -2且w1 = 4.对于梯度下降的前2次迭代,我发现w0 = 0.6,w0 = 0.74。然而,我认为,如果在梯度下降中没有发生过冲,我应该期望在给定梯度下降的初始条件和从闭合形式解得到的答案的每一次迭代中w0减小。如果误差函数是凸函数,为什么会出现这种情况?

machine-learning linear-regression gradient-descent
1个回答
0
投票

你实际上误解了梯度下降。梯度下降并不是说在每次迭代时所有权重都将朝着各自的最佳值移动,而是它的全部意义在于,如果提供准确的超参数,则总是朝着最低成本移动。在你使用[0,0]初始化权重的情况下,没有alpha值会拒绝上述效果,因为当w0从0.6变为0.74(考虑这是一个向量)并且w1从2移动到2.68(考虑到这一点)另一个矢量)然后得到的矢量是这样的,它以最陡的下降向下移动,这就是GD所说的,这是权重向下移动到成本函数的集合方向。

您可以通过绘制成本图来验证这一点,并且在第二次迭代之后,b值确实向-2移动,因为在该方向上的第二次迭代之后,w0是最陡的。

下图是不同迭代时w0的值,x_axis = w0和y_axis = iteration_no

this the of w0 at different iteration, x_axis=w0 and y_axis=iteration_no

现在我们可以清楚地看到你刚才提到的那个小小的向上缺口。

下面是不同迭代的成本图

this is the graph of cost at different iterations

而这个成本曲线你可以清楚地看到成本在每次迭代中都在下降,也就是说,我们在最陡峭的方向上不断向下移动,这就是梯度下降,这就是GD的实际工作。是的,我们可能会得到这样的行为:在我们的模型学习过程中,我们的权重与其所需的值相反,但由于我们正在向下移动,我们总是收敛到最小值和正确的权重值。

现在,如果它仍然让你讨厌,那么解决这个问题的唯一方法就是改变你的初始权重值,因为调整learning_Rate不会用[0,0]初始化来解决这个问题。

因此使用相同的learning_rate初始化[-0.1,3.1]

w0 at each iteration

现在你可以清楚地看到,开头没有这样的向上缺口,因为现在成本值在权重也朝着最佳值方向移动的方向上减小,即[-2,4]

cost vs iteration

现在你也可以看到成本和w0接近所需的值,在更少的迭代中如前所述,这是因为现在我们初始化非常接近所需的值。

还有更多这样的初始化可以为您提供此结果。

结论 - GD总是沿着最陡峭的路径向下移动

快乐机器学习......

© www.soinside.com 2019 - 2024. All rights reserved.