循环神经网络(Recurrent Neural Network, RNN)

总结自吴恩达老师的网易深度学习工程师微专业

1. 前向传播

在这里插入图片描述
a t = g ( a ) ( W a a a &lt; t − 1 &gt; + W a x x &lt; t &gt; + b a ) a^{t}=g^{(a)}(W_{aa}a^{&lt;t-1&gt;}+W_{ax}x^{&lt;t&gt;}+b_a) at=g(a)(Waaa<t1>+Waxx<t>+ba)
y ^ &lt; t &gt; = g ( y ) ( W y a a &lt; t &gt; + b y ) \hat y^{&lt;t&gt;}=g^{(y)}(W_{ya}a^{&lt;t&gt;}+b_y) y^<t>=g(y)(Wyaa<t>+by)
or, 简化版
a t = g ( a ) ( W a [ a &lt; t − 1 &gt; , x &lt; t &gt; ] + b a ) a^{t}=g^{(a)}(W_a[a^{&lt;t-1&gt;}, x^{&lt;t&gt;}]+b_a) at=g(a)(Wa[a<t1>,x<t>]+ba)
y ^ &lt; t &gt; = g ( y ) ( W y a &lt; t &gt; + b y ) \hat y^{&lt;t&gt;}=g^{(y)}(W_ya^{&lt;t&gt;}+b_y) y^<t>=g(y)(Wya<t>+by)

Note

  1. 一般而言,初始激活向量为: a &lt; 0 &gt; = 0 ⃗ a^{&lt;0&gt;}=\vec0 a<0>=0
  2. 通常, g ( a ) g^{(a)} g(a)选择 t a n h tanh tanh函数( t a n h tanh tanh函数梯度消失的问题会用其他方式解决),有时也会选用 r e l u relu relu函数。
  3. y ^ &lt; t &gt; = g ( y ) ( W y a a &lt; t &gt; + b y ) \hat y^{&lt;t&gt;}=g^{(y)}(W_{ya}a^{&lt;t&gt;}+b_y) y^<t>=g(y)(Wyaa<t>+by)如果是二分类问题,使用 s i g m o i d sigmoid sigmoid函数,如果是多分类问题,可以使用 s o f t m a x softmax softmax函数。

2. 损失函数

为了进行反向传播计算,使用梯度下降等方法来更新RNN的参数,我们需要定义一个损失函数,如下:
L ( y ^ , y ) = ∑ t = 1 T y L &lt; t &gt; ( y ^ &lt; t &gt; , y &lt; t &gt; ) = ∑ t = 1 T y − ( y &lt; t &gt; l o g ( y ^ &lt; t &gt; ) + ( 1 − y &lt; t &gt; ) l o g ( 1 − y ^ &lt; t &gt; ) ) L(\hat y,y)=\sum^{T_y}_{t=1}L^{&lt;t&gt;}(\hat y^{&lt;t&gt;},y^{&lt;t&gt;})=\sum^{T_y}_{t=1}-(y^{&lt;t&gt;}log(\hat y^{&lt;t&gt;})+(1-y^{&lt;t&gt;})log(1-\hat y^{&lt;t&gt;})) L(y^,y)=t=1TyL<t>(y^<t>,y<t>)=t=1Ty(y<t>log(y^<t>)+(1y<t>)log(1y^<t>))

3. BPTT

RNN的反向传播将在后续部分有专门的介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值