LRN (Local Response Normalization,即局部响应归一化层)

2,242 阅读2分钟

FROM:LRN (Local Response Normalization,即局部响应归一化层)

归一化

归一化化是归纳统一样本的统计分布性。就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。

目的

  1. 为了后面数据处理的方便,归一化的确可以避免一些不必要的数值问题。
  2. 为了程序运行时收敛加快。 下面图解。
  3. 同一量纲。样本数据的评价标准不一样,需要对其量纲化,统一评价标准。这算是应用层面的需求。
  4. 避免神经元饱和。啥意思?就是当神经元的激活在接近0或者1时会饱和,在这些区域,梯度几乎为0,这样,在反向传播过程中,局部梯度就会接近0,这会有效地“杀死”梯度。
  5. 保证输出数据中数值小的不被吞食。

未归一化:

归一化之后:

再来个3D的效果图说明下不归一化的情形:

例子:

假设 w1 的范围在 [-10,10],而w2的范围在[-100,100],梯度每次都前进1单位,那么在w1方向上每次相当于前进了 1/20,而在w2上只相当于 1/200!某种意义上来说,在w2上前进的步长更小一些,而w1在搜索过程中会比w2“走”得更快。

这样会导致,在搜索过程中更偏向于w1的方向。走出了“L”形状,或者成为“之”字形。

LRN (Local Response Normalization,即局部响应归一化层)

在训练大量的练数据过程中,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理的原因。 即,通过归一化,我们就可以在一个标准下找“规律”了。

计算

  • norm_region:选择对相邻通道间归一化还是通道内空间区域归一化
  1. ACROSS_CHANNELS表示在相邻的通道间求和归一化,表示局部区域沿临近通道延伸,局部区域块形状为local\_size * 1 * 1

  2. WITHIN_CHANNEL表示在一个通道内部特定的区域内进行求和归一化。局部区域形状为1 * local\_size * local\_size

    local_size:

    (1)通道间归一化时,表示求和的通道数;

    (2)通道内归一化时,表示求和区间的边长;默认值为5;

  • alpha:缩放因子(详细见后面),默认值为1
  • beta:指数项(详细见后面),默认值为5;
  • n:局部尺寸大小local_size,以当前输入值为中心的区域内计算加和,有时补零。