标量对矩阵求导笔记
date
Sep 24, 2022
Last edited time
Sep 24, 2022 07:41 AM
status
Published
slug
标量对矩阵求导笔记
tags
Algorithm
summary
实用的标量对矩阵求导资料,其他的就看看 matrix cookbook 吧
type
Post
Field
Plat
矩阵微分与矩阵导数的关系矩阵微分的运算法则利用迹求矩阵的导数一些例子,求 df/dX, 求 df/dX 求 df/dX,求 df/dX线性回归方差的最大似然估计(No Check)方差的最大似然估计多元logistic回归二层神经网络
矩阵微分与矩阵导数的关系
标量 对矩阵 的求导,定义为
即 逐元素求导排成与 相同的矩阵。其中 。
一元微积分中的导数与微分的关系 ,多元微积分中的梯度 (标量对向量的导数) 也与微分有联系
这里第一个等号是全微分公式,第二个等号表达了梯度与微分的联系。
全微分 是梯度向量 与微分向量 的内积。
受此启发,我们将矩阵导数与微分建立联系:
其中 代表迹(trace)是方阵对角线元素之和,且有性质,对尺寸相同的矩阵 , ,即 是矩阵 的内积。
与梯度相似,这里第一个等号是全微分公式,第二个等号表达了矩阵导数与微分的联系:全微分 是导数 与微分矩阵 的内积。
矩阵微分的运算法则
想遇到较复杂的一元函数如 ,我们是如何求导的呢?通常不是从定义开始求极限,而是先建立了初等函数求导和四则运算、复合等法则,再来运用这些法则。故而,我们来创立常用的矩阵微分的运算法则:
- 加减法:
- 矩阵乘法:
- 转置:
- 迹:
- 逆: ,此式可在 两侧求微分证明。
- 行列式 ,其中 表示 的伴随矩阵,在 可逆时又可写作 。此式可用 Laplace 展开来证明,详见张贤达《矩阵分析与应用》第 279 页。
- 逐元素乘法: , 表示尺寸相同的矩阵 逐元素相乘。
- 逐元素函数: 逐元素标量函数运算, 是逐元素求导数。例如
利用迹求矩阵的导数
我们试图利用矩阵导数与微分的联系 ,在求出左侧的微分 后,该如何写成右侧的形式并得到导数呢?这需要一些迹技巧 (trace trick):
- 标量的迹:
- 转置:
- 线性:
- 矩阵乘法交换: ,其中 与 尺寸相同。两侧都等于 。
- 矩阵乘法 / 逐元素乘法交换: ,其中 尺寸相同。两侧都等于 。
容易推得
观察一下可以断言:若标量函数 是矩阵 经加减乘法、逆、行列式、逐元素函数等运算构成,则使用相应的运算法则对 求微分,再使用迹技巧给 套上迹并将其它项交换至 左侧,对照导数与微分的联系 ,即能得到导数。
特别地,若矩阵退化为向量,对照导数与微分的联系 ,即能得到导数。
在建立法则的最后,来谈一谈复合:假设已求得 ,而 是 的函数,如何求 呢?在微积分中有标量求导的链式法则 ,但这里我们不能随意沿用标量的链式法则,因为矩阵对矩阵的导数 截至目前仍是未定义的。于是我们继续追本溯源,链式法则是从何而来?源头仍然是微分。我们直接从微分入手建立复合法则:先写出 ,再将 用 表示出来代入,并使用迹技巧将其他项交换至 左侧,即可得到 。
一些例子
,求 df/dX
那么,。
, 求 df/dX
其中 是列向量,,, 是标量。
- 首先使用矩阵乘法求微分 ,这里 为常量,所以
- ,得 。
求 df/dX
,求 。其中 是列向量, 矩阵, 表示逐元素求指数, 是标量。
所以,。
,求 df/dX
其中 ,,, 是对称矩阵, 表示逐元素函数, 是标量。
- 求微分
- 继续求微分
线性回归
,求 的最小二乘估计,即求 的零点。其中 ,,, 是标量。
这是标量对向量的导数,不过可以把向量看做矩阵的特例。
- 求微分:
这里的 和 是两个列向量,满足 。
- 根据标量对向量的微分公式: ,得到 。
- 当 时,,。
方差的最大似然估计(No Check)
样本 ,求方差 的最大似然估计。写成数学式是:,求 的零点。其中 是 列向量, 是样本均值, 是 对称正定矩阵, 是标量,log 表示自然对数。
解:首先求微分,使用矩阵乘法、行列式、逆等运算法则,第一项是 ,第二项是 。
再给第二项套上迹做交换:
其中先交换迹与求和,然后将 交换到左边,最后再交换迹与求和,并定义 为样本方差矩阵。得到 。对照导数与微分的联系,有,其零点即 的最大似然估计为。
方差的最大似然估计
维随机变量的正态分布公式未:
而 维随机向量可以写作:
那么,写出其极大似然估计:
其中 表示 维向量, 表示 维均值向量。
所以,只需要求下式极值:
求微分,先看
第二项求微分
两项微分相加:
多元logistic回归
,求 。
其中 是除一个元素为 其它元素为 的 列向量, 是 矩阵, 是 列向量, 是标量。
表示自然对数, ,其中 表示逐元素求指数, 代表全 向量。
令 ,将 带入求微分
将 带入,求微分
二层神经网络
,求 。
其中 是除一个元素为 外其它元素为 的 列向量, 是 矩阵, 是 矩阵, 是 列向量, 是标量。
表示自然对数, , 是逐元素 函数 。
令 ,根据上面的逻辑回归求导结果
令 继续求微分
继续求解第二部分
推广:样本 ,。其中
是 列向量, 是 列向量。
解 1:
定义 。
则 ,同上得 ,则
继续求解
则有
解 2:
可以用矩阵来表示 个样本,以简化形式。定义
则有
求解
继续求解
其他的例子参照