【深度学习】擦除:提升 CNN 特征可视化的 3 种重要手段
??作者丨皮特潘
審稿|鄧富城
編輯丨極市平臺
導讀
?所謂擦除,就是去除掉一部分有用的信息,以提高網絡提取特征的能力。本文對3種提升特征可視化的方法進行了詳細綜述,包括直接擦除、利用預測信息(CAM)擦除以及Dropout方法。
前言
在CNN的測試階段,我們一般會用CAM(Class Activation Mapping)來判斷網絡訓練的好不好,到底可不可信賴。CAM被認為是表示網絡真正看到哪里,也是指示最具有判別的特征以及依據。但是在實際應用的過程中,我們發現現實并不是那么美好。因為我們采用的loss梯度下降方法更新網絡,是直接對loss進行負責的,并非CAM。側面反映了網絡看到的不是exactly我們想要的。因此我們就會自然想到,能否采用某些手段,去提升CAM的質量?CAM質量提升了,當然網絡提取特征的能力也會提升,泛化能力自然也不是問題。因此本文就是研究其中的一種手段——擦除。最重要的還是提供一種思路。
CAM
關于CAM,可以參考這篇文章,它詳細介紹了CAM的來龍去脈,以及最新的研究成果。
皮特潘:萬字長文:特征可視化技術(CAM)
首先看一下CAM存在的問題:
對于前景類別,CAM通常只能cover最具有判別的部分,導致一些重要的區域漏掉;
對于背景,CAM經常cover錯掉,或者說解釋性沒那么強;
cover的邊緣不夠精確,當然這是由于可視化的特征圖遠小于原圖大小,分類網絡一般為32倍下采樣,進行插值到原圖大小,邊緣肯定不清晰;
有時CAM并不能cover到我們真正想要的特征。例如:當我們對"船"進行分類,CAM會cover到"水面";因為“水面”通常都是伴隨“船”存在的。
擦除方法
所謂擦除,就是去除掉一部分有用的、具有判別的信息,希望網絡依靠剩余信息也可以進行精準預測,這樣就自然提高了網絡提取更全面特征的能力,對應的CAM會更加精準。
簡單劃分,擦除?般包括兩種?式:
對原始圖片擦除
對特征圖進行擦除
再細分一點:
直接在原圖上擦除,通常按照一定規則隨機進行,常用于數據增強。
利用網絡預測的信息進行擦除,類似一種注意力機制反著使用。比如網絡輸入為原始圖片,訓練當中利用實時的CAM擦除,再進行loss計算。這種訓練-擦除-再訓練-再擦除的方式通常被稱為對抗擦除。再比如,直接利用CAM作為mask作用到特征圖上,等等。
類dropout的策略,按照一定規則在特征圖上進行隨機擦除,通常不會利用網絡預測信息,是一種正則化的手段。
本文涉及的論文
直接擦除:Hide-and-Seek、 Random Erasing、 Cutout、 Grid Mask
利用預測信息(CAM)擦除:AE-PSL 、ACoL 、SPG 、GAIN、seeNet、ADL
Dropout方法:DropBlock、FickleNet(https://www.researchgate.net/publication/331397104_FickleNet_Weakly_and_Semi-supervised_Semantic_Image_Segmentationusing_Stochastic_Inference)
直接擦除
Hide-and-Seek :Hide-and-Seek: A Data Augmentation Technique for Weakly-Supervised Localization and Beyond(https://openaccess.thecvf.com/content_ICCV_2017/papers/Singh_Hide-And-Seek_Forcing_a_ICCV_2017_paper.pdf)
Random Erasing:Random erasing data augmentation(https://arxiv.org/pdf/1708.04896v2.pdf)
Cutout: Improved Regularization of Convolutional Neural Networks with Cutout(https://arxiv.org/abs/1708.04552v2)
Grid Mask: Grid Mask Data Augmentation(https://arxiv.org/abs/2001.04086v2)
核心解讀:這四種做法本質上是一樣的,也比較簡單,所以放到一起說。不過實現的方式有一些差別,看圖就?眼明?了! 核?思想都是去掉?些區域,使得CNN只?其他區域也可以識別出物體,這樣CNN可以使?圖像的全局信息?不是僅由?些?特征組成的局部信息來識別物體。另外,通過模擬遮擋,可以提?模型的性能和泛化能?。關于填充什么顏色,也有一定的講究。暴力填黑會影響數據的分布,例如BN的參數方面,效果可能不好。因此可以選擇填充數據集的均值。當然也可以填充隨機噪聲。此類方法可以作為如random crop、flip等通用數據增強方法的一個補充,適用于任何CNN任務當中。個?看法:
hide操作肯定不能把整個前景全都隱藏起來,隱藏?格的??或密度是?個超參。
完全隨機,沒有任何?層信息指導的?式是低效,?且不能保證?絡總能發現新對象區域。
??標檢測要慎?,或者說要提前設計好,不能把整個目標都擦數掉。這樣會有引入一些噪聲的風險。
正如Hide-and-Seek 中實驗效果,該方法是可以提升CAM質量和網絡性能的。如下:
AE-PSL
文章標題:Object Region Mining with Adversarial Erasing: A Simple Classifification to Semantic Segmentation Approach(https://arxiv.org/pdf/1703.08448.pdf)
一作解讀:顏水成和馮佳時團隊一作詳解CVPR錄用論文:基于對抗擦除的物體區域挖掘
https://www.leiphone.com/news/201709/pL7GwHcZmw9VylcZ.html
核心解讀:
?先利?原始圖像訓練?個分類?絡,并利??上?下的attention?法(CAM)來定位圖像中最具判別?的物體區域。然后,將挖掘出的區域從原始圖?中擦除,并將擦除后的圖像繼續訓練另?個分類?絡來定位其它的物體區域。重復此過程,直到?絡在被擦除的訓練圖像上不能很好地收斂。最后將被擦除的區域合并起來作為挖掘出的物體區域。
基于VGG16訓練圖像的分類?絡,將最后兩個全連接層替換為卷積層,CAM被?來定位標簽相關區域。在?成的location map(H)中,屬于前20%最?值的像素點被擦除。具體的擦除?式是將對應的像素點的值設置為所有訓練集圖?的像素的平均值。作者發現在實施第四次擦除后,?絡訓練收斂后的 loss值會有較?提升。主要原因在于?部分圖?中的物體的區域已經被擦除,這種情況下?量的背景區域也有可能被引?。因此只合并了前三次擦除的區域作為圖?中的物體區域。
另外,本文的第二部分是使用提升好的CAM作為偽標簽進行弱監督語義分割,不再本次討論范圍。缺點: 1,擦除動作論?試出來需要3次,但是不同數據集需要嘗試設定這個參數;對于我們缺陷數據,?部分都是經過?次擦除就可以掩蓋掉全部的缺陷特征;2,對于只需要提?CAM的場景,擦除動作引?的噪聲很難克服;
ACoL
文章標題:Adversarial Complementary Learning for Weakly Supervised Object Localization
https://openaccess.thecvf.com/content_cvpr_2018/papers/Zhang_Adversarial_Complementary_Learning_CVPR_2018_paper.pdf
核心解讀:
又被稱為對抗互補擦除。具體流程可以通過上圖解釋,即現在我們有分類器A和B,先訓練A分類,然后找出對應的類別的feature-map,然后在訓練B過程中把這部分feature-map擦除(0代替),因為有監督訓練B,因此B可以再學到該類別的其他區域(?如圖中,A學習到的?的頭和后腿,B學習到?的前腳,兩個區域互補)。最終A和B兩個學習的并起來就是完整的?標。最后融合的方式是pixel-wise的方式。
擦除的偽代碼:
def erase_feature_maps(self, atten_map_normed, feature_maps, threshold):if len(atten_map_normed.size())>3:atten_map_normed = torch.squeeze(atten_map_normed)atten_shape = atten_map_normed.size()pos = torch.ge(atten_map_normed, threshold)mask = torch.ones(atten_shape).cuda()mask[pos.data] = 0.0 # 填0擦除mask = torch.unsqueeze(mask, dim=1)#eraseerased_feature_maps = feature_maps * Variable(mask)return erased_feature_maps實驗效果上,比CAM cover的更全一點。
SPG
文章標題:Self-produced Guidance for Weakly-supervised Object Localization
https://arxiv.org/pdf/1807.08902v1.pdf
論?認為,分類CAM還是可以分出前景和背景的,雖然前景、背景概率較?的像素可能不會覆蓋整個?標物體、背景,它們仍然提供重要的線索?;诖?#xff0c;論?利?這些可靠的前景、背景種?作為監督,以?勵感知前景物體和背景分布的?絡區域。具體做法為:給定?張圖?,先根據分類?絡?成attention maps,然后根據attention maps的置信度將其分成 object、background和undefined regions三部分Seed。
ACoL(作者也是他)?法的問題是,忽略了像素之間的關聯性。因為有關聯的像素之間往往共享類似的表征,所以?些reliable前景/背景區域可以通過這些seeds來發現。?中使?了?種top down機制,使??層的輸出作為底層的監督來學習物體的位置信息。SPG Masks {0,1,255}是根據以下公式產?的:
實驗效果:
GAIN
文章標題:Tell Me Where to Look: Guided Attention Inference Network
https://arxiv.org/abs/1802.10171
GAIN的作者發現了?個問題,那就是在識別某些物體的時候,?絡容易會將“注意?CAM”放在和所要識別的物體相關的東西上,?不會將“注意?”放在物體本?上。如圖所?,可以看出,?絡在識別船的時候,卻把“注意?”放在了??上。
針對于本問題,作者提出了?種新的訓練?式,通過在最?化原圖像識別損失函數的同時來最?化遮擋住待識別物體的圖像的識別分數來訓練整個?絡,訓練后的?絡能夠更好的將“注意?”放在待識別的物體上
該結構可?持分類標簽監督或語義監督或?者都有,其中語義監督可以為bbox形狀的mask。該機制 work的原因猜測是利?了image net的預訓練權重,能保證?絡剛開始就能預測?較靠譜的attention map。該map通過grad-cam獲取,是在線可訓練的。然后利?注意?圖對原始圖?進?"擦除",擦除?式如下:
其中c為類別,I為原始圖?,T()為?值化操作,乘的?式為pixel-wise相乘。?值化利?可導?值化的操作,σ為閾值:
這?利?可導?值化的原因是,原圖-前向-擦除圖-前向是?個完整的前向過程,既后??次前向后更新梯度的過程也會優化前??次過程。整個訓練的?的是:原始圖?盡量獲取更?的類別得分, "擦除"動作盡量將有?的特征掩蓋掉,所以擦除圖?盡量獲取更低的類別得分。當然,使用了額外的語義map,CAM效果肯定會特別好,主要是一個思路吧。
SeeNet
文章標題:Self-Erasing Network for Integral Object Attention
https://arxiv.org/abs/1810.09821
?章認為,對抗擦除的?式,注意?區域隨著訓練持續的迭代,將逐漸擴展到??標區域,這將顯著降低注意?map的質量,也很難確定什么時候訓練該停?。本?利?CAM?成三元mask,在featuremap上進?信息?擦除。
利?雙閾值的?法獲取Ternary Mask:三元mask,the internal“attention zone”, the external “background zone”, and the middle “potential zone”。
SA:initial attention ;
SB:擦除策略1:擦除背景區域, 并確保潛在區域被挖掘, 把TA的?負值設置為1;
SC:擦除策略2:避免attention到背景區域。將TA設置為背景為1,其余為0;
整個步驟就是:
利?CAM算法,得到初始的attention map A ;
根據閾值h(A最?值的0.7)和l(A最?值的0.05),將A閾值化為?個三元矩陣T,其中?于l的為-1,?于h的為0,在l和h之間的為1(為可能包含物體的區域);
根據輸?的特征圖F和得到的三元矩陣T,閾值化,得到erase后的特征,對其分類;
根據T,得到?個?元矩陣,其中背景區域為1,前景區域為0,對背景特征分類,使其不屬于任意類別;
最終map獲取的?式:丟棄SC,把SA和SB進?融合,另外還?到Hflip進?多次融合,下圖對應b是本文效果。
ADL
文章標題:Attention-based Dropout Layer for Weakly Supervised Object Localization
https://arxiv.org/abs/1908.10028
思路比較簡單,結合空間注意?和特征擦除操作,在每?層卷積上插?該模塊,沒有可學習的參數。訓練過程,每次forward, 都會隨機選擇使?importance map 或 drop mask作?到特征圖上;測試過程,不使?該模塊。有兩個超參需要設置, 獲取drop mask的閾值,以及隨機選擇的概率;閾值?以控制只是擦除明顯,容易判別的特征。隨機選擇的?式防?最明顯特征全部被擦除導致?絡confuse。
Dropblock
文章標題:DropBlock: A regularization method for convolutional networks
https://arxiv.org/pdf/1810.12890.pdf
b圖表示了隨機dropout激活單元,但是這樣dropout后,網絡還會從drouout掉的激活單元附近學習到同樣的信息。c圖表示本文的DropBlock,通過dropout掉一部分相鄰的整片的區域(比如頭和腳),網絡就會去注重學習狗別的部位的特征,來實現正確分類,從而表現出更好的泛化能力。整體流程:
FickleNet
文章標題:FickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference
https://arxiv.org/abs/1902.10421
?章認為,之前的圖像級擦除和特征圖的擦除,?般必須有第?個分類器,?第?個分類器僅有次優性能。另外,具有判別?的特征被刪除會混淆第?個分類器,?第?個分類器可能沒有得到正確的訓練。?區域增?的?法,會?較依賴初始CAM種?的質量,?且很難增?到?最具判別的區域。
FickleNet通?CNN特征圖上的各種定位組合。它隨機選擇隱藏單元,然后使?它們獲得圖像分類的激活分數。隱含地學習了特征映射中每個位置的?致性,從?產?了?個定位圖, 它可以識別對象的其他部分。通過選擇隨機隱藏單元對從單個?絡獲得整體效果,這意味著從單個圖像?成各種定位圖。該?法不需要任何額外的訓練步驟,只需在標準卷積神經?絡中添加?個簡單的層。選擇所有隱藏單元,將?成平滑效果作為背景和前景?起激活。隨機選擇隱藏單位可以提供更靈活的組合,可以更清楚地對應對象的部分或背景。與傳統dropout最?的區別是,傳統dropout只在訓練中使?,?本??法在測試中也會?。主要步驟:
Stochastic hidden unit selection: 它使?隨機選擇的隱藏單元,多分類任務訓練。
Training Classifier: 然后?成訓練圖像的定位圖。
Inference CAMs: 最后獲取CAM。
后記
希望你能舉一反三,從本文得到一些思路,應用到實際的需求當中。
◎作者檔案
皮特潘,致力于AI落地而上下求索
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站qq群704220115,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【深度学习】擦除:提升 CNN 特征可视化的 3 种重要手段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统之家win11旗舰版32位镜像v20
- 下一篇: 【机器学习基础】一文归纳Python特征