0.相关记法与规定:
本篇博客所涉及到数都是在实数域,不涉及复数。本博客中出现的所有向量不加说明时都默认列向量。
是标量,是列向量,是矩阵。
是标量函数,这里“标量”是指是一个实数,即
是标量函数,这里“标量”是指是一个实数,即
是向量函数,这里“向量“是指是一个向量,即
是向量函数,这里“向量“是指是一个向量,即
是矩阵函数,这里“矩阵“是指是一个矩阵,即
是矩阵函数,这里“矩阵“是指是一个矩阵,即
上面列出了一大堆,其实直接分成两类即可,即“像/值域”是标量还是矩阵(列向量看成矩阵的特殊情况)以及“原像/定义域”是向量还是矩阵“。总结的两大类如下:
函数类型 | 向量变元 | 矩阵变元 |
标量函数 | ||
矩阵函数 |
1.全微分和梯度的关系:
对于标量变元且标量函数有:。
而对于向量变元且标量函数对应的是全微分和梯度关系:,
前两个等号是全微分和偏导的关系,最后一个等号表明了全微分和梯度的关系:全微分是梯度向量与微分向量的内积。
与上式同理,对于矩阵变元且标量函数对应的关系是:,其中就是梯度矩阵。
(因为矩阵的内积定义为,见1.1范数与内积)
到这里求梯度矩阵的大方向就出来了:求梯度矩阵的方法不是通过直接求梯度求得的,而是通过求全微分,经过一系列化简,最终从全微分与梯度向量(梯度矩阵)和微分向量(微分矩阵)的内积关系得出来。这是最简单的方法。
正式求梯度矩阵之前,还有很多的矩阵变元微分运算法则如下(向量变元是矩阵变元的特例,故同理):
(1)
(2)线性:
(3) 矩阵乘法: 矩阵哈达玛积(逐元素相乘)
矩阵Kronecker积:
(4)转置: 迹:(微分和迹可以换顺序)
(5)逆:,证明通过两边同时求微分即可。
(6)行列式:
(7)逐元素函数:,见一个例子(引用自参考1):
2.这里不加证明的给出求梯度的方法:
对于标量函数,求出左侧微分,利用一些“迹技巧”,将转化成形式,
又因为所以可知:就是梯度矩阵。 具体看例子比较好,抽象的看不懂。
一些与迹有关的性质有:
(1) (2)
(3) (4)
(5) 同尺寸的有:
3.例子:引用自参考1 :矩阵求导术 https://zhuanlan.zhihu.com/p/24709748
例1: 步骤如下:
两边加上微分,得到: 两边再加上迹:。因为迹和微分课换序,且
所以有:,继续化简右边,得到:,由此,可以得到
例2:,求。其中是列向量,是矩阵,是列向量,exp表示逐元素求指数,是标量。
解:先使用矩阵乘法、逐元素函数法则求微分:,再套上迹并做,注意这里我们先根据交换了、与,再根据交换了与。对照导数与微分的联系,得到。
因为是一个标量函数,即,而从矩阵经过某种映射成为标量的函数有几类应用很广,所以这里记录下来对应的梯度表,读者可以试着推一下,自己推导一遍才有效果。以下的小写皆为列向量。
相关推导 | ||
或者 | 以下图片引用自《矩阵分析与应用》第一版 | |
例3:,求。其中是列向量,是矩阵,是矩阵,是对称矩阵,是逐元素函数,是标量。
解:先求,求微分,使用矩阵乘法、转置法则:,对照导数与微分的联系,得到。为求,写出,再将dY用dX表示出来代入,并使用矩阵乘法/逐元素乘法交换:,对照导数与微分的联系,得到。
例4【线性回归】:, 求的最小二乘估计,即求的零点。其中是列向量,是矩阵,是列向量,是标量。
解:严格来说这是标量对向量的导数,不过可以把向量看做矩阵的特例。先将向量模平方改写成向量与自身的内积:,求微分,使用矩阵乘法、转置等法则:。对照导数与微分的联系,得到。的零点即的最小二乘估计为。
例5【方差的最大似然估计】:样本,求方差的最大似然估计。写成数学式是:,求的零点。其中是列向量,是样本均值,是对称正定矩阵,是标量;log表示自然对数。
解:首先求微分,使用矩阵乘法、行列式、逆等运算法则,第一项是,第二项是。再给第二项套上迹做交换:,其中先交换迹与求和,然后将 交换到左边,最后再交换迹与求和,并定义为样本方差矩阵。得到。对照导数与微分的联系,有,其零点即的最大似然估计为。
例5: 自己算的 和原作者过程不一样,结果一样,步骤如下:
记代入并取对数,得到:
,对求梯度时,与第二项无关,令梯度矩阵为0,也得到:的极大似然估计为:
例6:这里对1.12 Logistic Regression(平移后的softmax regression)做求导:
,其中都是列向量
1处是使用了此性质,
2处是函数自变量为列向量形式的扩展,即
下一步:
将代入得到:
其中
所以,化简,
最后得到:
PS:这里推导了考虑所有样本的情况,对于单个的样本,比较简单,这里不涉及。
例7,Softmax回归:
,求。其中是除一个元素为1外其它元素为0的列向量,是矩阵,是列向量,是标量;log表示自然对数,,其中表示逐元素求指数,代表全1向量。
解1:首先将softmax函数代入并写成,这里要注意逐元素log满足等式,以及满足。求微分,使用矩阵乘法、逐元素函数等法则:。再套上迹并做交换,注意可化简,这是根据等式,故。对照导数与微分的联系,得到。
解2:定义,则,先同上求出,再利用复合法则:,得到。
参考:
1.矩阵求导术:原文链接:https://zhuanlan.zhihu.com/p/24709748
2.《矩阵分析与应用》第二版,张贤达