循环神经网络模型

整理并翻译自吴恩达深度学习系列视频:序列模型第一周,有所详略。

Recurrent Neural Network

在这里插入图片描述一个标准的循环神经网络如图所示,在网络的每一个时间步ttt,它接受前一层的激活函数值a&lt;t−1&gt;a^{&lt;t-1&gt;}a<t1>和输入x&lt;t&gt;x^{&lt;t&gt;}x<t>, 使用权值矩阵使用WaaW_{aa}WaaWaxW_{ax}Wax计算a&lt;t&gt;a^{&lt;t&gt;}a<t>,使用结果a&lt;t&gt;a^{&lt;t&gt;}a<t>和权值矩阵WyaW_{ya}Wya计算y^&lt;t&gt;\hat{y}^{&lt;t&gt;}y^<t>,计算方法如第二小节。

Forward Propagation

在这里插入图片描述
可总结为以下:
a&lt;t&gt;=g1(Waaa&lt;t−1&gt;+Waxx&lt;t&gt;+ba)a^{&lt;t&gt;}=g_1(W_{aa}a^{&lt;t-1&gt;}+W_{ax}x^{&lt;t&gt;}+b_a)a<t>=g1(Waaa<t1>+Waxx<t>+ba)
y^&lt;t&gt;=g2(Wyaa&lt;t&gt;+by)\hat{y}^{&lt;t&gt;}=g_2(W_{ya}a^{&lt;t&gt;}+b_y)y^<t>=g2(Wyaa<t>+by)
g1g_1g1可以使用tanhtanhtanhReLuReLuReLug2g_2g2可以使用sigmoidsigmoidsigmoid
在这里插入图片描述
上图右边是向量化版本的实现,它将两个参数矩阵横向堆砌成[Waa∣Wax][W_{aa}|W_{ax}][WaaWax]构成WaW_aWa,将两个输入纵向堆砌成[a&lt;t−1&gt;x&lt;t&gt;][\frac{a^{&lt;t-1&gt;}}{x^{&lt;t&gt;}}][x<t>a<t1>](横线表示分隔符不是除法)。

Backward Propagation

在这里插入图片描述
循环神经网络的反向传播同其他网络一致,按反方向计算导数,编程时框架会自动帮我们处理反向传播,但了解其基本原理也是有助益的。
在这里插入图片描述
如上图所示,需注意,每一个横向上的参数矩阵是共享的,Wy、byW_y、b_yWyby用于每次计算y&lt;t&gt;^\hat{y^{&lt;t&gt;}}y<t>^Wa、baW_a、b_aWaba也用于每次计算x&lt;t&gt;x^{&lt;t&gt;}x<t>

其损失函数使用的是交叉熵(cross entropy loss)。
L&lt;t&gt;(y^&lt;t&gt;,y&lt;t&gt;)=−y&lt;t&gt;logy^&lt;t&gt;−(1−y&lt;t&gt;)log(1−y^&lt;t&gt;))\mathcal{L}^{&lt;t&gt;}(\hat{y}^{&lt;t&gt;},y^{&lt;t&gt;})=-y^{&lt;t&gt;}log\hat{y}^{&lt;t&gt;}-(1-y^{&lt;t&gt;})log(1-\hat{y}^{&lt;t&gt;}))L<t>(y^<t>,y<t>)=y<t>logy^<t>(1y<t>)log(1y^<t>))
L(y^&lt;t&gt;,y)=∑t=1TL&lt;t&gt;(y^&lt;t&gt;,y&lt;t&gt;)\mathcal{L}(\hat{y}^{&lt;t&gt;},y)=\sum_{t=1}^{T}\mathcal{L}^{&lt;t&gt;}(\hat{y}^{&lt;t&gt;},y^{&lt;t&gt;})L(y^<t>,y)=t=1TL<t>(y^<t>,y<t>)

其他种类的RNN

在这里插入图片描述
根据输入和输出的对应关系,RNN有图示几种结构,即一对一、一对多、多对一、多堆多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值