LRN和BN的数学公式理解与区别

一、写在前面

这两个方法,一个出现在Alexnet,另一个应用在Googlenet中,将原本的公式进行粘贴如图所示:

公式一请仔细看原文

此处只做补充:局部响应归一化是可以值得琢磨的,它干的事情就是对目标的相应归一,其实就是将点身边的N-1个区域作为一个块,然后使用求和,乘方,最终得到一个归一的值。文中特意指出 k = 2,n = 5, α = 1e-4, β = 0.75

k = 1, a = 1/6, n = 2 ,b = 0.5 代入公式

[[1, 2, 3],    ->    [[1 /(7^0.5), 2/(7^0.5), 3/(7^0.5)]
 [3, 4, 5],           [3/(7^0.5), 4/(7^0.5), 5/(7^0.5)] 
 [5, 6, 7]]           [5/(7^0.5), 6/(7^0.5), 7/(7^0.5)]]

公式二

原文中很清楚,这个仔细看也能看懂
其实就是求均值和方差的过程,然后使用高斯函数的应用正态分布的一个性质,得到期望均值,然后进行归一化。在最后的转换中,加入两个参数用于维护输出的稳定性。

BN的训练过程

在这里插入图片描述
这个训练过程,可以理解为先对整个数据进行归一化,确定上式的分布,然后再将这个分布作为常数代入,常数指的是期望方差和期望均值(即Var(x), E(x))。作为最后的数据转换公式。仔细看看不难。

正文

BN,batch-normalization,中文叫做批量正则化。
它的中心思想是将梯度的变化约束到一个可传递的范围,防止梯度消失或者爆炸。
对于sigmoid函数和tanh函数来说是一个不可多得的辅助。
它还能够加速网络的训练速度,对于网络的train和test的细节必须仔细看看论文,论文《Batch normalization: Accelerating the Deep network Training by Reducing Internal Covariance Shift》.
————————————————————————————
修改于2021年一月七日,感谢大家的指教,我会及时补充!

猜你喜欢

转载自blog.csdn.net/TTLoveYuYu/article/details/108811708