文章目录
- 1.梯度介绍
- 2.链式法则
- 3.逻辑回归梯度计算
- 4.梯度矩阵形式推导
- 4.1基础知识
- 4.2 三层神经网络反向传播推导
1.梯度介绍
深度学习的训练本质是优化损失,优化的方式是计算梯度,然后通过优化算法更新参数 ,常见的优化算法SGD/Momentum/Adagrad/RMSProp/Adam等,本文总结一下梯度的计算。
2.链式法则
利用微分求梯度的方法计算量太大,而误差反向传播算法的出现提高了计算效率,误差反向传播算法(BP)主要基于链式法则。
链式法则是求复合函数的导数:
例如多元复合函数,可以看作,其中,
有了偏导数,当y的梯度已知,各变量的梯度=偏导数*y的梯度,因此有几点常用如下
1.如果是由a + b = y,则反向传播时a b 的梯度相等,且等于y的梯度
2.如果是a * b = y,则反向传播时a b 的梯度分别为b a,如果是矩阵运算会涉及到矩阵转换
3.max操作梯度只有传播到取最大值的一路
3.逻辑回归梯度计算
逻辑回归流程如下
- 全连接
- 激活层
- 损失层(二分类交叉熵)
这里激活函数为sigmoid
先求L(a,y)关于a的导数
因为
所以有
进一步推导w和b
4.梯度矩阵形式推导
标量对矩阵的求导,参考另外一篇转载的博客 矩阵求导术
趁热打铁,我们把矩阵形式的梯度推导一下,先放结果。假设
a*b 表示矩阵对应位置相乘
a.dot(b) 表示矩阵内积
4.1基础知识
一元微积分中的微分与导数的全微分公式
多元微积分中的微分与梯度的全微分公式 :
从多元微积分的全微分公式可以看到全微分df等于梯度向量(n,1)与微分向量dx(n,1)的内积
类似的,微分df和矩阵导数(标量对矩阵的导数):
tr表示矩阵的迹(tarce),是方阵对角线元素之和,满足性质:对尺寸相同的矩阵A,B有
举个例子理解下
常用的微分的运算法则:
- 可由求微分证明
- 行列式其中表示的伴随矩阵,在X可逆时可以写成
- 逐元素乘法: 其中表示尺寸相同的矩阵X,Y进行元素乘法
- 逐元素函数其中是逐元素标量函数计算,是逐元素标量导数计算
逐元素是指针对矩阵单个元素求函数值或者求导
,
迹技巧
- 标量套上迹:
- 转置:
- 线性:
- 矩阵乘法交换:,假设与,则有
- 矩阵乘法/逐元素乘法交换:其中ABC尺寸相同都为mxn,两侧都等于
【089】深度学习读书笔记:P29证明迹Tr(AB)=Tr(BA)
4.2 三层神经网络反向传播推导
矩阵形式的损失函数
这里矩阵I是个全为1的(M,1)的矩阵,作用于前面(1,M)的损失求和
- 求微分dL,由以及得
常数矩阵的微分为0矩阵,同时 代入得
继续对和微分,就出现了
这里的、和都是变量。将带入得
接下来使用迹技巧将换到最右侧
因为与尺寸相同,所以有
由法则得:
由比较上式得出:
所以
矩阵求导与矩阵微分
神经网络的反向传播算法中矩阵的求导方法
未完待续…