成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

yhaolpz / 2100人閱讀

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

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

目錄

一、引言?

二、輕量化模型?

? ? 2.1 SqueezeNet

? ? 2.2 MobileNet

? ? 2.3 ShuffleNet

? ? 2.4 Xception

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

一、引言

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

?

效率問題主要是模型的存儲問題和模型進(jìn)行預(yù)測的速度問題(以下簡稱速度問題)

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

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

?

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

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

?

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

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

?

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

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

二、輕量化模型

由于這四種輕量化模型僅是在卷積方式上做了改變,因此本文僅對輕量化模型的創(chuàng)新點(diǎn)進(jìn)行詳細(xì)描述,對實(shí)驗(yàn)以及實(shí)現(xiàn)的細(xì)節(jié)感興趣的朋友,請到論文中詳細(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 卷積核對上一層 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 系列開始就有了,并美其名曰壓縮,個(gè)人覺得「壓縮」更為妥當(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)過 Squeeze 層,得到 S1 個(gè) feature map,這里的 S1 均是小于 M 的,以達(dá)到「壓縮」的目的,詳細(xì)思想可參考 Google 的 Inception 系列。

?

其次,H*W*S1 的特征圖輸入到 Expand 層,分別經(jīng)過 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í)也表示對應(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 的類似,堆疊的使用卷積操作,只不過這里堆疊的使用本文提出的 Fire module(圖中用紅框部分)

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

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

?

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

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 思想類似,采用 1*1 卷積對 feature map 的維數(shù)進(jìn)行「壓縮」,從而達(dá)到減少權(quán)值參數(shù)的目的;

2 采用與 VGG 類似的思想——堆疊的使用卷積,這里堆疊的使用 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)用場景考慮的,顧名思義就是能夠在移動端使用的網(wǎng)絡(luò)模型。

?

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

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

?

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

?

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

?

depth-wise convolution 和 group convolution 是類似的,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,會涉及兩個(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 再「串」起來,注意這個(gè)「串」是很重要的?!复棺骱谓??為什么還需要 pointwise convolution?作者說: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,是沒辦法做到這點(diǎn),因此需要 pointwise convolution 的輔助。

?

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

?

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

?

?

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

對 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)的卷積方式是一樣的,只不過采用了 1*1 的卷積核;其目的就是讓新的每一個(gè) feature map 包含有上一層各個(gè) feature map 的信息!在此理解為將 depth-wise convolution 的輸出進(jìn)行「串」起來。

下面舉例講解 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 過程如下圖,X 表示卷積,+表示對應(yīng)像素點(diǎn)相加,可以看到對于 O1 來說,其與輸入的每一個(gè) feature map 都「發(fā)生關(guān)系」,包含輸入的各個(gè) feature map 的信息。

?

Depth-wise 過程如下圖,可以看到 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ì)算量減少了多少呢?通過如下公式計(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設(shè)置為 2,達(dá)到下采樣的目的。

?

1.0 MobileNet-224 與 GoogLeNet 及 VGG-16 的對比:

?

可以發(fā)現(xiàn),相較于 GoogLeNet,雖然參數(shù)差不多,都是一個(gè)量級的,但是在運(yùn)算量上卻小于 GoogLeNet 一個(gè)量級,這就得益于 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 會有一個(gè)問題,就是導(dǎo)致「信息流通不暢」,即輸出的 feature map 僅包含輸入的 feature map 的一部分,在這里,MobileNet 采用了 point-wise convolution 解決這個(gè)問題。在后來,ShuffleNet 采用同樣的思想對網(wǎng)絡(luò)進(jìn)行改進(jìn),只不過把 point-wise convolution 換成了 channel shuffle,然后給網(wǎng)絡(luò)美其名曰 ShuffleNet,欲知后事如何,請看 2.3 ShuffleNet

2.3 ShuffleNet

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

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

?

命名:

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

?

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

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

?

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

1. 利用 group convolution 和 channel shuffle 這兩個(gè)操作來設(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 會導(dǎo)致信息流通不當(dāng),因此提出 channel shuffle,所以 channel shuffle 是有前提的,使用的話要注意!

?

對比一下 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, 這些都是最近出來的一系列輕量化網(wǎng)絡(luò)模型。depth-wise convolution 具體操作可見 2.2 MobileNet 里邊有簡介。

?

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

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

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

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

?

下圖展示了 ShuffleNet unit 的演化過程?

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

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

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

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

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

?

ShuffleNet 小結(jié):

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

2. 在網(wǎng)絡(luò)拓?fù)浞矫妫琒huffleNet 采用的是 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 月公開。論文標(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」

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

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

?

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

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

?

?

作者說了,這種卷積方式和 depth-wise convolution 幾乎一樣。Depth-wise convolution 較早用于網(wǎng)絡(luò)設(shè)計(jì)是來自:Rigid-Motion Scatteringfor Image Classification,但是具體是哪一年提出,不得而知;至少 2012 年就有相關(guān)研究,再比如說 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 是反過來,先 1*1 卷積,再逐通道卷積;?

第二個(gè):原版 Depth-wise convolution 的兩個(gè)卷積之間是不帶激活函數(shù)的,而 Xception 在經(jīng)過 1*1 卷積之后會帶上一個(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é)可參見論文。

?

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ò)對比

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

?

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

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

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

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

?

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

?

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

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

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

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

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


歡迎加入本站公開興趣群

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

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

QQ群:81035754

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/4723.html

相關(guān)文章

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

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

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

    摘要:深度神經(jīng)網(wǎng)絡(luò)已經(jīng)成為解決計(jì)算機(jī)視覺語音識別和自然語言處理等機(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ī)視覺、語音識別和自然語言處理等機(jī)器學(xué)習(xí)任務(wù)的較先進(jìn)的技術(shù)。盡管如此,深度學(xué)習(xí)算法是計(jì)算密集型和存儲密集型的,這使得它難以被部署到只有有限硬件資源的嵌入式系統(tǒng)上。為了解決這個(gè)限...

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

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

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

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

    keelii 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<