RNN、LSTM和GRU网络原理
RNN(Recurrent Neural Networks)基本模型:
RNN计算公式:
通过反向传播计算所有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<t>,
如果=1,则c<t>=
,就是RNN基本类型。
如果=0,则c<t-1>=c<t>,相当于a<0>=a<1>,隐藏层不更新,直接往下传到很远,这种设计缓解了长距离信息传不到。
实际的只会取接近0或1的值,不会直接取到0或1。
LSTM基本模型图
计算公式:也是在RNN的a<t>公式上加控制
a<t>、c<t>两路信息并行,
更新门、遗忘门、输出们,三个门的公式分别:、
、
=
两个公式的结果联合共同门控,得到最终的c<t>和a<t>,
双向RNN(Bidirectional RNN)
将RNN基本型公式的y<t>
RNN演化趋势:1)长距离依赖,双向同时获取上下文信息,2) 注意力机制部分信息重点学习
RNN扩展转载此博客:
https://blog.****.net/red_stone1/article/details/79446105