机器学习中参数更新规则背后的数学
作者头像
  • 阙婷
  • 2020-01-04 09:06:13 5

在本文中,我们将探讨机器学习中参数更新背后的数学原理。

我们的目标是找到一种算法,该算法能在任意时刻指导我们如何调整参数w的值,以便在新值下计算的损失比当前值更低。

如果我们每一步都朝着这个方向努力,损失值最终会不断减少,直至达到最小值。

泰勒级数提供了一种方法,即通过已知某点的函数值(记为x),我们可以预测其附近的新点的函数值。 具体来说,泰勒级数将新点(x+δx)上的函数值与当前点(x)上的函数值联系起来。实际上,新点的函数值等于当前点的函数值加上一些额外的项,这些项取决于δx。

若δx的选择使得f(x)增加的部分为负值,那么我们可以确保新点的函数值低于当前点的函数值。负值越大,损失减少得越多。

一阶导数(蓝色)表示x的变化率;二阶导数(绿色)表示变化率的变化率;三阶导数(黄色)表示变化率的变化率的变化率。

以函数f(x)=x³为例,我们可以将其与机器学习中的损失函数相结合,通过泰勒级数找到δw,使得新损失值小于旧损失值。

考虑到损失还依赖于其他参数(如b),我们需要确保所有参数的调整都能使损失值下降。

当模型预测的输入发生变化时,预测误差也会随之变化,从而影响损失值。

向量形式的泰勒级数可以帮助我们更好地理解参数变化对损失的影响。我们可以忽略掉泰勒展开式中高阶项的影响,因为它们通常非常小。

通过简化,我们发现损失函数相对于参数θ的一阶偏导数是关键。偏导数的计算可以通过将其他变量视为常数来完成。例如,对于损失函数L(w,b),我们分别计算关于w和b的偏导数。

将这些偏导数组合成一个向量,我们就得到了梯度。梯度表示了损失函数在某一点的最快上升方向,因此我们要沿着与梯度相反的方向调整参数,以实现损失的下降。

在实际应用中,我们通常使用特定的方法来计算偏导数。例如,对于一个包含五个数据点的数据集,我们可以选择Sigmoid函数作为激活函数,并使用平方误差损失函数来计算损失值。

通过链式法则,我们可以逐步求出关于参数w的偏导数。在这个过程中,我们注意到某些项相对于w的偏导数为零,因此可以简化计算过程。

最终,我们得到了关于参数w的完整偏导数表达式。同样的方法也可以用来计算关于参数b的偏导数。这样,我们就能有效地更新模型参数,以减少损失值。

    本文来源:图灵汇
责任编辑: : 阙婷
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
背后规则机器参数数学更新学习
    下一篇