机器学习中参数更新规则背后的数学

在本文中,我们将讨论机器学习中参数更新规则背后的数学。

我们的目标是找到一种算法,该算法可在任何时间戳下告诉我们如何更改w的值,以使我们在新值下计算的损失小于在当前值下的损失。

机器学习中参数更新规则背后的数学

无论从哪里开始,如果我们每一步都这样做,损失一定会减少,最终达到最小值。

泰勒级数告诉我们,如果我们有一个函数,并且知道某个点处的值(在以下情况下为x),则可以通过以下表达式给出在一个非常接近x的新点处的值

机器学习中参数更新规则背后的数学

我们可以看到泰勒级数将新点(x +δx)上的函数值与当前点(x)上的函数值相关联

机器学习中参数更新规则背后的数学

实际上,新点的值等于当前点的值加上一些附加项,所有这些项均取决于δx

现在,如果这个δx使得要添加到f(x)的值(在下图的括号中)实际上为负,那么我们可以确保新点的函数值小于在当前点的函数值。

机器学习中参数更新规则背后的数学

因此,我们需要以这样的方式找到δx,使得上图中括号中的值为负。负数越大越好,因为损失将减少更多。

机器学习中参数更新规则背后的数学

上图中蓝色是x的一阶导数。

上图中绿色是x的二阶导数。

上图中黄色是x的三阶导数。

如果我们有f(x)为x³,那么:

机器学习中参数更新规则背后的数学

现在我们可以将机器学习中损失函数的泰勒级数写为:

机器学习中参数更新规则背后的数学

想法是找到δw的值,使得下图中括号中的值为负,然后我们知道新的损失值将小于旧的损失值

机器学习中参数更新规则背后的数学

因为损失也依赖于b,所以我们希望新的损失值也小于当前的损失值

机器学习中参数更新规则背后的数学

如果我们改变w或b,预测的输出就会改变。

如果机器学习预测的输出发生变化,那么预测输出和真实输出之间的差值也会发生变化,如果发生变化,损失值也会发生变化。

机器学习中参数更新规则背后的数学

向量的泰勒级数看起来像:

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

上图中括号中的值取决于参数值的变化。因此,我们需要找到变化向量(δθ或u),以使括号中的值变为负数,并且如果发生这种情况,我们将确保损失会减少。

现在我们可以去掉下面等式中括号中的一些项:

机器学习中参数更新规则背后的数学

ETA是非常小的,在实践中,大约是0.0001或这个数量级,如果ETA较小,则ETA高次幂将是更小的,所以即使不知道下图中黄色部分的确切数值,我们可以确定整个项将非常小,与在等式中具有eta³和eta⁴的方程相似,这些项甚至会更小

机器学习中参数更新规则背后的数学

因此,实际上,以后出现的所有项(在下图中的括号中)都将很小,我们可以忽略它们。

机器学习中参数更新规则背后的数学

我们可以将方程写为近似值,如下所示:

机器学习中参数更新规则背后的数学

上图中以黄色表示的值是损失相对于theta的一阶偏导数,计算偏导数的方法是,我们假设另一个变量充当常数,例如:如果损失取决于w和b,我们正在计算关于w的偏导数,那么我们可以将b视为常数。

如果我们的函数如下:

机器学习中参数更新规则背后的数学

那么我们就可以计算关于'w'的偏导数为

机器学习中参数更新规则背后的数学

当我们计算偏导数时,这将导致以下假设b为常数:

机器学习中参数更新规则背后的数学

同样,关于b的偏导数为:

机器学习中参数更新规则背后的数学

如果我们把上面两个关于w和b的偏导放到一个向量中,我们得到一个梯度:

机器学习中参数更新规则背后的数学

我们将梯度表示为:

机器学习中参数更新规则背后的数学

对于上述情况,我们可以写成:

机器学习中参数更新规则背后的数学

这意味着它是函数f(θ)相对于θ的梯度,而θ实际上只是w和b的向量。

因此,回到我们的原始方程式,我们有:

机器学习中参数更新规则背后的数学

左侧的值是新点的损失值,为实数,当前损失值也是实数,eta也是一个小实数,另外两个项是向量,我们采用它们的点积为我们提供了实数,所以等式两边都是实数。

机器学习中参数更新规则背后的数学

我们可以将上面的等式重写为:

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

上图中的值是两个向量之间的点积。

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

我们希望以下值小于0,并且由于它是两个向量的点积,因此我们希望这两个向量之间的夹角大于90但小于等于180:

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

机器学习中参数更新规则背后的数学

出现负号(-)的原因是我们必须沿着与梯度相反的方向前进。

机器学习中参数更新规则背后的数学

计算偏导数:

我们拥有的一般方法是:

机器学习中参数更新规则背后的数学

我们有5个数据点作为输入,我们选择Sigmoid函数

机器学习中参数更新规则背后的数学

我们将损失值计算为:

机器学习中参数更新规则背后的数学

我们可以将δw计算为:

机器学习中参数更新规则背后的数学

把这个方程中的平方作为损失函数,我们用的是平方误差损失。

值总和的导数等于各个值的导数的和。

现在在导数的5项中,我们考虑一项然后计算它对w的偏导数

机器学习中参数更新规则背后的数学

我们有:

机器学习中参数更新规则背后的数学

为了方便起见,我们在上式中取1/2。

我们有f(x)作为' w'的函数,f(x)等于:

机器学习中参数更新规则背后的数学

因此,使用链式法则,我们可以将关于“ w”的偏导数计算为:

机器学习中参数更新规则背后的数学

现在上面方程中的y并不依赖于w,因此它相对于w的偏导数将为0,我们可以将上面的方程写为:

机器学习中参数更新规则背后的数学

现在我们可以在上述方程式中插入f(x)的值,所以我们有:

机器学习中参数更新规则背后的数学

我们可以将f(x)关于w的偏导数计算为:

机器学习中参数更新规则背后的数学

我们的整体偏导数值如下:

机器学习中参数更新规则背后的数学

这就是我们针对参数'w'计算损失函数的偏导数的方式。以相同的方式,我们可以计算出损失函数相对于参数'b'的偏导数。