tensorflow之BatchNorm层(BN层)

本文探讨了深度学习中BatchNorm的作用,包括如何通过标准化解决Sigmoid函数的梯度弥散问题,以及BN层在训练和测试模式下的工作原理。通过实例展示了BN层如何影响模型收敛速度和稳定性。

一、前言

随着深度学习的发展,为了探索是否层数越多预测越准确,学者们进行了诸多实验,最后发现当层数到达某个值时期预测精度不升反降。而后,BatchNorm出现在一定程度解决了这个问题。

在使用Sigmoid函数后,其在x∈[-2,2]的区间的导数在[0.1,0.25]区间,这就容易在梯度更新的过程中出现梯度弥散的现象,而在进行BatchNorm后,函数值会分布在0附近,且梯度不至于过小,从而在一定程度上解决了梯度弥散的问题。

如上图,较之未标准化的权值,右图(标准化)收敛更加迅速,且优化路径更加理性。

二、BN层

对每个channel求mean和std,再进行标准化,使其分布在0-1区间。其还有一个缩放因子γ,位移因子β

在训练模式下:

1. 前向传播的mean和std会向真实数据的mean和std靠近

2. 反向传播会对β和γ进行更新

在测试模式下上述参数不变

BN默认:

axix=-1(对channel进行)

center=true >>β参数

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值