其中LRN的公式如下:
论文中说 Denoting by aix,y the activity of a neuron computed by applying kernel i at position (x, y) and then applying the ReLU nonlinearity, the response-normalized activity bix,y is given by the expression
LRN是用在激活之后,而alexnet中激活函数用的是relu 所以结果都是大于等于0的激活值。而且这个是模仿生物上的一个叫侧抑制概念。
其作用是对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
这个侧抑制名字就取得很有意思。一般我们如果要抑制某个神经元周围的神经元,可以直接最大池化。但是这个侧抑制是在通道维度上进行抑制。
从公式我们可以看出 其实就是在通道维度上取个半径r=n/2 对于通道上的任一点取他半径内的点进行平方累加(这里取值注意不要超过边界)。
从公式角度分析下为什么叫局部归一化(这只是我个人理解)
对于归一化很好理解将数据映射到(0, 1)之间但是上面的公式好像不是很好理解
这里我们取几个特殊值分析下: k=0, alpha=1 beta=1/2 j 从0取到N-1 (N 为通道维度)
上面公式 变成
bi_xy = ai_xy /(∑j aj_xy **2)**1/2 j 从0取到N-1 这时候公式不就是 x`= x / ||x||
但是我们公式只取了半径r=n/2内的值来做归一化所以叫做局部归一化
抑制也是对通道上半径r内的神经元进行抑制。如果我们将每一个特征图当做学到的一种特征,不同的特征图学到的是不同的特征,那么不同的通道上相同位置神经元应该也学到不同的信息才行,所以进行这个局部归一化的理由貌似也说的通,使得其中响应比较大的值变得相对更大,响应比较小的值相对更小。形象店说就是如果某个通道上的神经元学到了某种特征,就可以广播下告诉半径r=n/2内不同通道相同位置的神经元,我已经先下手为强了,领先你一个身为,你就不要在继续舔了,没戏~
遗憾的是虽然我们上面分析了这么多,后续就有学者提出了这个其实没什么卵用,这就很尴尬~
与君共勉~