Transformer学习笔记三:为什么Transformer要用LayerNorm/Batch Normalization & Layer Normalization

参考:https://zhuanlan.zhihu.com/p/456863215以及私有资料

一般来说,BatchNorm适用于CV,LayerNorm适用于NLP。关键是要看需要保留什么信息,举个例子

NLP中,[‘搜推yyds’,LLM大法好’,‘CV永不为奴’]三句话做normalization,

其中,样本数量(N)为3,而每个字看作图像里的一个通道,

假设一个词是一个token,BatchNorm效果是[‘搜’,L’,‘C’],[‘推’,‘L’,‘V’]…做归一化;LayerNorm是三句话分别各自归一化;

前者归一到同一分布后变无法保留一个句子里的分布信息了(比如·搜推yyds用Batch Norm后就变了),而LayerNorm可以成功保留上下文分布信息

CV中BatchNorm是对图像的不同channel(比如对N个样本的R通道)各自进行归一化(如下图,batch Norm,本身CV任务不需要channel之间的信息交互,归一化后仅保留各channel的分布信息作后续判断即可

![image-20250710231823710](/Users/lthero/Library/Application Support/typora-user-images/image-20250710231823710.png)

而NLP中的layerNorm是对每个样本的所有通道做归一化