這是深度學習系列的第三篇文章,歡迎關注原創公衆號 【計算機視覺聯盟】,第一時間閱讀我的原創!回覆 【西瓜書手推筆記】 還可獲取我的機器學習純手推筆記!
深度學習系列
【深度學習系列】——深度學習簡介
【深度學習系列】——梯度下降算法的可視化解釋(動量,AdaGrad,RMSProp,Adam)
翻譯:【計算機視覺聯盟】公衆號團隊
推薦資源
機器學習手推筆記(https://github.com/Sophia-11/Machine-Learning-Notes,直達筆記地址)
筆記預覽
第一個卷積神經網絡是Alexander Waibel在1987年提出的時延神經網絡(TDNN)[5]。TDNN是應用於語音識別問題的卷積神經網絡。它使用FFT預處理語音信號作爲輸入。它的隱藏層由兩個一維卷積核組成,以提取頻域中的平移不變特徵[6]。在TDNN出現之前,人工智能領域在反向傳播(BP)研究中取得了突破性進展[7],因此TDNN能夠使用BP框架進行學習。在原作者的對比實驗中,在相同條件下,TDNN的性能要優於隱馬爾可夫模型(HMM),後者是1980年代語音識別的主流算法[6]。
1988年,張偉提出了第一個二維卷積神經網絡轉換不變人工神經網絡(SIANN),並將其應用於醫學圖像的檢測[1]。Yann LeCun還在1989年,爲計算機視覺問題構建了卷積神經網絡[2],即LeNet的原始版本中。LeNet包含兩個卷積層,兩個完全連接層,總共60,000個學習參數,其規模遠遠超過TDNN和SIANN,其結構非常接近現代卷積神經網絡[4]。LeCun(1989)採用[2]隨機梯度下降(SGD)進行隨機初始化後的權值學習。後來的深度學習學院保留了這一策略。此外,LeCun(1989)在討論其網絡結構[2]時首次使用了卷積一詞,並以此命名卷積神經網絡。
對於深度卷積神經網絡,經過多次卷積和合並後,其最後的卷積層包含最豐富的空間和語義信息。卷積神經網絡中的每個卷積單元實際上都扮演着對象檢測器的角色,它本身具有定位對象的能力但是其中包含的信息對於人類來說是難以理解的,並且難以以視覺方式顯示。
在本文中,我們將回顧類激活映射(CAM),CAM借鑑了著名的論文《網絡中的網絡》(Network In Network)中的思想,用全局平均池(GAP)代替了全連接層。
所提出的CNN網絡具有強大的圖像處理和分類功能,同時還可以定位圖片的關鍵部分。
卷積層(Convolution Layers)
卷積神經網絡(CNN) ,主要是通過單個過濾器連續提取特徵,從局部特徵到總體特徵,以便進行圖像識別等功能。
假設我們需要處理尺寸爲6x6像素的單通道灰度圖像,將其轉換爲二維矩陣,如下所示:
資料來源:https : //mc.ai/my-machine-learning-diary-day-68/
圖片中的數字表示該位置的像素值,像素值越大,顏色越亮。圖片中間的兩種顏色之間的分界線是我們要檢測的邊界。
我們可以設計一個過濾器(也稱爲kernel)來檢測該邊界。然後,將該過濾器與輸入圖片進行曲面組合以提取邊緣信息,可以將圖片上的卷積操作簡化爲以下動畫:
資料來源:https : //mc.ai/my-machine-learning-diary-day-68/
我們使用此過濾器覆蓋圖片,覆蓋與過濾器一樣大的區域,將相應的元素相乘,然後求和。計算一個區域後,移至其他區域,然後計算直到覆蓋原始圖片的所有區域。
輸出矩陣稱爲特徵圖(Feature Map),它的中間顏色較淺,兩側顏色較深,反映了原始圖像中間的邊界。
來源:https : //mc.ai/learning-to-perform-linear-filtering-using-natural-image-data/
卷積層主要包含兩個部分,一個過濾器和一個特徵圖,這是數據流經CNN網絡的第一個神經層,通過學習使用的過濾器越多,將自動調整CNN的過濾器矩陣,將得到更多的特徵。
要設置的常規超參數包括過濾器的數量,大小和步長。
池化層(Pooling)
池化也稱爲空間池化或子採樣。其主要功能是提取特定區域的主要特徵並減少參數數量,以防止模型過度擬合。
這裏沒有我們需要學習的參數。需要指定的超參數包括池化類型,常用的方法包括Maxpooling或Averagepooling,窗口大小和步長。通常,我們更多地使用Maxpooling,並且通常採用大小爲(2,2),步長爲2的過濾器,因此在合併之後,輸入長度和寬度將減少2倍,並且通道不會更改,如下圖所示:
最大值在合併窗口內獲取,並在特徵圖矩陣上順序合併後生成新矩陣。同樣,我們也可以使用求平均或求和的方法,但是在通常情況下,使用最大值方法獲得的效果相對更好。
經過幾次卷積和合並後,我們最終將多維數據展平爲一維數組,然後將它們連接到完全連接層。
來源:https : //gfycat.com/fr/smoggylittleflickertailsquirrel-machine-learning-neural-networks-mnist
它的主要功能是基於通過卷積層和池化層提取的特徵集對處理後的圖片進行分類。
諸如GoogleNet [10]之類的全卷積神經網絡避免使用全連接層,而使用全局平均池(GAP)。這樣,不僅可以減少參數以避免過度擬合,而且可以創建到類別關聯的特徵圖。
全局平均池化層(Global Average Pooling)
長期以來,完全連接的網絡一直是CNN分類網絡的標準結構。通常,完全連接後將具有用於分類的激活功能。但是完全連接的層具有大量參數,這會降低訓練速度,並且容易過擬合。
在網絡中的網絡 [9]中,提出了全局平均池的概念來代替完全連接的層。
資料來源:http : //www.programmersought.com/article/1768159517/
全局平均池和局部平均池之間的區別是池窗口。局部平均池化包括對特徵圖中的子區域取平均值,而在全局平均池中,我們對整個特徵圖取平均。
來源:https : //www.machinecurve.com/index.php/2020/01/30/what-are-max-pooling-average-pooling-global-max-pooling-and-global-average-pooling/
使用全局平均池而不是完全連接的層會大大減少參數的數量。
類激活圖(Class Activation Map)
當使用全局平均池化時,最後的卷積層被迫生成與我們所針對的類別數量相同數量的特徵圖,這將爲每個特徵圖賦予非常清晰的含義,即類別可信度圖 [11]。
來源:https : //medium.com/@ahmdtaha/learning-deep-features-for-discriminative-localization-aa73e32e39b2
從圖中可以看出,在GAP之後,我們獲得了最後一個卷積層的每個特徵圖的平均值,並通過加權和獲得了輸出。對於每個類別C,每個特徵圖k的平均值具有相應的權重w。
訓練CNN模型後,我們可以獲得一個熱圖來解釋分類結果。例如,如果我們要解釋C類的分類結果。我們取出與類C對應的所有權重,並找到它們對應的特徵圖的加權和。由於此結果的大小與特徵圖一致,因此我們需要對其進行過採樣並將其覆蓋在原始圖像上,如下所示:
來源:https : //medium.com/@ahmdtaha/learning-deep-features-for-discriminative-localization-aa73e32e39b2
通過這種方式,CAM以熱圖的形式告訴我們,模型集中在用於確定圖片的c類中的像素上。
來源:MultiCAM:用於遙感圖像中飛機識別的多類激活映射
結論
CAM的解釋效果一直很好,但是有一個缺點,那就是它需要修改原始模型的結構,從而導致需要重新訓練模型,這極大地限制了它的使用場景。如果模型已經在線,或者培訓成本很高,那麼我們幾乎不可能對其進行再培訓。
有收穫嗎?來個關注和點贊吧,讓更多的人看到這篇文章
- 點贊,讓更多的人看到這篇文章 文章
- 首發原創公衆號 【計算機視覺聯盟】,第一時間閱讀文章,回覆 【西瓜書手推筆記】 獲取PDF下載!
- 歡迎關注我的博客,我們一起學習進步!
References
- Zhang, W., 1988. Shift-invariant pattern recognition neural network and its optical architecture. In Proceedings of annual conference of the Japan Society of Applied Physics.
- . LeCun, Y. and Bengio, Y., 1995. Convolutional networks for images, speech, and time series. The handbook of brain theory and neural networks, 3361(10), 1995.
- LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard, W. and Jackel, L.D., 1989. Backpropagation applied to handwritten zip code recognition. Neural computation, 1(4), pp.541–551.
- LeCun, Y., Kavukcuoglu, K. and Farabet, C., 2010. Convolutional networks and applications in vision. In ISCAS(Vol. 2010, pp. 253–256).
- Waibel, A., 1987. Phoneme recognition using time-delay neural networks. Meeting of the Institute of Electrical, Information and Communication Engineers (IEICE). Tokyo, Japan.
- Waibel, A., Hanazawa, T., Hinton, G., Shikano, K. and Lang, K., 1989. Phoneme recognition using time-delay neural networks, IEEE Transactions on Acoustics, Speech, and Signal Processing, 37(3), pp. 328–339.
- Rumelhart, D.E., Hinton, G.E. and Williams, R.J., 1986. Learning representations by back-propagating errors. nature, 323(6088), p.533.
- LeCun, Y., Bottou, L., Bengio, Y. and Haffner, P., 1998. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), pp.2278–2324.
- Min Lin, Qiang Chen, Shuicheng Yan : Network In Network.
- Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott E. Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich: Going Deeper with Convolutions.
- Bolei Zhou andAditya Khosla and Agata Lapedriza andAude Oliva andAntonio Torralba :Learning Deep Features for Discriminative Localization