[1] internal covariate shift:训练深度神经网络的时候每一层的输入会随着训练发生变化,因为前一层参数的变化会引起这一层输入的分布发生变化,需要很小心设置参数的初始值,否则网络可能训练变慢难以收敛。本文提出了一种Batch Normalization的方式来解决这个问题。
[2] Batch Normalization本质思想:深层神经网络在做非线性变换前的激活输入值随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值是大的负值或正值),这导致后向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因。对于每个隐层神经元,把非线性函数映射后逐渐向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的标准正态分布,使得非线性变换函数的输入值落入对输入比较敏感的区域,以此避免梯度消失问题。
[3] BN为了保证非线性,对变换后的满足均值为0方差为1的x又进行了scale加上shift操作(y=scale*x+shift),每个神经元增加了scale和shift参数,这两个参数给每一层一个自主学习的能力,通过自我学习调整每一层数据的均值和方差。
[4] BN对每一层的输入做了类似标准化处理,能够预防梯度消失和梯度爆炸,加快训练的速度,减少了前面一层参数的变化对后面一层输入值的影响,每一层独立训练,有轻微正则化效果。
[5] 用两个3x3卷积核替代一个5x5卷积核。两个3x3的卷积核可以达到5x5卷积核的效果,而且还减少了参数,增加了非线性。
Inception V2阅读笔记
最新推荐文章于 2024-04-28 04:01:44 发布