从本质认识RNN到LSTM【附实例】

(一)说明

 这里写一下RNN的相关公式推导,以及代码中RNN的理解,简单的说明本质问题,不再详细介绍RNN相关发展以及相关概念。有相关基础肯能会比较好懂。主要介绍RNNLSTM并简单介绍其他RNN的变种。

 (二)本质分析开始--RNN推导与理解

 给出最直观理解RNN的图:

  

 参数这里是共享的。

 接下来是RNN的前向传播计算公式:

  

 RNN时间序列的反向传播公式推导:

 首先简化上面前向计算的公式:

 

 反向传播公式推导,举一反三:

 


以上用公式推导了RNN的计算,接下来看不同情况下RNN的应用场景:

 

One to one : 传统文本分类

One to many: 英文释义

Many to one: 情感分析

Many to many: 机器翻译

Many to many(同步):文本序列标注

 

 (三)深度学习的“著名”问题即引出LSTM

上述RNN计算会有一个深度学习中有名的问题:梯度消失或梯度爆炸。

在深度学习的非线性函数的不断嵌套使得参数的梯度在后边越来越小或越来越大,尤其是使用sigmoid函数,很显然的是sigmoid函数的导数最大也只是0.25的激活值。具体可以推导一下。当参数值在后边越来越小或越来越大,RNN前边信息都很快被丢失。(还记得刚说过的sigmoid0.25吧!)接下来看一下过程:

 

 

既然RNN对信息不能很好地记住,那么接下来就说说能记点东西的LSTM吧!

这里直接上我看过的书上的图吧:

 


 

 

 




 (四)总结与实例

剩下其他RNN变种举一反三去认识即可,例如现在用的较多的GRU

 

另外在写代码的时候要确定输入单元的数量,以及输入步长(序列)的数量,隐藏层的数量,输出层的数量,接下来的工作即用tensorflow搭模型即可。

 

提供一个字符级别RNN的例子:

 

-- Tensorflow版本

https://github.com/sherjilozair/char-rnn-tensorflow

 --

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值