门控循环单元GRU

结构:

特点:

结构简单,参数较少

结构图:

对比LSTM:

1.LSTM有三个门,而GRU只有两个门

2.LSTM在左侧有两项输入,而GRU只有一项输入,将两项合二为一合成一个部分

3.LSTM中的参数数量很多(等9个),而GRU中的参数少得多(等6个)

4.LSTM中的门为输入门、遗忘门、输出门,GRU的门为更新门和重置门

关注一个序列:

不是每个观察值都同等重要:

做RNN时,处理不了太长的序列,因为将整个序列信息放在隐藏状态里;当时间很长时,隐藏状态就累积了很多信息,对于前面很久前的信息并不容易将其抽取出来。

老鼠较为重要,第一次出现的猫也较为重要。

在现实生活中的NLP里,句子里可能只有一些关键字比较重要,关键句比较重要,其他的也不是很重要;类似于股票,重要的是几个点;电影里的几帧相类似,但在切换场景时,每次切换比较重要。

在RNN中无法实现特别关注某些区域,对RNN而言所有信息都为一个序列输入,门控神经网络通过一些额外的控制单元使得在构造隐藏状态时,可以选择的(重要的记住,不重要的忘记)浏览。

想只记住相关的观察需要:

能关注的机制(更新门)

能遗忘的机制(重置门)

门:

下图表示为一个层

:重置;若为RNN,则等价于使用sigmoid做激活函数的隐藏状态的计算方法

:更新;对比也有自己的权重

门:与隐藏状态同样长度的一个向量,与RNN计算隐藏状态的方法类似

候选隐藏状态:

定义:

并不是真正的隐藏状态,而是候选的隐藏状态。

假设不看,类似于之前的RNN计算隐藏层

但现在加入了一个,用 代表对元素进行乘法;因为的长度相同,可以按元素做乘法且值域在(0,1)之间,假设中的元素更靠近"0",那么运算后的结果更靠近"0",等于把上一时刻的隐藏状态忘记;假设中的元素更靠近"1",那么运算结果更靠近"1",等价于RNN做运算的结果。

可以根据前面的信息进行学习,决定信息可以丢弃或保留,是一个控制单元,被称为"门"。因为值域在(0,1),代表可以在(0,1)之间做比较软的控制。

隐状态:

:上一次的隐藏状态

:候选项隐藏状态

:控制单元;若为"1",=,不更新过去状态,将过去状态放入现在,忽略掉元素;当为"0",基本回到了RNN的情况,基本不看过去状态,而是看现在的状态。

总结:

引入了两个额外门,每个门可以学到的参数和之前的RNN一样多;两个门都为一个控制单元,控制(0,1)的输出值;Reset gate用来在更新新隐藏状态时,要用到多少过去隐藏状态的信息,在算新的隐藏状态时,需要用当前相关的多少信息;极端情况下,回到RNN的情况;

相关推荐
Ztopcloud极拓云视角1 天前
ChatGPT超级应用改版技术解析:Codex集成架构与多模型路由实战
人工智能·chatgpt·架构
努力学习_小白1 天前
基于 RNN 的心脏病预测
pytorch·rnn·深度学习
秋91 天前
从 Python 后端工程师转型 AI Engineer(AI 工程化)的完整补课清单(2026实战版)
开发语言·人工智能·python
啦啦啦_99991 天前
5. 迁移学习
人工智能·机器学习·迁移学习
A.说学逗唱的Coke1 天前
【AI·Coding】TDD × SDD × AI Coding:从“测试驱动“到“规范驱动“的智能协作实践
人工智能·驱动开发·tdd
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
tq10861 天前
基于SLIP的防幻觉的指南
人工智能
甲维斯1 天前
Kimi版超级玛丽效果“惊人”,配额不足5厘米!
前端·人工智能
console.log('npc')1 天前
AI前端工程与生成式UI学习路线
前端·人工智能·ui
秋91 天前
3年经验Python后端转AI Engineer:3个月实战转型计划(2026版)
开发语言·人工智能·python