1. 程式人生 > >OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

從layer-5 pre-pool到layer-5 post-pool:這一步的實現是通過池化大小為(3,3)進行池化,然後△x=0、1、2,△y=0、1、2,這樣我們可以得到對於每一張特徵圖,我們都可以得到9幅池化結果圖。以上面表格中的sacle1為例,layer-5 pre-pool大小是17*17,經過池化後,大小就是5*5,然後有3*3張結果圖(不同offset得到的結果)。  從layer-5 post-pool到classifier map(pre-reshape):我們知道在訓練的時候,從卷積層到全連線層,輸入的大小是4096*(5*5),然後進行全連線,得到4096*(1*1)。但是我們現在輸入的是各種不同大小的圖片,因此接著就採用FCN的招式,讓網路繼續前向傳導。我們從layer-5 post-pool到第六層的時候,如果把全連線看成是卷積,那麼其實這個時候卷積核的大小為5*5,因為訓練的時候,layer-5 post-pool得到的結果是5*5。因此在預測分類的時候,假設layer-5 post-pool 得到的是7*9(上面表格中的scale 3),經過5*5的卷積核進行卷積後,那麼它將得到(7-5+1)*(9-5+1)=3*5的輸出。  然後我們就只需要在後面把它們拉成一維向量擺放就ok了,這樣在一個尺度上,我們可以得到一個C*N個預測值矩陣,每一列就表示圖片屬於某一類別的概率值,然後我們求取每一列的最大值,作為本尺度的每個類別的概率值。  最後我們一共用了6種不同尺度(文獻好像用了12張,另外6張是水平翻轉的圖片),做了預測,然後把這六種尺度結果再做一個平均,作為最最後的結果。  OK,至此overfeat圖片分類的任務就結束了,從上面過程,我們可以看到整個網路分成兩部分:layer 1~5這五層我們把它稱之為特徵提取層;layer 6~output我們把它們稱之為分類層。