一、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在2023年的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。
特徵歸一化的方法 線性歸一化 零均值歸一化
常用歸一化方法 1 線性歸一化,線性歸一化會把輸入資料都轉換到 0 1 的範圍,公式如下 該方法實現對原始資料的等比例縮放,其中xnorm為歸一化後的資料,x為原始資料,xmax xmin分別為原始資料集的最大值和最小值。優點 通過利用變數取值的最大值和最小值將原始資料轉換為界於某一特定範圍的資料,...
歸一化和標準化的一些理解
很多的時候我發現很多人和我一樣我對機器學習的基本概念一知半解,比如我經常會聽到歸一化及標準化,傻傻分不清楚。最近看了一篇文章清楚的闡述了歸一化和標準化的定義 適用場景 物理意義及使用意義。經過原作者授權以後,我想進行 並加上我的一些理解,和更多的人一起學習進步。在機器學習和資料探勘中,經常會聽到兩個...
資料的歸一化
正常情況下,資料的處理用的都是線性歸一化,但是如果實驗的資料服從某種分布函式時,其中最多的就是正態分佈了,假設實驗資料是服從正態分佈的,我們可以通過乙個函式來對資料進行變換,這個函式選取的原則就是使得原有資料中的資訊量最多,即資訊熵最大。首先我說一下資訊熵的計算方法 可能這裡講熵的概念更難理解了,換...