建设银行信用卡网站登录,seo网络推广员招聘,微信手机网站,wordpress本地环境404深度学习 | BN层原理浅谈 文章目录深度学习 | BN层原理浅谈一. 背景二. BN层作用三. 计算原理四. 注意事项为什么BN层一般用在线性层和卷积层的后面#xff0c;而不是放在激活函数后为什么BN能抑制过拟合(有争议)一. 背景 神经网络在训练时#xff0c;由于内存限制#xff0…深度学习 | BN层原理浅谈 文章目录深度学习 | BN层原理浅谈一. 背景二. BN层作用三. 计算原理四. 注意事项为什么BN层一般用在线性层和卷积层的后面而不是放在激活函数后为什么BN能抑制过拟合(有争议)一. 背景 神经网络在训练时由于内存限制各框架都会设置batch和epoch的概念来进行训练。 每个batch内采样的训练数据的分布各不相同那么网络就要在每次迭代都去学习以适应不同的分布。对于深度学习这种包含很多隐层的网络结构各隐层学到的权重等参数都在不停的变化导致隐层的输入分布老是变来变去产生了所谓的“Internal Covariate Shift”内部协变量偏移现象 使用更好的参数初始化或者使用较低的分辨率能够一定程度上缓和这个问题但是会大大降低网络的训练速度为了保证隐层分布稳定及训练速度Batch Nomalization算法随之而来
二. BN层作用
1将每一隐层参数都归一化至均值0、方差为1输出至下一隐层
2加速网络收敛速度可以使用较大的学习率来训练网络
3改善梯度弥散
4提高网络的泛化能力
5BN层一般用在线性层和卷积层后面而不是放在非线性单元后
三. 计算原理 BN层对每一个batch内样本的features中计算其均值μ\muμ和方差σ然后对每一个x减去均值除以标准差最后利用超参数γ\gammaγ和β\betaβ进行仿射变换即可得到最终的BN输出y具体过程如下 1.计算样本均值。 2.计算样本方差。 3.样本数据标准化处理。 4.进行平移和缩放处理。引入了γ\gammaγ和β\betaβ两个参数。来训练γ和β两个参数。引入了这个可学习重构参数γ\gammaγ和β\betaβ让我们的网络可以学习恢复出原始网络所要学习的特征分布。
四. 注意事项
为什么BN层一般用在线性层和卷积层的后面而不是放在激活函数后
因为激活函数一般为非线性非线性单元的输出分布形状会在训练过程中发生变化归一化无法消除它的方差偏移相反的全连接和卷积层的输出一般是一个对称的非稀疏的一个分布更加类似于高斯分布对他们进行归一化会产生更加稳定的分布。例如Relu激活函数如果输入的数据是一个高斯分布经过Relu输出的数据小于0的被抑制就不是高斯分布了。
为什么BN能抑制过拟合(有争议)
BN每个batch采样的数据都不一样但是每次的batch的数据都会被局部均值和方差作用可以认为是引入了噪声增强了过拟合能力。