关于人工智能:神经网络常见的归一化层Normalization-Layer总结

9次阅读

共计 2815 个字符,预计需要花费 8 分钟才能阅读完成。

Batch Normalization

假如输出特色为 \(X \in R^{B \times C \times H \times W}\),其中 \(B\) 示意 batch size,\(C\) 示意通道数,\(H\) 和 \(W\) 别离示意高和宽。批归一化的计算过程如下:

  1. 对每个通道,计算该通道上所有样本的均值 \(\mu\) 和方差 \(\sigma^2\):

    $$
    \mu_c = \frac{1}{B \times H \times W} \sum_{i=1}^{B} \sum_{j=1}^{H} \sum_{k=1}^{W} X_{i,c,j,k}
    $$

    $$
    \sigma_c^2 = \frac{1}{B \times H \times W} \sum_{i=1}^{B} \sum_{j=1}^{H} \sum_{k=1}^{W} (X_{i,c,j,k} – \mu_c)^2
    $$

  2. 对每个通道进行标准化,失去标准化后的输入 \(\hat{X}\):

    $$
    \hat{X}_{i,c,j,k} = \frac{X_{i,c,j,k} – \mu_c}{\sqrt{\sigma_c^2 + \epsilon}}
    $$

其中 \(\epsilon\) 是一个很小的常数,防止分母为 0。

  1. 对标准化后的输入进行缩放和平移:

    $$
    Y_{i,c,j,k} = \gamma_c \hat{X}_{i,c,j,k} + \beta_c
    $$

其中 \(\gamma_c\) 和 \(\beta_c\) 别离是可学习的缩放因子和偏移量,用于保留网络中原有的表达能力。

通过批归一化层,能够让每个样本特色在通道维度上具备雷同的均值和方差,从而进步模型的泛化能力。另外,批归一化还能够缩小梯度隐没或梯度爆炸等问题,在训练深度神经网络时比拟罕用。

Layer Normalization

和 Batch Normalization(BN)不同,它归一化的是每个样本在通道维度上的特征值。具体计算过程如下:
好的,上面是转换后的文本:

设输出张量 \(x \) 的形态为 \(B\times C\times H\times W\),其中 \(B\) 示意 batch_size,\(C\) 示意通道数,\(H\) 和 \(W\) 示意高度和宽度。

  1. 计算平均值和方差

首先,对于每个样本独自计算其在通道维度上的特征值的平均值和方差。令 \(x_{b,c,h,w}\) 示意第 \(b\) 个样本、第 \(c\) 个通道、第 \(h\) 行、第 \(w\) 列的特征值,则有:

$$\mu_c = \frac{1}{HW}\sum_{b=1}^{B}\sum_{h=1}^{H}\sum_{w=1}^{W} x_{b,c,h,w}$$
$$\sigma_c^2 = \frac{1}{HW}\sum_{b=1}^{B}\sum_{h=1}^{H}\sum_{w=1}^{W}(x_{b,c,h,w}-\mu_c)^2+\epsilon$$

其中 \(\mu_c\) 示意第 \(c\) 个通道的平均值,\(\sigma_c^2\) 示意第 \(c\) 个通道的方差,\(\epsilon\) 是一个极小的负数,用于避免除 0 谬误。

  1. 归一化

而后,对于每个样本的第 \(c\) 个通道上的特征值 \(x_{b,c,h,w}\),进行如下计算:

$$\hat{x}_{b,c,h,w} = \frac{x_{b,c,h,w}-\mu_c}{\sqrt{\sigma_c^2}}$$

其中 \(\hat{x}_{b,c,h,w}\) 示意归一化后的特征值。

  1. 可学习缩放和平移

最初,为了保留网络的表达能力,在归一化后的特征值上退出可学习的缩放和偏移参数,使得网络能够自在地调整每个通道的示意范畴。令 \(\gamma_c\) 和 \(\beta_c\) 别离示意第 \(c\) 个通道的缩放因子和偏移量,则有:

$$y_{b,c,h,w} = \gamma_c \hat{x}_{b,c,h,w} + \beta_c$$

其中 \(y_{b,c,h,w}\) 示意通过 LN 归一化后再退出缩放和偏移因子的后果。

以上即是 Layer Normalization 的具体计算过程。须要留神的是,与 BN 相比,LN 对 batch_size 的大小不敏感,实用于不同大小的 batch_size。此外,因为 LN 在通道维度上进行归一化,因而对卷积层和全连贯层都实用。但与 BN 相比,LN 的计算开销较大,因而在理论利用中须要衡量计算效率和模型表达能力的均衡。

Instance Normalization(IN)

它归一化的是每个样本在通道和空间维度上的特征值。具体计算过程如下:

设输出张量 \(x\) 的形态为 \(B\times C\times H\times W\),其中 \(B\) 示意 batch_size,\(C\) 示意通道数,\(H\) 和 \(W\) 示意高度和宽度。

  1. 计算平均值和方差

对于每个样本独自计算其在通道和空间维度上的特征值的平均值和方差。令 \(x_{b,c,h,w}\) 示意第 \(b\) 个样本、第 \(c\) 个通道、第 \(h\) 行、第 \(w\) 列的特征值,则有:

$$\mu_{b,c} = \frac{1}{HW}\sum_{h=1}^{H}\sum_{w=1}^{W} x_{b,c,h,w}$$
$$\sigma_{b,c}^2 = \frac{1}{HW}\sum_{h=1}^{H}\sum_{w=1}^{W}(x_{b,c,h,w}-\mu_{b,c})^2+\epsilon$$

其中 \(\mu_{b,c} \) 示意第 \(b\) 个样本、第 \(c\) 个通道上的平均值,\(\sigma_{b,c}^2 \) 示意第 \(b\) 个样本、第 \(c\) 个通道上的方差,\(\epsilon \) 是一个极小的负数,用于避免除 0 谬误。

  1. 归一化

而后,对于每个样本的第 \(b\) 个样本、第 \(c\) 个通道、第 \(h\) 行、第 \(w\) 列的特征值 \(x_{b,c,h,w}\),进行如下计算:

$$\hat{x}_{b,c,h,w} = \frac{x_{b,c,h,w}-\mu_{b,c}}{\sqrt{\sigma_{b,c}^2}}$$

其中 \(\hat{x}_{b,c,h,w}\) 示意归一化后的特征值。

  1. 可学习缩放和平移

最初,为了保留网络的表达能力,在归一化后的特征值上退出可学习的缩放和偏移参数,使得网络能够自在地调整每个通道和空间地位的示意范畴。令 \(\gamma_c\) 和 \(\beta_c\) 别离示意第 \(c\) 个通道的缩放因子和偏移量,则有:

$$y_{b,c,h,w} = \gamma_c \hat{x}_{b,c,h,w} + \beta_c$$

其中 \(y_{b,c,h,w}\) 示意通过 IN 归一化后再退出缩放和偏移因子的后果。

以上即是 Instance Normalization 的具体计算过程。须要留神的是,与 BN 和 LN 相比,IN 对 batch_size 大小不敏感,且更加实用于图像生成等工作,因为它思考了每个样本在空间维度上的特征值。

本文参加了 SegmentFault 思否写作挑战赛,欢送正在浏览的你也退出。

正文完
 0