前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >变种 LSTM —— GRU 原理

变种 LSTM —— GRU 原理

作者头像
Ewdager
发布2020-07-14 14:34:48
1.4K0
发布2020-07-14 14:34:48
举报
文章被收录于专栏:Gvoidy备份小站

GRU 原理

门控循环单元(GRU)与 长短期记忆(LSTM)原理非常相似,同为使用门控机制控制输入、记忆等信息而在当前时间步做出预测。但比起 LSTM,GRU的门控逻辑有些许不同。

GRU 门控逻辑

因为与 LSTM 非常相似,这里就不赘述相同点,仅谈谈他们之间的不同点,想要详细了解,请移步LSTM原理及Keras中实现了解

与 LSTM 的三中门(输入门、遗忘门和输出门)和细胞状态不同,GRU 摆脱了细胞状态仅隐藏状态来传输信息,他只有两个门,一个复位门(reset gate)和一个更新门(update gate)

注:GRU 同样也有激活函数tanh(蓝)和Sigmoid(红)

更新门

更新门的作用类似于LSTM的遗忘门和输入门。它决定了要丢弃哪些信息以及要添加的新信息。

重置门

重置门是另一个门,它决定忘记过去的信息量。

GRU优势

因为 GRU 的一个细胞单元门结构少于 LSTM,所以计算量要小于 LSTM,使得他比 LSTM 更快。

GRU 在 Keras 中的实现

代码几乎与同 LSTM 相同,仅需导入 GRU 模型,即可建立与 LSTM 类似的模型结构,参数说明也几乎一致,不再赘述。

代码语言:javascript
复制
from keras.models import Sequential
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import GRU
代码语言:javascript
复制
model = Sequential()
model.add(GRU(units=100, input_shape=(30, 40), return_sequences=True))
model.add(Dropout(0.2))

model.add(GRU(units=50, return_sequences=False))
model.add(Dropout(0.2))

model.add(Dense(units=1))
model.add(Activation("linear"))
model.compile(loss="mse", optimizer="adam", metrics=['mae', 'mape'])
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GRU 原理
    • GRU 门控逻辑
      • 更新门
      • 重置门
    • GRU优势
    • GRU 在 Keras 中的实现
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档