BatchNorm VS LayerNorm

文摘   科技   2024-10-17 07:02   江苏  
点击蓝字
 
关注我们










01


为什么需要Normalization ?



Normalization本质上是将非标准数据统一为指定格式的过程。

一方面,随着神经网络深度的增加,每一层的特征分布会逐渐接近激活函数输出范围的上下限,导致激活函数饱和。这样下去会导致梯度消失。归一化可以将特征值的分布重新调整为标准正态分布,确保特征值落在激活函数对输入更敏感的范围内,从而避免梯度消失,加快网络的收敛速度。
另一方面,在机器学习领域,有一个重要的假设叫做独立同分布,它假设训练数据和测试数据遵循相同的数据分布。这一假设从根本上保证了在训练数据上训练出来的模型能在测试集上表现良好。对训练数据和测试数据进行归一化处理可以避免不同数据分布对模型的影响。





02


BatchNorm 和 LayerNorm的区别


BatchNorm 对一批样本中的每个特征进行归一化处理,而 LayerNorm 则对每个样本中的所有特征进行归一化处理。


假设我们有一个二维输入矩阵,其中行代表批次(也就是样本数目),列代表样本特征。在这种情况下,BatchNorm 在垂直方向上进行归一化处理,而 LayerNorm 则在水平方向上进行归一化处理。图 1 展示了这一概念:






03


应用领域


在计算机视觉领域,特征取决于不同样本之间的统计参数,而 BatchNorm 更为有效。这是因为它消除了不同特征之间的大小关系,同时保留了不同样本之间的大小关系。

在 NLP 领域,LayerNorm 更为合适。这是因为单个样本的不同特征实际上是单词随时间的变化,而且样本内的特征关系非常密切。







点击上方小卡片关注我




添加个人微信,进专属粉丝群!

AI算法之道
一个专注于深度学习、计算机视觉和自动驾驶感知算法的公众号,涵盖视觉CV、神经网络、模式识别等方面,包括相应的硬件和软件配置,以及开源项目等。
 最新文章