总结自吴恩达老师的网易深度学习工程师微专业
1. 前向传播
at=g(a)(Waaa<t−1>+Waxx<t>+ba)
y^<t>=g(y)(Wyaa<t>+by)
or, 简化版
at=g(a)(Wa[a<t−1>,x<t>]+ba)
y^<t>=g(y)(Wya<t>+by)
Note
- 一般而言,初始**向量为:a<0>=0
- 通常,g(a)选择tanh函数(tanh函数梯度消失的问题会用其他方式解决),有时也会选用relu函数。
-
y^<t>=g(y)(Wyaa<t>+by)如果是二分类问题,使用sigmoid函数,如果是多分类问题,可以使用softmax函数。
2. 损失函数
为了进行反向传播计算,使用梯度下降等方法来更新RNN的参数,我们需要定义一个损失函数,如下:
L(y^,y)=∑t=1TyL<t>(y^<t>,y<t>)=∑t=1Ty−(y<t>log(y^<t>)+(1−y<t>)log(1−y^<t>))
3. BPTT
RNN的反向传播将在后续部分有专门的介绍。