天天看點

論文學習:(AlexNet)ImageNet Classification with Deep Convolutional Neural Networks學習資料參考這篇論文的地位和意義這篇論文的貢獻網絡結構ReLU 的非線性局部響應歸一化 LRN(Local Response Normalization):Overlapping Pooling其他問題

學習資料參考

  1. CNN經典算法AlexNet介紹

這篇論文的地位和意義

作者使用了 ReLU 方法加快訓練速度,并且使用 Dropout 來防止過拟合,通過多 GPU 的訓練降低訓練時間,盡管這些都不是作者自己提出的技巧,但是,作者的工作引起來大家的廣泛關注,使得很多人開始利用 GPU 來訓練大型的 CNN 網絡。當然,作者提出的局部響應正規化也在後來被證明沒啥效果(看 VGG 的論文)。但不管如何,這篇論文引起了很多人對深度學習和 GPU 訓練的重視,也算是非常有影響的工作了。

參考:CNN經典算法AlexNet介紹

這篇論文的貢獻

  1. trained one of the largest convolutional neural networks: AlexNet
  2. wrote a highly-optimized GPU implementation of 2D convolution
  3. contains a number of new and unusual features which improve its performance and reduce its training time
  4. used several effective techniques for preventing overfitting:Data Augmentation(image translations 、 horizontal reflections 、altering the intensities of the RGB channels)、Dropout

網絡結構

論文學習:(AlexNet)ImageNet Classification with Deep Convolutional Neural Networks學習資料參考這篇論文的地位和意義這篇論文的貢獻網絡結構ReLU 的非線性局部響應歸一化 LRN(Local Response Normalization):Overlapping Pooling其他問題

ReLU 的非線性

類似 Tanh 的激活函數,是屬于飽和非線性,使用梯度下降訓練這種激活函數會比非飽和非線性激活函數,如 ReLU 要慢。

函數是否是飽和函數主要看定義域和值域的範圍。非飽和函數的含義是指,當自變量趨于無窮大的時候,其值也趨向無窮大。這個函數如果不是非飽和函數,那麼它就是飽和函數了。例如 Tanh 函數的值域是 [-1,1],顯然不符合非飽和函數的定義,是以它就是飽和函數。而 ReLU 函數則是 非飽和函數。非飽和函數的含義是指,當自變量趨于無窮大的時候,其值也趨向無窮大。這個函數如果不是非飽和函數,那麼它就是飽和函數了。例如 Tanh 函數的值域是 [-1,1],顯然不符合非飽和函數的定義,是以它就是飽和函數。而 ReLU 函數則是非飽和函數。

論文學習:(AlexNet)ImageNet Classification with Deep Convolutional Neural Networks學習資料參考這篇論文的地位和意義這篇論文的貢獻網絡結構ReLU 的非線性局部響應歸一化 LRN(Local Response Normalization):Overlapping Pooling其他問題

局部響應歸一化 LRN(Local Response Normalization):

在神經網絡中,我們用激活函數将神經元的輸出做一個非線性映射,但是 tanh 和 sigmoid 這些傳統的激活函數的值域都是有範圍的,但是 ReLU 激活函數得到的值域沒有一個區間,是以要對 ReLU 得到的結果進行歸一化。也就是 Local Response Normalization。局部響應歸一化的方法如下面的公式:

論文學習:(AlexNet)ImageNet Classification with Deep Convolutional Neural Networks學習資料參考這篇論文的地位和意義這篇論文的貢獻網絡結構ReLU 的非線性局部響應歸一化 LRN(Local Response Normalization):Overlapping Pooling其他問題

其中,a 代表的是 ReLU 在第 i 個 kernel 的 (x, y) 位置的輸出,n 表示的是 a 的鄰居個數,N 表示該 kernel 的總數量。b 表示的是 LRN 的結果。

論文學習:(AlexNet)ImageNet Classification with Deep Convolutional Neural Networks學習資料參考這篇論文的地位和意義這篇論文的貢獻網絡結構ReLU 的非線性局部響應歸一化 LRN(Local Response Normalization):Overlapping Pooling其他問題

每一個矩形表示的一個卷積核生成的 feature map。所有的 pixel 已經經過了ReLU激活函數,現在我們都要對具體的 pixel 進行局部的歸一化。假設綠色箭頭指向的是第 i 個 kernel 對應的map,其餘的四個藍色箭頭是它周圍的鄰居 kernel 層對應的 map,假設矩形中間的綠色的 pixel 的位置為 (x, y),那麼我需要提取出來進行局部歸一化的資料就是周圍鄰居 kernel 對應的 map 的 (x, y) 位置的 pixel 的值。也就是上面式子中的 Σ 裡的部分。然後把這些鄰居 pixel 的值平方再加和。乘以一個系數 α 再加上一個常數 k,然後 β 次幂,就是分母。

分子就是第 i 個 kernel 對應的 map 的 (x, y) 位置的 pixel 值。

論文中參數最終确定的結果為:k = 2 , n = 5 , α = 10^(−4) , β = 0.75

參考:

  1. 原理講解:https://blog.csdn.net/luoluonuoyasuolong/article/details/81750190
  2. TensorFlow 實作:https://blog.csdn.net/sinat_21585785/article/details/75087768

Overlapping Pooling

簡單來說,就是 stride < kernel_size。

作者觀察發現:訓練帶有重疊池化的模型要更加難以過拟合。

論文中的 stride = 2, kernel_size = 3

其他問題

  1. 注意:TensorFlow 四維張量的含義:https://blog.csdn.net/qq_43797817/article/details/107009057
  2. 權重衰減:參考筆記:權重衰減(weight decay)

繼續閱讀