Jacobian矩阵和梯度矩阵
在pytorch
的autograd
包中,利用Jacobian
(雅格比)矩阵进行梯度的计算。学习实值标量函数、实值向量函数和实值矩阵函数相对于实向量变元或矩阵变元的偏导
计算符号
- 实向量变元:
- 实矩阵变元:
- 实值标量函数
,其变元是 实值向量 ,记作 ,其变元是 实矩阵 ,记作
维实列向量函数 ,其变元是 实值向量 ,记作 ,其变元是 实矩阵 ,记作
维实矩阵函数 ,其变元是 实值向量 ,记作 ,其变元是 实矩阵 ,记作
实值函数的分类
函数类型 | 向量变元 | 矩阵变元 |
---|---|---|
标量函数 | ||
向量函数 | ||
矩阵函数 |
行向量偏导算子和Jacobian矩阵
实值标量函数
定义实向量变元
对于实值标量函数
当变元为实值矩阵
或者
两者之间关系
即实值标量函数
实值矩阵函数
计算实值矩阵函数
先通过列向量化,将
然后,将该列向量对变元
具体表达式如下:
列向量偏导算子和梯度矩阵
采用列向量形式定义的偏导算子称为列向量偏导算子,又称为梯度算子
实值标量函数
定义实向量变元
对于实值标量函数
将实值矩阵变元
或者
前者称为实值标量函数
后者称为实值标量函数
所以实值标量函数
实值矩阵函数
计算实值矩阵函数
先通过列向量化,将
然后,将该列向量对变元
具体表达式如下:
所以实值矩阵函数
偏导和梯度计算
实值函数对于矩阵变元
- 若
为常数,其中 ,则梯度 (维数相容原则) - 线性法则。若
和 分别是矩阵 的实值函数, 和 为实常数,那么
- 乘积法则。若
和 都是矩阵 的实值函数,则
以及
- 商法则。若
,则
- 链式法则。令
为 矩阵,且 和 分别是以矩阵 和标量 为变元的实值函数,则
实值标量函数
针对实值标量函数有如下推论
- 实值函数
的行偏导向量为 ,梯度向量为 - 实值函数
,其中 , 矩阵为 ,梯度矩阵为 - 实值函数
,其中 ,所以 矩阵为 ,梯度矩阵为
以推论一为例,假设
所以
相关阅读
- 《矩阵分析与应用》第3章 3.1 Jacobian矩阵与梯度矩阵
Gitalk 加载中 ...