理解CNN中的Batch Normalization (补充 知乎博主)

理解CNN中的Batch Normalization - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/403073810

BN层常见有针对1d特征(全连接层后面的)

 举一个简单的例子吧 解释在全连接层(Fully Connected Layer, FC Layer)后加 BN 层时,如何计算均值和方差。

假设有一个全连接层的输出(一个 batch)如下:

X = \begin{bmatrix} x_1^{(1)} x_2^{(1)} x_3^{(1)} \\ x_1^{(2)} x_2^{(2)} x_3^{(2)} \\ x_1^{(3)} x_2^{(3)}x_3^{(3)} \\ x_1^{(4)} x_2^{(4)} x_3^{(4)} \end{bmatrix}X = \begin{bmatrix} x_1^{(1)} & x_2^{(1)} & x_3^{(1)} \\ x_1^{(2)} & x_2^{(2)} & x_3^{(2)} \\ x_1^{(3)} & x_2^{(3)} & x_3^{(3)} \\ x_1^{(4)} & x_2^{(4)} & x_3^{(4)} \end{bmatrix}

这里,有 4 个样本(batch size = 4),每个样本有 3 个特征(feature dim = 3)。

计算均值和方差

对于每一个特征维度(每一列),分别计算均值和方差:

计算均值

计算方差

最后,通过 γ和 β 进行重新缩放和平移。比如,如果 γ1=1 和 β1=0,那么最终的输出就是标准化后的值;如果 γ1 和 β1是其他值,那么输出会相应地进行缩放和平移。

为什么需要可学习参数 γ 和 β?

虽然标准化可以使得特征的分布更加稳定,但对于深层神经网络而言,仅仅依赖标准化可能会限制模型的表达能力。因此,通过引入γ 和 β,我们可以让模型在保持数值稳定的前提下,灵活地学习到特征的最佳尺度和偏移,从而提高整体性能。

通过反向传播算法,BN 层的参数γ 和 β可以逐步优化,使得神经网络在训练过程中不仅能标准化特征,还能通过调整特征的尺度和偏移来更好地拟合数据,从而提高模型的表现。

神经网络中的其他参数(如权重和偏置)一样。以下是具体的学习过程:

 

相关推荐

  1. BatchNorm介绍:卷积神经网络BN

    2024-07-13 05:42:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 05:42:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 05:42:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 05:42:01       62 阅读
  4. Python语言-面向对象

    2024-07-13 05:42:01       72 阅读

热门阅读

  1. vue 组件里面的方法修改外面的数据

    2024-07-13 05:42:01       26 阅读
  2. 使用Trie树高亮关键词

    2024-07-13 05:42:01       26 阅读
  3. qt 的布局

    2024-07-13 05:42:01       29 阅读
  4. 《每天十分钟》-红宝书第4版-函数

    2024-07-13 05:42:01       25 阅读
  5. 【Scrapy】Scrapy 中间件等级设置规则

    2024-07-13 05:42:01       25 阅读
  6. 智能运维提升企业长期安全防御能力

    2024-07-13 05:42:01       24 阅读
  7. Linux上如何安装ffmpeg视频处理软件

    2024-07-13 05:42:01       25 阅读