美文网首页深度学习
CNN的batch normalization意义

CNN的batch normalization意义

作者: 还有下文 | 来源:发表于2019-05-02 11:30 被阅读94次

    batch normalization

    begin:在神经网络训练开始前,都对输入数据做一个归一化处理;
    batch normalization指的是:
    在网络的每一层输入的时候,又插入一个归一化层,也就是做一个归一化处理,然后再进入网络的下一层。
    归一化层:一个可学习、有参数的网络层。

    近似白化预处理.png
    变换重构.png

    前向计算过程:


    image.png

    通过标准化操作,可以将隐层神经元激活输入 从非标准的正态分布 拉回到均值为0,方差为1的标准正态分布,这样可以保证输入值落在激活函数的激活区,避免梯度饱和,从而加速收敛。

    同时,为了避免线性表达能力的丢失,在标准化操作之后,增加了一个操作,用于调整网络的线性能力和非线性能力的平衡 ==> y=γ*X’+β,每个神经元添加了γ和β参数,通过对输入进行平移和放缩,在数据分布上就相当于对标准正态分布进行平移和拉升/放缩变换,这样导致在送入激活函数后,其对应的输出从激活函数的激活区间向非激活区间(梯度饱和区)移动了一些,用于设置网络的线性能力和非线性能力的平衡,使得网络既可以享受非线性的较强表达能力的好处,又避免太靠近非线性区域两头使得网络收敛速度太慢。

    作用

    解决了内部协方差偏移(internal covariate shift)问题:
    在深层网络训练过程中,由于网络中参数变化引起内部节点数据分布发生变化的这一过程,使得网络的训练过程容易陷入梯度饱和区,减缓网络收敛速度;后层网络需要不断调整来适应数据分布的变化,学习速率被大大降低。

    参考

    https://blog.csdn.net/hjimce/article/details/50866313
    https://blog.csdn.net/u014038273/article/details/79951670

    相关文章

      网友评论

        本文标题:CNN的batch normalization意义

        本文链接:https://www.haomeiwen.com/subject/qhqnnqtx.html