(《机器学习》完整版系列)附录 ——2、偏导数与梯度(以矩阵的整体形式表述)

把一组偏导数公式以矩阵的整体形式表述
首创地引入形象化的记号式(A44)和式(A45),易记易写

偏导数与梯度

微积分中定义了标量函数的偏导数 ∂ y ∂ x \frac{\partial y}{\partial x} xy,以此为基础扩展到非标量,定义一组偏导数公式【西瓜书附录式(A.16)   ∼ \,\thicksim (A.19)】,有了上节的矩阵表示,我们可以把这组偏导数公式以矩阵的整体形式表述,如【西瓜书附录式(A.16)】体现为
∂ a ∂ x = ( [ ∂ a i ∂ x ] ) \begin{align} \frac{\partial \boldsymbol{a}}{\partial x} =\left( \left[ \frac{\partial a_{i}}{\partial x} \right] \right) \tag{A39} \end{align} xa=([xai])(A39)

再如【西瓜书附录式(A.18)】
∂ A ∂ x = ( [ ∂ a i j ∂ x ] ) \begin{align} \frac{\partial \mathbf{A}}{\partial x} =\left( \left[ \frac{\partial a_{ij}}{\partial x} \right] \right) \tag{A40} \end{align} xA=([xaij])(A40)

其余类似。

这组偏导公式中有一个共同的特点就是:两变元中一个为标量,另一个为非标量。 我们可以用如下方法统一记这组公式(以【西瓜书附录式(A.18)】为例来说明):

(1)写出非标量列元素集

如,非标量为矩阵 A \mathbf{A} A时,写出该矩阵的元素表达,即
A = ( [ a i j ] ) \begin{align} \mathbf{A} =\left( \left[ a_{ij} \right] \right) \tag{A41} \end{align} A=([aij])(A41)

(2)给这些元素“穿外套”

∂ A ∂ x \frac{\partial\mathbf{A}}{\partial x} xA中删去非标量变量后视为“外套”,即这时“外套”为: ∂ ∂ x \frac{\partial}{\partial x} x,给上式两边的元素穿上“外套”即为
∂ A ∂ x = ( [ ∂ a i j ∂ x ] ) \begin{align} \frac{\partial\mathbf{A}}{\partial x}= \left( \left[ \frac{\partial a_{ij}}{\partial x} \right] \right) \tag{A42} \end{align} xA=([xaij])(A42)
这即为式(A40),其通式即【西瓜书附录式(A.18)】。

然而,对于两变元都为非标量,则有多种方式定义其偏导数,但各自并不兼容。 为避免陷入过多的讨论,本着实用的原则本博只定义向量对向量的偏导数,而不讨论向量对矩阵、矩阵对矩阵等复杂情况。

向量对向量的偏导数定义为
∂ y ∂ x = ( [ ∂ y j ∂ x i ] i j ) \begin{align} \frac{\partial \boldsymbol{y}}{\partial\boldsymbol{x}} =\left( \left[ \frac{\partial y_j}{\partial x_i} \right]_{ij} \right) \tag{A43} \end{align} xy=([xiyj]ij)(A43)

式(A43) 为一个矩阵,也即二维表A1,它是这样构造出来的:作一个二维表,将列向量 x \boldsymbol{x} x写在表的左侧,即以它来确定表的行,将列向量 y \boldsymbol{y} y转置后写在表的上沿,即以它来确定表的列。 表体中 y j y_j yj x i x_i xi的交叉位填上 ∂ y j ∂ x i \frac{\partial y_j}{\partial x_i} xiyj(标量对标量的偏导数),表体形成的矩阵即是该偏导数(矩阵),有的书将 ∂ y ∂ x \frac{\partial \boldsymbol{y}}{\partial\boldsymbol{x}} xy定义为Jacobian矩阵,它与这里的定义具有转置关系,请注意区别。

表A1 向量对向量的偏导数

为便于记忆,把表A1定义的向量对向量的导数形象地记为式(A44)和式(A45):
以“表”表达导数: ∂ y ∂ x = y x   ∣   ∂ y j ∂ x i 以“分数”表达导数: ∂ y ∂ x = y x \begin{align} \text{以“表”表达导数:} \frac{\partial \boldsymbol{y}}{\partial\boldsymbol{x}} & =\frac{\qquad\qquad\boldsymbol{y}\qquad}{\boldsymbol{x}\,|\,\qquad{\frac{\partial y_j}{\partial x_i}}\qquad} \tag{A44} \\ \text{以“分数”表达导数:} \frac{\partial \boldsymbol{y}}{\partial\boldsymbol{x}} & =\frac{\qquad\boldsymbol{y}\qquad}{\boldsymbol{x}\qquad\qquad} \tag{A45} \end{align} 表达导数:xy分数表达导数:xy=xxiyjy=xy(A44)(A45)
其中,式(A45)记号像“分数”但要分子与分母错开。

博主首创地引入形象化的记号式(A44)和式(A45),易记易写。

当二维表退化成一列(或一行)即 y \boldsymbol{y} y(或 x \boldsymbol{x} x)退化为标量时,则导数(表)为列向量(或行向量)
∂ y ∂ x = ( [ ∂ y ∂ x i ] ) (列向量) ∂ y ∂ x = ( [ ∂ y j ∂ x ] ) T (行向量,其表示参见式(A8)) \begin{align} & \frac{\partial {y}}{\partial\boldsymbol{x}} =\left( \left[ \frac{\partial y}{\partial x_i} \right] \right)\qquad \text{(列向量)} \tag{A46} \\ & \frac{\partial \boldsymbol{y}}{\partial{x}} =\left( \left[ \frac{\partial y_j}{\partial x} \right] \right)^{\mathrm{T}} \qquad \text{(行向量,其表示参见式(A8))} \tag{A47} \end{align} xy=([xiy])(列向量)xy=([xyj])T(行向量,其表示参见式(A8)(A46)(A47)

式(A46)、式(A47)分别对应【西瓜书附录式(A.17)和(A.16)】。

将二维表(未退化)视为列向量(或行向量)组成的矩阵
∂ y ∂ x = ( [ ∂ y j ∂ x ] ) T (通式为式(A46),列向量) ∂ y ∂ x = ( [ ∂ y ∂ x i ] ) (通式为式(A47),行向量) \begin{align} \frac{\partial\boldsymbol {y}}{\partial\boldsymbol{x}} & =\left( \left[ \frac{\partial {y}_j}{\partial\boldsymbol{x}} \right] \right)^{\mathrm{T}}\qquad \text{(通式为式(A46),列向量)} \tag{A48} \\ \frac{\partial\boldsymbol {y}}{\partial\boldsymbol{x}} & =\left( \left[ \frac{\partial \boldsymbol{y}}{\partial{x}_i} \right] \right)\qquad \text{(通式为式(A47),行向量)} \tag{A49} \end{align} xyxy=([xyj])T(通式为式(A46),列向量)=([xiy])(通式为式(A47),行向量)(A48)(A49)

梯度概念是对函数而言,如,常说:“沿函数的梯度方向如何如何”,对于多变量标量函数 y = f ( x ) y=f(\boldsymbol{x}) y=f(x),由式(A46)有
∇ x y = ∂ f ( x ) ∂ x = ( [ ∂ f ( x ) ∂ x i ] ) \begin{align} {\nabla}_{\boldsymbol{x}}{y}=\frac{\partial f(\boldsymbol{x})}{\partial \boldsymbol{x}} =\left( \left[ \frac{\partial f(\boldsymbol{x})}{\partial x_i} \right] \right) \tag{A50} \end{align} xy=xf(x)=([xif(x)])(A50)
式(A50)即为函数 y = f ( x ) y=f(\boldsymbol{x}) y=f(x)的梯度(列向量),即为【西瓜书附录式(A.20)】。
注: 梯度(偏导数)表达有两种形式:一是整体形式(圆括号表示的矩阵);二是分量形式(中括号内的式子)。 前者简洁,后者可以脱离矩阵(或向量)来表示,即以下标集构成“组”的通式,【西瓜书】常用这种方式。

由此,进一步推广:对于函数为向量、自变量也为向量时,我们定义其梯度为偏导数(式(A43)或式(A44) 所定义的矩阵),记为
∇ x y = ∂ y ∂ x \begin{align} {\nabla}_{\boldsymbol{x}}\boldsymbol{y} =\frac{\partial \boldsymbol{y}}{\partial\boldsymbol{x}} \tag{A51} \end{align} xy=xy(A51)
其中, y \boldsymbol{y} y x \boldsymbol{x} x可以退化为标量,当 x \boldsymbol{x} x退化为标量时,即为式(A50)。

注:就本博所考虑的情况而言,可将梯度视为偏导数的别名,即式(A43) ,梯度的构造规则可依 ∇ x y {\nabla}_{\boldsymbol{x}}\boldsymbol{y} xy符号本身的“长相”来记: x \boldsymbol{x} x在表A1的侧边, y \boldsymbol{y} y在表A1的横向,参考式(A44)、式(A45)。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:1、向量与矩阵(学习一些公式及其推导技巧)
下一篇:3、复合函数梯度的链式法则(链的次序不可交换)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
梯度下降算法是机器学习中一种广泛应用的最优化算法,其主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。梯度下降算法的原理可以从一个下山的场景开始理解。算法的基本思想是沿着目标函数梯度的方向更新参数值,以期望达到目标函数的最小值。 在机器学习中,梯度下降算法常常用于求解损失函数的最小值。在简单的线性回归中,我们可以使用最小二乘法来求解损失函数的最小值。然而,在绝大多数情况下,损失函数是非线性的且复杂。因此,梯度下降算法在机器学习领域得到了广泛的应用。实际上,许多优秀的算法都是在梯度下降算法的启发下诞生的,例如AdaGrad、RMSProp、Momentum等等。 梯度下降算法的核心思想是通过计算目标函数的梯度来确定参数更新的方向。梯度表示了函数在某一点上的变化率,沿着梯度的方向可以使函数值快速减小。因此,梯度下降算法沿着梯度的反方向更新参数值,朝着目标函数的最小值靠近。算法的迭代过程会持续更新参数值,直到收敛到最小值或达到停止条件。 在实际应用中,为了提高算法的效率和准确性,通常会对梯度下降算法进行改进和优化。例如,可以使用学习率来控制参数值的更新步长,或者采用批量梯度下降来同时计算多个样本的梯度。这些改进可以帮助算法更快地收敛并找到更好的解。 总之,梯度下降算法是一种重要的最优化算法,在机器学习中被广泛应用。其原理是通过计算目标函数的梯度来更新参数值,以期望达到最小值。通过迭代的方式,梯度下降算法可以找到目标函数的最优解或者接近最优解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值