<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CNN網(wǎng)絡(luò)結(jié)構(gòu)的發(fā)展——看懂這一篇就夠了

          共 5521字,需瀏覽 12分鐘

           ·

          2023-07-28 07:06

             
          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂
              
          重磅干貨,第一時(shí)間送達(dá)


          編者薦語

           

          CNN的全稱是"Convolutional Neural Network"(卷積神經(jīng)網(wǎng)絡(luò))。而神經(jīng)網(wǎng)絡(luò)是一種模仿生物神經(jīng)網(wǎng)絡(luò)(動(dòng)物的中樞神經(jīng)系統(tǒng),特別是大腦)結(jié)構(gòu)和功能的數(shù)學(xué)模型或計(jì)算模型。

          作者丨zzq@知乎

          鏈接丨h(huán)ttps://zhuanlan.zhihu.com/p/68411179


          一、CNN基本部件介紹


          1.局部感受野

          在圖像中局部像素之間的聯(lián)系較為緊密,而距離較遠(yuǎn)的像素聯(lián)系相對(duì)較弱。因此,其實(shí)每個(gè)神經(jīng)元沒必要對(duì)圖像全局進(jìn)行感知,只需要感知局部信息,然后在更高層局部信息綜合起來即可得到全局信息。卷積操作即是局部感受野的實(shí)現(xiàn),并且卷積操作因?yàn)槟軌驒?quán)值共享,所以也減少了參數(shù)量。

          2.池化

          池化是將輸入圖像進(jìn)行縮小,減少像素信息,只保留重要信息,主要是為了減少計(jì)算量。主要包括最大池化和均值池化。

          3.激活函數(shù)

          激活函數(shù)的用是用來加入非線性。常見的激活函數(shù)有sigmod, tanh, relu,前兩者常用在全連接層,relu常見于卷積層

          4.全連接層

          全連接層在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中起分類器的作用。在全連接層之前需要將之前的輸出展平 

          二、經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)

           

          1.LeNet5

          由兩個(gè)卷積層,兩個(gè)池化層,兩個(gè)全連接層組成。卷積核都是5×5,stride=1,池化層使用maxpooling
          2.AlexNet
          模型共八層(不算input層),包含五個(gè)卷積層、三個(gè)全連接層。最后一層使用softmax做分類輸出

          AlexNet使用了ReLU做激活函數(shù);防止過擬合使用dropout和數(shù)據(jù)增強(qiáng);雙GPU實(shí)現(xiàn);使用LRN
          3.VGG
          全部使用3×3卷積核的堆疊,來模擬更大的感受野,并且網(wǎng)絡(luò)層數(shù)更深。VGG有五段卷積,每段卷積后接一層最大池化。卷積核數(shù)目逐漸增加。

          總結(jié):LRN作用不大;越深的網(wǎng)絡(luò)效果越好;1×1的卷積也很有效但是沒有3×3好
          4.GoogLeNet(inception v1)

          從VGG中我們了解到,網(wǎng)絡(luò)層數(shù)越深效果越好。但是隨著模型越深參數(shù)越來越多,這就導(dǎo)致網(wǎng)絡(luò)比較容易過擬合,需要提供更多的訓(xùn)練數(shù)據(jù);另外,復(fù)雜的網(wǎng)絡(luò)意味更多的計(jì)算量,更大的模型存儲(chǔ),需要更多的資源,且速度不夠快。GoogLeNet就是從減少參數(shù)的角度來設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)的。

          GoogLeNet通過增加網(wǎng)絡(luò)寬度的方式來增加網(wǎng)絡(luò)復(fù)雜度,讓網(wǎng)絡(luò)可以自己去應(yīng)該如何選擇卷積核。這種設(shè)計(jì)減少了參數(shù) ,同時(shí)提高了網(wǎng)絡(luò)對(duì)多種尺度的適應(yīng)性。使用了1×1卷積可以使網(wǎng)絡(luò)在不增加參數(shù)的情況下增加網(wǎng)絡(luò)復(fù)雜度。
          Inception-v2
          在v1的基礎(chǔ)上加入batch normalization技術(shù),在tensorflow中,使用BN在激活函數(shù)之前效果更好;將5×5卷積替換成兩個(gè)連續(xù)的3×3卷積,使網(wǎng)絡(luò)更深,參數(shù)更少
          Inception-v3
          核心思想是將卷積核分解成更小的卷積,如將7×7分解成1×7和7×1兩個(gè)卷積核,使網(wǎng)絡(luò)參數(shù)減少,深度加深
          Inception-v4結(jié)構(gòu)
          引入了ResNet,使訓(xùn)練加速,性能提升。但是當(dāng)濾波器的數(shù)目過大(>1000)時(shí),訓(xùn)練很不穩(wěn)定,可以加入activate scaling因子來緩解
          5.Xception
          在Inception-v3的基礎(chǔ)上提出,基本思想是通道分離式卷積,但是又有區(qū)別。模型參數(shù)稍微減少,但是精度更高。Xception先做1×1卷積再做3×3卷積,即先將通道合并,再進(jìn)行空間卷積。depthwise正好相反,先進(jìn)行空間3×3卷積,再進(jìn)行通道1×1卷積。核心思想是遵循一個(gè)假設(shè):卷積的時(shí)候要將通道的卷積與空間的卷積進(jìn)行分離。而MobileNet-v1用的就是depthwise的順序,并且加了BN和ReLU。Xception的參數(shù)量與Inception-v3相差不大,其增加了網(wǎng)絡(luò)寬度,旨在提升網(wǎng)絡(luò)準(zhǔn)確率,而MobileNet-v1旨在減少網(wǎng)絡(luò)參數(shù),提高效率。
          6.MobileNet系列
          V1
          使用depthwise separable convolutions;放棄pooling層,而使用stride=2的卷積。標(biāo)準(zhǔn)卷積的卷積核的通道數(shù)等于輸入特征圖的通道數(shù);而depthwise卷積核通道數(shù)是1;還有兩個(gè)參數(shù)可以控制,a控制輸入輸出通道數(shù);p控制圖像(特征圖)分辨率。
          V2
          相比v1有三點(diǎn)不同:1.引入了殘差結(jié)構(gòu);2.在dw之前先進(jìn)行1×1卷積增加feature map通道數(shù),與一般的residual block是不同的;3.pointwise結(jié)束之后棄用ReLU,改為linear激活函數(shù),來防止ReLU對(duì)特征的破環(huán)。這樣做是因?yàn)閐w層提取的特征受限于輸入的通道數(shù),若采用傳統(tǒng)的residual block,先壓縮那dw可提取的特征就更少了,因此一開始不壓縮,反而先擴(kuò)張。但是當(dāng)采用擴(kuò)張-卷積-壓縮時(shí),在壓縮之后會(huì)碰到一個(gè)問題,ReLU會(huì)破環(huán)特征,而特征本來就已經(jīng)被壓縮,再經(jīng)過ReLU還會(huì)損失一部分特征,應(yīng)該采用linear。
          V3
          互補(bǔ)搜索技術(shù)組合:由資源受限的NAS執(zhí)行模塊集搜索,NetAdapt執(zhí)行局部搜索;網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn):將最后一步的平均池化層前移并移除最后一個(gè)卷積層,引入h-swish激活函數(shù),修改了開始的濾波器組。
          V3綜合了v1的深度可分離卷積,v2的具有線性瓶頸的反殘差結(jié)構(gòu),SE結(jié)構(gòu)的輕量級(jí)注意力模型。
          7.EffNet
          EffNet是對(duì)MobileNet-v1的改進(jìn),主要思想是:將MobileNet-1的dw層分解層兩個(gè)3×1和1×3的dw層,這樣 第一層之后就采用pooling,從而減少第二層的計(jì)算量。EffNet比MobileNet-v1和ShuffleNet-v1模型更小,進(jìn)度更高。
          8.EfficientNet
          研究網(wǎng)絡(luò)設(shè)計(jì)時(shí)在depth, width, resolution上進(jìn)行擴(kuò)展的方式,以及之間的相互關(guān)系。可以取得更高的效率和準(zhǔn)確率。
          9.ResNet
          VGG證明更深的網(wǎng)絡(luò)層數(shù)是提高精度的有效手段,但是更深的網(wǎng)絡(luò)極易導(dǎo)致梯度彌散,從而導(dǎo)致網(wǎng)絡(luò)無法收斂。經(jīng)測試,20層以上會(huì)隨著層數(shù)增加收斂效果越來越差。ResNet可以很好的解決梯度消失的問題(其實(shí)是緩解,并不能真正解決),ResNet增加了shortcut連邊。
          10.ResNeXt
          基于ResNet和Inception的split+transform+concate結(jié)合。但效果卻比ResNet、Inception、Inception-ResNet效果都要好。可以使用group convolution。一般來說增加網(wǎng)絡(luò)表達(dá)能力的途徑有三種:1.增加網(wǎng)絡(luò)深度,如從AlexNet到ResNet,但是實(shí)驗(yàn)結(jié)果表明由網(wǎng)絡(luò)深度帶來的提升越來越小;2.增加網(wǎng)絡(luò)模塊的寬度,但是寬度的增加必然帶來指數(shù)級(jí)的參數(shù)規(guī)模提升,也非主流CNN設(shè)計(jì);3.改善CNN網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì),如Inception系列和ResNeXt等。且實(shí)驗(yàn)發(fā)現(xiàn)增加Cardinatity即一個(gè)block中所具有的相同分支的數(shù)目可以更好的提升模型表達(dá)能力。
          11.DenseNet
          DenseNet通過特征重用來大幅減少網(wǎng)絡(luò)的參數(shù)量,又在一定程度上緩解了梯度消失問題。
          12.SqueezeNet
          提出了fire-module:squeeze層+expand層。Squeeze層就是1×1卷積,expand層用1×1和3×3分別卷積,然后concatenation。squeezeNet參數(shù)是alexnet的1/50,經(jīng)過壓縮之后是1/510,但是準(zhǔn)確率和alexnet相當(dāng)。
          13.ShuffleNet系列
          V1
          通過分組卷積與1×1的逐點(diǎn)群卷積核來降低計(jì)算量,通過重組通道來豐富各個(gè)通道的信息。Xception和ResNeXt在小型網(wǎng)絡(luò)模型中效率較低,因?yàn)榇罅康?×1卷積很耗資源,因此提出逐點(diǎn)群卷積來降低計(jì)算復(fù)雜度,但是使用逐點(diǎn)群卷積會(huì)有副作用,故在此基礎(chǔ)上提出通道shuffle來幫助信息流通。雖然dw可以減少計(jì)算量和參數(shù)量,但是在低功耗設(shè)備上,與密集的操作相比,計(jì)算、存儲(chǔ)訪問的效率更差,故shufflenet上旨在bottleneck上使用深度卷積,盡可能減少開銷。
          V2
          使神經(jīng)網(wǎng)絡(luò)更加高效的CNN網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則:
          輸入通道數(shù)與輸出通道數(shù)保持相等可以最小化內(nèi)存訪問成本
          分組卷積中使用過多的分組會(huì)增加內(nèi)存訪問成本
          網(wǎng)絡(luò)結(jié)構(gòu)太復(fù)雜(分支和基本單元過多)會(huì)降低網(wǎng)絡(luò)的并行程度
          element-wise的操作消耗也不可忽略
          14.SENet
          15.SKNet
             
                 
          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 215
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美亚洲天堂网 | 中文字字幕中文字幕乱码 | 天天操好逼网 | 黄色一级免费视频 | 肏屄网|