一文彻底搞懂Transformer - Add & Norm(残差连接和层归一化)
创始人
2024-11-16 02:10:03
0次

        在Transformer模型中,Add & Norm(残差连接和层归一化)是两个重要的组成部分,它们共同作用于模型的各个层中,以提高模型的训练效率和性能。    

    

一、Add(残差连接)

        网络退化:网络退化(Degradation)是深度学习中一个常见的现象,特别是在构建深层神经网络时更为显著。它指的是在网络模型可以收敛的情况下,随着网络层数的增加,网络性能先增加后迅速下降的现象。

        这种现象并不符合常理,因为更深的网络结构通常被认为应该表现得更好。

        例如,一个56层的深层网络在测试集上的错误率有时会高于一个20层的浅层网络,且这并非数据问题导致。即使在训练集上,深层网络的表现也不如浅层网络,这种现象称为“网络退化”。

        Add(残差连接):残差连接(Residual Connection)或跳跃连接(Skip Connection)最早由何凯明等人在2015年提出的ResNet(Residual Network)中引入,成为了解决深层网络网格退化的一种有效方法。

        残差连接在构建深层神经网络时,被视为一种有效的兜底策略。当网络已经达到或接近其性能的最优解时,如果继续增加网络深度(即添加更多的层),这些新增的层(被视为冗余层)不应该对网络的性能产生负面影响。

        Skip connections的实现方式通常是将某一层的输出(通常经过一个恒等映射或简单的线性变换)直接加到下一层(或更深层)的输出上。这样,网络的输出就可以表示为输入的非线性变换与输入的线性叠加,即y = F(x) + x,其中F(x)表示输入x经过一系列非线性变换后的输出,x表示直接传递的输入。

        例如:模型一共56层,若第20层时模型已经充分学习达到测试集最佳效果,则让从21层开始到第56层学习一种恒等变换,在最后一层将第20层的输出恒等映射出来。 

残差网络:残差网络(ResNet)通过残差连接,使得输入信息可以直接跨越一层或多层,与后续层的输出相加,从而缓解了深层网络中的梯度消失和梯度爆炸问题,使得网络可以扩展到更深的层数。

  • 梯度消失:在深层网络中,梯度需要通过多个层次进行反向传播。根据链式法则,梯度在传播过程中会不断相乘,当层数较多时,梯度值可能会以指数形式衰减并趋近于零,导致梯度消失。

  • 梯度爆炸:深层网络中的梯度在传播过程中也可能因链式法则的连乘效应而迅速增长,甚至呈指数级增长,导致网络参数更新过大,网络不稳定。

ResNet-50模型在当年的ImageNet比赛中获得了第一名,其准确率相比前一年的获胜者提高了3.6%。

ResNet-50的网络架构如下:

  • 输入处理:输入数据首先经过一个卷积层和一个最大池化层进行预处理,以提取初步的特征并降低空间维度。

  • 残差阶段:经过预处理后,数据进入多个阶段(stage),每个阶段包含多个残差块。

  • 输出层:经过多个stage的残差学习后,网络通过一个全局平均池化层来减少空间维度并提取全局特征。这些特征被送入一个全连接层,用于输出最终的预测结果。

 

二、Norm(层归一化) 

 

        归一化(Normalization):一种数据预处理技术,旨在通过线性或非线性变换,将输入数据或神经网络层的输出数据映射到一个特定的数值范围或分布之中。这一处理过程对于提升神经网络训练过程的稳定性、加速收敛速度以及最终提高模型性能至关重要。

在神经网络中,常见的归一化方法包括

  • 批归一化(Batch Normalization):它通过在每个批次中对输入数据进行规范化,使其均值为0、方差为1,从而加速网络的收敛过程,降低网络对初始化和学习率的敏感性,同时也有一定的正则化效果。

  • 层归一化(Layer Normalization):与批归一化不同,它在每层中对所有样本的输出进行规范化,而不是对每个批次进行规范化。层归一化在处理序列数据等不适合批处理的情况下,可以作为替代方案使用。

  • 组归一化(Group Normalization):组归一化是一种介于批归一化和层归一化之间的方法,它将输入数据分成多个小组,然后对每个小组内的样本进行归一化,从而减小小组之间的相关性,提高网络的学习能力。

 

        Norm(层归一化):Transformer使用的是层归一化,通过对层内所有神经元的输出进行归一化处理,使得输出的分布具有稳定的均值和方差。

        在Transformer中,层归一化通常是在残差连接之后进行,主要用于解决内部协变量偏移问题,即减少层与层之间数据分布的差异,从而加速训练过程。

        层归一化会对残差连接后的输出进行归一化处理,然后使用可学习的参数(如beta和gamma)对归一化后的输出进行缩放和平移。这样既可以保持数据的分布稳定性,又可以保留一定的灵活性。

  1. beta参数:

    • 作用:beta参数在层归一化中起到平移的作用。它允许模型对归一化后的输出进行上下平移,以调整数据的均值。

    • 影响:通过调整beta的值,可以改变归一化后数据的分布中心,使得模型能够更好地适应数据的特性,提高模型的表达能力和泛化能力。

  2. gamma参数:

    • 作用:gamma参数在层归一化中起到缩放的作用。它允许模型对归一化后的输出进行缩放,以调整数据的方差或幅度。

    • 影响:通过调整gamma的值,可以控制归一化后数据的尺度,使得模型能够学习到更加抽象和复杂的特征表示。

         基本上所有的归一化技术,都可以概括为如下的公式:

        对于隐层中某个节点的输出,即激活值a,进行非线性变换(如ReLU、tanh等)后得到h。

        层归一化的过程就是先计算这一层所有激活值的均值μ和方差σ²,然后使用这些统计量对h进行分布调整。这种调整就是把“高瘦”和“矮胖”的都调整回正常体型(深粉色),把偏离x=0的拉回中间来(淡紫色)。

 

三、Transformer残差连接和层归一化 

        Add & Norm:在Transformer中,Add & Norm(残差连接和层归一化)通常作为一个整体单元出现在Encoder和Decoder的每一层中。

                                                Add & Norm(残差连接和层归一化)

        在Transformer架构中,残差连接是每个编码器和解码器层的重要组成部分。每个子层(如自注意力层和前馈神经网络层)的输出都会与其输入相加,形成残差连接。

        每个层都会先进行自注意力机制或交叉注意力机制的处理(对于Decoder来说),然后进行残差连接和层归一化。接着,再进行前馈神经网络的处理,并再次进行残差连接和层归一化。这样的设计使得Transformer模型同时利用残差连接和层归一化的优点,能够有效地处理长序列数据,并在自然语言处理任务中取得了显著的成功。

相关内容

热门资讯

今日重大通报!wepoker软... 很多人使用云端 AI 时,都担心wepoker软件辅助程序、内部资料上传带来隐私风险。这款本地运行的...
传递经验!wpk辅助哪里买,德... 本地部署 AI 黑科技工具迎来新版本,不用上传文件到云端就能完成wpk辅助哪里买解析、 AI 处理、...
我来教大家!!wpk私人局辅助... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
安装教程!wejoker私人辅... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...
玩家必备教程!wpk辅助插件,... 您好,玩家必备教程!wpk辅助插件,wepoker开挂工具插件(先前存在有透视挂)这款游戏可以开挂的...
一分钟揭秘!德扑之心免费透视,... 一分钟揭秘!德扑之心免费透视,wepoker真的有挂教程(果然是真的有开挂)AI 是一款可以让一直输...
重大通报!德扑圈有透视吗,德普... 您好:德扑圈有透视吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
一分钟揭秘!德普之星有辅助软件... 德普之星有辅助软件吗AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据...
热点推荐!wepoker辅助真... 『标题:当前标题』主打赛后复盘的 AI 游戏攻略黑科技走红,对局总结能力开挂。上传对局回放或者战绩截...
详细教程!德普之星辅助器怎么用... 本地部署 AI 黑科技工具迎来新版本,不用上传文件到云端就能完成德普之星辅助器怎么用解析、 AI 处...