深度学习之经典神经网络框架详解(五):Batch Normalization(BN层)网络详解

论文

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

简述:

由于训练过程中各层输入的分布随前一层参数的变化而变化,会导致训练速度的下降(低学习率和注意参数初始化)且很难去训练模型。为此作者提出Batch Normalization,解决在训练过程中,中间层数据分布发生改变的情况。将规范化(normalization)作为模型体系结构的一部分,对每个训练小批执行规范化,即在网络的每一层输入的时候,先做一个归一化处理,再进入网络的下一层。该方法与当时最高水平的model相比,达到相同精度的效果减少了14倍的速度,提高了训练的速度和精度。

背景or动机:

神经网络学习过程本质是为了学习数据分布,一旦训练数据与测试数据的分布不同,则网络的泛化能力也大大降低;其次,一旦每批训练数据的分布各不相同(batch梯度下降),那么网络就要在每次迭代都去学习适应不同的分布(新的数据分布),这样将会大大降低网络的训练速度。
神经网络训练,参数就会发生变化,除了输入层,后面网络每一层的输入数据分布是一直在发生变化的,因为在训练的时候,前面层训练参数的更新将导致后面层输入数据分布的变化。作者将这种数据分布的改变称之为:“Internal Covariate Shift”。

问题or相关工作:

尽管随机梯度下降法(SGD)对于训练深度网络是简单且有效的,但需要人为的设定(浪费时间调参)一些如学习率、权重衰减系数,参数初始化、Dropout比例等,且每个层的输入都受到前面所有层的参数的影响,导致层需要不断地适应新的分布,即深度网络内部节点在训练过程中的分布变化(Internal Covariate Shift),如果训练过程中,训练数据的分布一直在发生变化,这将减慢训练速度,且网络越深越明显。
作者提出Batch Normalization,具体提出的方案及解决的问题如下:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值