机器学习之深入理解矩阵求导的基本方法

一、分子布局、分母布局

前提: 若 x 为向量,则默认 xx 为列向量, xTx^T 为行向量

布局简单地理解就是分子 y 、分母 x 是行向量还是列向量。

  • 分子布局(Numerator-layout): 分子为 yy 或者分母为 xTx^T(即分子为列向量或者分母为行向量)
  • 分母布局(Denominator-layout): 分子为 yTy^T 或者分母为 xx(即分子为行向量或者分母为列向量)
1. 分子布局
  • 标量/向量:
    在这里插入图片描述(分子为标量,分母的向量为行向量)

  • 向量/标量:
    在这里插入图片描述(分子的向量为列向量,分母为标量)

  • 向量/向量:
    在这里插入图片描述(分子为列向量横向平铺,分母为行向量纵向平铺)

  • 标量/矩阵:
    在这里插入图片描述(分子为标量,分母为矩阵的转置)

  • 矩阵/标量:
    在这里插入图片描述(分子为矩阵的转置,分母为标量)

2. 分母布局
  • 标量/向量:
    在这里插入图片描述(分子为标量,分母的向量为列向量)

  • 向量/标量:
    在这里插入图片描述(分子的向量为行向量,分母为标量)

  • 向量/向量:
    在这里插入图片描述(分子为行向量纵向平铺,分母为列向量横向平铺)

  • 标量/矩阵:
    在这里插入图片描述(分子为标量,分母的矩阵为原始矩阵)

二、几个重要的定义

定义1、梯度(Gradient)

f(x)f(x)是一个变量为xx的标量函数,其中x=(x1...xN)Tx=(x_1...x_N)^T。那么定义f(x)f(x)xx的梯度为df(x)dxfrac{d f(x)}{d x}
在这里插入图片描述
梯度的转置是一个行向量:
在这里插入图片描述

定义2. 海塞矩阵(Hessian matrix)

f(x)f(x)是一个二阶可微分的标量函数,其中x=(x1...xN)Tx=(x_1...x_N)^T。那么定义f(x)f(x)xx的海塞矩阵为d2f(x)dxdxTfrac{d^{2} f(x)}{d x d x^{T}}

在这里插入图片描述

定义3. 雅可比矩阵(Jacobian matrix)

f(x)f(x)是一个K x 1的列向量函数
在这里插入图片描述
其中x=(x1...xL)Tx=(x_1...x_L)^T。那么定义f(x)f(x)xx的雅可比矩阵为df(x)dxTfrac{d f(x)}{d x^{T}}

在这里插入图片描述

定义4. 矩阵对标量微分

M × N的矩阵AA的元素是一个向量xx的元素xqx_q的函数,定义Axqfrac{partial A}{partial x_{q}}为:

在这里插入图片描述
矩阵的二阶微分:
在这里插入图片描述

三、矩阵迹的微分(Derivative of Traces)

在机器学习中,有时候需要对一个矩阵的F模进行微分,而矩阵的F是可以转换为矩阵的迹,矩阵的迹的微分的计算可以帮助我们计算矩阵的F模的微分。矩阵的F模和迹的关系:

在这里插入图片描述
其中AA^∗AA的共轭转置。矩阵的迹的性质:

在这里插入图片描述
xtr(F(x))=f(x)T frac{partial}{partial x} operatorname{tr}(F(x))=f(x)^{T}

其中,f()f()F()F()的微分。

一阶:
在这里插入图片描述
二阶:
在这里插入图片描述
高阶:
在这里插入图片描述

如果想要更多的资源,欢迎关注 @我是管小亮,文字强迫症MAX~

回复【福利】即可获取我为你准备的大礼,包括C++,编程四大件,NLP,深度学习等等的资料。

想看更多文(段)章(子),欢迎关注微信公众号「程序员管小亮」~

在这里插入图片描述

参考文章:

原文地址:https://www.cnblogs.com/hzcya1995/p/13302782.html