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

資訊專欄INFORMATION COLUMN

卷積神經(jīng)網(wǎng)絡(luò)中十大拍案叫絕的操作!

xavier / 3816人閱讀

摘要:分組卷積的思想影響比較深遠,當前一些輕量級的網(wǎng)絡(luò),都用到了分組卷積的操作,以節(jié)省計算量。得到新的通道之后,這時再對這批新的通道進行標準的跨通道卷積操作。

CNN從2012年的AlexNet發(fā)展至今,科學(xué)家們發(fā)明出各種各樣的CNN模型,一個比一個深,一個比一個準確,一個比一個輕量。

作者對近幾年一些具有變革性的工作進行簡單盤點,從這些充滿革新性的工作中探討日后的CNN變革方向。

本文只介紹其中具有代表性的模型,一些著名的模型由于原理相同將不作介紹,若有遺漏也歡迎指出。

一、卷積只能在同一組進行嗎?-- Group convolution

Group convolution 分組卷積,最早在AlexNet中出現(xiàn),由于當時的硬件資源有限,訓(xùn)練AlexNet時卷積操作不能全部放在同一個GPU處理,因此作者把feature maps分給多個GPU分別進行處理,最后把多個GPU的結(jié)果進行融合。

alexnet

分組卷積的思想影響比較深遠,當前一些輕量級的SOTA(State Of The Art)網(wǎng)絡(luò),都用到了分組卷積的操作,以節(jié)省計算量。但題主有個疑問是,如果分組卷積是分在不同GPU上的話,每個GPU的計算量就降低到 1/groups,但如果依然在同一個GPU上計算,最終整體的計算量是否不變?找了pytorch上有關(guān)組卷積操作的介紹,望讀者解答我的疑問。

pytroch github

二、卷積核一定越大越好?-- 3×3卷積核

AlexNet中用到了一些非常大的卷積核,比如11×11、5×5卷積核,之前人們的觀念是,卷積核越大,receptive field(感受野)越大,看到的圖片信息越多,因此獲得的特征越好。雖說如此,但是大的卷積核會導(dǎo)致計算量的暴增,不利于模型深度的增加,計算性能也會降低。于是在VGG(最早使用)、Inception網(wǎng)絡(luò)中,利用2個3×3卷積核的組合比1個5×5卷積核的效果更佳,同時參數(shù)量(3×3×2+1 VS 5×5×1+1)被降低,因此后來3×3卷積核被廣泛應(yīng)用在各種模型中。

三、每層卷積只能用一種尺寸的卷積核?-- Inception結(jié)構(gòu)

傳統(tǒng)的層疊式網(wǎng)絡(luò),基本上都是一個個卷積層的堆疊,每層只用一個尺寸的卷積核,例如VGG結(jié)構(gòu)中使用了大量的3×3卷積層。事實上,同一層feature map可以分別使用多個不同尺寸的卷積核,以獲得不同尺度的特征,再把這些特征結(jié)合起來,得到的特征往往比使用單一卷積核的要好,谷歌的GoogleNet,或者說Inception系列的網(wǎng)絡(luò),就使用了多個卷積核的結(jié)構(gòu):

最初版本的Inception結(jié)構(gòu)

如上圖所示,一個輸入的feature map分別同時經(jīng)過1×1、3×3、5×5的卷積核的處理,得出的特征再組合起來,獲得更佳的特征。但這個結(jié)構(gòu)會存在一個嚴重的問題:參數(shù)量比單個卷積核要多很多,如此龐大的計算量會使得模型效率低下。這就引出了一個新的結(jié)構(gòu)。

四、怎樣才能減少卷積層參數(shù)量?-- Bottleneck

發(fā)明GoogleNet的團隊發(fā)現(xiàn),如果僅僅引入多個尺寸的卷積核,會帶來大量的額外的參數(shù),受到Network In Network中1×1卷積核的啟發(fā),為了解決這個問題,他們往Inception結(jié)構(gòu)中加入了一些1×1的卷積核,如圖所示:

加入1×1卷積核的Inception結(jié)構(gòu)

根據(jù)上圖,我們來做個對比計算,假設(shè)輸入feature map的維度為256維,要求輸出維度也是256維。有以下兩種操作:

256維的輸入直接經(jīng)過一個3×3×256的卷積層,輸出一個256維的feature map,那么參數(shù)量為:256×3×3×256 = 589,824

256維的輸入先經(jīng)過一個1×1×64的卷積層,再經(jīng)過一個3×3×64的卷積層,最后經(jīng)過一個1×1×256的卷積層,輸出256維,參數(shù)量為:256×1×1×64 + 64×3×3×64 + 64×1×1×256 = 69,632。足足把第一種操作的參數(shù)量降低到九分之一!

1×1卷積核也被認為是影響深遠的操作,往后大型的網(wǎng)絡(luò)為了降低參數(shù)量都會應(yīng)用上1×1卷積核。

五、越深的網(wǎng)絡(luò)就越難訓(xùn)練嗎?-- Resnet殘差網(wǎng)絡(luò)

ResNet skip connection

傳統(tǒng)的卷積層層疊網(wǎng)絡(luò)會遇到一個問題,當層數(shù)加深時,網(wǎng)絡(luò)的表現(xiàn)越來越差,很大程度上的原因是因為當層數(shù)加深時,梯度消散得越來越嚴重,以至于反向傳播很難訓(xùn)練到淺層的網(wǎng)絡(luò)。為了解決這個問題,何凱明大神想出了一個“殘差網(wǎng)絡(luò)”,使得梯度更容易地流動到淺層的網(wǎng)絡(luò)當中去,而且這種“skip connection”能帶來更多的好處,這里可以參考一個PPT:極深網(wǎng)絡(luò)(ResNet/DenseNet): Skip Connection為何有效及其它 ,以及我的一篇文章:為什么ResNet和DenseNet可以這么深?一文詳解殘差塊為何能解決梯度彌散問題。 ,大家可以結(jié)合下面的評論進行思考。

六、卷積操作時必須同時考慮通道和區(qū)域嗎?-- DepthWise操作

標準的卷積過程可以看上圖,一個2×2的卷積核在卷積時,對應(yīng)圖像區(qū)域中的所有通道均被同時考慮,問題在于,為什么一定要同時考慮圖像區(qū)域和通道?我們?yōu)槭裁床荒馨淹ǖ篮涂臻g區(qū)域分開考慮?

Xception網(wǎng)絡(luò)就是基于以上的問題發(fā)明而來。我們首先對每一個通道進行各自的卷積操作,有多少個通道就有多少個過濾器。得到新的通道feature maps之后,這時再對這批新的通道feature maps進行標準的1×1跨通道卷積操作。這種操作被稱為 “DepthWise convolution” ,縮寫“DW”。

這種操作是相當有效的,在imagenet 1000類分類任務(wù)中已經(jīng)超過了InceptionV3的表現(xiàn),而且也同時減少了大量的參數(shù),我們來算一算,假設(shè)輸入通道數(shù)為3,要求輸出通道數(shù)為256,兩種做法:

直接接一個3×3×256的卷積核,參數(shù)量為:3×3×3×256 = 6,912

DW操作,分兩步完成,參數(shù)量為:3×3×3 + 3×1×1×256 = 795,又把參數(shù)量降低到九分之一!

因此,一個depthwise操作比標準的卷積操作降低不少的參數(shù)量,同時論文中指出這個模型得到了更好的分類效果。

七、分組卷積能否對通道進行隨機分組?-- ShuffleNet

在AlexNet的Group Convolution當中,特征的通道被平均分到不同組里面,最后再通過兩個全連接層來融合特征,這樣一來,就只能在最后時刻才融合不同組之間的特征,對模型的泛化性是相當不利的。為了解決這個問題,ShuffleNet在每一次層疊這種Group conv層前,都進行一次channel shuffle,shuffle過的通道被分配到不同組當中。進行完一次group conv之后,再一次channel shuffle,然后分到下一層組卷積當中,以此循環(huán)。

來自ShuffleNet論文

經(jīng)過channel shuffle之后,Group conv輸出的特征能考慮到更多通道,輸出的特征自然代表性就更高。另外,AlexNet的分組卷積,實際上是標準卷積操作,而在ShuffleNet里面的分組卷積操作是depthwise卷積,因此結(jié)合了通道洗牌和分組depthwise卷積的ShuffleNet,能得到超少量的參數(shù)以及超越mobilenet、媲美AlexNet的準確率!

另外值得一提的是,微軟亞洲研究院MSRA最近也有類似的工作,他們提出了一個IGC單元(Interleaved Group Convolution),即通用卷積神經(jīng)網(wǎng)絡(luò)交錯組卷積,形式上類似進行了兩次組卷積,Xception 模塊可以看作交錯組卷積的一個特例,特別推薦看看這篇文章:王井東詳解ICCV 2017入選論文:通用卷積神經(jīng)網(wǎng)絡(luò)交錯組卷積

要注意的是,Group conv是一種channel分組的方式,Depthwise +Pointwise是卷積的方式,只是ShuffleNet里面把兩者應(yīng)用起來了。因此Group conv和Depthwise +Pointwise并不能劃等號。

八、通道間的特征都是平等的嗎? -- SEnet

無論是在Inception、DenseNet或者ShuffleNet里面,我們對所有通道產(chǎn)生的特征都是不分權(quán)重直接結(jié)合的,那為什么要認為所有通道的特征對模型的作用就是相等的呢? 這是一個好問題,于是,ImageNet2017 冠軍SEnet就出來了。

SEnet 結(jié)構(gòu)

一組特征在上一層被輸出,這時候分兩條路線,第一條直接通過,第二條首先進行Squeeze操作(Global Average Pooling),把每個通道2維的特征壓縮成一個1維,從而得到一個特征通道向量(每個數(shù)字代表對應(yīng)通道的特征)。

然后進行Excitation操作,把這一列特征通道向量輸入兩個全連接層和sigmoid,建模出特征通道間的相關(guān)性,得到的輸出其實就是每個通道對應(yīng)的權(quán)重,把這些權(quán)重通過Scale乘法通道加權(quán)到原來的特征上(第一條路),這樣就完成了特征通道的權(quán)重分配。作者詳細解釋可以看這篇文章:專欄 | Momenta詳解ImageNet 2017奪冠架構(gòu)SENet

九、能否讓固定大小的卷積核看到更大范圍的區(qū)域?-- Dilated convolution

標準的3×3卷積核只能看到對應(yīng)區(qū)域3×3的大小,但是為了能讓卷積核看到更大的范圍,dilated conv使其成為了可能。dilated conv原論文中的結(jié)構(gòu)如圖所示:

上圖b可以理解為卷積核大小依然是3×3,但是每個卷積點之間有1個空洞,也就是在綠色7×7區(qū)域里面,只有9個紅色點位置作了卷積處理,其余點權(quán)重為0。這樣即使卷積核大小不變,但它看到的區(qū)域變得更大了。詳細解釋可以看這個回答:如何理解空洞卷積(dilated convolution)?

十、卷積核形狀一定是矩形嗎?-- Deformable convolution 可變形卷積核

圖來自微軟亞洲研究院

傳統(tǒng)的卷積核一般都是長方形或正方形,但MSRA提出了一個相當反直覺的見解,認為卷積核的形狀可以是變化的,變形的卷積核能讓它只看感興趣的圖像區(qū)域 ,這樣識別出來的特征更佳。

圖來自微軟亞洲研究院

要做到這個操作,可以直接在原來的過濾器前面再加一層過濾器,這層過濾器學(xué)習(xí)的是下一層卷積核的位置偏移量(offset),這樣只是增加了一層過濾器,或者直接把原網(wǎng)絡(luò)中的某一層過濾器當成學(xué)習(xí)offset的過濾器,這樣實際增加的計算量是相當少的,但能實現(xiàn)可變形卷積核,識別特征的效果更好。詳細MSRA的解讀可以看這個鏈接:可變形卷積網(wǎng)絡(luò):計算機新“視”界。

啟發(fā)與思考

現(xiàn)在越來越多的CNN模型從巨型網(wǎng)絡(luò)到輕量化網(wǎng)絡(luò)一步步演變,模型準確率也越來越高。現(xiàn)在工業(yè)界追求的重點已經(jīng)不是準確率的提升(因為都已經(jīng)很高了),都聚焦于速度與準確率的trade off,都希望模型又快又準。因此從原來AlexNet、VGGnet,到體積小一點的Inception、Resnet系列,到目前能移植到移動端的mobilenet、ShuffleNet(體積能降低到0.5mb!),我們可以看到這樣一些趨勢:

卷積核方面:

大卷積核用多個小卷積核代替;

單一尺寸卷積核用多尺寸卷積核代替;

固定形狀卷積核趨于使用可變形卷積核;

使用1×1卷積核(bottleneck結(jié)構(gòu))。

卷積層通道方面:

標準卷積用depthwise卷積代替;

使用分組卷積;

分組卷積前使用channel shuffle;

通道加權(quán)計算。

卷積層連接方面:

使用skip connection,讓模型更深;

densely connection,使每一層都融合上其它層的特征輸出啟發(fā)

類比到通道加權(quán)操作,卷積層跨層連接能否也進行加權(quán)處理?bottleneck + Group conv + channel shuffle + depthwise的結(jié)合會不會成為以后降低參數(shù)量的標準配置?

歡迎加入本站公開興趣群

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

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

QQ群:81035754

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

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

相關(guān)文章

  • 效果逆天,谷歌最新 BEGAN 刷新計算機生成圖像質(zhì)量記錄

    摘要:判別器勝利的條件則是很好地將真實圖像自編碼,以及很差地辨識生成的圖像。 先看一張圖:下圖左右兩端的兩欄是真實的圖像,其余的是計算機生成的。過渡自然,效果驚人。這是谷歌本周在 arXiv 發(fā)表的論文《BEGAN:邊界均衡生成對抗網(wǎng)絡(luò)》得到的結(jié)果。這項工作針對 GAN 訓(xùn)練難、控制生成樣本多樣性難、平衡鑒別器和生成器收斂難等問題,提出了改善。尤其值得注意的,是作者使用了很簡單的結(jié)構(gòu),經(jīng)過常規(guī)訓(xùn)練...

    Apollo 評論0 收藏0
  • WGAN最新進展:從weight clipping到gradient penalty

    摘要:前面兩個期望的采樣我們都熟悉,第一個期望是從真樣本集里面采,第二個期望是從生成器的噪聲輸入分布采樣后,再由生成器映射到樣本空間。 Wasserstein GAN進展:從weight clipping到gradient penalty,更加先進的Lipschitz限制手法前段時間,Wasserstein ?GAN以其精巧的理論分析、簡單至極的算法實現(xiàn)、出色的實驗效果,在GAN研究圈內(nèi)掀起了一陣...

    陳江龍 評論0 收藏0
  • GitHub十大深度學(xué)習(xí)項目

    摘要:在上排名前位的機器學(xué)習(xí)項目包括許多庫,框架和教育資源。涵蓋主題包括大數(shù)據(jù),,和等等涉及深度學(xué)習(xí)和框架,如,,和都包含在一起,連同架構(gòu)和概念。是一個庫,使得寫深度學(xué)習(xí)模型很容易,并給出了在上訓(xùn)練的選項。 在Github上排名前10位的機器學(xué)習(xí)項目包括許多庫,框架和教育資源??纯磩e人都在用的工具,和學(xué)習(xí)的資源。作者Matthew Mayo, KDnuggets.開源工具在數(shù)據(jù)科學(xué)工作流程中越來越...

    galaxy_robot 評論0 收藏0
  • 令人拍案叫絕Wasserstein GAN

    摘要:測度是高維空間中長度面積體積概念的拓廣,可以理解為超體積。前作其實已經(jīng)針對第二點提出了一個解決方案,就是對生成樣本和真實樣本加噪聲,直觀上說,使得原本的兩個低維流形彌散到整個高維空間,強行讓它們產(chǎn)生不可忽略的重疊。 在GAN的相關(guān)研究如火如荼甚至可以說是泛濫的今天,一篇新鮮出爐的arXiv論文《Wasserstein GAN》卻在Reddit的Machine Learning頻道火了,連Go...

    lieeps 評論0 收藏0
  • 深度學(xué)習(xí)在2017年十大發(fā)展趨勢及預(yù)測

    摘要:毫無疑問,深度學(xué)習(xí)將驅(qū)動在公司中的應(yīng)用。在其價值評估和策略評估上使用的就是深度學(xué)習(xí)。端到端的深度學(xué)習(xí)是一個令人著迷的研究領(lǐng)域,但是迄今為止混合系統(tǒng)在應(yīng)用領(lǐng)域會更有效率。目前專注于深度學(xué)習(xí)模式,方法和戰(zhàn)略的研究。 在之前的博客中,我曾預(yù)言過未來幾年的發(fā)展趨勢。我記得上一篇博客的內(nèi)容是《2011年軟件開發(fā)趨勢和相關(guān)預(yù)言》(Software DevelopmentTrends and Predic...

    gaara 評論0 收藏0

發(fā)表評論

0條評論

xavier

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<