FROM:LRN (Local Response Normalization,即局部响应归一化层)
归一化
归一化化是归纳统一样本的统计分布性。就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。
目的
- 为了后面数据处理的方便,归一化的确可以避免一些不必要的数值问题。
- 为了程序运行时收敛加快。 下面图解。
- 同一量纲。样本数据的评价标准不一样,需要对其量纲化,统一评价标准。这算是应用层面的需求。
- 避免神经元饱和。啥意思?就是当神经元的激活在接近0或者1时会饱和,在这些区域,梯度几乎为0,这样,在反向传播过程中,局部梯度就会接近0,这会有效地“杀死”梯度。
- 保证输出数据中数值小的不被吞食。
未归一化:
归一化之后:
再来个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:选择对相邻通道间归一化还是通道内空间区域归一化
-
ACROSS_CHANNELS表示在相邻的通道间求和归一化,表示局部区域沿临近通道延伸,局部区域块形状为。
-
WITHIN_CHANNEL表示在一个通道内部特定的区域内进行求和归一化。局部区域形状为。
local_size:
(1)通道间归一化时,表示求和的通道数;
(2)通道内归一化时,表示求和区间的边长;默认值为5;
- alpha:缩放因子(详细见后面),默认值为1
- beta:指数项(详细见后面),默认值为5;
- n:局部尺寸大小local_size,以当前输入值为中心的区域内计算加和,有时补零。