深度学习之基础模型-Inception-V2(BN)

深度学习中的批量归一化(BN)旨在解决内部协变量偏移问题,加速训练并增强模型稳定性。BN通过对每一层的数据输入进行归一化,使数据分布固定,从而简化网络训练。BN带来的好处包括更快的训练速度、减弱网络参数的相关性、允许使用更大学习率,甚至可以替代dropout。BN还使sigmoid和tanh等饱和激活函数在深层网络中更有效,通过尺度和偏移变换保持模型的非线性表达能力。
摘要由CSDN通过智能技术生成

Training Deep Neural Networks is complicated by the fact that the distribution os each layer’s inputs changes during training, as the parameters of the previous layers change

作者指出,深度网络的一直都非常困难,主要是由于在训练的过程中,每一层的输入数据的分布发生了变化。在训练的时候,网络结构需要不断的去适应由于输入数据分布带来的变化。

随着网络的深度加深,训练会越来越困难,改善方法

  • 激活函数:sigmoid,tanh函数会存在左右饱和问题,从而Hiton推出了ReLU函数可以有效的解决反向传播过程中的梯度消失
  • Batch Normalization: 归一化(本文内容)
  • Residual Network:通过增加一个skip connection(Identity mapping),使得底层的信息和高层的信息能够建立起更加直接的联系

出发点

论文首先指出了mini-batch SGD的好处:

- batch越大,效果越好
- m个样本并行计算,要比m个样本单独计算,效率要高很多

然后指出了SGD的缺点:

- 模型的超参数,非常难调优:需要对初始值和学习率非常细致的tune,难度比较大

进一步分析,得出造成调优困难的原因:

  • 每层结构的数据输入,都会受到前面所有层的参数的影响,从而会导致数据的分布总是发生变化(称为’Internal Covariate shift’)。很小的参数变换,都会对后面的数据输入造成很大的扰动,层越深,这种扰动越大(类似于混沌)。

Q: 如果数据的分布不发生改变,真的会是的网络的训练变得更简单吗?
A: 首先,考虑机器学习领域中的一个很重要的假设:

  • IID独立同分布假设:如果训练数据与测试数据满足相同的分布,那么通过神经网络训练出来的模型,能够在测试集上同样取得很好的效果。

  • 同样,在训练的过程中,如果每一层的数据输入保持稳定的数据分布,那么对于网络的训练肯定是有帮助的。

  • 在机器学习中,常用的数据处理的方法“白化操作”(whiten),例如PCA降维等方法,可以有效的提升机器学习的效果。而“白化操作”本质上,就是对输入数据的分布进行改变,使其变为均值为0,单位方差的正态分布。

  • 从而,作者认为如果对每一层的数据输入,固定其分布,可定能够加快深度模型的训练。

BN思想

在训练的过程中,由于模型的参数不断在变化,导致每一层结构的数据输入的分布都会发生变化(Internal Covariate Shift),作者提出了一种改善该问题的机制(Batch Normalization):

                归一化(固定每一层数据输入的均值和方差)

Q:Batch Normalization带来了哪些好处?
A:

  • 加快训练速度
  • 对网络中信息的流动带来好处,使得网络参数的依赖相关性减弱
  • 可以使用更大的学习率
  • BN相当于正则化,从而可以减弱Dropout的作用,或者去掉dropout操作
  • BN使得使用哪些带有饱和性质的激活函数构建网络,如sigmoid,tanh等

Q:Batch Normalization为什么使得带有饱和性质的激活函数,可以应用到很深的网络结构中?
A: 首先对于正太分布来说:


这里写图片描述

范围 占比
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值