深度学习笔记(2):3.4-3.7 batch norm(batch normalization)

3.4-3.7小节讲述batch normalization这个方法,包括其思想,使用方法,为什么奏效即测试时作法。3.4 思想:对神经网络每一层标准化(normalizing activations in a network)先前在1.9 标准化输入我们已经讲过标准化输入层是如何提高模型训练速度的,尤其在特征取值差别大时。而batch normalization的思想是希望对每一层节...
摘要由CSDN通过智能技术生成

3.4-3.7小节讲述batch normalization这个方法,包括其思想,使用方法,为什么奏效即测试时作法。

3.4 思想:对神经网络每一层标准化(normalizing activations in a network)

先前在1.9 标准化输入我们已经讲过标准化输入层是如何提高模型训练速度的,尤其在特征取值差别大时。而batch normalization的思想是希望对每一层节点都作标准化处理以提高模型训练速度。这里有两种思想,很多读者在不少文献中讨论过是直接对Z做标准化处理还是对a做标准化处理好,没有定论,老师在这里直接使用了对Z做处理,并默认在使用激活函数之前处理节点。

简单介绍完batch norm的思想,接下来就是应用batch norm,如下图所示:

通常batch norm方法是和mini-batch梯度下降结合在一起使用的。

首先是假设我们已经得到了第L层的节点值Z^{[l]},是一个向量。然后我们对其作标准化处理,如上图所示,m在这里是mini-batch大小,分母的\varepsilon是为了保证分式有意义。做完标准化处理后,Z^{[l]}中每一个节点分布就变为均值为0,方差为1的分布。但实际中,并不一定每一个节点都服从均值为0,方差为1的分布,我们希望他们有所区别,不然也不能充分利用激活函数作用,如上图所示,假设我们使用的激活函数是sigmoid,均值为0,方差为1的分布使数据大多数集中于中间部分,相当于只利用了sigmoid的线性部分函数。

为了使不同节点服从不同分布,batch norm的处理思想是在将节点标准化处理之后,再通过\widetilde{Z}^{(i)}=\gamma Z_{norm}^{(i)}+\beta改变节点的均值和方差,且\gamma\beta和W的调参过程一样。我们知道,若取\gamma =\sqrt{\delta ^{2}+\varepsilon }\beta =\mu就可以将\widetilde{Z}^{(i)}还原为Z_{norm}^{(i)}

3.5 使用方法:在

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值