BatchNormalization & LayerNormerlization

BN(BatchNormalization) 与 LN(LayerNormerlization)的主要区别在于数据处理的维度不同,在NLP中,假设输入shape为(batch_size, seq_len,embedding_dim),则BN的处理维度为“seq_len”, LN的处理维度为“embedding_dim”

对于BN,会在输入序列每一个位置上,切片出seq_len 个(batch_size, embedding_dim)形状的张量,然后“以列方向的形式”,计算batch_size维度上每一列的出的均值与方差,然后做减均值除方差操作。可以看出BN是对输入序列的每个位置进行转换,但在NLP中,batch中各输入序列长短不一,对单个位置进行特征规范化丧失了意义。 且BN受batch_size取值大小的影响。在NLP中使用更多的是LN,如BERT使用的就是LN。

NLP中,LN一般是对“embedding_dim”做特征规范化处理,对于输入序列,会切片出batch_size个(seq_len, embedding_dim)形状的张量,然后“以行方向的形式”,计算每一行的均值与方差。可以看出LN是作用在所有特征上的,不受batch_size与输入序列位置的影响。因此LN更适合应用与NLP问题中。
 

参考资料

  1. NLP中 batch normalization与 layer normalization
  2. BatchNorm1D
  3. LayerNorm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值