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