亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

縱覽輕量化卷積神經(jīng)網(wǎng)絡(luò):SqueezeNet、MobileNe

yhaolpz / 2096人閱讀

摘要:目錄一引言二輕量化模型三網(wǎng)絡(luò)對(duì)比一引言自年以來(lái),卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)稱(chēng)在圖像分類(lèi)圖像分割目標(biāo)檢測(cè)等領(lǐng)域獲得廣泛應(yīng)用。創(chuàng)新點(diǎn)利用和這兩個(gè)操作來(lái)設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)模型以減少模型使用的參數(shù)數(shù)量。

本文就近年提出的四個(gè)輕量化模型進(jìn)行學(xué)習(xí)和對(duì)比,四個(gè)模型分別是:SqueezeNet、MobileNet、ShuffleNet、Xception。

目錄

一、引言?

二、輕量化模型?

? ? 2.1 SqueezeNet

? ? 2.2 MobileNet

? ? 2.3 ShuffleNet

? ? 2.4 Xception

三、網(wǎng)絡(luò)對(duì)比?

一、引言

自 2012 年 AlexNet 以來(lái),卷積神經(jīng)網(wǎng)絡(luò)(簡(jiǎn)稱(chēng) CNN)在圖像分類(lèi)、圖像分割、目標(biāo)檢測(cè)等領(lǐng)域獲得廣泛應(yīng)用。隨著性能要求越來(lái)越高,AlexNet 已經(jīng)無(wú)法滿(mǎn)足大家的需求,于是乎各路大牛紛紛提出性能更優(yōu)越的 CNN 網(wǎng)絡(luò),如 VGG、GoogLeNet、ResNet、DenseNet 等。由于神經(jīng)網(wǎng)絡(luò)的性質(zhì),為了獲得更好的性能,網(wǎng)絡(luò)層數(shù)不斷增加,從 7 層 AlexNet 到 16 層 VGG,再?gòu)?16 層 VGG 到 GoogLeNet 的 22 層,再到 152 層 ResNet,更有上千層的 ResNet 和 DenseNet。雖然網(wǎng)絡(luò)性能得到了提高,但隨之而來(lái)的就是效率問(wèn)題。

?

效率問(wèn)題主要是模型的存儲(chǔ)問(wèn)題和模型進(jìn)行預(yù)測(cè)的速度問(wèn)題(以下簡(jiǎn)稱(chēng)速度問(wèn)題)

第一,存儲(chǔ)問(wèn)題。數(shù)百層網(wǎng)絡(luò)有著大量的權(quán)值參數(shù),保存大量權(quán)值參數(shù)對(duì)設(shè)備的內(nèi)存要求很高;

第二,速度問(wèn)題。在實(shí)際應(yīng)用中,往往是毫秒級(jí)別,為了達(dá)到實(shí)際應(yīng)用標(biāo)準(zhǔn),要么提高處理器性能(看英特爾的提高速度就知道了,這點(diǎn)暫時(shí)不指望),要么就減少計(jì)算量。

?

只有解決 CNN 效率問(wèn)題,才能讓 CNN 走出實(shí)驗(yàn)室,更廣泛的應(yīng)用于移動(dòng)端。對(duì)于效率問(wèn)題,通常的方法是進(jìn)行模型壓縮(Model Compression),即在已經(jīng)訓(xùn)練好的模型上進(jìn)行壓縮,使得網(wǎng)絡(luò)攜帶更少的網(wǎng)絡(luò)參數(shù),從而解決內(nèi)存問(wèn)題,同時(shí)可以解決速度問(wèn)題。

相比于在已經(jīng)訓(xùn)練好的模型上進(jìn)行處理,輕量化模型模型設(shè)計(jì)則是另辟蹊徑。輕量化模型設(shè)計(jì)主要思想在于設(shè)計(jì)更高效的「網(wǎng)絡(luò)計(jì)算方式」(主要針對(duì)卷積方式),從而使網(wǎng)絡(luò)參數(shù)減少的同時(shí),不損失網(wǎng)絡(luò)性能。

?

本文就近年提出的四個(gè)輕量化模型進(jìn)行學(xué)習(xí)和對(duì)比,四個(gè)模型分別是:SqueezeNet、MobileNet、ShuffleNet、Xception。

(PS: 以上四種均不是模型壓縮方法?。。?/p>

?

以下是四個(gè)模型的作者團(tuán)隊(duì)及發(fā)表時(shí)間

其中 ShuffleNet 論文中引用了 SqueezeNet;Xception 論文中引用了 MobileNet

二、輕量化模型

由于這四種輕量化模型僅是在卷積方式上做了改變,因此本文僅對(duì)輕量化模型的創(chuàng)新點(diǎn)進(jìn)行詳細(xì)描述,對(duì)實(shí)驗(yàn)以及實(shí)現(xiàn)的細(xì)節(jié)感興趣的朋友,請(qǐng)到論文中詳細(xì)閱讀。

2.1 SqueezeNet

SqueezeNet 由伯克利&斯坦福的研究人員合作發(fā)表于 ICLR-2017,論文標(biāo)題:

《SqueezeNet:AlexNet-level accuracy with 50x fewer parameters and <0.5MB》

?

命名:

從名字——SqueezeNet 就知道,本文的新意是 squeeze,squeeze 在 SqueezeNet 中表示一個(gè) squeeze 層,該層采用 1*1 卷積核對(duì)上一層 feature map 進(jìn)行卷積,主要目的是減少 feature map 的維數(shù)(維數(shù)即通道數(shù),就是一個(gè)立方體的 feature map,切成一片一片的,一共有幾片)。

創(chuàng)新點(diǎn):

1. 采用不同于傳統(tǒng)的卷積方式,提出 fire module;fire module 包含兩部分:squeeze 層+expand 層

創(chuàng)新點(diǎn)與 inception 系列的思想非常接近!首先 squeeze 層,就是 1*1 卷積,其卷積核數(shù)要少于上一層 feature map 數(shù),這個(gè)操作從 inception 系列開(kāi)始就有了,并美其名曰壓縮,個(gè)人覺(jué)得「壓縮」更為妥當(dāng)。

Expand 層分別用 1*1 和 3*3 卷積,然后 concat,這個(gè)操作在 inception 系列里面也有。

SqueezeNet 的核心在于 Fire module,F(xiàn)ire module 由兩層構(gòu)成,分別是 squeeze 層+expand 層,如下圖 1 所示,squeeze 層是一個(gè) 1*1 卷積核的卷積層,expand 層是 1*1 和 3*3 卷積核的卷積層,expand 層中,把 1*1 和 3*3 得到的 feature map 進(jìn)行 concat。

具體操作情況如下圖所示:

Fire module 輸入的 feature map 為 H*W*M 的,輸出的 feature map 為 H*M*(e1+e3),可以看到 feature map 的分辨率是不變的,變的僅是維數(shù),也就是通道數(shù),這一點(diǎn)和 VGG 的思想一致。

首先,H*W*M 的 feature map 經(jīng)過(guò) Squeeze 層,得到 S1 個(gè) feature map,這里的 S1 均是小于 M 的,以達(dá)到「壓縮」的目的,詳細(xì)思想可參考 Google 的 Inception 系列。

?

其次,H*W*S1 的特征圖輸入到 Expand 層,分別經(jīng)過(guò) 1*1 卷積層和 3*3 卷積層進(jìn)行卷積,再將結(jié)果進(jìn)行 concat,得到 Fire module 的輸出,為 H*M*(e1+e3) 的 feature map。

?

fire 模塊有三個(gè)可調(diào)參數(shù):S1,e1,e3,分別代表卷積核的個(gè)數(shù),同時(shí)也表示對(duì)應(yīng)輸出 feature map 的維數(shù),在文中提出的 SqueezeNet 結(jié)構(gòu)中,e1=e3=4s1。

?

講完 SqueezeNet 的核心——Fire module,看看 SqueezeNet 的網(wǎng)絡(luò)結(jié)構(gòu),如下圖所示:

?

網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)思想,同樣與 VGG 的類(lèi)似,堆疊的使用卷積操作,只不過(guò)這里堆疊的使用本文提出的 Fire module(圖中用紅框部分)

看看 Squezeenet 的參數(shù)數(shù)量以及性能:

在這里可以看到,論文題目中提到的小于 0.5M,是采用了 Deep Compression 進(jìn)行模型壓縮之后的結(jié)果?。?/p>

?

看了上圖再回頭看一看論文題目:?

SqueezeNet :AlexNet-level accuracy with 50x fewer parameters and <0.5MB

標(biāo)!題!黨!SqueezeNet < 0.5MB, 這個(gè)是用了別的模型壓縮技術(shù)獲得的,很容易讓人誤以為 SqueezeNet 可以壓縮模型??!

?

SqueezeNet 小結(jié):

1 Fire module 與 GoogLeNet 思想類(lèi)似,采用 1*1 卷積對(duì) feature map 的維數(shù)進(jìn)行「壓縮」,從而達(dá)到減少權(quán)值參數(shù)的目的;

2 采用與 VGG 類(lèi)似的思想——堆疊的使用卷積,這里堆疊的使用 Fire module

?

SqueezeNet 與 GoogLeNet 和 VGG 的關(guān)系很大!

2.2 MobileNet

MobileNet 由 Google 團(tuán)隊(duì)提出,發(fā)表于 CVPR-2017,論文標(biāo)題:

《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

?

命名:

MobileNet 的命名是從它的應(yīng)用場(chǎng)景考慮的,顧名思義就是能夠在移動(dòng)端使用的網(wǎng)絡(luò)模型。

?

創(chuàng)新點(diǎn):

1. 采用名為 depth-wise separable convolution 的卷積方式代替?zhèn)鹘y(tǒng)卷積方式,以達(dá)到減少網(wǎng)絡(luò)權(quán)值參數(shù)的目的。

?

通過(guò)采用 depth-wise convolution 的卷積方式,達(dá)到:1. 減少參數(shù)數(shù)量 2. 提升運(yùn)算速度。(這兩點(diǎn)是要區(qū)別開(kāi)的,參數(shù)少的不一定運(yùn)算速度快!還要看計(jì)算方式?。?/p>

?

depth-wise convolution 不是 MobileNet 提出來(lái)的,也是借鑒,文中給的參考文獻(xiàn)是 2014 年的博士論文——《L. Sifre. Rigid-motion scattering for image classification. hD thesis, Ph. D. thesis, 2014》

?

depth-wise convolution 和 group convolution 是類(lèi)似的,depth-wise convolution 是一個(gè)卷積核負(fù)責(zé)一部分 feature map,每個(gè) feature map 只被一個(gè)卷積核卷積;group convolution 是一組卷積核負(fù)責(zé)一組 feature map,每組 feature map 只被一組卷積核卷積。Depth-wise convolution 可以看成是特殊的 group convolution,即每一個(gè)通道是一組。

MobileNets 精華在于卷積方式——depth-wise separable convolution;采用 depth-wise separable convolution,會(huì)涉及兩個(gè)超參:Width Multiplier 和 Resolution Multiplier 這兩個(gè)超參只是方便于設(shè)置要網(wǎng)絡(luò)要設(shè)計(jì)為多小,方便于量化模型大小。

?

MobileNet 將標(biāo)準(zhǔn)卷積分成兩步:

第一步 Depth-wise convolution, 即逐通道的卷積,一個(gè)卷積核負(fù)責(zé)一個(gè)通道,一個(gè)通道只被一個(gè)卷積核「濾波」;

第二步,Pointwise convolution,將 depth-wise convolution 得到的 feature map 再「串」起來(lái),注意這個(gè)「串」是很重要的?!复棺骱谓猓繛槭裁催€需要 pointwise convolution?作者說(shuō):However it only filters input channels, it does not combine them to create new features. Soan additional layer that computes a linear combination ofthe output of depth-wise convolution via 1 × 1 convolutionis needed in order to generate these new features。

?

從另外一個(gè)角度考慮,其實(shí)就是:輸出的每一個(gè) feature map 要包含輸入層所有 feature map 的信息。然而僅采用 depth-wise convolution,是沒(méi)辦法做到這點(diǎn),因此需要 pointwise convolution 的輔助。

?

「輸出的每一個(gè) feature map 要包含輸入層所有 feature map 的信息」這個(gè)是所有采用 depth-wise convolution 操作的網(wǎng)絡(luò)都要去解決的問(wèn)題,ShuffleNet 中的命名就和這個(gè)有關(guān)!詳細(xì)請(qǐng)看 2.3

?

Standard convolution、depth-wise convolution 和 pointwise convolution 示意圖如下:

?

?

其中輸入的 feature map 有 M 個(gè),輸出的 feature map 有 N 個(gè)。

對(duì) Standard convolution 而言,是采用 N 個(gè)大小為 DK*DK 的卷積核進(jìn)行操作(注意卷積核大小是 DK*DK, DK*DK*M 是具體運(yùn)算時(shí)一個(gè)卷積核的大?。。?/p>

?

而 depth-wise convolution + pointwise convolution 需要的卷積核呢?

?

Depth-wise convolution :一個(gè)卷積核負(fù)責(zé)一個(gè)通道,一個(gè)通道只被一個(gè)卷積核卷積;則這里有 M 個(gè) DK*DK 的卷積核;?

?

Pointwise convolution:為了達(dá)到輸出 N 個(gè) feature map 的操作,所以采用 N 個(gè) 1*1 的卷積核進(jìn)行卷積,這里的卷積方式和傳統(tǒng)的卷積方式是一樣的,只不過(guò)采用了 1*1 的卷積核;其目的就是讓新的每一個(gè) feature map 包含有上一層各個(gè) feature map 的信息!在此理解為將 depth-wise convolution 的輸出進(jìn)行「串」起來(lái)。

下面舉例講解 Standard convolution、depth-wise convolution 和 pointwise convolution。

假設(shè)輸入的 feature map 是兩個(gè) 5*5 的,即 5*5*2;輸出 feature map 數(shù)量為 3,大小是 3*3(因?yàn)檫@里采用 3*3 卷積核)即 3*3*3。

?

標(biāo)準(zhǔn)卷積是將一個(gè)卷積核(3*3)復(fù)制 M 份(M=2), 讓二維的卷積核(面包片)拓展到與輸入 feature map 一樣的面包塊形狀。

Standard 過(guò)程如下圖,X 表示卷積,+表示對(duì)應(yīng)像素點(diǎn)相加,可以看到對(duì)于 O1 來(lái)說(shuō),其與輸入的每一個(gè) feature map 都「發(fā)生關(guān)系」,包含輸入的各個(gè) feature map 的信息。

?

Depth-wise 過(guò)程如下圖,可以看到 depth-wise convolution 得出的兩個(gè) feature map——fd1 和 fd2 分別只與 i1 和 i2「發(fā)生關(guān)系」,這就導(dǎo)致違背上面所承認(rèn)的觀點(diǎn)「輸出的每一個(gè) feature map 要包含輸入層所有 feature map 的信息」,因而要引入 pointwise convolution。

?

那么計(jì)算量減少了多少呢?通過(guò)如下公式計(jì)算:?

?

其中 DK 為標(biāo)準(zhǔn)卷積核大小,M 是輸入 feature map 通道數(shù),DF 為輸入 feature map 大小,N 是輸出 feature map 大小。本例中,DK=3,M=2,DF=5,N=3,參數(shù)的減少量主要就與卷積核大小 DK 有關(guān)。在本文 MobileNet 的卷積核采用 DK=3,則大約減少了 8~9 倍計(jì)算量。

?

看看 MobileNet 的網(wǎng)絡(luò)結(jié)構(gòu),MobileNet 共 28 層,可以發(fā)現(xiàn)這里下采樣的方式?jīng)]有采用池化層,而是利用 depth-wise convolution 的時(shí)候?qū)⒉介L(zhǎng)設(shè)置為 2,達(dá)到下采樣的目的。

?

1.0 MobileNet-224 與 GoogLeNet 及 VGG-16 的對(duì)比:

?

可以發(fā)現(xiàn),相較于 GoogLeNet,雖然參數(shù)差不多,都是一個(gè)量級(jí)的,但是在運(yùn)算量上卻小于 GoogLeNet 一個(gè)量級(jí),這就得益于 depth-wise convolution!

?

MobileNet 小結(jié):

1. 核心思想是采用 depth-wise convolution 操作,在相同的權(quán)值參數(shù)數(shù)量的情況下,相較于 standard convolution 操作,可以減少數(shù)倍的計(jì)算量,從而達(dá)到提升網(wǎng)絡(luò)運(yùn)算速度的目的。

2. depth-wise convolution 的思想非首創(chuàng),借鑒于 2014 年一篇博士論文:《L. Sifre. Rigid-motion scattering for image classification. hD thesis, Ph. D. thesis, 2014》

3. 采用 depth-wise convolution 會(huì)有一個(gè)問(wèn)題,就是導(dǎo)致「信息流通不暢」,即輸出的 feature map 僅包含輸入的 feature map 的一部分,在這里,MobileNet 采用了 point-wise convolution 解決這個(gè)問(wèn)題。在后來(lái),ShuffleNet 采用同樣的思想對(duì)網(wǎng)絡(luò)進(jìn)行改進(jìn),只不過(guò)把 point-wise convolution 換成了 channel shuffle,然后給網(wǎng)絡(luò)美其名曰 ShuffleNet,欲知后事如何,請(qǐng)看 2.3 ShuffleNet

2.3 ShuffleNet

ShuffleNet 是 Face++團(tuán)隊(duì)提出的,與 MobileNet 一樣,發(fā)表于 CVPR-2017,但晚于 MobileNet 兩個(gè)月才在 arXiv 上公開(kāi)。論文標(biāo)題:

《ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices》

?

命名:

一看名字 ShuffleNet,就知道 shuffle 是本文的重點(diǎn),那么 shuffle 是什么?為什么要進(jìn)行 shuffle?

?

shuffle 具體來(lái)說(shuō)是 channel shuffle,是將各部分的 feature map 的 channel 進(jìn)行有序的打亂,構(gòu)成新的 feature map,以解決 group convolution 帶來(lái)的「信息流通不暢」問(wèn)題。(MobileNet 是用 point-wise convolution 解決的這個(gè)問(wèn)題)

因此可知道 shuffle 不是什么網(wǎng)絡(luò)都需要用的,是有一個(gè)前提,就是采用了 group convolution,才有可能需要 shuffle!!為什么說(shuō)是有可能呢?因?yàn)榭梢杂?point-wise convolution 來(lái)解決這個(gè)問(wèn)題。

?

創(chuàng)新點(diǎn):

1. 利用 group convolution 和 channel shuffle 這兩個(gè)操作來(lái)設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)模型, 以減少模型使用的參數(shù)數(shù)量。

?

其中 group convolutiosn 非原創(chuàng),而 channel shuffle 是原創(chuàng)。channel shuffle 因 group convolution 而起,正如論文中 3.1 標(biāo)題: . Channel Shuffle for Group Convolution;?

?

采用 group convolution 會(huì)導(dǎo)致信息流通不當(dāng),因此提出 channel shuffle,所以 channel shuffle 是有前提的,使用的話要注意!

?

對(duì)比一下 MobileNet,采用 shuffle 替換掉 1*1 卷積,這樣可以減少權(quán)值參數(shù),而且是減少大量權(quán)值參數(shù),因?yàn)樵?MobileNet 中,1*1 卷積層有較多的卷積核,并且計(jì)算量巨大,MobileNet 每層的參數(shù)量和運(yùn)算量如下圖所示:

?

ShuffleNet 的創(chuàng)新點(diǎn)在于利用了 group convolution 和 channel shuffle,那么有必要看看 group convolution 和 channel shuffle。

?

Group convolution?

Group convolution 自 Alexnet 就有,當(dāng)時(shí)因?yàn)橛布拗贫捎梅纸M卷積;之后在 2016 年的 ResNeXt 中,表明采用 group convolution 可獲得高效的網(wǎng)絡(luò);再有 Xception 和 MobileNet 均采用 depth-wise convolution, 這些都是最近出來(lái)的一系列輕量化網(wǎng)絡(luò)模型。depth-wise convolution 具體操作可見(jiàn) 2.2 MobileNet 里邊有簡(jiǎn)介。

?

如下圖 (a) 所示, 為了提升模型效率,采用 group convolution,但會(huì)有一個(gè)副作用,即:「outputs from a certain channel are only derived from a small fraction of input channels.」

于是采用 channel shuffle 來(lái)改善各組間「信息流通不暢」問(wèn)題,如下圖 (b) 所示。

具體方法為:把各組的 channel 平均分為 g(下圖 g=3)份,然后依次序的重新構(gòu)成 feature map

Channel shuffle 的操作非常簡(jiǎn)單,接下來(lái)看看 ShuffleNet,ShuffleNet 借鑒了 Resnet 的思想,從基本的 resnet 的 bottleneck unit 逐步演變得到 ShuffleNet 的 bottleneck unit,然后堆疊的使用 ShuffleNet bottleneck unit 獲得 ShuffleNet;

?

下圖展示了 ShuffleNet unit 的演化過(guò)程?

圖 (a):是一個(gè)帶有 depth-wise convolution 的 bottleneck unit;?

圖 (b):作者在 (a) 的基礎(chǔ)上進(jìn)行變化,對(duì) 1*1 conv 換成 1*1 Gconv,并在第一個(gè) 1*1 Gconv 之后增加一個(gè) channel shuffle 操作;?

圖 (c): 在旁路增加了 AVG pool,目的是為了減小 feature map 的分辨率;因?yàn)榉直媛市×?,于是乎最后不采?Add,而是 concat,從而「彌補(bǔ)」了分辨率減小而帶來(lái)的信息損失。

文中提到兩次,對(duì)于小型網(wǎng)絡(luò),多多使用通道,會(huì)比較好。

「this is critical for small networks, as tiny networks usually have an insufficient number of channels to process the information」

所以,以后若涉及小型網(wǎng)絡(luò),可考慮如何提升通道使用效率

?

至于實(shí)驗(yàn)比較,并沒(méi)有給出模型參數(shù)量的大小比較,而是采用了 Complexity (MFLOPs) 指標(biāo),在相同的 Complexity (MFLOPs) 下,比較 ShuffleNet 和各個(gè)網(wǎng)絡(luò),還專(zhuān)門(mén)和 MobileNet 進(jìn)行對(duì)比,由于 ShuffleNet 相較于 MobileNet 少了 1*1 卷積層,所以效率大大提高了嘛,貼個(gè)對(duì)比圖隨意感受一下好了

?

ShuffleNet 小結(jié):

1. 與 MobileNet 一樣采用了 depth-wise convolution,但是針對(duì) depth-wise convolution 帶來(lái)的副作用——「信息流通不暢」,ShuffleNet 采用了一個(gè) channel shuffle 操作來(lái)解決。

2. 在網(wǎng)絡(luò)拓?fù)浞矫?,ShuffleNet 采用的是 resnet 的思想,而 mobielnet 采用的是 VGG 的思想,2.1 SqueezeNet 也是采用 VGG 的堆疊思想

2.4 Xception

Xception 并不是真正意義上的輕量化模型,只是其借鑒 depth-wise convolution,而 depth-wise convolution 又是上述幾個(gè)輕量化模型的關(guān)鍵點(diǎn),所以在此一并介紹,其思想非常值得借鑒。

?

Xception 是 Google 提出的,arXiv 的 V1 版本 于 2016 年 10 月公開(kāi)。論文標(biāo)題:

《Xception: Deep Learning with Depth-wise Separable Convolutions》

?

命名:

Xception 是基于 Inception-V3 的,而 X 表示 Extreme,為什么是 Extreme 呢?因?yàn)?Xception 做了一個(gè)加強(qiáng)的假設(shè),這個(gè)假設(shè)就是:?

we make the following hypothesis: that the mapping of cross-channels correlations and spatial correlations in the feature maps of convolutional neural networks can be entirely decoupled

?

創(chuàng)新點(diǎn):

1. 借鑒(非采用)depth-wise convolution 改進(jìn) Inception V3

?

既然是改進(jìn)了 Inception v3,那就得提一提關(guān)于 inception 的一下假設(shè)(思想)了。

「the fundamental hypothesis behind Inception is that cross-channel correlations and spatial correlations are sufficiently decoupled that it is preferable not to map them jointly」

簡(jiǎn)單理解就是說(shuō),卷積的時(shí)候要將通道的卷積與空間的卷積進(jìn)行分離,這樣會(huì)比較好。(沒(méi)有理論證明,只有實(shí)驗(yàn)證明,就當(dāng)它是定理,接受就好了,現(xiàn)在大多數(shù)神經(jīng)網(wǎng)絡(luò)的論文都這樣。

既然是在 Inception V3 上進(jìn)行改進(jìn)的,那么 Xception 是如何一步一步的從 Inception V3 演變而來(lái)。

?

下圖 1 是 Inception module,圖 2 是作者簡(jiǎn)化了的 inception module(就是只保留 1*1 的那條「路」,如果帶著 avg pool,后面怎么進(jìn)一步假設(shè)嘛~)?

假設(shè)出一個(gè)簡(jiǎn)化版 inception module 之后,再進(jìn)一步假設(shè),把第一部分的 3 個(gè) 1*1 卷積核統(tǒng)一起來(lái),變成一個(gè) 1*1 的,后面的 3 個(gè) 3*3 的分別「負(fù)責(zé)」一部分通道,如圖 3 所示; 最后提出「extreme」version of an Inception,module Xception 登場(chǎng),,先用 1*1 卷積核對(duì)各通道之間(cross-channel)進(jìn)行卷積,如圖 4 所示,

?

?

作者說(shuō)了,這種卷積方式和 depth-wise convolution 幾乎一樣。Depth-wise convolution 較早用于網(wǎng)絡(luò)設(shè)計(jì)是來(lái)自:Rigid-Motion Scatteringfor Image Classification,但是具體是哪一年提出,不得而知;至少 2012 年就有相關(guān)研究,再比如說(shuō) AlexNet,由于內(nèi)存原因,AlexNet 分成兩組卷積 ;想深入了解 Depth-wise convolution 的可以查閱本論文 2.Prior work,里面有詳細(xì)介紹。

?

Xception 是借鑒 Rigid-Motion Scatteringfor Image Classification 的 Depth-wise convolution,是因?yàn)?Xception 與原版的 Depth-wise convolution 有兩個(gè)不同之處?

第一個(gè):原版 Depth-wise convolution,先逐通道卷積,再 1*1 卷積; 而 Xception 是反過(guò)來(lái),先 1*1 卷積,再逐通道卷積;?

第二個(gè):原版 Depth-wise convolution 的兩個(gè)卷積之間是不帶激活函數(shù)的,而 Xception 在經(jīng)過(guò) 1*1 卷積之后會(huì)帶上一個(gè) Relu 的非線性激活函數(shù);

?

Xception 結(jié)構(gòu)如上圖所示,共計(jì) 36 層分為 Entry flow;Middle flow;Exit flow。。

Entry flow 包含 8 個(gè) conv;Middle flow 包含 3*8 =24 個(gè) conv;Exit flow 包含 4 個(gè) conv,所以 Xception 共計(jì) 36 層。

?

文中 Xception 實(shí)驗(yàn)部分是非常詳細(xì)的,實(shí)現(xiàn)細(xì)節(jié)可參見(jiàn)論文。

?

Xception 小結(jié):

Xception 是基于 Inception-V3,并結(jié)合了 depth-wise convolution,這樣做的好處是提高網(wǎng)絡(luò)效率,以及在同等參數(shù)量的情況下,在大規(guī)模數(shù)據(jù)集上,效果要優(yōu)于 Inception-V3。這也提供了另外一種「輕量化」的思路:在硬件資源給定的情況下,盡可能的增加網(wǎng)絡(luò)效率和性能,也可以理解為充分利用硬件資源。

三、網(wǎng)絡(luò)對(duì)比

本文簡(jiǎn)單介紹了四個(gè)輕量化網(wǎng)絡(luò)模型,分別是 SqueezeNet、 MobileNet、 ShuffleNet 和 Xception,前三個(gè)是真正意義上的輕量化網(wǎng)絡(luò),而 Xception 是為提升網(wǎng)絡(luò)效率,在同等參數(shù)數(shù)量條件下獲得更高的性能。

?

在此列出表格,對(duì)比四種網(wǎng)絡(luò)是如何達(dá)到網(wǎng)絡(luò)輕量化的。

實(shí)現(xiàn)輕量化技巧

這么一看就發(fā)現(xiàn),輕量化主要得益于 depth-wise convolution,因此大家可以考慮采用 depth-wise convolution 來(lái)設(shè)計(jì)自己的輕量化網(wǎng)絡(luò),但是要注意「信息流通不暢問(wèn)題」。

解決「信息流通不暢」的問(wèn)題,MobileNet 采用了 point-wise convolution,ShuffleNet 采用的是 channel shuffle。MobileNet 相較于 ShuffleNet 使用了更多的卷積,計(jì)算量和參數(shù)量上是劣勢(shì),但是增加了非線性層數(shù),理論上特征更抽象,更高級(jí)了;ShuffleNet 則省去 point-wise convolution,采用 channel shuffle,簡(jiǎn)單明了,省去卷積步驟,減少了參數(shù)量。

?

學(xué)習(xí)了幾個(gè)輕量化網(wǎng)絡(luò)的設(shè)計(jì)思想,可以看到,并沒(méi)有突破性的進(jìn)展,都是借鑒或直接使用前幾年的研究成果。希望廣大研究人員可以設(shè)計(jì)出更實(shí)在的輕量化網(wǎng)絡(luò)。

?

通過(guò)這幾篇論文的創(chuàng)新點(diǎn),得出以下可認(rèn)為是發(fā) (Shui) 論文的 idea:

1. 采用 depth-wise convolution,再設(shè)計(jì)一個(gè)方法解決「信息流通不暢」問(wèn)題,然后冠以美名 XX-Net。(看看 ShuffleNet 就是)

2. 針對(duì) depth-wise convolution 作文章,卷積方式不是千奇百怪么?各種卷積方式可參考 Github(https://github.com/vdumoulin/conv_arithmetic),挑一個(gè)或者幾個(gè),結(jié)合起來(lái),只要參數(shù)量少,實(shí)驗(yàn)效果好,就可以發(fā) (Shui) 論文。

3. 接著第 2,如果設(shè)計(jì)出來(lái)一個(gè)新的卷積方式,如果也存在一些「副作用」,再想一個(gè)方法解決這個(gè)副作用,再美其名曰 XX-Net。就是自己「挖」個(gè)坑,自己再填上去。

個(gè)人介紹: 余霆嵩,廣東工業(yè)大學(xué)研三學(xué)生,研究方向:深度學(xué)習(xí),目標(biāo)檢測(cè),圖像分類(lèi),模型壓縮


歡迎加入本站公開(kāi)興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/4723.html

相關(guān)文章

  • 量化神經(jīng)網(wǎng)絡(luò)

    摘要:是第一個(gè)提出體積小,計(jì)算量少,適用于移動(dòng)設(shè)備的卷積神經(jīng)網(wǎng)絡(luò)。圖卷積運(yùn)算匯總參考圖與神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索卷積神經(jīng)網(wǎng)絡(luò)已被廣泛用于圖像分類(lèi)人臉識(shí)別目標(biāo)檢測(cè)和其他領(lǐng)域。 1、基本卷積運(yùn)算手工設(shè)計(jì)輕量化模型主要思想在于設(shè)計(jì)更高效的網(wǎng)絡(luò)計(jì)算方式(主要針對(duì)卷積方式),從而使網(wǎng)絡(luò)參數(shù)減少,并且不損失網(wǎng)絡(luò)性能。本節(jié)概述了CNN模型(如MobileNet及其變體)中使用的基本卷積運(yùn)算單元,并基于空間維度和通道維度...

    curried 評(píng)論0 收藏0
  • 深度神經(jīng)網(wǎng)絡(luò)的壓縮和正則化

    摘要:深度神經(jīng)網(wǎng)絡(luò)已經(jīng)成為解決計(jì)算機(jī)視覺(jué)語(yǔ)音識(shí)別和自然語(yǔ)言處理等機(jī)器學(xué)習(xí)任務(wù)的較先進(jìn)的技術(shù)。圖深度壓縮的實(shí)驗(yàn)結(jié)果訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)可以被大量剪枝和壓縮的事實(shí)意味著我們當(dāng)前的訓(xùn)練方法具有一些局限性。 深度神經(jīng)網(wǎng)絡(luò)已經(jīng)成為解決計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別和自然語(yǔ)言處理等機(jī)器學(xué)習(xí)任務(wù)的較先進(jìn)的技術(shù)。盡管如此,深度學(xué)習(xí)算法是計(jì)算密集型和存儲(chǔ)密集型的,這使得它難以被部署到只有有限硬件資源的嵌入式系統(tǒng)上。為了解決這個(gè)限...

    blankyao 評(píng)論0 收藏0
  • 揭秘支付寶中的深度學(xué)習(xí)引擎:xNN

    摘要:本文介紹支付寶中的深度學(xué)習(xí)引擎。因而無(wú)論在運(yùn)行速度和內(nèi)存占用等性能指標(biāo)還是在兼容性上,支付寶的移動(dòng)端都必須做到極致,才能較大幅度地降低使用門(mén)檻。五大目標(biāo)支付寶是針對(duì)國(guó)民環(huán)境定制開(kāi)發(fā)的移動(dòng)端解決方案,項(xiàng)目制定了如下技術(shù)目標(biāo)。 本文介紹支付寶App中的深度學(xué)習(xí)引擎——xNN。xNN通過(guò)模型和計(jì)算框架兩個(gè)方面的優(yōu)化,解決了深度學(xué)習(xí)在移動(dòng)端落地的一系列問(wèn)題。xNN的模型壓縮工具 (xqueeze) ...

    wayneli 評(píng)論0 收藏0
  • 首次披露!阿里線下智能方案進(jìn)化史

    摘要:前言阿里巴巴機(jī)器智能實(shí)驗(yàn)室線下智能團(tuán)隊(duì)從年底開(kāi)始涉及線下智能領(lǐng)域,從算法工程產(chǎn)品化業(yè)務(wù)落地多個(gè)方面入手,與合作伙伴們一起取得了一些小小的成績(jī)。目前,該套工具作為推薦的量化工具廣泛應(yīng)用在阿里集團(tuán)內(nèi)多個(gè)線下業(yè)務(wù)場(chǎng)景中。 showImg(https://segmentfault.com/img/remote/1460000019246850); 阿里妹導(dǎo)讀:AI 技術(shù)已經(jīng)從互聯(lián)網(wǎng)走向零售、...

    keelii 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<