CS224N Natural Language Processing with Deep Learning Lecture 4
课程主页: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$表示向量
- $z= Wx, \frac{\partial z}{\partial x}=W$
- $z=x{W}, \frac{\partial z}{\partial x}={W}^{T}$
- $z= x,\frac{\partial z}{\partial x}=I$
- $z=f(x), \frac{\partial z}{\partial x}=\operatorname{diag}\left(f^{\prime}(x)\right)$
- $z={W} {x}, {\delta}=\frac{\partial J}{\partial \boldsymbol{z}}, \frac{\partial J}{\partial {W}}=\delta^{T} x^{T}$
- $z= {x}{W}, {\delta}=\frac{\partial J}{\partial \boldsymbol{z}}, \frac{\partial J}{\partial {W}}= x^{T}\delta$
- $\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)}}$
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere