AlexNet網(wǎng)絡(luò)結(jié)構(gòu):

AlexNet有5個卷積層,其中3個卷積層后面連接最大池化層,最后3個全連接層。
AlexNet對于LeNet包含了幾個比較新的技術(shù)點,也首次在CNN中成功應(yīng)用了ReLU,Dropout,LRN等技巧:
(1)使用ReLU作為激活函數(shù),解決了sigmoid在網(wǎng)絡(luò)較深時的梯度彌散(梯度消失)問題。
(2)訓(xùn)練時在全連接層使用了Dropout,隨機忽略一部分神經(jīng)元以避免過擬合。
(3)使用數(shù)據(jù)增強后大大減輕了過擬合,提升了模型的泛化性能。
(4)提出了LRN層,對局部神經(jīng)元的活動創(chuàng)建了競爭機制,使得其中響應(yīng)比較大的值響應(yīng)更大,并抑制其他反饋比較小的神經(jīng)元,增強了模型的泛化性能。
(5)全部使用最大池化,避免了平均池化的模糊化處理。步長比池化核小,這樣池化層的輸出之間會有重疊和覆蓋,提升了特征的豐富性。
重點講一下LRN:
LRN全稱為Local Response Normalization,即局部響應(yīng)歸一化層,LRN函數(shù)類似Dropout,作為ReLU激勵輸出后防止數(shù)據(jù)過擬合的一種方法。

Tensorflow官方文檔API如下:
sqr_sum[a, b, c, d] = sum(input[a,b, c, d - depth_radius : d + depth_radius + 1] ** 2)
output = input / (bias +alpha * sqr_sum) ** beta
[a,b,c,d]表示[圖片上傳失敗...(image-64d9ee-1582818726298)] ,可以理解成在某一張圖中的某一個通道下的某個高度和某個寬度位置的點,即第a張圖的第d個通道下的高度為b寬度為c的點。a,n/2,k,α,β分別表示函數(shù)中的input,depth_radius,bias,alpha,beta其中n/2,k,α,β都是自定義的,特別注意一下∑疊加的方向是沿著通道方向的,即每個點值的平方和是沿著a中的第3維channel方向的,也就是一個點同方向的前面n/2個通道(最小為第0個通道)和后n/2個通道(最大為第d-1個通道)的點的平方和(共n+1個點)。而函數(shù)的英文注解中也說明了把input當(dāng)成是d個3維的矩陣,說白了就是把input的通道數(shù)當(dāng)作3維矩陣的個數(shù),疊加的方向也是在通道方向。
