课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/

视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239

这里回顾CS224N Lecture 4的课程内容,这一讲介绍了矩阵微积分以及反向传播。

反向传播

雅克比矩阵

假设我们有函数$f: \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}$,其中

那么雅克比矩阵为如下矩阵

利用雅克比矩阵可以使用矩阵形式的链式法则,考虑如下两个函数

下面计算函数$h(x)=g(f(x))$的雅克比矩阵:

所以

对于输入为矩阵的函数

定义梯度为

有用的性质

下面介绍几个有用的性质,这里规定$W$表示矩阵,$x$表示向量

  1. $z= Wx, \frac{\partial z}{\partial x}=W$
  2. $z=x{W}, \frac{\partial z}{\partial x}={W}^{T}$
  3. $z= x,\frac{\partial z}{\partial x}=I$
  4. $z=f(x), \frac{\partial z}{\partial x}=\operatorname{diag}\left(f^{\prime}(x)\right)$
  5. $z={W} {x}, {\delta}=\frac{\partial J}{\partial \boldsymbol{z}}, \frac{\partial J}{\partial {W}}=\delta^{T} x^{T}$
  6. $z= {x}{W}, {\delta}=\frac{\partial J}{\partial \boldsymbol{z}}, \frac{\partial J}{\partial {W}}= x^{T}\delta$
  7. $\hat{y}=\operatorname{softmax}(\boldsymbol{\theta}), J=CE(y,\hat y), \frac{\partial J}{\partial {\theta}}=\hat{y}-{y}$

下面来证明这些性质。

性质1:

性质2:

性质3:

在性质1中取$W=I$

性质4:

性质5:

所以

性质6:

所以

性质7:

所以

例子

考虑如下神经网络

其中

显然我们有

为了后续计算方便,定义

那么

利用之前的性质可得

梯度检查

可以利用数值梯度的方法判断梯度计算是否正确:

正则化

正则化是为了防止过拟合,在神经网络组一般使用Frobenius范数:

初始化

通过对权重适当的初始化,可以加快收敛速度,比较常用的初始化方式为

其中$W \in \mathbb{R}^{n^{(l+1)} \times n^{(l)}}$