美文网首页
batch_normalization

batch_normalization

作者: 你好宝宝 | 来源:发表于2019-12-13 18:47 被阅读0次

本质思想
BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

THAT’S IT。其实一句话就是:对于每个隐层神经元,把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的比较标准的正态分布,使得非线性变换函数的输入值落入对输入比较敏感的区域,以此避免梯度消失问题。因为梯度一直都能保持比较大的状态,所以很明显对神经网络的参数调整效率比较高,就是变动大,就是说向损失函数最优值迈动的步子大,也就是说收敛地快。BN说到底就是这么个机制,方法很简单,道理很深刻。

相关文章

  • batch_normalization

    本质思想BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)...

  • batch_normalization

    normalization 批标准化(batch normalization)理解tensorflow中batch...

  • 网易杭州*秋招提前批面试

    一面GG反思挂的原因: 项目做得都不够深 基础知识不牢固:交叉熵、batch_normalization、loss...

  • tl.layers.BatchNormLayer使用

    首先应注意batch_normalization的位置,一般是在conv之后,激活函数之前。 那么如何在自己的网络...

  • Batch normalization理解

    在学习源码的过程中,发现在搭建网络架构的时候,经常会用到bn算法(即batch_normalization,...

网友评论

      本文标题:batch_normalization

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