1.首先了解归一化(normalization)、标准化(standardization)和中心化
归一化:把数据变成(0,1)之间的小数,把有量纲表达式变成无量纲表达式。
标准化:把数据按比例缩放,使之落入一个小的空间里。常用的方法是z-score标准化,经过处理后的数据均值为0,标准差为1,处理方法是:x′=x−μσ,其中μ是样本的均值,σ是样本的标准差。
中心化:常用的中心化方法:变量减去它的均值
(注:normalization和standardization 是针对数据而言的,而regularization是在cost function里面加惩罚项,是针对模型而言—https://www.zhihu.com/question/59939602)
参考:
1)https://www.cnblogs.com/zhaokui/p/5112287.html
2)https://blog.csdn.net/mpbchina/article/details/7573519
3)https://blog.csdn.net/qq_36523839/article/details/82919412
2.BN层
随着训练的进行,网络中的参数也随着梯度下降在不停更新,前一层参数的变化导致后一层的输入分布会发生改变,进而后一层的网络需要不停地去适应这些分布变化,使得我们的模型训练变得困难。上述这一现象叫做Internal Covariate Shift(在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化的这一过程被称作Internal Covariate Shift)。
BN就是先进行z-score标准化,但是这样会导致学习到的特征被破坏掉,所以进行变换重构,就是再加两个可学习的参数 。
预测时候可以用整体样本的均值和方差。
参考:
1)https://zhuanlan.zhihu.com/p/34879333
2)https://www.jianshu.com/p/fcc056c1c200
3)https://blog.csdn.net/hjimce/article/details/50866313
4)https://blog.csdn.net/John_Rocker/article/details/86771911
BN
最新推荐文章于 2024-04-11 22:05:34 发布