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

一、分子布局、分母布局

前提: 若 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)dx\frac{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)dxdxT\frac{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)dxT\frac{d f(x)}{d x^{T}}

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

定义4. 矩阵对标量微分

M × N的矩阵AA的元素是一个向量xx的元素xqx_q的函数,定义Axq\frac{\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()的微分。

一阶:
机器学习之深入理解矩阵求导的基本方法
二阶:
机器学习之深入理解矩阵求导的基本方法
高阶:
机器学习之深入理解矩阵求导的基本方法

参考文章: