1. 程式人生 > >區域性響應歸一化(Local Response Normalization,LRN)

區域性響應歸一化(Local Response Normalization,LRN)

 

一、LRN技術介紹:

Local Response Normalization(LRN)技術主要是深度學習訓練時的一種提高準確度的技術方法。其中caffe、tensorflow等裡面是很常見的方法,其跟啟用函式是有區別的,LRN一般是在啟用、池化後進行的一種處理方法。LRN歸一化技術首次在AlexNet模型中提出這個概念。

 

AlexNet將LeNet的思想發揚光大,把CNN的基本原理應用到了很深很寬的網路中。AlexNet主要使用到的新技術點如下。

(1)成功使用ReLU作為CNN的啟用函式,並驗證其效果在較深的網路超過了Sigmoid,成功解決了Sigmoid在網路較深時的梯度彌散問題。雖然ReLU啟用函式在很久之前就被提出了,但是直到AlexNet的出現才將其發揚光大。

(2)訓練時使用Dropout隨機忽略一部分神經元,以避免模型過擬合。Dropout雖有單獨的論文論述,但是AlexNet將其實用化,通過實踐證實了它的效果。在AlexNet中主要是最後幾個全連線層使用了Dropout。

(3)在CNN中使用重疊的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。並且AlexNet中提出讓步長比池化核的尺寸小,這樣池化層的輸出之間會有重疊和覆蓋,提升了特徵的豐富性。

(4)提出了LRN層,對區域性神經元的活動建立競爭機制,使得其中響應比較大的值變得相對更大,並抑制其他反饋較小的神經元,增強了模型的泛化能力。

二、為什麼要有區域性相應歸一化(Local Response Normalization)?

三、LRN計算公式的介紹

Hinton在2012年的Alexnet網路中給出其具體的計算公式如下:

 

這個公式中的a表示卷積層(包括卷積操作和池化操作)後的輸出結果,這個輸出結果的結構是一個四維陣列[batch,height,width,channel],這裡可以簡單解釋一下,batch就是批次數(每一批為一張圖片),height就是圖片高度,width就是圖片寬度,channel就是通道數可以理解成一批圖片中的某一個圖片經過卷積操作後輸出的神經元個數(或是理解成處理後的圖片深度)。ai(x,y)表示在這個輸出結構中的一個位置[a,b,c,d],可以理解成在某一張圖中的某一個通道下的某個高度和某個寬度位置的點,即第a張圖的第d個通道下的高度為b寬度為c的點。論文公式中的N表示通道數(channel)。a,n/2,k,α,β分別表示函式中的input,depth_radius,bias,alpha,beta,其中n/2,k,α,β都是自定義的,特別注意一下∑疊加的方向是沿著通道方向的,即每個點值的平方和是沿著a中的第3維channel方向的,也就是一個點同方向的前面n/2個通道(最小為第0個通道)和後n/2個通道(最大為第d-1個通道)的點的平方和(共n+1個點)。而函式的英文註解中也說明了把input當成是d個3維的矩陣,說白了就是把input的通道數當作3維矩陣的個數,疊加的方向也是在通道方向。 

公式看上去比較複雜,但理解起來非常簡單。i表示第i個核在位置(x,y)運用啟用函式ReLU後的輸出,n是同一位置上臨近的kernal map的數目,N是kernal的總數。引數K,n,alpha,belta都是超引數,一般設定k=2,n=5,aloha=1*e-4,beta=0.75。

整理參考文章:

http://blog.csdn.net/hduxiejun/article/details/70570086

http://blog.csdn.net/yangdashi888/article/details/77918311


3.後期爭議

在2015年 Very Deep Convolutional Networks for Large-Scale Image Recognition.提到LRN基本沒什麼用。

 在Alexnet模型中首次提出這個概念。 

參考文獻:

[LRN]:ImageNet Classification with Deep Convolutional Neural Networks
---------------------
作者:CrazyVertigo
來源:CSDN
原文:https://blog.csdn.net/hduxiejun/article/details/70570086
版權宣告:本文為博主原創文章,轉載請附上博文連結!