type
status
date
slug
summary
tags
category
icon
password
本文主要讲述矩阵和向量函数的求导数和梯度,以及计算Hessian矩阵
Derivatives
导数的6种形式

- 一般来说, 是行向量,而 是列向量。
- 导数可以看作 一种 linear operator, 即满足线性的性质
这里的 是向量的内积,因此 , 也就是说梯度是导数的转置。
在有些文章中也会将 定义为梯度 , 也就是已经是转置后的结果,因此是否转置要看具体情况的定义。
微分的性质
- Sum rule:
- Product rule:
- Chain rule:
以上的法则对于向量和矩阵函数也是适用的,只是需要注意使用
常用规则
有时还需利用 trace 的性质:
此性质还可推广为:
在数学中,只有对于方阵的trace才是有定义的,因此转置后的trace是不变的。
此外,还有性质:
并且在推导过程中常用到对于一个 scalar 的表达式,可以加上或去除 trace 和 transpose
计算向量和矩阵函数导数的通用方法
- 计算微分
- 将结果转化为典型形式
以下是6种典型形式:

对应的6种导数为
x \ y | scalar | vector | matrix |
scalar | |||
scalar | (Jacobian) | ㅤ | |
scalar | ㅤ | ㅤ |
一般不求矩阵关于矩阵的导数
在矩阵微积分(matrix calculus)中,通常不会直接求矩阵关于矩阵的导数,而是更常见地求标量(scalar)关于矩阵的导数。原因如下:
- 标量关于矩阵的导数:这是最常见的场景,尤其是在优化问题中。例如,在机器学习中,损失函数(一个标量)关于模型参数(通常是一个矩阵)的导数非常重要。这种情况下,导数的结果是一个与参数矩阵同维度的矩阵,表示标量对每个矩阵元素的偏导数。
- 向量关于向量的导数:这种情况也比较常见,结果是一个雅可比矩阵(Jacobian matrix)。例如,在多元函数的梯度计算中,向量关于向量的导数会形成一个矩阵。
- 矩阵关于矩阵的导数:这种情况较为复杂,且在实际应用中较少直接使用。矩阵关于矩阵的导数会形成一个高阶张量(四阶张量),处理起来非常复杂,且缺乏直观的解释。因此,通常会将问题转化为标量关于矩阵的导数或向量关于向量的导数来处理。
常见的矩阵微积分形式:
- 标量关于向量的导数:结果是梯度向量。
- 标量关于矩阵的导数:结果是梯度矩阵。
- 向量关于向量的导数:结果是雅可比矩阵。
总结:
矩阵关于矩阵的导数在实际中很少直接使用,通常通过标量关于矩阵的导数或向量关于向量的导数来解决问题。
examples
Hessians
Hessian矩阵其实就是 scalar function 对于 vector x 的 二阶导,因此可以通过计算两次导数的方式来计算。
同时,也可以在 Taylor 展开式中表现:
性质:
计算 Hessian 矩阵的步骤
- 计算一阶导数 ,是与x相关的行向量。
- 再计算 关于 的导数
- 转换为标准形式

一定是对称矩阵
examples
🤗 总结归纳
总结文章的内容
📎 参考文章
- Old and New Matrix Algebra Useful for Statistics
- MIT 18.S096 Matrix Calculus for Machine Learning and Beyond
- Matrix Cookbook
- Author:FlowerMouse
- URL:https://tangly1024.com/article/matcal
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!