为什么截距参数会朝意想不到的方向增加?

我在进行2次梯度下降迭代(初始条件:学习率 = 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应该在每次迭代中都减少。为什么会发生这种情况,如果误差函数是一个凸函数的话?


回答:

你实际上误解了梯度下降。梯度下降并不是说在每次迭代中所有权重都会朝向各自的最优值移动,而是指如果你提供准确的超参数,你总是会朝着最小成本移动。在你的情况下,你将权重初始化为[0,0],不存在任何alpha值可以否认所提到的效果,因为当w0从0.6移动到0.74(视为一个向量)且w1从2移动到2.68(视为另一个向量)时,结果向量是这样的,它沿着最陡的下降路径下山,这就是GD所考虑的,即权重整体向下移动的方向,沿着成本函数的山坡。

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

下图是w0在不同迭代时的值,x轴=w0,y轴=迭代次数

这是w0在不同迭代时的值,x轴=w0,y轴=迭代次数

现在我们可以清楚地看到你也提到的开始时的一个小向上凹口。

下图是不同迭代时的成本图

这是不同迭代时的成本图

从这个成本曲线上,你可以清楚地看到成本在每次迭代中都在减少,即我们持续沿着最陡的方向下山,这就是梯度下降,这就是GD的实际工作。并且是的,我们可能会遇到这样的行为,在模型学习过程中我们的权重朝相反于所需值的方向移动,但因为我们沿着山坡向下移动,我们总是会收敛到最小值和正确的权重值。

如果这仍然让你感到困扰,那么解决这个问题唯一的方法是改变你的初始权重值,因为调整学习率不会解决这个问题,[0,0]的初始化情况下。

所以用[-0.1,3.1]和相同的学习率进行初始化

w0在每次迭代时的值

现在你可以清楚地看到开始时没有这样的向上凹口,因为现在成本值在权重也朝向其最优值[-2,4]的方向上减少

成本与迭代次数

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

还有许多这样的初始化方式可以得到这种结果。

结论 – GD总是沿着最陡的路径下山

祝机器学习愉快…

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

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