资料来源:https://www.bilibili.com/video/av15997678/?p=34
Batch normalization通俗来说,就是对每一层都进行normalization处理,而不仅仅是输入数据。
使得数据分布较为均匀地在激活函数的激活范围内,更有效地向前传递
但是normalization不一定是有效的,我们可以让机器自己去学习,看加不加normalization哪一个更有效:
如图,最后我们加一个可以起到反normalization作用的层,两个参数可以通过学习得到。如果机器学习的结果是normalization没有对结果产生正面影响,可以通过调整这两个参数来抵消Normalization的影响
附一个normalization的效果图:
知乎这篇回答对batch normalization的作用有了一个比较深入的阐释,我这里引用一点结论性的内容:
在BN中,是通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大。可以说是一种更有效的local response normalization方法
原文:https://www.cnblogs.com/jiading/p/11964697.html