“ 真正牛逼的,不是那些可以随口拿来夸耀的事迹,而是那些在困境中依然保持微笑的凡人。”
说一说BN层吧
最近狂补基础,还是学得不够~
加油,
送给所有心存坚持的人。
一、BN提出的背景意义
《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》,Batch Normalization算法目前已经被大量的应用,最新的文献算法很多都会引用这个算法,进行网络训练,可见其强大之处。
随机梯度下降法是训练深度网络的首选。尽管随机梯度下降法对于训练深度网络简单高效,但是需要我们人为的去选择参数,比如学习速率、初始化参数、权重衰减系数、Drop out比例,等等。这些参数的选择对训练结果至关重要,以至于我们很多时间都浪费在这些的调参上。BN算法(Batch Normalization)其好处如下:
- 可以选择比较大的初始学习率,极大的提高训练速度。Batch Gradient Descent使用多个梯度的均值来更新权重,用相对少的训练次数遍历完整个训练集,也正是因为平均了多个样本的梯度,许多样本对神经网络的贡献就被其他样本平均掉了,相当于在每个epoch中,训练集的样本数被缩小了。batch中每个样本的差异性越大,这种弊端就越严重。BN首先是把所有的samples的统计分