局部响应规范化(LRP,Local Response Normalization)
- 参数说明:
b x , y i : b^i_{x,y}: bx,yi:规范化后的值, i i i是通道的位置,代表更新第几个通道的值, x x x与 y y y代表待更新像素的位置;
a x , y i : a^i_{x,y}: ax,yi:输入值,激活函数Relu的输出值;
k 、 α 、 β 、 n / 2 : k、\alpha、\beta、n/2: k、α、β、n/2:自定义系数;
n : n: n: 临近的通道(featrure map)数目,用于表示局部区域的大小,注意,这里的区域指的是一维区域,区别于图像中某像素点的临近像素。
N : N: N:通道(featrure map)总数(这里的通道不是图像的通道,而是指不同的kernal生成的feature map)
α : \alpha: α:缩放因子
β : \beta: β:指数项 - 总的来说,就是对输入值 a x , y i a^i_{x,y} ax,yi 除以一个数达到归一化的目的,公式的核心在于该系数的计算,该系数的意义是不同通道(feature map)的累加平方和。
- 原理:
LRN层模仿了生物神经系统的“侧抑制”机制,对局部神经元的活动创建竞争环境,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强模型的泛化能力;(LRN会对局部神经元创建对比,使得其中响应值较大的神经元变得更大,使得响应小的神经元变得更小,可以更加快速的训练模型,并且相比于不加LRN的模型来说,泛化能力更强(响应更加突出)。)
LRN层对于ReLU这种没有上限边界的激活函数会比较有用,因为它会从附近的多个卷积核的响应中挑选比较大的反馈,但不适合Sigmoid之中有固定边界并且能抑制过大值的激活函数。 - 作用: 减少过拟合的发生,一般用在卷积ReLU激活函数后面一层。
- LRN与BN的区别: BN是数据层面;LRN是通道层面
批规范化操作(BN,Batch Normalization)
随着神经网络训练的进行,层数的增多,我们会发现每一层计算出来的结果进过sigmoid或者其他激活函数计算后很多都趋近于0或者1,即向着两个端点值趋近。这会导致训练速度下降,所以我们通过BN归一化,用正态分布将参数调整回0到1之间,参数之间的联系在某种程度上不变,但是训练速度得到了提升。