keras 循环神经网络RNN优化--LSTM+GRU

开篇

图示对比

RNN
NZkcoCnq-1587775999568)(content.assets/rnn.gif)]

LSTM
Iv1DpZFo-1587775999573)(content.assets/lstm.gif)]

GRU
2ouRiOin-1587775999575)(content.assets/gru.gif)]

优化的点

在RNN中,随着时间线的延长,距离目前时间比较远的数据所包含的信息会被衰减殆尽,举个例子

“I grew up in France… I speak fluent .” 我们现在想判断出 ? 处应该是什么,我们直观地判断结果应该是Franch,判断的依据是前面有个France,可以认为France是 x 4 x_4 x4的数据,我们要推断的是 x t ( t ≥ 8 ) x_t(t \geq 8) xt(t8)的数据。对RNN而言,这两个单词离得太远了,因此解决不了。

LSTM

本质上增加了存储的信息量,可以认为 C t C_t Ct中保留了从开始到现在所有需要的信息。这是长期知识,然后通过与RNN中已经提供的短期知识结合,共同判断结果。细致的讲解可以参看下面的[博客][https://www.jianshu.com/p/95d5c461924c]。

GRU

效果跟LSTM差不多,但是节省了更多的计算资源,因为没有细胞状态了。细致原理参看下面的文章。

https://zhuanlan.zhihu.com/p/32481747

keras实现

LSTM

keras.layers.LSTM(units, activation='tanh', recurrent_activation='sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=2, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)

具体参数的含义在中基本ref都已经介绍过了,这里新增的两个activation通过默认值可以直接与lstm的结构对应上。

GRU

keras.layers.GRU(units, activation='tanh', recurrent_activation='sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=2, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False, reset_after=False)

参考

https://baijiahao.baidu.com/s?id=1639105801622260740&wfr=spider&for=pc

hao.baidu.com/s?id=1639105801622260740&wfr=spider&for=pc

图片摘自https://www.jianshu.com/p/95d5c461924c
欢迎关注公众号BBIT
让我们共同学习共同进步!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值