弱監督學習:WILDCAT
WILDCAT: Weakly Supervised Learning of Deep ConvNets for Image Classification, Pointwise Localization and Segmentation,CVPR2017
本文提出了一種弱監督學習架構,在一些數據集中分類效果比Resnet-101平均高約5-10個點。在我的模糊幀識別項目中,由於幀的模糊通常是局部的運動模糊,acc提升了5個點,從74提升到79,baseline是通用的resnet50和densnet121等。
網路的整體結構如下:
整個網路由多個模塊串聯而成。首先,圖像經過基於ResNet-101的全卷積網路,然後經過WSL transfer layer,這個層的操作是使用1*1卷積,輸入是 ,記為 ,輸出為 ,其中M是一個超參數,C為類別數。
接下來,對於每個類的feature map,分別進行池化,叫做class-wise pooling,這裡原文進行了平均值池化。接下來,對C個每類的特徵圖,進行spatial pooling,下面仔細講。這些結構如下:
spatial pooling是本文的關鍵。對於每個類的輸入feature map,每個區域的輸入為z,考慮到最大的k+個激活值,和最小的k-個激活值(乘上一個係數α),共同對類c的score有貢獻。
很多已有的池化,都是spatial pooling的特殊形式,如下:
在一些數據集上,WILDCAT取得了比Resnet-101高平均約5-10個點的效果,也超越了一些已有的弱監督學習演算法,如DeepMIL
α在本文中有重要的作用,適當的值可以取得最好的效果,這是由於適度地考慮了最小激活值的幾個區域的作用,如圖
適當的M值,可以取得最好的效果。M值過小,則每個類的特徵數太少,M值過大,導致過擬合。
WILDCAT演算法的關鍵,在於spatial pooling時,選取適當的區域貢獻結果。
durandtibo/wildcat.pytorch推薦閱讀: