深度学习中的Normalization

本文深入探讨了Normalization在深度学习中的重要性,解释了其基本思想,即通过减去均值和除以标准差来使数据服从特定分布,同时介绍了BatchNormalization、LayerNormalization等常用Normalization方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、为什么要 Normalization


首先,在机器学习中,一般希望输入的数据是独立同分布的,独立即特征之间不相关,同分布即特征服从同一个分布。

然后,深度神经网络涉及到很多层的叠加,而每一层的参数更新会导致上层的输入数据分布发生变化,通过层层叠加,高层的输入分布变化会非常剧烈,这就使得高层需要不断去重新适应底层的参数更新。

所以,如果输入数据不服从独立同分布,那么会出现以下几个问题:

  • 上层参数需要不断适应新的输入数据分布,降低学习速度。
  • 每层的更新都会影响到其它层。

Normalization 就是希望让数据服从某种分布。

2、Normalization 的基本思想

现在有一组输入向量:
X = { x 1 , x 2 , ⋯   , x d } X = \{x_1, x_2, \cdots , x_d\} X={x1,x2,,xd}
然后,我们将它变换,使其服从状态分布:
X n o r m = x − μ σ X_{norm} = \frac{x-\mu}{\sigma} Xnorm=σxμ
其中, μ \mu μ 为原始数据样本的均值, σ \sigma σ 为方差。

至此,我们得到了正太分布,不过,实际问题中,我们并不希望将数据都简单粗暴的调整成这样,我们想让它通过自己学习服从某种分布,所以,一般我们会再进一步得变换:
X f i n a l = g ∗ X n o r m + b X_{final} = g*X_{norm} + b Xfinal=gXnorm+b
这样,得到的数据服从均值为 b b b,方差为 g 2 g^2 g2 的分布,其中 g g g b b b 是通过模型学出来的。

3、常用的Normalization

常用的Normalization有:Batch Normalization (BN)、Layer Normalization (LN)、Instance Normalization (IN)、Group Normalization (GN),他们从公式上看其实都是差不多,都是满足上述的基本思想,也就是**减去均值,除以标准差,再进行线性映射,他们实质的区别对施加的维度不同,**这里就不展开讲了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值