门控循环单元(GRU)

门控循环单元(GRU)基本原理

一、GRU核心思想与设计动机

目标 :在保留LSTM长程记忆能力的前提下,简化网络结构
核心创新:

  • 合并LSTM的输入门和遗忘门为更新门(Update Gate)
  • 去除细胞状态(Cell State),直接通过隐藏状态传递信息
  • 参数数量比LSTM减少1/3,训练速度提升20-30%

二、网络结构分解

1. 核心组件(两个门 + 候选状态)

组件 符号 功能描述
更新门 z t z_t zt 控制历史信息与当前信息的融合比例
重置门 r t r_t rt 决定忽略多少历史信息生成候选状态
候选隐藏状态 h ~ t \tilde{h}_t h~t 包含当前输入与部分历史信息的中间状态

2. 数学公式推导

更新门(Update Gate)

z t = σ ( W z ⋅ h t − 1 , x t + b z ) z_t = \sigma(W_z \cdot h_{t-1}, x_t + b_z) zt=σ(Wz⋅ht−1,xt+bz)

  • σ \sigma σ: Sigmoid函数(输出0-1间的保留比例)
重置门(Reset Gate)

r t = σ ( W r ⋅ h t − 1 , x t + b r ) r_t = \sigma(W_r \cdot h_{t-1}, x_t + b_r) rt=σ(Wr⋅ht−1,xt+br)

候选隐藏状态

h ~ t = tanh ⁡ ( W ⋅ r t ⊙ h t − 1 , x t + b ) \tilde{h}_t = \tanh(W \cdot r_t \\odot h_{t-1}, x_t + b) h~t=tanh(W⋅rt⊙ht−1,xt+b)

  • ⊙ \odot ⊙: Hadamard积(控制历史信息流入量)
最终隐藏状态

h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t ht=(1−zt)⊙ht−1+zt⊙h~t

  • 动态平衡历史信息保留与更新

三、PyTorch实现(手动版)

1. GRU单元实现

python 复制代码
import torch
import torch.nn as nn

class GRUCell(nn.Module):
    def __init__(self, input_size, hidden_size):
        super().__init__()
        self.hidden_size = hidden_size
        
        # 合并计算三个门的参数矩阵
        self.W = nn.Linear(input_size + hidden_size, 3*hidden_size)
        
    def forward(self, x, h_prev):
        # 拼接输入与历史状态
        combined = torch.cat((x, h_prev), dim=1)
        gates = self.W(combined)
        
        # 分割门控计算结果
        z, r, n = torch.split(gates, self.hidden_size, dim=1)
        
        # 激活函数应用
        z = torch.sigmoid(z)  # 更新门
        r = torch.sigmoid(r)  # 重置门
        n = torch.tanh(r * n) # 候选状态
        
        # 最终状态更新
        h = (1 - z) * h_prev + z * n
        
        return h
相关推荐
搬砖小趴菜1 分钟前
【科研速递】Applied Sciences | 冻融循环作用下玄武岩的三轴力学行为与强度模型:对寒区工程结构的意义
大数据·论文阅读·人工智能·全文检索·ai自动写文章
智感子5 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
人工智能技术咨询.8 小时前
具身智能中的世界模型训练
人工智能
LaughingZhu8 小时前
Product Hunt 每日热榜 | 2026-10-06
人工智能·深度学习·神经网络·搜索引擎·百度
AOI小白新手上路8 小时前
AOI 缺陷检测复现实操指南:Anomalib + MVTec AD(glass)与 YOLOv8 + NEU-DET 两条路线
人工智能·深度学习·yolo
henrylin99999 小时前
RD-AGENT 第一讲 · AI 因子工厂是怎么运转的
人工智能
高洁019 小时前
具身智能中的世界模型训练
人工智能·python·深度学习·机器学习·transformer
无线通信科研笔记9 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
Devlive 开源社区9 小时前
AuthX 正式更名 GrantForge:我们重新做了一遍权限管理系统
大数据·人工智能·架构
朝朝辞暮i9 小时前
VLA 系统学习第 1 课:VLA 到底在干什么?
人工智能·python·计算机视觉·vla