BN的 作用

1、背景:

        卷积神经网络的出现,网络参数量大大减低,使得几十层的深层网络成为可能。然而,在残差网络出现之前,网络的加深使得网络训练变得非常不稳定,甚至出现网络长时间不更新或者不收敛的情形,同时网络对超参数比较敏感,超参数的微量扰动也会导致网络的训练轨迹完全改变。

2、提出

        2015 年,Google 研究人员Sergey Ioffe等提出了一种参数标准化(Normalize)的手段,并基于参数标准化设计了 Batch Nomalization(简称 BatchNorm或 BN)层 。BN层提出后:

        1)使得网络的超参数的设定更加自由,比如更大的学习率,更随意的网络初始化等,同时网络的收敛速度更快,性能也更好。

        2)广泛地应用在各种深度网络模型上,卷积层、BN 层,ReLU 层、池化层一度成为网络模型的标配单元,通过堆叠 Conv-BN-ReLU-Pooling 方式往往可以获得不错的模型性能。

3、原理

        网络层的输入x分布相近,并且分布在较小范围内时(如 0 附近),更有利于函数的迭代优化。那么如何保证输入x的分布相近呢?

        数据标准化可以实现此目的,通过数据标准化操作可以将数据x映射x ^ 

 

 很容易很看出来:上面的公式表示的是正太分布。也就是说,通过上面的公式计算,可以将原本随机分布的输入数据x,转化成按正态分布分布的数据x ^  ,从而使得输入网络的数据分布较近,有利于网络的迭代优化。

4、计算

5、Scale and Shift

        

相关推荐

  1. 记录 | shell脚本开头#!/bin/bash作用

    2024-07-10 10:08:02       60 阅读
  2. Bi-Lstm+crf命名实体识别任务中crf作用

    2024-07-10 10:08:02       50 阅读
  3. js中()作用

    2024-07-10 10:08:02       63 阅读

最近更新

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

    2024-07-10 10:08:02       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:08:02       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:08:02       90 阅读
  4. Python语言-面向对象

    2024-07-10 10:08:02       98 阅读

热门阅读

  1. 【PyTorch单点知识】自动求导机制的原理与实践

    2024-07-10 10:08:02       30 阅读
  2. 大数据平台之Hive Metastore

    2024-07-10 10:08:02       27 阅读
  3. 《框架封装 · Redis 事件监听》

    2024-07-10 10:08:02       28 阅读
  4. Knife4j的原理及应用详解(四)

    2024-07-10 10:08:02       32 阅读
  5. Stable Diffusion 深入浅出,一看就会

    2024-07-10 10:08:02       29 阅读
  6. Oracle 动态编译数据库对象

    2024-07-10 10:08:02       29 阅读
  7. 从“技术驱动”向“应用驱动”

    2024-07-10 10:08:02       35 阅读
  8. HTML(30)——动画

    2024-07-10 10:08:02       28 阅读