跳到主内容

什么是门控机制?网络怎么决定留还是忘

2026-10-06 发布 来源:我告诉你AI导航 阅读

训练一个处理长文本的 AI 模型,前二十个词记得清楚,读到第二百个词时,开头的主语已经丢了。早期循环网络就是这么工作的:每一步用新信息覆盖旧状态,重要的和不重要的按同样比例往下传。门控机制要解决的就是这件事——让网络自己决定,哪一部...

训练一个处理长文本的 AI 模型,前二十个词记得清楚,读到第二百个词时,开头的主语已经丢了。早期循环网络就是这么工作的:每一步用新信息覆盖旧状态,重要的和不重要的按同样比例往下传。门控机制要解决的就是这件事——让网络自己决定,哪一部分该留,哪一部分该冲掉。

门就是一个可学习的音量旋钮

一个门的输出是 0 到 1 之间的一个数,用它与一份信息逐元素相乘:乘 0 完全丢弃,乘 1 原样通过,乘 0.3 只留三成。系数由当前输入和上一时刻的状态算出来,随训练调整,不需要人指定。于是它学到的是一套条件判断:在这种输入下,这份记忆该保留几成。

选乘法而不选硬开关,理由在梯度。门若只能取 0 或 1,信号在断开处没有导数,反向传播传不回去,参数无从更新。取值连续的 sigmoid 让门在接近关闭时仍保留微小梯度,网络可以一点点把它调大或调小,梯度怎么沿计算图回传是理解这一点的前提。

每个门守一个位置

把 LSTM 拆开看,三个门分别守在记忆的写入、保留和暴露三处,GRU 把它压成两个。同一件事在不同结构里的分工并不一样:

门控制什么丢了会怎样
遗忘门(LSTM)上一时刻的记忆有多少写回当前状态旧信息无限累积,状态被历史淹没,对近期输入反应迟钝
输入门(LSTM)这一步的新信息有多少写进记忆新内容进不来,模型反复输出早期形成的结论
输出门(LSTM)内部状态有多少暴露给下一层记忆还在,下游读不到,存了等于没存
更新门与重置门(GRU)更新门管新旧比例,重置门管旧状态参与多少门少了三分之一,参数更省;短序列够用,长依赖略吃亏
GLU 类门控(前馈层)两路变换中一路出内容,另一路出权重少了这层筛选,前馈层的表达能力和收敛速度都会下降

输出门这一项最容易被忽略。记忆存得再好,暴露给下游的比例若接近零,后面的层读到的就是一片空白,训练时表现为损失降不下去、梯度却很正常,排查起来很费时间。

门控和注意力常被混为一谈

两者都在做加权,加权对象不同。门控对同一份表示的各个维度做缩放,回答「这条信息保留几成」;注意力在多个位置之间分配比重,回答「该看哪里」。一个句子里,注意力决定把哪几个词的表示取过来,门控决定取过来之后写进记忆多少,注意力的权重是怎么算出来的可以对照着看。二者能叠在同一个模型里,各管一段。

另一处易混的是门控与激活函数。ReLU 也把一部分数值压到零,但截断位置固定,不随输入变化;门的系数是算出来的,同一维度在不同时刻可开可关。

门控学不会的时候,会出什么事

失效很少报错,多数表现为训练慢、长依赖学不到。遗忘门一旦进入 sigmoid 的饱和区,梯度接近零,门卡在某个值上不动,模型实际退化成固定衰减,两百步以外的信息基本用不上。初始化也敏感:LSTM 的遗忘门偏置通常初始化为 1 附近,让训练初期默认记住;设成 0 时,长序列任务常常根本学不动。

还有几条它管不了的事。序列里本来就没有可用的长程信号时,门控只会学会全部遗忘,再多参数也没用。门控带来额外的参数和逐步串行的计算,推理时延比同规模前馈层高,长序列上更明显。最后,哪个门在起什么作用,事后很难说清,LSTM 内部三个门的分工能讲清结构,讲不清某次预测为什么被保留。

它后来扩散到了哪些结构

残差连接上加一个门,是 Highway 网络;前馈层用两路相乘,是 GLU 系列,今天的语言模型大量采用。状态空间模型里的输入相关衰减系数,作用同样是按内容调节历史信息的留存。GRU 怎么用两个门替代三个门是这条演化线上的一次压缩,把「少一个门到底损失什么」摆得很清楚。

怎么从结构上认出它

找乘法节点:两路输入相乘、其中一路经过 sigmoid,基本就是门。数参数量:带门的循环单元,参数量约为最简循环网络的四倍。看长序列表现:两百步以上仍能用上开头的信息,多半有门控或注意力在起作用。这三条判断不需要读论文,看结构图就够。

速查:门控机制

  • 门是 0 到 1 的系数,乘在信息上,系数由输入算出
  • LSTM 三门:遗忘管旧、输入管新、输出管暴露
  • 用乘法是为了保住梯度,硬开关传不回去
  • 门控管保留多少,注意力管看哪里
  • 遗忘门偏置设错,长序列直接学不动

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]