深度学习中的 BN (BatchNormalization)理解

news/2024/12/29 17:56:31/

CNN 三大算子: CONV + BN +RELU

1、为什么 BN

指导思想:
机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的。
具有统一规格的数据, 能让机器学习更容易学习到数据之中的规律。

具体原因:
随着网络加深,数据经过激活层后趋向两侧,梯度趋于消失,分布在敏感激活区域(中间部分)的数据减少。不利于网络收敛。BN 将数据从新拉回标准正态分布。
在这里插入图片描述

如何 BN

减均值,除方差,乘scale, 加shift
在这里插入图片描述

3、反归一化

归一化有好有坏,如何取舍,最好让网络自己学习决定

反 Normalize : 乘scale, 加shift

反向操作, 将 normalize 后的数据再扩展和平移. 原来这是为了让神经网络学习扩展参数 gamma, 和 平移参数 β。

这样就可以用学习得到的 gamma 和 belt 来抵消一些 没有用的normalization 的操作.

核心思想应该是想找到一个线性和非线性的较好平衡点,既能享受非线性的较强表达能力的好处,又避免太靠非线性区两头使得网络收敛速度太慢

BN 缺陷:
但是需要计算均值与方差,不适合动态网络或者RNN。计算均值方差依赖每批次,因此数据最好足够打乱

4、BatchNorm的推理(Inference)过程

问题:推理只输入一个instance, 对其他 batch 数据无感,如何求 mean 和 var ?
方案:用全局统计量代替 Mini-Batch数据的统计量。全局 mean 和 var 在训练过程通过移动平均法就统计好,保存。
running_mean = momentum * running_mean + (1 - momentum) * x_mean

训练时:
在这里插入图片描述推理时,等价:

在这里插入图片描述
所以BN 层有4个参数,保留了2个固定统计参数 和 两个学习参数,推理时合并成两个参数;只做一次运算,运算速度很快。

BN 运算速度取决节点个数。

5、BN 在 输入 NCHW 时的参数

BN是在channel上进行,且每个channel有独立的scale和shift;比如输入是 n × c × h × w,则mean和var是在每个channel上进行计算,即在 n × h × w 上;同样 γ和 β也是在channel上的可学习的参数。所以,BN共有 2 × c 个参数

5 、 几个问题

BN训练时为什么不用全量训练集的均值和方差呢?

用全量训练集的均值和方差容易过拟合,对于BN,其实就是对每一批数据进行归一化到一个相同的分布,而每一批数据的均值和方差会有一定的差别,而不是用固定的值,这个差别实际上能够增加模型的鲁棒性,也会在一定程度上减少过拟合。


http://www.ppmy.cn/news/437266.html

相关文章

YOLOv5改进系列(10)——替换主干网络之GhostNet

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

【深度学习】——BN层(batch normalization)

目录 一、“Internal Covariate Shift”问题 二、BatchNorm的本质思想 两个参数r和β的意义——精髓所在 三、训练阶段如何做BatchNorm 四、BatchNorm的推理(Inference)过程 五、BatchNorm的好处 一般使用在卷积层后、激活层前 Batch Normalization作为最近一年来DL的重要…

omnipeek关于抓包信道的介绍

bgn代表11b/g/n, an代表11a 11n, n40l是40Mhz带宽11n模式下的向下复用信道, n40h是40Mhz带宽11n模式下的向上复用信道, 一个普通信道是20M带宽,可复用一个信道达到40M带宽, u代表11ac,当设置5G信道为8…

GNN

图形神经网络(GNN)主要用于分子应用,因为分子结构可以用图形结构表示。 GNN的有趣之处在于它可以有效地建模系统中对象之间的关系或交互。 近年来,图神经网络(GNN)在社交网络、知识图、推荐系统甚至生命科学等各个领域得到了越来…

NR paging

微信同步更新欢迎关注同名“modem协议笔记” IMS 是基于PS domain的网络。LTE时代,IMS建网初期,UE虽然注册IMS,但是网络仍然会下发CS domain paging,进而引起CSFB的问题。当时不少有客户提case,询问这个问题是否正常。…

BN算法

Motivation 2015年的论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》阐述了BN算法,这个算法目前已经被大量应用,很多论文都会引用这个算法,进行网络训练,可见其强大之处…

深度学习—BN的理解(一)

0、问题 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经…

BGN加密

Preliminaries 双线性群 和是阶为n的两个有限(乘法)循环群; g是的一个生成元(循环群、生成元:如果,则为循环群,a则为的一个生成元,也称为由a生成的一个群,当一个群由a…