Batch Normalization 与 Caffe中的 相关layer

时间:2021-09-08 13:07:37

在机器学习领域,通常假设训练数据与测试数据是同分布的,BatchNorm的作用就是深度神经网络训练过程中,

使得每层神经网络的输入保持同分布。

原因:随着深度神经网络层数的增加,训练越来越困难,收敛越来越慢。对于Sigmod激活函数,这意味着输入通

常落在了两端。

BN的作用:将每层的输入变为标准正态分布,经过BN拉伸后,使得激活值大部分落入非线性函数的线性区内,其对

应的导数远离饱和区,加快收敛。

参考:http://blog.csdn.net/malefactor/article/details/51476961#0-tsina-1-62851-397232819ff9a47a7b7e80a40613cfe1

http://buptldy.github.io/2016/08/18/2016-08-18-Batch_Normalization/

https://www.zhihu.com/question/38102762

在caffe中,于此相关的是两个层,batchnorm和scale层,参考:http://blog.csdn.net/lvrain007/article/details/77412334?locationNum=7&fps=1

关于参数use_global_stats,很多资料都说训练时要设置为false,否则不容易收敛。但在实际项目中我设置为true,仍然很好的收敛了。