当前位置: 首页 > 面试题库 >

BN机制,公式(前向和反向),BN怎么训练,以及作用?

祁彬
2023-03-14
本文向大家介绍BN机制,公式(前向和反向),BN怎么训练,以及作用?相关面试题,主要包含被问及BN机制,公式(前向和反向),BN怎么训练,以及作用?时的应答技巧和注意事项,需要的朋友参考一下

BN不是凭空拍脑袋拍出来的好点子,它是有启发来源的:之前的研究表明如果在图像处理中对输入图像进行白化

所谓白化,就是对输入数据分布变换到0均值,单位方差的正态分布

(Whiten)操作的话,那么神经网络会较快收敛,那么BN作者就开始推论了:图像是深度神经网络的输入层,做白化能加快收敛,那么其实对于深度网络来说,其中某个隐层的神经元是下一层的输入,意思是其实深度神经网络的每一个隐层都是输入层,不过是相对下一层来说而已,那么能不能对每个隐层都做白化呢?这就是启发BN产生的原初想法,而BN也确实就是这么做的,可以理解为对深层神经网络每个隐层神经元的激活值做简化版本的白化操作。

BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoidhtml" target="_blank">函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致后向传播时低层神经网络的梯度消失。

这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

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

就是说经过BN后,目前大部分Activation的值落入非线性函数的线性区内,其对应的导数远离导数饱和区,这样来加速训练收敛过程。

公式:


作用:

BN(Batch Normalization)层的作用 (1)加速收敛,防止梯度消失

(2)控制过拟合,可以少用或不用Dropout和正则

(3)降低网络对初始化权重不敏感

(4)允许使用较大的学习率

在每一层输入的时候,加个BN预处理操作。BN应作用在非线性映射前,即对x=Wu+b做规范化。在BN中,是通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大。可以说是一种更有效的local response normalization方法。

 类似资料:
  • 本文向大家介绍BN的作用?相关面试题,主要包含被问及BN的作用?时的应答技巧和注意事项,需要的朋友参考一下 介绍BN,首先介绍深度学习过程实际上是学习数据的分布,而通过每一层卷积后,由于前一层的参数是每步迭代都会发生更新,因此后面层的数据的分布都会发生变化,那么网络又要花费精力去学习新的数据分布,从而使得学习速度很慢,因此就想将每一层的数据都通过归一化到同一分布上来加快学习,但是如果每一层改变其分

  • 本文向大家介绍BN层相关面试题,主要包含被问及BN层时的应答技巧和注意事项,需要的朋友参考一下 BN原理就是训练时候学习batch样本的均值和标准差,逐batch进行滑动更新,然后根据他们做归一化,结果乘以gamma再加上beta等于输出,gamma和beta就是BN层的待学习参数,等到推断的时候,固定住gamma和beta以及train时候得到的均值和标准差,得到计算结果即可

  • 本文向大家介绍BN的参数有哪些?相关面试题,主要包含被问及BN的参数有哪些?时的应答技巧和注意事项,需要的朋友参考一下  

  • 本文向大家介绍BN层的作用,为什么要在后面加伽马和贝塔,不加可以吗相关面试题,主要包含被问及BN层的作用,为什么要在后面加伽马和贝塔,不加可以吗时的应答技巧和注意事项,需要的朋友参考一下 参考回答: BN层的作用是把一个batch内的所有数据,从不规范的分布拉到正态分布。这样做的好处是使得数据能够分布在激活函数的敏感区域,敏感区域即为梯度较大的区域,因此在反向传播的时候能够较快反馈误差传播。

  • 本文向大家介绍检测20类物体,多少张训练集,怎么训练相关面试题,主要包含被问及检测20类物体,多少张训练集,怎么训练时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 多分类问题,保证各类别的样例比,提取特征,用libsvm等做多分类。

  • 我以这里的代码为例,为神经网络编写了以下反向传播例程。我面临的问题让我感到困惑,并将我的调试技能推向了极限。 我面临的问题相当简单:随着神经网络的训练,它的权重被训练为零,而准确性没有提高。 我已多次尝试修复它,并验证: 训练集正确 一些信息: 训练输入是表示强度的[0,16)值的8x8网格;此网格表示数字数字(转换为列向量) 目标向量是正确数字对应位置为1的输出 原始权重和偏差由高斯分布分配 激