学习参考:
【精读AI论文】YOLO V2目标检测算法_哔哩哔哩_bilibili
如何解决sigmoid函数饱和区问题_sigmoid函数趋于饱和怎么办-CSDN博客
先理解函数饱和区的问题,函数饱和区就是其函数斜率很缓慢接近于0的情况,例如sigmoid函数两边情况,左图为其图像,右图为其导数图像
这种情况训练速度会放缓慢造成梯度消失的现象,使用BN进行归一化处理就可以有效避免梯度消失情况,让其训练尽可能取得效果,BN作用就是使得数据聚集在0~1之间,将数据压缩到非饱和区,防止梯度消失,加快训练速度。
在训练阶段:
以训练阶段中的一个神经元为例子,BN方法就是取得前一层数据输入这个神经元中得到的结果,求取均值,标准差,再对每个值减去均值除以标准差得到一个0~1之间的数字,就是其归一化数值。再将归一化的数值乘以γ加上β,每个神经元都训练一组γ和β,这个γ和β的作用后续通过线性关系,弥补压缩数据与原始数据之间的数据丢失。
测试阶段:
均值是训练过程中每一次batch的均值的期望:。
方差是取每一次batch的方差做一次无偏估计:
无偏估计参考学习:
最后的γ与β就是训练阶段训练的,直接使用,在预测阶段作为线性关系,弥补丢失信息。