天天看點

Global Average Pooling

CNN的變種有很多,除了CNN進化史上經典的那幾種Net,還有一些網絡根據實際問題的不同需求,對其中某些Layer進行修改。

本文的問題源于一篇關于肺部CT的CNN的文章(Shuo Wang, et al. Predicting EGFR mutation status in lung adenocarcinoma on computed tomography image using deep learning. European Respiratory Journal Mar 2019, 53 (3) 1800986)。附件中将CNN得到的特征進行了單因素分析,于是疑惑其如何提取的特征。追其方法引用文獻,找到另一篇文章(Selvaraju RR, et al. Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization. In: 2017 IEEE International Conference on Computer Vision (ICCV); 2017; 2017. p. 618-626.)。文中提到:

Reall that CAM produces a localization map for an image classification CNN with a specific kind of architecture where global average pooled convolutional feature maps are fed directly into softmax. Specifically, let the penultimate layer produce K feature maps. These feature maps are then spatially pooled using Global Average Pooling (GAP) and linearly transformed to produce a score Sc for each class c.

簡而言之,就是在倒數第二層進行改進(用GAP替代FC),使用GAP将倒數第三層的輸出轉化成特征值。

由此,在網上找了一些GAP的介紹,此處轉載一篇還可以的部落格:Global average Pooling

Global Average Pooling

這個概念出自于 network in network 。主要是用來解決全連接配接的問題,其主要是是将最後一層的特征圖進行整張圖的一個均值池化,形成一個特征點,将這些特征點組成最後的特征向量,進行softmax中進行計算。

舉個例子。假如,最後的一層的資料是10個6*6的特征圖,global average pooling是将每一張特征圖計算所有像素點的均值,輸出一個資料值,這樣10 個特征圖就會輸出10個資料點,将這些資料點組成一個1*10的向量的話,就成為一個特征向量,就可以送入到softmax的分類中計算了。

Global Average Pooling

      上圖展示的是對比全連接配接與全局均值池化的差異

原文中介紹這樣做主要是進行全連接配接的替換,減少參數的數量,這樣計算的話,global average pooling層是沒有資料參數的。這也與network in network 有關,其文章中提出了一種非線性的 類似卷積核的mlpconv的感覺器的方法,計算圖像的分塊的值,可以得到空間的效果,這樣就取代了pooling的作用,但是會引入一些參數,但是為了平衡,作者提出了使用global average pooling。

下面是network in network 中的摘取

Global Average Pooling

下圖是是一個基于MLP的局部計算,最後使用global average pooling 的network in network 的結構圖

Global Average Pooling

NOTE.

GAP和GMP都是将參數的數量進行縮減,這樣一方面可以避免過拟合,另一方面這也更符合CNN的工作結構,把每個feature map和類别輸出進行了關聯,而不是feature map的unit直接和類别輸出進行關聯。

差别在于,GMP隻取每個feature map中的最重要的region,這樣會導緻,一個feature map中哪怕隻有一個region是和某個類相關的,這個feature map都會對最終的預測産生很大的影響。而GAP則是每個region都進行了考慮,這樣可以保證不會被一兩個很特殊的region幹擾。這篇論文有更詳細的說明。

借鑒自這個方法,其實對于每個卷積層的輸出,都可以用類似的方法得到特征值。當然,最後的卷積層出來的特征最有價值啦。

參考資料:

Shuo Wang, et al. Predicting EGFR mutation status in lung adenocarcinoma on computed tomography image using deep learning. European Respiratory Journal Mar 2019, 53 (3) 1800986

Selvaraju RR, et al. Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization. In: 2017 IEEE International Conference on Computer Vision (ICCV); 2017; 2017. p. 618-626.

CSDN部落格 Global average Pooling

繼續閱讀