RNN、LSTM和GRU网络原理

RNN(Recurrent Neural Networks)基本模型:

 

这里写图片描述

RNN计算公式:

a ^{_{<t>}}=tanh(W_{x}X ^{_{<t>}}+W_{a}a ^{_{<t-1>}}+b_{a})

y ^{_{<t>}}=sigmoid(W_{y}a^{_{<t>}}+b_{y})

通过反向传播计算所有W和b。

 

多种RNN:根据实际应用场景的不同,衍生出多种RNN结构

这里写图片描述

两种多对多模型:命名体识别(RNN基本模型Tx=Ty)、机器翻译(encode-decode编码器-解码器)

多对一:情感分析                                             一对多:语音生成

 

     RNN的问题是,前一次的预测值y<1>会影响下一次的y<2>,但是很难影响到更远的y<5>、y<6>,也就是RNN不擅长处理长期依赖问题,容易出现梯度消失。针对RNN的缺陷,提出优化模型LSTM、GRU,基本思路是在隐藏层a<t>公式加入控制结构。

 

GRU(Gated Recurrent Unit)基本模型图

这里写图片描述

计算公式:在RNN的a<t>公式上加控制

原公式的a<t>换成c<t>,   c ^{_{N<t>}}=tanh(W_{x}X ^{_{<t>}}+W_{c}c ^{_{<t-1>}}+b_{c})

增加一个门控公式,        \Gamma u=sigmoid(W_{u}X ^{_{<t>}}+W_{u}c ^{_{<t-1>}}+b_{u})

两个公式的结果联合共同门控,得到最终的c<t>,   c ^{_{<t>}}=\Gamma _{u}\ast c ^{_{<t>}}+(1-\Gamma _{u}))\ast c ^{_{<t-1>}}

如果\Gamma u=1,则c<t>=c ^{_{N<t>}},就是RNN基本类型。

如果\Gamma u=0,则c<t-1>=c<t>,相当于a<0>=a<1>,隐藏层不更新,直接往下传到很远,这种设计缓解了长距离信息传不到。

实际的\Gamma u只会取接近0或1的值,不会直接取到0或1。

 

LSTM基本模型图

这里写图片描述

计算公式:也是在RNN的a<t>公式上加控制

a<t>、c<t>两路信息并行,   c ^{_{N<t>}}=tanh(W_{x}X ^{_{<t>}}+W_{c}a ^{_{<t-1>}}+b_{c})

更新门、遗忘门、输出们,三个门的公式分别:\Gamma u\Gamma f\Gamma o = sigmoid(WX ^{_{<t>}}+Wa ^{_{<t-1>}}+b)

两个公式的结果联合共同门控,得到最终的c<t>和a<t>,

 c ^{_{<t>}}=\Gamma _{u}\ast c ^{_{N<t>}}+(1-\Gamma _{u}))\ast c ^{_{<t-1>}}

a ^{_{<t>}}=\Gamma _{u}\ast tanhc ^{_{<t>}}

 

双向RNN(Bidirectional RNN)

这里写图片描述

将RNN基本型公式的y<t>   

y ^{_{<t>}}=sigmoid(W_{y}a^{_{-><t>}}+W_{y}a^{_{<-<t>}}+b_{y})

 

RNN演化趋势:1)长距离依赖,双向同时获取上下文信息,2) 注意力机制部分信息重点学习

 

RNN扩展转载此博客:

https://blog.csdn.net/red_stone1/article/details/79446105

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值