一、GRU算法

  GRU(Gate Recurrent Unit,循环门单元)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。

  在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。具体结构如下图所示:    

  图中的zt和rt分别表示更新门和重置门。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门控制前一状态有多少信息被写入到当前的候选集 ℎ̃t上,重置门越小,前一状态的信息被写入的越少。

  GRU组合了遗忘门和输入门到一个单独的更新门当中,也合并了细胞状态​ C和隐藏状态h​,并且还做了一些其他的改变,使得其模型比标准LSTM​模型更简单,其数学表达式为:

  其中,门控信号zt的范围为0~1。门控信号越接近1,代表”记忆“下来的数据越多;而越接近0则代表”遗忘“的越多。

二、总结

  GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。

  与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU。

参考:

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

https://www.cnblogs.com/jiangxinyang/p/9376021.html

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

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

最新文章

  1. 重走java---Step 1
  2. ural 1343. Fairy Tale
  3. jQuery中对属性的增删改查
  4. form表单select联动
  5. owin 中间件 katana 如何解密cookie
  6. swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)
  7. lesson6:jmeter和badboy配合使用
  8. (12) MVC5 EF6 Bootstrap3
  9. Azure Powershell对ASM资源的基本操作
  10. URL编码和Base64编码 (转)
  11. CentOS 7 安装 Jenkins
  12. Java程序简介
  13. 【原创】Linux基础之测试域名IP端口连通性
  14. SpringBoot无废话入门02:SpringBoot启动分析
  15. ios多target开发
  16. 转 linux Crontab 使用
  17. Java 集合框架(二)—— ArrayList
  18. Selenium之firefox浏览器的启动
  19. CentOS添加PHP至环境变量
  20. JSP静态包含和动态包含

热门文章

  1. Netty (一) IO 基础篇
  2. hdu5303贪心
  3. npm 安装 electron 失败的解决方案
  4. SDK & 埋点 & user behavior tracker
  5. vue watch & arrow function bug
  6. API protocols All In One
  7. 比特币等主流货币走势成谜,VAST深受关注
  8. Python学习笔记_类
  9. 17_MySQL分组查询的应用
  10. InnoDB存储引擎——页和记录(行)