查看原文
其他

​为什么Pre Norm的效果不如Post Norm?

苏剑林 PaperWeekly 2022-07-15


©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 追一科技
研究方向 | NLP、神经网络


Pre Norm 与 Post Norm 之间的对比是一个“老生常谈”的话题了,本博客就多次讨论过这个问题,比如文章《浅谈 Transformer 的初始化、参数化与标准化》[1]《模型优化漫谈:BERT 的初始标准差为什么是 0.02?》等。目前比较明确的结论是:同一设置之下,Pre Norm 结构往往更容易训练,但最终效果通常不如 Post Norm。Pre Norm 更容易训练好理解,因为它的恒等路径更突出,但为什么它效果反而没那么好呢?

笔者之前也一直没有好的答案,直到前些时间在知乎上看到 @唐翔昊 的一个回复后才“恍然大悟”,原来这个问题竟然有一个非常直观的理解!本文让我们一起来学习一下。


基础回顾

Pre Norm 和 Post Norm 的式子分别如下:



在 Transformer 中,这里的 主要指 Layer Normalization,但在一般的模型中,它也可以是 Batch Normalization、Instance Normalization 等,相关结论本质上是通用的。

在笔者找到的资料中,显示 Post Norm 优于 Pre Norm 的工作有两篇,一篇是《Understanding the Difficulty of Training Transformers》[2],一篇是《RealFormer: Transformer Likes Residual Attention》[3]。另外,笔者自己也做过对比实验,显示 Post Norm 的结构迁移性能更加好,也就是说在  Pretraining 中,Pre Norm 和 Post Norm 都能做到大致相同的结果,但是 Post Norm 的 Finetune 效果明显更好。

可能读者会反问《On Layer Normalization in the Transformer Architecture》[4] 不是显示 Pre Norm 要好于 Post Norm 吗?这是不是矛盾了?其实这篇文章比较的是在完全相同的训练设置下 Pre Norm 的效果要优于 Post Norm,这只能显示出 Pre Norm 更容易训练,因为 Post Norm 要达到自己的最优效果,不能用跟 Pre Norm 一样的训练配置(比如 Pre Norm 可以不加 Warmup 但 Post Norm 通常要加),所以结论并不矛盾。



直观理解

为什么 Pre Norm 的效果不如 Post Norm?知乎上 @唐翔昊 给出的答案是:Pre Norm 的深度有“水分”!也就是说,一个 层的 Pre Norm 模型,其实际等效层数不如 层的 Post Norm 模型,而层数少了导致效果变差了。

具体怎么理解呢?很简单,对于 Pre Norm 模型我们迭代得到:



其中每一项都是同一量级的,那么有 ,也就是说第 层跟第 层的差别就相当于 的差别,当 较大时,两者的相对差别是很小的,因此



这个意思是说,当 比较大时, 相差较小,所以 很接近,因此原本一个 层的模型与 层和,近似等效于一个更宽的 层模型,所以在 Pre Norm 中多层叠加的结果更多是增加宽度而不是深度,层数越多,这个层就越“虚”。

说白了,Pre Norm 结构无形地增加了模型的宽度而降低了模型的深度,而我们知道深度通常比宽度更重要,所以是无形之中的降低深度导致最终效果变差了。而 Post Norm 刚刚相反,在《浅谈 Transformer 的初始化、参数化与标准化》[1] 中我们就分析过,它每 Norm 一次就削弱一次恒等分支的权重,所以 Post Norm 反而是更突出残差分支的,因此 Post Norm 中的层数更加“足秤”,一旦训练好之后效果更优。



相关工作

前段时间号称能训练 1000 层 Transformer 的 DeepNet 想必不少读者都听说过,在其论文《DeepNet: Scaling Transformers to 1,000 Layers》[5] 中对 Pre Norm 的描述是:

However, the gradients of Pre-LN at bottom layers tend to be larger than at top layers, leading to a degradation in performance compared with Post-LN.


不少读者当时可能并不理解这段话的逻辑关系,但看了前一节内容的解释后,想必会有新的理解。

简单来说,所谓“the gradients of Pre-LN at bottom layers tend to be larger than at top layers”,就是指 Pre Norm 结构会过度倾向于恒等分支(bottom layers),从而使得 Pre Norm 倾向于退化(degradation)为一个“浅而宽”的模型,最终不如同一深度的 Post Norm。这跟前面的直观理解本质上是一致的。


文章小结


本文主要分享了“为什么 Pre Norm 的效果不如 Post Norm”的一个直观理解。


参考文献

[1] https://kexue.fm/archives/8620
[2] https://arxiv.org/abs/2004.08249
[3] https://arxiv.org/abs/2012.11747
[4] https://arxiv.org/abs/2002.04745
[5] https://arxiv.org/abs/2203.00555



更多阅读




#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编




🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



·

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存