MobileNets
MobileNets 總體來說是一個減少參數(shù)計算量的一個網(wǎng)絡(luò)架構(gòu)窍蓝。并且提出了兩個參數(shù)進(jìn)行網(wǎng)絡(luò)模型參數(shù)的縮減(其實就是兩個比例來進(jìn)行計算量的縮放,在【0,1】之間)
MobileNets 的網(wǎng)絡(luò)參數(shù)縮減袋狞,其實可以將卷積分成兩個步驟如下圖所示:
簡單來說,原先我們的卷積核是一個 K * K * M (channel) 的一步卷積拆分成兩步走,第一我們設(shè)計一個 K * K * 1 (channel) 的卷積核苟鸯,對當(dāng)前深度的 feature map 進(jìn)行卷積操作同蜻,那么我們會生成一個 w * h 的 feature map (假設(shè)卷積不進(jìn)行下采樣)。然后早处,這樣的卷積核我們設(shè)計 M 個湾蔓,相當(dāng)于每一個卷積核只對應(yīng)其深度的平面進(jìn)行卷積。這之后出來的 feature map是缺失通道深度上的關(guān)聯(lián)信息砌梆。因為需要補上其深度上的相聯(lián)關(guān)系默责,所以需要在深度上進(jìn)行一次非線性擬合。所以第二步咸包,我們做 N 個 11M 的卷積核去進(jìn)行卷積桃序,然后得到深度信息的疊加擬合。
如下圖所示:
SqueezeNet
SqueezeNet 設(shè)計的本身就不是為了識別達(dá)到高精度的識別烂瘫,而是希望簡化網(wǎng)絡(luò)的復(fù)雜程度媒熊。主要通過降低CNN模型參數(shù)的方式來進(jìn)行模型縮小。
SqueezeNet 的核心思想其實可以非常的簡單坟比,就是利用多次卷積的感受野來代替一次的卷積操作芦鳍。
簡單來說,對于一個 55 的卷積操作葛账, 其實可以使用兩個 33 的卷積核進(jìn)行替代柠衅。通過增大深度與計算量的方式,達(dá)到模型的縮小注竿。
但是茄茁,我們通過實驗還發(fā)現(xiàn)了一個問題,為什么在增加深度和計算量的同時巩割,它的速度并沒有減慢呢裙顽?
因為對于一個卷積來說,大量的參數(shù)讀取計算宣谈,需要的內(nèi)存消耗時間遠(yuǎn)遠(yuǎn)大于計算的時間愈犹。所以不考慮網(wǎng)絡(luò)本身架構(gòu)的優(yōu)劣性,深層網(wǎng)絡(luò)之所以如此成功闻丑,就是因為把參數(shù)讀取的代價轉(zhuǎn)移到計算量上了漩怎,考慮的目前人類計算機的發(fā)展水平,計算耗時還是要遠(yuǎn)遠(yuǎn)小于數(shù)據(jù)存取耗時的嗦嗡,這也是“多層小卷積核”策略成功的根源
【參考資料】: