【白话机器学习系列】白话梯度下降

news2024/10/7 2:11:10

白话梯度下降

梯度下降是机器学习中最常见的优化算法之一。理解它的基本实现是理解所有基于它构建的高级优化算法的基础。

在这里插入图片描述

文章目录

    • 优化算法
    • 一维梯度下降
    • 均方误差梯度下降
      • 什么是均方误差
      • 单权重
      • 双权重
      • 三权重
      • 三个以上权重
    • 矩阵求导
    • 结论

优化算法

在这里插入图片描述

在机器学习中,优化是寻找理想参数或权重以最大化或最小化成本或损失函数的过程。全局最大值是函数定义域上的最大值,而全局最小值是函数的最小值。虽然只有一个全局最大值和/或最小值,但可以有许多局部最大值和最小值。成本函数的全局最小值或最大值指示模型参数生成接近实际目标的预测。训练模型时,局部最大值和最小值可能会导致问题,因此应始终留意它们的存在。上图显示了每种最大值/最小值的示例。

优化算法有几种不同类别的算法:包围算法、局部下降算法、一阶算法和二阶算法。本文的重点是使用一阶导数进行优化的一阶算法。在此类别中,梯度下降算法是最受欢迎的。

一维梯度下降

梯度下降是一种一阶迭代优化算法,用于最小化成本函数。通过使用偏导数、方向和学习率,梯度下降减少了预测值和实际值之间的误差或差异。

梯度下降背后的思想是每个权重的导数将揭示其方向和对成本函数的影响。下图中,成本函数为 f ( w ) = w 2 f(w) = w^2 f(w)=w2,它是一条抛物线。最小值位于 (0,0),当前权重为 − 5.6 -5.6 5.6。当前损失为 31.36 31.36 31.36,橙色线代表导数,或权重的当前变化率,即 − 11.2 -11.2 11.2。这表明权重需要“下坡”移动——或者变得更正——才能达到损失为 0 0 0 。这就是梯度下降的用武之地。

在这里插入图片描述

通过使用称为学习率的值缩放梯度并从其权重的当前值中减去缩放后的梯度,输出将最小化。可以在下图中看到。 在十次迭代( w 0 → w 9 w_0 \to w_9 w0w9)中,使用 0.1 的学习率来最小化成本函数。

在这里插入图片描述

在下面的算法步骤中,权重由 w w w 表示, j j j 表示其当前值, j + 1 j+1 j+1 表示其新值。衡量误差的成本函数用 f f f 表示,偏导数是成本函数相对于参数的梯度。学习率用 α \alpha α 表示。

  1. 选择学习率和迭代次数

  2. 选择参数的随机值

  3. 用下面的公式更新参数

w j + 1 = w j − α ∂ ∂ w j f ( w j ) w_{j+1} = w_j-\alpha\frac{\partial}{\partial_{w_j}}f(w_j) wj+1=wjαwjf(wj)

  1. 重复第三步,直到达到最大迭代次数

当对函数求偏导数或梯度时,一次只能评估一个参数,其他参数被视为常数。对于上面的例子, f ( w ) = w 2 f(w) = w^2 f(w)=w2,只有一个参数,因此导数为 f ′ ( w ) = 2 w f'(w) = 2w f(w)=2w。 更新参数的公式如下:
w j + 1 = w j − α ( 2 w j ) w_{j+1} = w_j-\alpha(2w_j) wj+1=wjα(2wj)
假设学习率为 0.1 0.1 0.1,初始权重为 − 5.6 -5.6 5.6,前十次迭代如下:

在这里插入图片描述

上表展示了公式的每个组成部分如何帮助最大限度地减少损失。通过负缩放梯度,新权重趋近于0,斜率变得不那么陡。随着斜率逐渐变小,每次迭代都会产生更小的更新。

梯度下降的这种基本实现可以应用于几乎任何损失函数,包括具有大量权重的损失函数。

均方误差梯度下降

什么是均方误差

机器学习中流行的损失函数是均方误差 (MSE)。
M S E = 1 n ∑ i = 1 n ( Y ^ i − Y i ) 2 MSE = \frac{1}{n}\sum_{i=1}^n(\hat Y_i-Y_i)^2 MSE=n1i=1n(Y^iYi)2

该函数用于计算模型的预测 ( Y ^ \hat Y Y^) 和预期输出 ( Y Y Y) 之间的差异。然后对差值进行平方以确保输出始终为正。这意味着计算差值时可以先考虑 Y ^ \hat Y Y^ Y Y Y。这在一组大小为 n n n 的点上重复进行。通过将所有这些点的平方差相加并除以 n n n,得到均方差(误差)。这是同时评估模型在所有点上的表现的简单方法。下面是一个简单的例子:

在这里插入图片描述

在此公式中, Y ^ \hat Y Y^ 代表模型的预测。在回归中,模型的方程可能包含一个或多个权重,具体取决于训练数据的要求。下表反映了这些情况。

权重数量 Y ^ \hat Y Y^MSE
1 w X wX wX 1 n ∑ i = 1 n ( w X i − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(wX_i-Y_i)^2 n1i=1n(wXiYi)2
2 w 1 X + w 0 w_1X+w_0 w1X+w0 1 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2 n1i=1n(w1Xi+w0Yi)2
3 w 2 X 2 + w 1 X 1 + w 0 w_2X_2+w_1X_1+w_0 w2X2+w1X1+w0 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 n1i=1n(w2X2i+w1X1i+w0Yi)2
k k k w k X k + ⋯ + w 2 X 2 + w 1 X 1 + w 0 w_kX_k+\dots+w_2X_2+w_1X_1+w_0 wkXk++w2X2+w1X1+w0 1 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 n1i=1n(wkXki++w2X2i+w1X1i+w0Yi)2

现在,要使用这些方程中的任何一个执行梯度下降,必须计算它们的梯度。梯度包含函数的偏导数:
∇ MSE = [ ∂ MSE ∂ w 0 … ∂ MSE ∂ w k ] \nabla \text{MSE} = \begin{bmatrix} \frac{\partial \text{MSE}}{\partial w_0} \\ \dots\\ \frac{\partial \text{MSE}}{\partial w_k} \end{bmatrix} MSE= w0MSEwkMSE
必须计算每个权重的偏导数。偏导数的计算方式与普通导数相同,但每个未考虑的变量都必须视为常数。

单权重

∇ 1 n ∑ i = 1 n ( w X i − Y i ) 2 = [ ∂ ∂ w [ 1 n ∑ i = 1 n ( w X i − Y i ) 2 ] ] = 2 n ∑ i = 1 n X i ( w X i − Y i ) \nabla \frac{1}{n}\sum_{i=1}^n(wX_i-Y_i)^2 = \Bigg[\frac{\partial}{\partial w}\Big[\frac{1}{n}\sum_{i=1}^n(wX_i-Y_i)^2\Big]\Bigg] = \frac{2}{n}\sum_{i=1}^nX_i(wX_i-Y_i) n1i=1n(wXiYi)2=[w[n1i=1n(wXiYi)2]]=n2i=1nXi(wXiYi)

当仅用一个权重求 MSE 的梯度时,可以计算关于 w w w 的导数。 X X X Y Y Y n n n 必须被视为常数。考虑到这一点,分数和求和可以移到导数之外:
1 n ∑ i = 1 n ∂ ∂ w [ ( w X i − Y i ) 2 ] \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w}\Big[(wX_i-Y_i)^2\Big] n1i=1nw[(wXiYi)2]
从这里开始,可以利用链式法则计算关于 w w w 的导数:
1 n ∑ i = 1 n [ 2 ( w X i − Y i ) ∂ ∂ w ( w X i − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w X i − Y i ) X i ] \frac{1}{n}\sum_{i=1}^n\Big[2(wX_i-Y_i)\frac{\partial}{\partial w}(wX_i-Y_i)\Big]\\ \frac{1}{n}\sum_{i=1}^n\Big[2(wX_i-Y_i)X_i\Big] n1i=1n[2(wXiYi)w(wXiYi)]n1i=1n[2(wXiYi)Xi]
这样可以简化为:
2 n ∑ i = 1 n X i ( w X i − Y i ) \frac{2}{n}\sum_{i=1}^nX_i(wX_i-Y_i) n2i=1nXi(wXiYi)

双权重

∇ 1 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 = [ ∂ ∂ w 0 [ 1 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 ] ∂ ∂ w 1 [ 1 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 ] ] = [ 2 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 n ∑ i = 1 n X i ( w 1 X i + w 0 − Y i ) ] \begin{aligned} \nabla \frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2 &= \begin{bmatrix} \frac{\partial}{\partial w_0}\Big[\frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_1}\Big[\frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2\Big] \end{bmatrix}\\ &=\begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_i(w_1X_i+w_0-Y_i) \end{bmatrix} \end{aligned} n1i=1n(w1Xi+w0Yi)2= w0[n1i=1n(w1Xi+w0Yi)2]w1[n1i=1n(w1Xi+w0Yi)2] =[n2i=1n(w1Xi+w0Yi)n2i=1nXi(w1Xi+w0Yi)]

当采用两个权重求 MSE 的梯度时,必须对两个参数 w 0 w_0 w0 w 1 w_1 w1 求偏导数。对 w 0 w_0 w0 求偏导数时, X X X Y Y Y n n n w 1 w_1 w1 被视为常数。对 w 1 w_1 w1 求偏导数时, X X X Y Y Y n n n w 0 w_0 w0 被视为常数。可以重复与前面示例相同的步骤。首先,分数和求和可以移到导数之外。
[ 1 n ∑ i = 1 n ∂ ∂ w 0 ( w 1 X i + w 0 − Y i ) 2 1 n ∑ i = 1 n ∂ ∂ w 1 ( w 1 X i + w 0 − Y i ) 2 ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w_0}(w_1X_i+w_0-Y_i)^2 \\ \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w_1}(w_1X_i+w_0-Y_i)^2 \end{bmatrix} [n1i=1nw0(w1Xi+w0Yi)2n1i=1nw1(w1Xi+w0Yi)2]
然后用链式法则计算每个权重的导数:
[ 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) ∂ ∂ w 0 ( w 1 X i + w 0 − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) ∂ ∂ w 1 ( w 1 X i + w 0 − Y i ) ] ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)\frac{\partial}{\partial w_0}(w_1X_i+w_0-Y_i)\Big] \\ \frac{1}{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)\frac{\partial}{\partial w_1}(w_1X_i+w_0-Y_i)\Big] \end{bmatrix} n1i=1n[2(w1Xi+w0Yi)w0(w1Xi+w0Yi)]n1i=1n[2(w1Xi+w0Yi)w1(w1Xi+w0Yi)]

[ 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) 1 ] 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) X i ] ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)1\Big] \\ \frac{1}{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)X_i\Big] \end{bmatrix} n1i=1n[2(w1Xi+w0Yi)1]n1i=1n[2(w1Xi+w0Yi)Xi]

最后化简为:
[ 2 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 n ∑ i = 1 n X i ( w 1 X i + w 0 − Y i ) ] \begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_i(w_1X_i+w_0-Y_i) \end{bmatrix} [n2i=1n(w1Xi+w0Yi)n2i=1nXi(w1Xi+w0Yi)]
请注意,方程之间的唯一区别是 X X X

三权重

∇ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 = [ ∂ ∂ w 0 [ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 1 [ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 2 [ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ] = [ 2 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 1 i ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 2 i ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] \begin{aligned} \nabla \frac{1}{n}\sum_{i=1}^n&(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ &= \begin{bmatrix} \frac{\partial}{\partial w_0}\Big[\frac{1}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_1}\Big[\frac{1}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_2}\Big[\frac{1}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \end{bmatrix}\\ &=\begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{1i}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{2i}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \end{bmatrix} \end{aligned} n1i=1n(w2X2i+w1X1i+w0Yi)2= w0[n1i=1n(w2X2i+w1X1i+w0Yi)2]w1[n1i=1n(w2X2i+w1X1i+w0Yi)2]w2[n1i=1n(w2X2i+w1X1i+w0Yi)2] = n2i=1n(w2X2i+w1X1i+w0Yi)n2i=1nX1i(w2X2i+w1X1i+w0Yi)n2i=1nX2i(w2X2i+w1X1i+w0Yi)

当采用三个权重求 MSE 梯度时,必须对每个参数求偏导数。当对一个权重求偏导数时, X X X Y Y Y n n n 和其他两个权重将被视为常数。可以重复与前面示例相同的步骤。 首先,分数和求和可以移到导数之外。
[ 1 n ∑ i = 1 n ∂ ∂ w 0 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 1 n ∑ i = 1 n ∂ ∂ w 1 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 1 n ∑ i = 1 n ∂ ∂ w 2 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w_0}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w_1}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w_2}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \end{bmatrix} n1i=1nw0(w2X2i+w1X1i+w0Yi)2n1i=1nw1(w2X2i+w1X1i+w0Yi)2n1i=1nw2(w2X2i+w1X1i+w0Yi)2
然后用链式法则计算每个权重的导数:
[ 1 n ∑ i = 1 n [ 2 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ∂ ∂ w 0 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ∂ ∂ w 1 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ∂ ∂ w 1 ( w 3 X 2 i + w 1 X 1 i + w 0 − Y i ) ] ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\Big[2(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\frac{\partial}{\partial w_0}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\Big] \\ \frac{1}{n}\sum_{i=1}^n\Big[2(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\frac{\partial}{\partial w_1}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\Big] \\ \frac{1}{n}\sum_{i=1}^n\Big[2(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\frac{\partial}{\partial w_1}(w_3X_{2i}+w_1X_{1i}+w_0-Y_i)\Big] \end{bmatrix} n1i=1n[2(w2X2i+w1X1i+w0Yi)w0(w2X2i+w1X1i+w0Yi)]n1i=1n[2(w2X2i+w1X1i+w0Yi)w1(w2X2i+w1X1i+w0Yi)]n1i=1n[2(w2X2i+w1X1i+w0Yi)w1(w3X2i+w1X1i+w0Yi)]
最后化简为:
[ 2 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 1 i ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 2 i ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] \begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{1i}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{2i}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \end{bmatrix} n2i=1n(w2X2i+w1X1i+w0Yi)n2i=1nX1i(w2X2i+w1X1i+w0Yi)n2i=1nX2i(w2X2i+w1X1i+w0Yi)
如前所述,每个偏导数之间的唯一区别是输入特征 X X X。这可以在下一个示例中推广到 k k k 个权重。

三个以上权重

∇ 1 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 = [ ∂ ∂ w 0 [ 1 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 1 [ 1 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 2 [ 1 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ⋮ ∂ ∂ w k [ 1 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ] = [ 2 n ∑ i = 1 n ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 1 i ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 2 i ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ⋮ 2 n ∑ i = 1 n X k i ( w k X k i + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] \begin{aligned} \nabla \frac{1}{n}\sum_{i=1}^n&(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ &= \begin{bmatrix} \frac{\partial}{\partial w_0}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_1}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_2}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \vdots \\ \frac{\partial}{\partial w_k}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \end{bmatrix}\\ &=\begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{1i}(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{2i}(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \vdots \\ \frac{2}{n}\sum_{i=1}^nX_{ki}(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \end{bmatrix} \end{aligned} n1i=1n(wkXki++w2X2i+w1X1i+w0Yi)2= w0[n1i=1n(wkXki++w2X2i+w1X1i+w0Yi)2]w1[n1i=1n(wkXki++w2X2i+w1X1i+w0Yi)2]w2[n1i=1n(wkXki++w2X2i+w1X1i+w0Yi)2]wk[n1i=1n(wkXki++w2X2i+w1X1i+w0Yi)2] = n2i=1n(wkXki++w2X2i+w1X1i+w0Yi)n2i=1nX1i(wkXki++w2X2i+w1X1i+w0Yi)n2i=1nX2i(wkXki++w2X2i+w1X1i+w0Yi)n2i=1nXki(wkXki++w2X2i+w1X1i+w0Yi)

当采用 k k k 个权重求 MSE 的梯度时,必须对每个参数求偏导数。当对一个权重求偏导数时, X X X Y Y Y n n n 和其他 k − 1 k-1 k1 个权重将被视为常数。如前面的示例所示,当权重超过两个时,只有每个偏导数的输入特征发生变化。

矩阵求导

上面的公式展示了如何在不利用向量和矩阵的优势的情况下执行梯度下降。然而,大多数机器学习最好通过矩阵或张量操作执行。本文的其余部分将致力于使用矩阵微积分来导出 MSE 的导数,更多背景知识请阅读《白话张量》 和 《白话向量点积》。首先, Y ^ \hat Y Y^ Y Y Y 应理解为大小为 ( n × 1 n\times1 n×1) 的矩阵。两者都是 1 列 n n n 行的矩阵,或者它们可以视为列向量,这会将它们的表示法更改为小写:
M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n}\sum_{i=1}^n(y_i - \hat y_i)^2 MSE=n1i=1n(yiy^i)2
MSE 是 y ^ \hat y y^ y y y 之间的逐元素向量减法,后跟与其自身差值的点积。请记住,只有尺寸兼容时才能计算点积。由于目标是获得标量输出,因此必须转置第一个向量。
M S E = 1 n ( y − y ^ ) T ( y − y ^ ) MSE = \frac{1}{n}(y - \hat y)^T(y - \hat y) MSE=n1(yy^)T(yy^)
然后, y ^ \hat y y^ 可以替换为 X w Xw Xw 进行回归。 X X X 是大小为 ( n n n 个样本, n u m num num 个特征) 的矩阵, w w w 是大小为 ( n u m num num 个特征, 1 1 1) 的列向量。
M S E = 1 n ( y − X w ) T ( y − X w ) MSE = \frac{1}{n}(y - Xw)^T(y - Xw) MSE=n1(yXw)T(yXw)
下一步是在求导之前简化方程。请注意, w w w X X X 交换位置以确保它们的乘法仍然有效:( 1 1 1, n u m num num 个特征) x ( n u m num num 个特征, n n n 个样本) = ( 1 1 1, n n n 个样本)。
M S E = 1 n ( y T − w T X T ) ( y − X w ) = 1 n ( y T y − y T X w − w T X T y + w T X T X w ) \begin{aligned} MSE &= \frac{1}{n}(y^T - w^TX^T)(y - Xw) \\ &= \frac{1}{n}(y^Ty - y^TXw - w^TX^Ty + w^TX^TXw) \end{aligned} MSE=n1(yTwTXT)(yXw)=n1(yTyyTXwwTXTy+wTXTXw)
请注意,第三项可以进行转置来重写,然后与第二项合并。
M S E = 1 n ( y T y − y T X w − ( w T X T y ) T + w T X T X w ) = 1 n ( y T y − y T X w − y T X w + w T X T X w ) = 1 n ( y T y − 2 y T X w + w T X T X w ) \begin{aligned} MSE &= \frac{1}{n}(y^Ty - y^TXw - (w^TX^Ty)T + w^TX^TXw) \\ &= \frac{1}{n}(y^Ty - y^TXw - y^TXw + w^TX^TXw) \\ &= \frac{1}{n}(y^Ty - 2y^TXw + w^TX^TXw) \end{aligned} MSE=n1(yTyyTXw(wTXTy)T+wTXTXw)=n1(yTyyTXwyTXw+wTXTXw)=n1(yTy2yTXw+wTXTXw)
接下来,对权重求 MSE 的偏导数。
∂ M S E ∂ w = 1 n ∂ ∂ w ( y T y − 2 y T X w + w T X T X w ) \frac{\partial MSE}{\partial w} = \frac{1}{n}\frac{\partial}{\partial w}(y^Ty - 2y^TXw + w^TX^TXw) wMSE=n1w(yTy2yTXw+wTXTXw)
这相当于对每一项求导:
∂ M S E ∂ w = 1 n [ ∂ ∂ w ( y T y ) − 2 ∂ ∂ w ( y T X w ) + ∂ ∂ w ( w T X T X w ) ] \frac{\partial MSE}{\partial w} = \frac{1}{n}\Big[\frac{\partial}{\partial w}(y^Ty) - 2\frac{\partial}{\partial w}(y^TXw) + \frac{\partial}{\partial w}(w^TX^TXw)\Big] wMSE=n1[w(yTy)2w(yTXw)+w(wTXTXw)]
w w w 之外的每一项都可以视为常数。每个分量的导数可以使用以下规则计算:
d A x x = A , d x T A x = A T , d x T A x x = 2 x T A , d A x = 0 \frac{dAx}{x} = A, \quad \frac{dx^TA}{x} = A^T, \quad \frac{dx^TAx}{x} = 2x^TA, \quad \frac{dA}{x} = 0 xdAx=A,xdxTA=AT,xdxTAx=2xTA,xdA=0
等式中的第一项遵循第四条规则变为0。第二项遵循第一条规则,第三项遵循第三条规则。
M S E = 1 n ( − 2 y T X + 2 w T X T X ) = 2 n ( − y T X + w T X T X ) \begin{aligned} MSE &= \frac{1}{n}(-2y^TX+2w^TX^TX) \\ &= \frac{2}{n}(-y^TX+w^TX^TX) \end{aligned} MSE=n1(2yTX+2wTXTX)=n2(yTX+wTXTX)
该方程可用于梯度下降,同时计算所有偏导数:
w j + 1 = w j − α 2 n ( − y T X + w j T X T X ) w_{j+1} = w_j-\alpha\frac{2}{n}(-y^TX+w_j^TX^TX) wj+1=wjαn2(yTX+wjTXTX)

结论

以上详细为大家推导了 MSE 作为损失函数时的梯度下降公式。我将在《简单线性回归》中为大家详细展示如何利用梯度下降。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/991542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三维模型OBJ格式轻量化处理技术方法浅析

三维模型OBJ格式轻量化处理技术方法浅析 维模型的OBJ格式轻量化处理技术方法旨在减小模型文件大小、提高加载性能和优化渲染效果。本文将对三维模型OBJ格式轻量化处理技术方法进行浅析,并探讨其在数据压缩、几何简化和纹理优化等方面的应用。 首先,数据…

R语言统计学DOE实验设计:用平衡不完全区组设计(BIBD)分析纸飞机飞行时间实验数据...

全文链接:http://tecdat.cn/?p31010 平衡不完全区组设计(BIBD)是一个很好的研究实验设计,可以从统计的角度看各种所需的特征(点击文末“阅读原文”获取完整代码数据)。 最近我们被客户要求撰写关于BIBD的研…

【Linux从入门到精通】通信 | 共享内存(System V)

本篇文章接着上篇文章通信 | 管道通信(匿名管道 & 命名管道)进行讲解。本篇文章的中点内容是共享内存。 文章目录 一、初识与创建共享内存 1、1 什么是共享内存 1、2 共享内存函数 1、2、1 创建共享内存 shmget 1、2、2 ftok 生成 key 1、2、3 获取共…

nvm 在 Windows 上的使用

NVM(Node Version Manager)是一个用于管理和切换多个 Node.js 版本的工具。它允许你在同一台机器上同时安装和使用不同版本的 Node.js,而无需手动安装和卸载。 之前都是只安装一个版本的 node.js,该更新时更新,使得以前…

RK3568-GPIO控制

RK3568-GPIO控制 1. Sysfs接口 实现逻辑 芯片的GPIO由芯片的GPIO控制器来管理,GPIO控制器封装在芯片内部,控制器的驱动芯片厂家已经写好了。RK3568有五组GPIO控制器,每组管理32个引脚,对应/dev下的gpiochip0~4的设备节点。 Lin…

【Redis专题】RedisCluster集群运维与核心原理剖析

目录 课程内容一、Redis集群架构模型二、Redis集群架构搭建(单机搭建)2.1 在服务器下新建各个节点的配置存放目录2.2 修改配置(以redis-8001.conf为例) 三、Java代码实战四、Redis集群原理分析4.1 槽位定位算法4.2 跳转重定位4.3 …

【Linux】网络编程网络基础(C++)

目录 一、计算机网络背景 二、认识 "协议" 三、网络协议初识 【3.1】协议分层 【3.2】OSI七层模型 【3.3】TCP/IP五层(或四层)模型 四、网络传输基本流程 【4.1】网络传输流程图 【4.2】数据包封装和分用 五、网络中的地址管理 一、计算机网络背景 【独立…

用Python实现一个可定制风格的绘图系统

文章目录 调用绘图风格控件代码组织源代码base.pyaframe.pyalist.pyds.py Python绘图系统: 📈从0开始的3D绘图系统📉一套3D坐标,多个函数📊散点图、极坐标和子图自定义控件:📉绘图风格&#x1…

【精华】AIGC专栏-Text/Img/Video/audio

(一)LLM专栏 大模型相关技术原理以及实战经验:liguodongiot/llm-action 1 ColossalAI (1)参考资料:700 亿参数 LLaMA2 训练加速 195%,基础大模型最佳实践再升级 (2)开…

Linux常用命令——convertquota命令

在线Linux命令查询工具 convertquota 把老的配额文件转换为新的格式 补充说明 convertquota命令用于将老的磁盘额数据文件(“quota.user”和“quota.group”)转换为新格式的文件(“quota.user”和“quota.group”)。 语法 c…

Day59|leetcode 503.下一个更大元素II、42. 接雨水

leetcode 503.下一个更大元素II 题目链接:503. 下一个更大元素 II - 力扣(LeetCode) 视频链接:单调栈,成环了可怎么办?LeetCode:503.下一个更大元素II_哔哩哔哩_bilibili 题目概述 给定一个循环…

接口使用的最佳时机

1. 引言 接口在系统设计中,以及代码重构优化中,是一个不可或缺的工具,能够帮助我们写出可扩展,可维护性更强的程序。 在本文,我们将介绍什么是接口,在此基础上,通过一个例子来介绍接口的优点。…

【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型

【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型 1 题目 构建以新能源为主体的新型电力系统,是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(…

微电网的概念

微电网分布式控制理论与方法  顾伟等 微电网的概念和作用 微电网是由多种分布式电源、储能、负载以及相关监控保护装置构成的能够实现自我控制和管理的自治型电力系统,既可以与电网并网进行,也可以以孤岛运行。 分布式发电是指将容量在兆瓦以内的可再…

Elsevier出版社 | 优质好刊合集

【SciencePub学术】 爱思唯尔(Elsevier)是一家全球专业从事科学与医学的信息分析公司作为出版公司,成立于1880年,其产品包括《柳叶刀》、《四面体》和《细胞》等学术期刊,ScienceDirect电子期刊集, “趋势”(Trends)系列和“新见…

uniapp项目运行Missing script: “dev“, To see a list of scripts, run:

webstorm 打开项目根目录不对,打开到了项目上一级。 另外一个原因是,当前项目是Hbuilder 可视化界面创建的,不能在terminal直接脚本指令启动。 可以webstorm 安装支持uniapp项目插件,然后创建一个运行器,运行h5。 安…

vue 验证码 图片点击

实现登陆验证 图片依次点击功能 demo &#xff0c;上图可以根据demo修改&#xff0c;直接拿用 <template><div><div class"big-box" id"BigBox" :style"background-image:url( imgCodeUrl )"><div class"click-box…

C#,《小白学程序》第十八课:随机数(Random)第五,方差及标准方差(标准差)的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十八课&#xff1a;随机数&#xff08;Random&#xff09;第五&#xff0c;方差及标准方差&#xff08;标准差&#xff09;的计算方法与代码 /// 方差 SUM(&#xff08;Xi - X)^2 ) / n i0...n-1 X Average of X[i] ///…

APP备案流程详细解读

背景介绍 2023年8月4日&#xff0c;工信部发布《工业和信息化部关于开展移动互联网应用程序备案工作的通知》。 在中华人民共和国境内从事互联网信息服务的APP主办者&#xff0c;应当依照《中华人民共和国反电信网络诈骗法》《互联网信息服务管理办法》&#xff08;国务院令第…

SpotBugs代码检查:在整数上进行没有起任何实际作用的位操作(INT_VACUOUS_BIT_OPERATION)

https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#int-vacuous-bit-mask-operation-on-integer-value-int-vacuous-bit-operation 在整数上进行无用的与、异或操作&#xff0c;实质上没有做任何有用的工作。 例如&#xff1a;v & 0xffffffff 再例如&…