老饼讲解:一步一步上手深度学习
局部响应归一化(LRN,Local Response Normalization)是AlexNet中提出与使用的一种归一化方法。
但事实上,这种归一化不仅计算量大,而且后来大家使用时,都觉得没什么效果,所以LRN已经被抛弃了。但读论文的强迫症往往还是想弄清楚这个东西是什么,所以这里说说LRN是什么,以及它的归一化计算方法。
LRN在AlexNet原文中的公式如下:
其中,
:第i个通道位置的值
:第i个通道位置归一化后的值
:局部归一化的半径,原文n设为
:通道数,就是通道的最大索引
:待设参数,原文设为
好了,先不要慌,光看公式是一塌糊涂的,下面我们通过一个例子来说说,就知道它是怎么一回事了。
首先,我们要理解LRN到底想干什么,其实它就是想将卷积结果按通道进行局部归一化,举例如下

看图,设现在有6个通道(序号为0至5),如果我们要对第4通道位置的值进行归一化,那么就是把它附近2-5通道、同位置的值抓过来一起进行归一化就行了,也就是归一化后的值为:
其中,都是预设的参数
好了,怎么确定"附近"就是2-5通道的呢,这由半径局部范围参数n决定,这里我们不妨设为n=5。
那么起始结束通道序号为:
也就是以当前通道为中心,往左为起始位置,往右为结束位置,起始结束位置不能超过总通道范围。所以,在我们的例子中,则是:
于是就得到了起始、结束通道为2-5。
好了,现在再回头看1.1中的完整计算公式,就看得明白了。
这里我们简单的讲了LRN局部响应归一化是什么,以及它的计算公式。事实上在Inception-v2提出BN层之后,大家都用BN层进行归一化了,LRN没什么效果,应该没人用了,如果不是为了把AlexNet的论文读完整,应该都没人会去提它了~
评论