BN LN

1. BN的优势总结

  • 通过解决ICS的问题,使得每一层神经网络的输入分布稳定,在这个基础上可以使用较大的学习率,加速了模型的训练速度
  • 起到一定的正则作用,进而减少了dropout的使用。当我们通过BN规整数据的分布以后,就可以尽量避免一些极端值造成的overfitting的问题
  • 使得数据不落入饱和性激活函数(如sigmoid,tanh等)饱和区间,避免梯度消失的问题

2. LN优势总结

在Transformer模型中,Layer Normalization(LN,层归一化)是一种常用的归一化技术。Pre - LN(Pre - Layer Normalization)是对传统LN使用方式的一种改进,以下是关于Pre - LN的介绍及其原因: ### 1. Pre - LN的定义 在传统的Transformer架构中,Layer Normalization通常应用在残差连接之后,即"先计算注意力机制和前馈神经网络,再进行层归一化",其计算流程可以表示为: [ \begin{align*} \text{Attention Output}&=\text{Attention}(\text{Input})\ \text{FFN Output}&=\text{FFN}(\text{Attention Output})\ \text{Output}&=\text{LN}(\text{Attention Output}+\text{Input}+\text{FFN Output}) \end{align*} ] 而Pre - LN则是将Layer Normalization应用在每个子层(注意力子层和前馈神经网络子层)之前,计算流程变为: [ \begin{align*} \text{LN - Input - Attention}&=\text{LN}(\text{Input})\ \text{Attention Output}&=\text{Attention}(\text{LN - Input - Attention})\ \text{LN - Input - FFN}&=\text{LN}(\text{Input}+\text{Attention Output})\ \text{Output}&=\text{FFN}(\text{LN - Input - FFN}) \end{align*} ] ### 2. 使用Pre - LN的原因

  • 在learning rate schedular上,Pre-LN不需要采用warm-up策略,而Post-LN必须要使用warm-up策略才可以在数据集上取得较好的Loss和BLEU结果。
  • 在收敛速度上,由于Pre-LN不采用warm-up,其一开始的learning rate较Post-LN更高,因此它的收敛速度更快。
  • 在超参调整上,warm-up策略带来了两个需要调整的参数: (最大学习率)和 (warmup过程的总步数)。这两个参数的调整将会影响到模型最终的效果。而由于transformer模型的训练代价是昂贵的,因此多引入超参,也给模型训练带来了一定难度。
  • 缓解梯度消失问题:在传统的Transformer中,随着网络层数的增加,深层网络的梯度在反向传播过程中容易逐渐变小,导致模型难以训练。Pre - LN使得每层的输入都被归一化到相近的分布,使得梯度在反向传播时更加稳定,避免了梯度消失, 从而使得模型能够训练更深的网络结构。
  • 加快训练收敛速度:归一化后的输入数据能让神经网络中的参数更容易学习,因为数据分布的稳定性减少了参数更新时的波动,使得模型能够更快地找到最优解。实验表明,使用Pre - LN的Transformer模型在训练过程中收敛速度更快, 可以减少训练所需的时间和计算资源。
  • 增强模型的泛化能力:Pre - LN使得模型在训练过程中更加稳定,不容易出现过拟合现象。因为它对输入数据的分布进行了约束,使得模型在不同的训练样本上表现更加一致,从而提高了模型在未见数据上的泛化能力。
  • 降低训练过程中的不稳定性:传统的Transformer架构中,当输入数据的规模较大或者变化较剧烈时,经过多个子层的计算后,可能会导致数值不稳定,比如某些层的输出值过大或过小。Pre - LN通过在每个子层前对输入进行归一化,有效降低了这种不稳定性,让模型训练过程更加平稳。 总的来说,Pre - LN通过改变Layer Normalization的应用位置,在训练效率、模型稳定性和泛化能力等方面对Transformer模型进行了优化。
相关推荐
生命不息战斗不止(王子晗)1 天前
2026面试大纲 - java数据结构与集合专题
java·数据结构·面试
南风知我意9571 天前
【前端面试4】框架以及TS
前端·面试·职场和发展
Warren981 天前
一次文件上传异常的踩坑、定位与修复复盘(Spring Boot + 接口测试)
java·开发语言·spring boot·笔记·后端·python·面试
indexsunny1 天前
互联网大厂Java面试实录:Spring Boot微服务与Kafka消息队列实战解析
java·spring boot·微服务·面试·kafka·电商·技术解析
野犬寒鸦1 天前
从零起步学习并发编程 || 第四章:synchronized底层源码级讲解及项目实战应用案例
java·服务器·开发语言·jvm·后端·学习·面试
编程彩机2 天前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
岁岁种桃花儿2 天前
SpringCloud超高质量面试高频题300道题
spring·spring cloud·面试
努力学算法的蒟蒻2 天前
day75(2.3)——leetcode面试经典150
面试·职场和发展
南风知我意9572 天前
【前端面试3】初中级难度
前端·javascript·面试
华清远见成都中心2 天前
GPIO(通用输入输出)面试中高频问题
单片机·面试·职场和发展