当卷积层后跟batch normalization层时为什么不要偏置b

起因

之前使用的是inception-v2模型,在v2中,标准的卷积模块为:
* conv_w_b->bn->relu ->pooling*
即,在v2中,尽管在卷积之后、激活函数之前大量使用batch normalization,但是卷积层依然使用可学习的偏置参数。

这也比较符合我的直观理解,因为偏置在一般的卷积神经网络中本来就是很重要的,可以让超判决面不过原点。
但是我在读inception-v3的代码时,发现v3中一个卷积模块中 bn和bias是不共存的,这令我很费解,这么重要的参数为什么没有?

后来想明白了,接下来是明白的过程:

首先,看bias的有无到底会不会对bn的结果造成影响?
bn操作的关键一步可以简写为:

好了。
那么为什么没有bias的卷积层能够对bn后的输入学习到很好的决策面呢?
当然啦,bn本身就是将数据归一化到标准分布的呀~
---------------------  
作者:夕何  
来源:CSDN  
原文:https://blog.csdn.net/u010698086/article/details/78046671  
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/zxyhhjs2017/article/details/90035238