bn相关问题
白化
目的
1)去除特征之间的相关性 —> 独立;
2)使得所有特征具有相同的均值和方差 —> 同分布。
PCA白化保证了所有特征分布均值为0,方差为1
ZCA白化则保证了所有特征分布均值为0,方差相同;
白化操作,固定了每一层网络输入分布,加速网络训练过程的收敛
Internal Covariate Shift
内容
covariate shift 就是分布不一致假设之下的一个分支问题
它是指源空间和目标空间的条件概率是一致的,但是其边缘概率不同对于神经网络的各层输出,由于它们经过了层内操作作用,其分布显然与各层对应的输入信号分布不同,而且差异会随着网络深度增大而增大
可是它们所能“指示”的样本标记(label)仍然是不变的,这便符合了covariate shift的定义。由于是对层间信号的分析,也即是“internal”的来由
问题
简而言之,每个神经元的输入数据不再是“独立同分布”。
学习速度、饱和区(早停)、影响其他层
解决
- bn框架
- h = f ( g * {(x-μ)/θ} + b)
- 经过这么的变回来再变过去,会不会跟没变一样
- 再变换引入的两个新参数 g 和 b,可以表示旧参数作为输入的同一族函数
- 但是新参数有不同的学习动态。
- 在旧参数中,x的均值取决于下层神经网络的复杂关联;
但在新参数中, 仅由 b 来确定,去除了与下层计算的密切耦合。
- 这样的 Normalization 与标准的白化区别
- 标准白化操作的目的是“独立同分布”
- 变换为均值为 b 、方差为 g^2 的分布,也并不是严格的同分布,只是映射到了一个确定的区间范围而已
- bn框架
BN
分类
- Batch Normalization
- 每一个 mini-batch 的统计量是整体统计量的近似估计,或者说每一个 mini-batch 彼此之间,以及和整体数据,都应该是近似同分布的
- 分布差距较小的 mini-batch 可以看做是为规范化操作和模型训练引入了噪声,可以增加模型的鲁棒性
- 但如果每个 mini-batch的原始分布差别很大,那么不同 mini-batch 的数据将会进行不一样的数据变换,这就增加了模型训练的难度。
- Layer Normalization
- Batch Normalization
优点
- 防止模型梯度爆炸
- 为什么加速收敛
- 梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很
常见的方法有
- min-max标准化(min-max normalization)
- 归一化
- log函数转换
- atan函数转换
- z-score标准化(zero-mena normalization,此方法比较常用)- 模糊量化法
本文作者:
yuqing wang
本文链接: https://satyrswang.github.io/2021/04/05/batchnorm/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://satyrswang.github.io/2021/04/05/batchnorm/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!