• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    輕量化神經(jīng)網(wǎng)絡(luò)卷積設(shè)計(jì)研究進(jìn)展

    2022-03-13 09:18:42馬金林馬自萍毛凱績(jī)
    計(jì)算機(jī)與生活 2022年3期
    關(guān)鍵詞:瓶頸輕量化分組

    馬金林,張 裕,馬自萍,毛凱績(jī)

    1.北方民族大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,銀川750021

    2.圖像圖形智能處理國(guó)家民委重點(diǎn)實(shí)驗(yàn)室,銀川750021

    3.北方民族大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,銀川750021

    在近幾年中,輕量化神經(jīng)網(wǎng)絡(luò)成為一個(gè)非常重要且十分活躍的研究領(lǐng)域,許多學(xué)者在網(wǎng)絡(luò)結(jié)構(gòu)和卷積方面對(duì)輕量化方法進(jìn)行了研究,并取得了大量成果,誕生了很多貼合實(shí)際應(yīng)用需求的優(yōu)秀輕量化神經(jīng)網(wǎng)絡(luò)模型。2012 年AlexNet的驚艷亮相為神經(jīng)網(wǎng)絡(luò)發(fā)展提供了改進(jìn)思路,使得ZF-Net、VGG-Nets、GoogleNet、ResNet以及DenseNet等眾多網(wǎng)絡(luò)模型可以采用加深網(wǎng)絡(luò)和增強(qiáng)卷積功能的方式來(lái)提升網(wǎng)絡(luò)識(shí)別準(zhǔn)確率。該方式使得模型性能有了顯著提升,但網(wǎng)絡(luò)結(jié)構(gòu)較之前更為復(fù)雜,使得所需計(jì)算量和內(nèi)存大大增加。

    上述模型以提升準(zhǔn)確率為主要目的,與其不同的是,2016 年最早公開的輕量化網(wǎng)絡(luò)SqueezeNet在ImageNet 數(shù)據(jù)集上可達(dá)到近似AlexNet 的效果,但參數(shù)量?jī)H為AlexNet 的2%,若同時(shí)結(jié)合模型壓縮(deep compression)技術(shù),SqueezeNet 的參數(shù)量則會(huì)進(jìn)一步降低為AlexNet參數(shù)量的約0.2%。

    輕量化神經(jīng)網(wǎng)絡(luò)模型(lightweight neural network model)是基于原有卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的發(fā)展進(jìn)行改進(jìn)的,目的是為了能更好地將神經(jīng)網(wǎng)絡(luò)進(jìn)行移動(dòng)普及應(yīng)用,可以說(shuō)是專為嵌入式移動(dòng)設(shè)備視覺終端設(shè)計(jì)的模型。與原有網(wǎng)絡(luò)模型相比,輕量化模型具有結(jié)構(gòu)輕便、計(jì)算簡(jiǎn)單、可移植性強(qiáng)的優(yōu)點(diǎn)。目前,輕量化模型應(yīng)用已涉及自然語(yǔ)言處理、數(shù)據(jù)挖掘、醫(yī)學(xué)圖像處理等領(lǐng)域,在確保模型精度不降低的前提下,最大程度地提高運(yùn)算速度。

    在輕量化神經(jīng)網(wǎng)絡(luò)中,大多使用人工設(shè)計(jì)的卷積進(jìn)行網(wǎng)絡(luò)構(gòu)建。由于設(shè)計(jì)思路的局限性,模型中可能存在大量卷積冗余。若想進(jìn)一步提升網(wǎng)絡(luò)運(yùn)行速度,則可以選擇對(duì)網(wǎng)絡(luò)中的基礎(chǔ)構(gòu)建功能塊之一“卷積”進(jìn)行輕量化設(shè)計(jì)。通過(guò)對(duì)卷積的空間維度和通道維度進(jìn)行調(diào)整,可有效降低卷積冗余度,提升卷積計(jì)算速度,達(dá)到輕量化目的。卷積的輕量化主要分為卷積結(jié)構(gòu)輕量化、卷積模塊輕量化以及卷積運(yùn)算輕量化三方面。卷積結(jié)構(gòu)輕量化主要調(diào)整單一卷積核的數(shù)量、大小及其計(jì)算方式。卷積模塊輕量化主要調(diào)整各卷積間的結(jié)構(gòu)組成。卷積運(yùn)算輕量化主要調(diào)整網(wǎng)絡(luò)中的卷積運(yùn)算方式。

    1 卷積結(jié)構(gòu)輕量化技術(shù)

    卷積是輕量化神經(jīng)網(wǎng)絡(luò)中的核心組成部分,用于提取圖像特征。對(duì)卷積進(jìn)行調(diào)整以達(dá)到輕量化目的,是大多數(shù)神經(jīng)網(wǎng)絡(luò)進(jìn)行修改操作的優(yōu)先選擇。單一卷積結(jié)構(gòu)的輕量化可通過(guò)調(diào)整所使用的卷積核大小,改變使用的卷積核總數(shù),同時(shí)改變卷積核的數(shù)量并結(jié)合網(wǎng)絡(luò)寬度的方式進(jìn)行實(shí)現(xiàn)。

    1.1 調(diào)整卷積核大小

    卷積核尺寸的選取決定了網(wǎng)絡(luò)中感受野(receptive field)的范圍大小。卷積核的尺寸越大,感受野也越大。感受野是指在卷積操作過(guò)程中所看到的圖片信息,因此看到得越多,特征的提取效果越好。AlexNet 的網(wǎng)絡(luò)設(shè)計(jì)中使用11×11 的卷積核,并在2012 年的ImageNet 分類競(jìng)賽中獲得了冠軍,證明了其網(wǎng)絡(luò)設(shè)計(jì)的優(yōu)越性。因此,當(dāng)時(shí)的人們普遍認(rèn)為模型設(shè)計(jì)時(shí),卷積核的尺寸越大越好。于是,在早期的神經(jīng)網(wǎng)絡(luò)模型中為保證提取效果,網(wǎng)絡(luò)中大多使用尺寸較大的卷積核進(jìn)行特征提取。

    但是后續(xù)大量模型的實(shí)驗(yàn)效果證明了使用大尺寸卷積核在特征提取效果優(yōu)越的同時(shí)也存在著隱患。大卷積核會(huì)使得模型出現(xiàn)計(jì)算量驟增、無(wú)法自如調(diào)整深度、性能受限等問(wèn)題,因此近年的神經(jīng)網(wǎng)絡(luò)構(gòu)建中已經(jīng)很少直接使用如11×11 等較大尺寸的卷積核。

    神經(jīng)網(wǎng)絡(luò)中常用的卷積核尺寸有11×11、7×7、5×5、3×3、1×1 這五種類型。卷積核尺寸的調(diào)整可分為使用小卷積替換大卷積和使用特殊卷積“1×1 卷積”調(diào)整網(wǎng)絡(luò)兩個(gè)方向。

    卷積替換的思路源于InceptionV3,通過(guò)對(duì)不同尺寸卷積核所需計(jì)算量進(jìn)行分析比較后,InceptionV3 提出可對(duì)大尺寸卷積核進(jìn)行拆分操作。在InceptionV3 的卷積結(jié)構(gòu)中,原有卷積層中的5×5 卷積被兩個(gè)3×3 卷積進(jìn)行替換。與原始的5×5 卷積的模型參數(shù)量相比,使用兩個(gè)3×3 卷積替換后,參數(shù)量降低了27.8%,且卷積分解前后,感受野較之前未發(fā)生變化。

    如圖1 所示,5×5 的輸入特征圖經(jīng)由一個(gè)5×5 卷積和兩個(gè)3×3 卷積后,所得的輸出特征圖尺寸均為1×1,且所得感受野大小均為5。

    圖1 卷積感受野對(duì)比Fig.1 Convolution receptive field comparison

    PVANet也如同Inception 一樣對(duì)圖像中的目標(biāo)進(jìn)行捕獲,甚至為了提升網(wǎng)絡(luò)性能還搭配了跳躍連接(skip connrection)進(jìn)行基礎(chǔ)網(wǎng)絡(luò)的特征提取,最終在圖形處理器(graphics processing unit,GPU)上達(dá)到21.7 FPS(frames per second)的運(yùn)行速度。PeleeNet的2-way Dense(原Dense 結(jié)構(gòu)的改進(jìn))結(jié)構(gòu)受Inception 多尺度思想的影響,將5×5 的卷積核拆分為兩個(gè)3×3的卷積核后,與一個(gè)3×3卷積核并行,如圖2所示。PeleeNet 的計(jì)算成本較經(jīng)典輕量化模型MobileNets減少11%,準(zhǔn)確率較MobileNets提升0.6%。

    圖2 PeleeNet中2-way Dense LayerFig.2 2-way Dense Layer in PeleeNet

    在八鄰域像素內(nèi),3×3 卷積是能夠捕捉信息的最小奇數(shù)卷積核尺寸,因此各類輕量化模型常使用3×3 卷積進(jìn)行卷積替換操作,以此來(lái)降低模型計(jì)算量。3×3 卷積核單獨(dú)使用可提取目標(biāo)圖片中小尺度的目標(biāo)信息,大卷積核的拆分可以在保留與大卷積相同的特征學(xué)習(xí)能力的同時(shí)降低模型計(jì)算量。因此PeleeNet 的2-way Dense 結(jié)構(gòu)進(jìn)行并行處理可在降低計(jì)算量的同時(shí)獲得準(zhǔn)確率的提升。5×5 卷積使用3×3卷積替換的實(shí)質(zhì)是將一次5×5 操作拆解為兩個(gè)3×3的結(jié)果之和,使用簡(jiǎn)單的加法運(yùn)算對(duì)復(fù)雜的乘法運(yùn)算進(jìn)行替換,降低了計(jì)算量,維持了感受野,提升了運(yùn)行速度。

    除使用3×3 的常規(guī)卷積降低網(wǎng)絡(luò)參數(shù)量外,也可以使用1×1 的卷積達(dá)到相同目的。1×1 卷積由于尺寸原因,無(wú)需考慮與周圍其他像素的關(guān)系。1×1 卷積操作僅可以對(duì)特征圖的通道個(gè)數(shù)進(jìn)行調(diào)整,升維或降維的功效取決于所采用1×1 卷積的個(gè)數(shù)。如圖3所示,若采用兩個(gè)1×1 卷積,特征圖的深度將由3 變?yōu)?;若采用四個(gè)1×1 卷積,特征圖的深度將由3 變?yōu)?。當(dāng)1×1 卷積進(jìn)行降維時(shí),產(chǎn)生的特征圖減少,參數(shù)量下降,因而達(dá)到了輕量化的目的。

    圖3 1×1 卷積的作用Fig.3 Role of 1×1 convolution

    MobileNets 里由深度卷積(depthwise convolution,DW)和逐點(diǎn)卷積(pointwise convolution,PW)兩部分構(gòu)成的深度可分離卷積(depthwise separable convolution,DSC)中,逐點(diǎn)卷積便是通過(guò)1×1 卷積計(jì)算調(diào)整深度卷積輸出的線性組合,從而得到新的特征。與標(biāo)準(zhǔn)的3×3 卷積相比,3×3 的深度可分離卷積在精度略有下降的情況下,將計(jì)算量在原有基礎(chǔ)上降低了11.1%至12.5%。CornerNet-Lite中CornerNet-Squeeze結(jié)構(gòu)借鑒了MobileNets 的思想,將3×3 的普通卷積替換為MobileNets 的3×3 深度可分離卷積,將部分3×3常規(guī)卷積替換為1×1 卷積,并且削減3×3 卷積的輸入通道數(shù),盡可能加速推理過(guò)程,提高網(wǎng)絡(luò)效率。

    兩種卷積核尺寸的縮減雖在設(shè)計(jì)結(jié)構(gòu)中存在差異,但其本質(zhì)都是通過(guò)降低乘法過(guò)程中的操作數(shù)大小來(lái)實(shí)現(xiàn),在數(shù)學(xué)意義上將標(biāo)準(zhǔn)單次乘法操作進(jìn)行拆解,使用底層機(jī)器更為青睞的加法運(yùn)算替代部分乘法操作,以達(dá)到提升模型運(yùn)行速度的效果。

    1.2 改變卷積核數(shù)量

    不同于調(diào)整卷積核大小策略中通過(guò)采用小型卷積來(lái)降低運(yùn)算量的方式,改變卷積核數(shù)量選擇將常規(guī)卷積在空間維度與通道維度上進(jìn)行拆解,并分步驟進(jìn)行,使得所用卷積數(shù)量較原始卷積數(shù)量有所變化。常規(guī)卷積操作涉及空間結(jié)構(gòu)與通道兩方面,可認(rèn)為標(biāo)準(zhǔn)卷積操作是同時(shí)對(duì)空間卷積與線性通道進(jìn)行了操作。并且眾所周知,卷積操作是乘法運(yùn)算。對(duì)于底層設(shè)備而言,乘法運(yùn)算的計(jì)算難度遠(yuǎn)高于加法運(yùn)算。綜上所述,為降低卷積計(jì)算量,卷積核數(shù)量的改變可分為兩種方法,一種是將標(biāo)準(zhǔn)卷積在空間結(jié)構(gòu)與通道方面進(jìn)行解耦,另一種是對(duì)卷積的乘積運(yùn)算在空間結(jié)構(gòu)上進(jìn)行因式分解,通過(guò)拆解完整乘積運(yùn)算為分段式運(yùn)算的總和來(lái)達(dá)到目的。兩種方式在運(yùn)算上均采用分段運(yùn)算,因卷積步驟拆解,所以會(huì)導(dǎo)致所使用的卷積核數(shù)量較原始卷積發(fā)生變化,通常拆解卷積會(huì)較之前使用更多的小尺寸卷積,卷積數(shù)量增多,卷積結(jié)構(gòu)更為復(fù)雜。

    MobileNets 提出的深度可分離卷積便是解耦操作。深度可分離卷積將常規(guī)三維卷積分解為二維空間的深度卷積和修改通道個(gè)數(shù)的逐點(diǎn)卷積,將三維輸入特征變成獨(dú)立的二維平面特征和通道維度。卷積過(guò)程中為每個(gè)通道分配一個(gè)卷積核,并將卷積后的特征圖維度作為輸入通道數(shù),利用單個(gè)卷積濾波器實(shí)施;然后將特征圖串聯(lián)(Concat)起來(lái)進(jìn)行逐點(diǎn)卷積,通過(guò)逐點(diǎn)卷積計(jì)算輸入通道的線性組合來(lái)構(gòu)建新特征。在模型參數(shù)量占比中除完全連接層(fully connected layer,F(xiàn)C)占據(jù)的24.33%外,逐點(diǎn)卷積占據(jù)模型總參數(shù)量的74.59%。解耦操作產(chǎn)生的分段計(jì)算大大降低了網(wǎng)絡(luò)計(jì)算量,達(dá)到了輕量化的目的。Xception中的extreme Inception 模塊效果與深度可分離卷積類似,區(qū)別僅在于DW 和PW 的運(yùn)行順序,但模塊在整體網(wǎng)絡(luò)結(jié)構(gòu)中都是相連的,順序其實(shí)并沒有太大影響。

    藍(lán)圖可分離卷積(blueprint separable convolutions,BSConv),簡(jiǎn)稱藍(lán)圖卷積,存在無(wú)限制藍(lán)圖卷積(unconstrained BSConv,BSConv-U)和子空間藍(lán)圖卷積(subspace BSConv,BSConv-S)兩類,如圖4 所示。藍(lán)圖卷積結(jié)構(gòu)設(shè)計(jì)類似MobileNets 提出的深度可分離卷積,同為解耦操作,準(zhǔn)確率較同期產(chǎn)品提升9.5%。

    圖4 BSConv-U、BSConv-S 及基礎(chǔ)卷積Fig.4 BSConv-U,BSConv-S and basic convolution

    “藍(lán)圖”提出可由一個(gè)藍(lán)圖卷積通過(guò)各種線性變換進(jìn)行常規(guī)卷積替換操作,通過(guò)附加變換的微小代價(jià)進(jìn)行模型中卷積數(shù)量的縮減,以達(dá)到輕量化效果。BSConv-U 將常規(guī)卷積分解為一個(gè)1×1 卷積和二維通道卷積,與深度可分離卷積操作相反,交換了DW 和PW 的順序,先在深度方向上加權(quán)組合再卷積。BSConv-S 基于卷積核矩陣的行與行之間存在高度關(guān)聯(lián)關(guān)系,將該卷積核進(jìn)行矩陣分解來(lái)實(shí)現(xiàn)權(quán)重矩陣的低秩近似,并通過(guò)添加正交約束來(lái)減少參數(shù)之間的相互關(guān)聯(lián),結(jié)果是將一個(gè)1×1 卷積分解成兩個(gè)1×1 卷積。

    SqueezeNet 提出的Fire 模塊同樣也是解耦操作,如圖5 所示,設(shè)計(jì)思想接近Inception系列。Fire模塊將常規(guī)卷積解耦為由Squeeze 層和Expand 層兩部分組成的分步卷積操作。Squeeze 部分采用少于上一層特征圖數(shù)量的1×1 卷積,以減少特征圖的維數(shù),降低計(jì)算量。使用1×1 小尺寸卷積是1.1 節(jié)中的卷積核大小的調(diào)整,在此不過(guò)多贅述。在Expand 部分使用Concat 操作并聯(lián)3×3 卷積和同樣的1×1 卷積。SqueezeNet 通過(guò)Squeeze 層進(jìn)行降維,在Expand 層中將單一卷積結(jié)構(gòu)拆分為并行分支計(jì)算,降低了模型的計(jì)算量,且在占據(jù)模型的運(yùn)算總量一定限額的卷積運(yùn)算中,1×1 卷積在卷積運(yùn)算中占比頗大。因?yàn)?×3 卷積的參數(shù)量是1×1 卷積的9 倍,可降低模型運(yùn)算量。最終SqueezeNet 的模型參數(shù)量?jī)H占等性能AlexNet的2.14%。

    圖5 Fire模塊Fig.5 Fire module

    藍(lán)圖卷積的解耦依據(jù)卷積內(nèi)核的內(nèi)部相關(guān)性,通過(guò)定量分析得出深度方面相關(guān)性更加優(yōu)秀的信息,從而決定解耦后分段卷積的執(zhí)行順序。SqueezeNet的卷積解耦設(shè)計(jì)則是借鑒了MobileNets 的深度可分離卷積和Inception 的多尺度思想。借鑒深度可分離卷積,使得卷積操作在空間與通道上進(jìn)行分離,導(dǎo)致Fire 模塊拆解為Squeeze 和Expand 兩部分。借鑒由大小不同卷積構(gòu)成的Inception 初始模塊的思想,在Expand 部分選取模型設(shè)計(jì)常用的1×1 卷積和3×3 卷積進(jìn)行組合。

    與標(biāo)準(zhǔn)三維卷積的區(qū)別在于,藍(lán)圖卷積將卷積拆解為由二維卷積與權(quán)重向量構(gòu)成的組合卷積結(jié)構(gòu),使用分段計(jì)算后合并的方式,改善了卷積單純的乘積運(yùn)算,達(dá)到了輕量化的目的。SqueezeNet則是提出了可通過(guò)超參數(shù)微調(diào),人為決定模型中每層卷積核的使用情況,通過(guò)大量使用計(jì)算量較少的1×1 卷積,從而達(dá)到輕量化的目的。解耦后的卷積結(jié)構(gòu)通常較為復(fù)雜,網(wǎng)絡(luò)模型越深,解耦后輕量化效果越明顯。

    第二種改變卷積核數(shù)量是通過(guò)卷積因式分解進(jìn)行的,因式分解通過(guò)將普通正方形二維卷積拆解為非對(duì)稱卷積(asymmetric convolution),在數(shù)學(xué)角度上可看作是為使模型加速而采取的逼近操作。該操作出現(xiàn)于InceptionV3 中。InceptionV3 嘗試在空間結(jié)構(gòu)上將7×7 卷積進(jìn)行因式分解,拆解為1×7 和7×1 的連續(xù)卷積操作。

    SqueezeNext使用Fire 的改進(jìn)模塊,它將Fire 模塊的3×3 卷積替換為3×1+1×3 卷積,這樣可以去掉冗余實(shí)現(xiàn)低秩濾波器,降低權(quán)值參數(shù)。SqueezeNext可達(dá)到在ImageNet 數(shù)據(jù)集上與AlexNet 相同精度,但參數(shù)量約為其0.9%的效果。而EffNet中則是對(duì)MobileNets 的深度層面分離的3×3 深度卷積進(jìn)一步改進(jìn)得到基礎(chǔ)模塊,如圖6 所示。為降低模型參數(shù)量,使用在空間上分解為1×3 和3×1 的一維卷積核組合替換原有的3×3 卷積操作,參數(shù)由3×3=9 降低到1×3+3×1=6。

    圖6 EffNet基本模塊Fig.6 EffNet basic module

    改變卷積核數(shù)量的本質(zhì)其實(shí)是通過(guò)數(shù)學(xué)方式修改運(yùn)算層級(jí)。將卷積進(jìn)行分步運(yùn)算和因式分解雖會(huì)導(dǎo)致卷積核總數(shù)變化,但在數(shù)學(xué)層面上,解耦操作將加法引入原本僅有乘法存在的運(yùn)算中,運(yùn)算層級(jí)降級(jí),造成了模型計(jì)算量降低的結(jié)果;因式分解使得參數(shù)量由原有的指數(shù)級(jí)降低為二倍關(guān)系,運(yùn)算層級(jí)降級(jí),實(shí)現(xiàn)了網(wǎng)絡(luò)模型輕量化。但因式分解從計(jì)算量角度而言,由于乘法操作數(shù)目沒變,網(wǎng)絡(luò)的計(jì)算量基本未發(fā)生改變。而且改變卷積核數(shù)量由于使用卷積尺寸不一,在模型運(yùn)行過(guò)程中需進(jìn)行部分如填充等微調(diào)操作,以此來(lái)保證輸出尺寸相同。

    1.3 改變卷積核數(shù)量與網(wǎng)絡(luò)寬度

    改變卷積核數(shù)量與網(wǎng)絡(luò)寬度是在前兩節(jié)的基礎(chǔ)上,通過(guò)調(diào)整分解后的卷積結(jié)構(gòu),在維持輕量化效果的同時(shí),一定程度上對(duì)模型性能進(jìn)行提升。常規(guī)卷積在空間及通道方向進(jìn)行解耦操作后,通常會(huì)使得模型中卷積數(shù)量增多。盡管卷積分段求和操作可降低模型計(jì)算量,但若串聯(lián)卷積的數(shù)量過(guò)多,仍會(huì)將輕量化的優(yōu)勢(shì)消除。因此需要同時(shí)對(duì)卷積結(jié)構(gòu)寬度進(jìn)行調(diào)整,通過(guò)對(duì)卷積進(jìn)行功能性劃分,形成各個(gè)卷積組,且將各分組卷積并聯(lián)執(zhí)行,用以彌補(bǔ)卷積數(shù)量帶來(lái)的問(wèn)題。

    LEDNet提出的分割-混洗-非瓶頸模塊(splitshuffle-non-bottleneck,SS-nbt)除進(jìn)行并聯(lián)操作外,還在通道拆分和混洗兩個(gè)運(yùn)算間引入了跳躍連接,結(jié)構(gòu)如圖7(d)所示。在起始位置的SS-nbt 通過(guò)通道分割操作,將輸入拆分為兩個(gè)較低維分支,每個(gè)分支為一個(gè)完整的卷積功能分組,且每個(gè)分組僅占據(jù)一半的輸入通道。分組中由一組專用的一維濾波器(例如1×3、3×1)代替逐點(diǎn)卷積進(jìn)行轉(zhuǎn)換構(gòu)成,采用2.1 節(jié)和2.2 節(jié)中的輕量化方法,構(gòu)建出滿足提取需求功能的輕量化卷積分組。級(jí)聯(lián)可保證通道個(gè)數(shù)不變,因此調(diào)整網(wǎng)絡(luò)寬度是使用級(jí)聯(lián)對(duì)兩個(gè)分支的卷積輸出進(jìn)行合并。結(jié)構(gòu)中跳躍連接的引入可重用子層參數(shù),將淺層特征復(fù)制與通過(guò)卷積后的輸出進(jìn)行疊加,用來(lái)提升特征能力。通道混洗是用來(lái)實(shí)現(xiàn)兩個(gè)拆分分支之間的信息通信。

    圖7 LEDNet網(wǎng)絡(luò)的基礎(chǔ)單元SS-nbtFig.7 Basic unit of LEDNet network:SS-nbt

    通過(guò)采用并行分組結(jié)構(gòu)的方式,降低了網(wǎng)絡(luò)深度,在有限程度上對(duì)網(wǎng)絡(luò)結(jié)構(gòu)加寬,提升了網(wǎng)絡(luò)運(yùn)行效率,搭配提升模型準(zhǔn)確率的跳躍連接層。每個(gè)SS-nbt單元將合并的特征通道隨機(jī)混洗后加入下一個(gè)單元,可以看作是一種功能重用,在某種程度上擴(kuò)大了網(wǎng)絡(luò)容量,卻未顯著增加復(fù)雜性。SS-nbt的設(shè)計(jì)中采用的拆分轉(zhuǎn)換合并策略受到了XNOR-Net和InceptionV3的影響,該結(jié)構(gòu)的設(shè)計(jì)方法可接近大型和密集層的表示能力,但計(jì)算復(fù)雜度卻低得多。最終LEDNet 在模型參數(shù)量不足1.0×10的情況下,運(yùn)行速度卻可達(dá)71 FPS。

    卷積核進(jìn)行解耦拆分后,若采用直連構(gòu)成線性結(jié)構(gòu)會(huì)使得網(wǎng)絡(luò)深度加深,因此提出添加分支結(jié)構(gòu)進(jìn)行多卷積操作并行處理,通過(guò)采用輕量化的卷積運(yùn)算對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的寬度進(jìn)行修改,降低模型深度,并通過(guò)多分支卷積并行運(yùn)算,提升模型的運(yùn)行效率,進(jìn)而提升模型性能。但分支結(jié)構(gòu)的數(shù)量需要進(jìn)行人工控制,具體結(jié)構(gòu)的設(shè)定依賴所面對(duì)的具體應(yīng)用需求和所使用的硬件設(shè)備。

    綜上所述,卷積結(jié)構(gòu)輕量化技術(shù)通過(guò)數(shù)學(xué)運(yùn)算對(duì)單一卷積進(jìn)行拆解,使用更利于運(yùn)算的卷積進(jìn)行模型計(jì)算量的削減,但該方法多次使用會(huì)導(dǎo)致模型中卷積使用數(shù)量驟增,使得卷積的總計(jì)算量占模型計(jì)算總量的比重增大,拉低計(jì)算量降低的優(yōu)勢(shì),甚至?xí)?dǎo)致模型中卷積的結(jié)構(gòu)復(fù)雜,不利于后期模型結(jié)構(gòu)調(diào)整。主要的卷積結(jié)構(gòu)輕量化技術(shù)的對(duì)比如表1所示。

    表1 卷積結(jié)構(gòu)輕量化技術(shù)對(duì)比表Table 1 Comparison of convolution lightweight technology

    2 卷積模塊輕量化技術(shù)

    卷積模塊是人工構(gòu)建的應(yīng)用編程接口(application programming interface,API),可在代碼中直接使用縮寫進(jìn)行調(diào)用,封裝包中通常包含有固定的卷積結(jié)構(gòu)模塊,可移植性高。在卷積模塊使用過(guò)程中,具體網(wǎng)絡(luò)架構(gòu)中的卷積模塊可根據(jù)需求人工進(jìn)行調(diào)整,增減模塊結(jié)構(gòu)中的卷積結(jié)構(gòu)以達(dá)成特定需求,并能防止功能模塊間出現(xiàn)功能重疊的情況,造成資源浪費(fèi)。輕量化卷積模塊常指經(jīng)由輕量化后的卷積操作組合構(gòu)成,由于其構(gòu)建使用輕量化后的卷積結(jié)構(gòu),輕量化模塊較普通模塊所占用計(jì)算量更小。輕量化模塊中常用模塊有殘差模塊、ResNeXt 模塊、SE 模塊以及注意力機(jī)制模塊。

    2.1 殘差模塊

    在數(shù)理統(tǒng)計(jì)中,殘差通常用來(lái)表示實(shí)際觀察值與估計(jì)值(擬合值)之間的差。在一個(gè)堆積層結(jié)構(gòu)中,當(dāng)輸入為時(shí),記學(xué)習(xí)到的特征為()。與原始特征()相比,差值更容易直接學(xué)習(xí),因此殘差作為差值計(jì)算學(xué)習(xí)可表示為:

    由上述公式可知,當(dāng)殘差()=0 時(shí),堆積層僅做了恒等映射,網(wǎng)絡(luò)性能應(yīng)保持不變。但事實(shí)上殘差并不為0,因此會(huì)導(dǎo)致堆積層在輸入特征基礎(chǔ)上不斷學(xué)習(xí)到新的特征,從而網(wǎng)絡(luò)也會(huì)擁有更好的性能。若網(wǎng)絡(luò)中最優(yōu)輸出為輸入,在沒有短路連接(shortcut connection)的網(wǎng)絡(luò)中,需要將其優(yōu)化成()=;而對(duì)于包含短路連接的殘差單元,可將其轉(zhuǎn)化為使得()=()-優(yōu)化為0 的需求。因此短路連接的存在可使得卷積的結(jié)構(gòu)優(yōu)化更為簡(jiǎn)單。使用殘差單元可極大保留梯度的空間結(jié)構(gòu),解決梯度破碎現(xiàn)象,提升優(yōu)化方法的有效性。圖8 為初始?xì)埐钅K的結(jié)構(gòu)圖。

    圖8 初始?xì)埐钅KFig.8 Initial residual module

    瓶頸模塊作為特殊的殘差結(jié)構(gòu),如圖9 所示,保持原有殘差結(jié)構(gòu)的同時(shí),將模塊構(gòu)建成了疊加的漏斗形狀。通過(guò)上下各一個(gè)1×1 卷積,調(diào)整網(wǎng)絡(luò)特征維度,將通道個(gè)數(shù)先減小后增大。該結(jié)構(gòu)本質(zhì)上仍是在結(jié)構(gòu)優(yōu)化的基礎(chǔ)上,通過(guò)使用1×1 卷積人為控制通道數(shù),降低模型參數(shù)量。

    圖9 殘差結(jié)構(gòu)與瓶頸結(jié)構(gòu)Fig.9 Residual structure and bottleneck structure

    SqueezeNext中的基本模塊是在瓶頸模塊的基礎(chǔ)上進(jìn)行的調(diào)整,如圖10 所示。將原始瓶頸結(jié)構(gòu)中的三維3×3 卷積因式分解為3×1 和1×3 這兩個(gè)二維卷積運(yùn)算之和,并在瓶頸結(jié)構(gòu)開始前再添加一組1×1 卷積,用來(lái)降低輸入通道數(shù)。

    圖10 SqueezeNext的基礎(chǔ)模塊Fig.10 Basic module of SqueezeNext

    卷積結(jié)構(gòu)中通過(guò)調(diào)整1×1 卷積個(gè)數(shù)的使用情況,可以靈活控制每層卷積操作時(shí)的通道數(shù)量,保證3×3卷積因式分解所得的兩個(gè)卷積運(yùn)算,始終處于低維通道運(yùn)算中,降低模型計(jì)算量。基礎(chǔ)模塊最后的1×1 卷積,用來(lái)將處理好的特征恢復(fù)成與輸入同樣的維度。

    ShuffleNet V1的基本模塊同樣基于瓶頸結(jié)構(gòu),如圖11 所示,圖(a)、(b)、(c)結(jié)構(gòu)依次進(jìn)化。與原始瓶頸結(jié)構(gòu)不同,圖(a)將普通3×3 卷積使用更為輕量化的3×3 DW 卷積來(lái)替代,降低結(jié)構(gòu)的計(jì)算量。圖(b)在圖(a)的基礎(chǔ)上進(jìn)一步調(diào)整,使用1×1 的分組卷積替換原始的1×1 卷積,并在第一個(gè)1×1 分組卷積后增添通道混洗(channel shuffle)操作。圖(c)在圖(b)的基礎(chǔ)上,將3×3的平均池化加入跳躍連接層上,并在最后使用Concat操作取代了原有的疊加(Add)操作。

    圖11 ShuffleNet單元模塊及殘差模塊Fig.11 ShuffleNet unit module and residual module

    由第1 章中的解釋可知,3×3 的DW 卷積屬于二維卷積,相較于普通3×3 卷積使用更為輕量化。而在通道數(shù)過(guò)大的情況下,多次使用1×1 卷積,輕量化效果并不十分明顯,甚至當(dāng)通道數(shù)過(guò)大時(shí),使用1×1 卷積可能會(huì)造成計(jì)算量增加。因此,圖11(b)將1×1 的卷積進(jìn)行分組后,替換原始的1×1 卷積。分組后的卷積完美解決了通道數(shù)不可控的情況,使得1×1 卷積可以保持降低計(jì)算量的功效。在第一個(gè)1×1 分組卷積后增添channel shuffle 操作是為了克服分組后信息不流通的副作用。當(dāng)stride=2 時(shí),為了保持與卷積后結(jié)果相同的特征圖大小,跳躍連接層上需要添加3×3 的平均池化操作。最后使用Concat操作取代Add操作,是因?yàn)榭梢詫煞种С叽缦嗤挠?jì)算結(jié)果直接拼接,無(wú)需重復(fù)進(jìn)行Add 運(yùn)算,因此降低了模型的計(jì)算量。

    DetNet的空間瓶頸(dilated bottleneck)模塊同樣是對(duì)瓶頸結(jié)構(gòu)的改進(jìn),如圖12 所示,圖(c)為原始瓶頸單元??臻g瓶頸結(jié)構(gòu)使用空洞卷積(dilated convolution)替換了原有的常規(guī)3×3 卷積,圖(a)與圖(b)的區(qū)別在于跳躍連接層中是否存在1×1 卷積。

    圖12 DetNet的瓶頸模塊及殘差模塊Fig.12 DetNet bottleneck module and residual module

    空間瓶頸模塊引入的空洞卷積,可以在不引入額外參數(shù)的情況下,任意擴(kuò)大感受野。由于空洞卷積是通過(guò)對(duì)卷積核進(jìn)行填充,特征圖分辨率不會(huì)如降采樣一樣丟失。卷積中的感受野范圍大小可通過(guò)調(diào)整超參數(shù)空洞率(dilation rate)進(jìn)行人為控制。跳躍連接層中是否包含1×1 卷積,取決于卷積模塊所處DetNet 骨干結(jié)構(gòu)的位置。由于DetNet 骨干搭建的特殊性,含有1×1 卷積是為了進(jìn)行通道加倍處理。經(jīng)過(guò)實(shí)驗(yàn)證明,1×1 卷積跨通道信息融合可以更好地進(jìn)行信息整合??臻g瓶頸模塊在優(yōu)化模塊上的輕量化作用并不明顯,但該模塊可大幅提升模型定位分割的能力,并同時(shí)獲得視覺任務(wù)中非常重要的多尺度信息。DetNet 比同等條件的ResNet-50 所擁有的參數(shù)量少了1.0×10,且精度提升了0.8%。

    MobileNet V2提出的線性瓶頸(linear bottleneck)模塊,如圖13 所示,保留原有瓶頸結(jié)構(gòu),僅將標(biāo)準(zhǔn)瓶頸結(jié)構(gòu)中1×1 和3×3 的卷積,使用深度可分離卷積中的DW 和PW 進(jìn)行替換,降低計(jì)算量。linear bottleneck 模塊為防止MobileNet V1 中PW 的激活函數(shù)破壞低維空間特征,在PW 操作后MobileNet V2 使用線性激活函數(shù)對(duì)ReLU6 進(jìn)行了替換。

    圖13 MobileNet V2 的Linear Bottleneck 模塊Fig.13 Linear Bottleneck module for MobileNet V2

    MobileNet V2 模塊本質(zhì)上是對(duì)瓶頸結(jié)構(gòu)與深度可分離卷積進(jìn)行融合。模塊結(jié)構(gòu)中DW 與第二個(gè)PW 可構(gòu)成深度可分離卷積,其卷積功效與深度可分離卷積一致。而DW 卷積前添加對(duì)DW 卷積通道數(shù)具有升維作用的PW 卷積,則是將模塊搭建成了標(biāo)準(zhǔn)漏斗形狀的瓶頸結(jié)構(gòu)。升維作用的PW 卷積解決了由于上層通道數(shù)較少影響DW 的空間特征,且DW 卷積缺少改變通道數(shù)的能力而產(chǎn)生的問(wèn)題。如此構(gòu)建的linear bottleneck 模塊既有瓶頸結(jié)構(gòu)的優(yōu)化特征,還通過(guò)深度可分離卷積進(jìn)行了卷積拆解,使用更輕量化的二維卷積,進(jìn)一步降低了模型計(jì)算量。

    GhostNet中按步長(zhǎng)(stride)將單元瓶頸(ghost bottleneck)模塊分為兩種,如圖14 所示。stride=1 的ghost bottleneck 模塊結(jié)構(gòu)仿照普通殘差,由兩塊Ghost 模塊構(gòu)成。第一塊充當(dāng)擴(kuò)展層,用來(lái)增加通道數(shù)量;第二塊降低通道數(shù),將通道數(shù)量恢復(fù)到與輸入通道一致,并與跳躍連接層相連。stride=2 的ghost bottleneck 模塊擁有標(biāo)準(zhǔn)瓶頸結(jié)構(gòu)的布局,保持stride=1 時(shí)的結(jié)構(gòu)特點(diǎn),通過(guò)借鑒MobileNet V2 的Linear Bottleneck 模塊的經(jīng)驗(yàn),在stride=1 結(jié)構(gòu)的中間加入中間塊,塊中使用更為輕量化的二維DW 卷積,降低計(jì)算量。吸取了MobileNet V2 的經(jīng)驗(yàn),模塊在設(shè)計(jì)過(guò)程中,除第二個(gè)Ghost 模塊后不使用ReLU 激活函數(shù)外,其他層在每層后均應(yīng)用批歸一化(batch normalization,BN)和ReLU 非線性激活函數(shù)。

    圖14 GhostNet的Ghost BottleneckFig.14 Ghost Bottleneck of GhostNet

    殘差模塊中瓶頸結(jié)構(gòu)使用更為廣泛,在殘差結(jié)構(gòu)的搭建過(guò)程中,通常使用更為輕量化的卷積對(duì)標(biāo)準(zhǔn)卷積進(jìn)行替換操作,以達(dá)到在優(yōu)化結(jié)構(gòu)的基礎(chǔ)上進(jìn)一步降低計(jì)算量。但瓶頸結(jié)構(gòu)的設(shè)定在一定程度上會(huì)使得模型整體結(jié)構(gòu)變得復(fù)雜,不利于結(jié)構(gòu)調(diào)整時(shí)的修改。

    2.2 ResNeXt模塊

    ResNeXt 模塊本質(zhì)上是分組卷積。AlexNet 當(dāng)初迫于實(shí)驗(yàn)壞境,嘗試將卷積操作進(jìn)行拆分,因此出現(xiàn)了分組卷積。分組卷積介于常規(guī)卷積與深度可分離卷積之間,未曾獨(dú)立賦予每個(gè)通道獨(dú)立的卷積核,也不曾對(duì)輸入圖片使用一個(gè)卷積核。分組卷積通過(guò)將卷積分組,對(duì)通道數(shù)進(jìn)行了切割,因此降低了模塊的參數(shù)量,達(dá)到了輕量化的效果。

    ResNeXt模塊是在Inception 網(wǎng)絡(luò)基礎(chǔ)上融合了ResNet 的特點(diǎn),與人工設(shè)計(jì)卷積細(xì)節(jié)的Inception模塊不同,ResNeXt 模塊的各個(gè)分支均采用完全一致的卷積拓?fù)浣Y(jié)構(gòu)。分組卷積的結(jié)構(gòu)設(shè)計(jì)更符合GPU的硬件設(shè)計(jì)原則,因此運(yùn)行速度應(yīng)快于人工設(shè)計(jì)卷積細(xì)節(jié)的Inception 模塊。ResNeXt 在ImageNet 數(shù)據(jù)集上實(shí)現(xiàn)了高于ResNet的精度,但復(fù)雜度僅占ResNet的50%。

    ShuffleNet V2結(jié)構(gòu)是基于ShuffleNet V1 的設(shè)計(jì)基礎(chǔ),V2 的模塊在基本模塊中添加了通道拆分模塊,效果等同于分組卷積,因此使用常規(guī)1×1 卷積代替1×1 分組卷積。ShuffleNet V2 的基礎(chǔ)模塊按stride分為兩種設(shè)計(jì)方案,如圖15(a)、(b)所示。圖(a)中模塊將輸入通道拆分為兩部分,一部分使用恒等映射進(jìn)行特征復(fù)用,另一部分則是通過(guò)首位進(jìn)行分組處理后的瓶頸結(jié)構(gòu)。圖(b)中模塊同樣將輸入通道分為兩部分,一部分使用瓶頸結(jié)構(gòu),一部分使用深度可分離卷積。stride=2 的(b)去除了(a)中的通道拆分操作,得到了輸出通道數(shù)量翻倍的效果。ShuffleNet V2以2.3 GFLOPs(floating point operations)的速度優(yōu)于ShuffleNet V1,并在FLOPs 降低40%的情況下效果優(yōu)于ResNet-50。

    圖15 ShuffleNet V2 模塊Fig.15 ShuffleNet V2 module

    GhostNet 中的Ghost 模塊將卷積生成的結(jié)果分為兩組,一組保留原始卷積的一部分不變,另一組進(jìn)行優(yōu)化輸出特征中彼此相似的冗余特征圖。Ghost模塊是由簡(jiǎn)單變換后得到的結(jié)果與保持不變信息的分組拼接得到的。將訓(xùn)練好的網(wǎng)絡(luò)中存在的大量冗余信息中相似的特征圖看作Ghost。通過(guò)對(duì)Ghost 特征圖進(jìn)行簡(jiǎn)單變換后可以替換部分用卷積生成的特征圖,縮減模型計(jì)算量。Ghost 模塊可以通過(guò)使用簡(jiǎn)單變換代替卷積操作生成CNN 特征中大量相似的冗余特征圖,實(shí)現(xiàn)了模型加速。GhostNet可在運(yùn)行時(shí)間縮減一半的情況下,達(dá)到與ResNet相同的識(shí)別精度。

    ResNeXt 模塊中的分組卷積思想實(shí)際上是對(duì)參與卷積操作的通道數(shù)進(jìn)行調(diào)整。通過(guò)對(duì)卷積的通道數(shù)進(jìn)行分割,然后多分組并行執(zhí)行,使得模型運(yùn)算速度得到了明顯提升。且在參數(shù)量的計(jì)算上,通道數(shù)分組也大幅降低了卷積計(jì)算量。理論上,分組越多模型計(jì)算越快,但卷積的分組個(gè)數(shù)取決于當(dāng)前所使用的硬件資源配置,并且與所用的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)有關(guān),因?yàn)榉纸M過(guò)多會(huì)影響到模型結(jié)構(gòu)的寬度。

    2.3 SE 模塊

    SENet提出的SE(squeeze-excitation)模塊由squeeze和excitation 兩個(gè)操作構(gòu)成。雖然同樣基于通道分組,但不同于分組卷積與深度可分離卷積是為了達(dá)成降低計(jì)算量的目的,SE 模塊對(duì)通道分組是希望模型可以自主學(xué)到不同通道間的依賴性,得到特征之間的關(guān)系,并且能通過(guò)對(duì)全局信息的把控,將通道信息進(jìn)行得分排序,強(qiáng)調(diào)信息特征并抑制干擾特征。為了將卷積運(yùn)算時(shí)的空間依賴性與通道依賴性分離,提高對(duì)信息特征的敏感度。SE 模塊在squeeze部分采用1×1 的全局平均池化操作,將輸入特征從三維壓縮至一維,所得的一維特征可獲得全局感受野,感受范圍得到了極致地放大,避免了淺層網(wǎng)絡(luò)中小的感受野無(wú)法感知上下文信息情況的出現(xiàn)。而excitation 部分為了獲取多通道間的依賴關(guān)系,通過(guò)兩個(gè)全連接層(FC)與非線性激活函數(shù)ReLU 構(gòu)成瓶頸結(jié)構(gòu),在升維的FC 層和sigmoid 激活函數(shù)的升維控制下,參數(shù)化門控機(jī)制。excitation 部分通過(guò)對(duì)每個(gè)通道的重要性進(jìn)行預(yù)測(cè),得到不同通道的重要性大小后再將激勵(lì)作用到之前特征圖的對(duì)應(yīng)通道上,使得通道擁有可以進(jìn)行初選擇的不同激勵(lì)效果。

    SE模塊具有良好的可移植性,可以用最小的額外計(jì)算成本為深層架構(gòu)提供顯著的性能改進(jìn)。ILSVRC 2017 年,以SENet為骨干的網(wǎng)絡(luò)獲得了分類賽的第一名。MobileNet V3的瓶頸模塊中添加了SE 模塊,因?yàn)闀r(shí)間損耗問(wèn)題將SE 模塊放在DW 卷積后,最終MobileNet V3 精度得到了進(jìn)一步提升,卻未增加時(shí)間損耗。GCNet提出將SE 模塊中squeeze 部分的全局平均池化操作使用簡(jiǎn)化的非局部(non-local)模塊替代,使得模型輕量化且可以有效對(duì)全局上下文建模。在目標(biāo)檢測(cè)方面,GCNet 的平均精度(average precision,AP)較SENet提升1.7%,F(xiàn)LOPs僅增加0.07%。

    經(jīng)由前文可知,SE 模塊在squeeze 部分使用1×1卷積降維,并在excitation 中構(gòu)成優(yōu)化的瓶頸結(jié)構(gòu),降低了卷積結(jié)構(gòu)的計(jì)算量。但瓶頸結(jié)構(gòu)中的FC 層較為耗時(shí),因此,在通道數(shù)較少時(shí)使用該模塊可獲得最佳效果。SE 模塊可依據(jù)上下文對(duì)通道進(jìn)行權(quán)值標(biāo)定,調(diào)整通道依賴,non-local模塊可通過(guò)使用聚集其他位置信息來(lái)加強(qiáng)此位置特征信息的功能。并且nonlocal 模塊在不同位置時(shí)全局上下文信息幾乎相同。SE 模塊與non-local 模塊功能具有輔助作用,且nonlocal模塊的出現(xiàn)解決了SE 模塊無(wú)法充分利用上下文的缺點(diǎn),適合聯(lián)合使用。

    2.4 注意力機(jī)制模塊

    注意力機(jī)制模塊CBAM(convolutional block attention module)是輕量級(jí)通用模塊,可在通道維度和空間維度兩方面進(jìn)行特征聚焦,并對(duì)兩方面的獨(dú)立維度進(jìn)行集成?;诳臻g維度和通道維度可分為通道注意力模塊(channel attention module,CAM)和空間注意力模塊(spatial attention module,SAM)兩部分。

    CAM 是對(duì)SE 模塊結(jié)構(gòu)的調(diào)整,在SE 模塊的基礎(chǔ)上,CAM 中添加了一個(gè)全局最大池化操作。CAM在空間維度上壓縮特征圖為一維矢量,并使用全局平均池化與全局最大池化對(duì)空間映射的特征信息進(jìn)行聚合,通過(guò)共享全連接層對(duì)結(jié)果進(jìn)行逐元素加和操作。雙重池化操作的結(jié)構(gòu)設(shè)定,可使得所提取的高層次特征內(nèi)容更豐富,提供更為精細(xì)的信息。SAM是將CAM 操作后的結(jié)果基于通道進(jìn)行Concat 操作,經(jīng)由卷積進(jìn)行單通道降維。SAM 同CAM 一樣均采用雙重池化操作。CBAM 與SE 模塊相似,模塊結(jié)構(gòu)中多采用1×1 卷積進(jìn)行操作,通過(guò)SAM 調(diào)整通道維度,完成對(duì)特征圖的信息提取。

    ThunderNet使用輕量級(jí)骨干網(wǎng)絡(luò)與小分辨率圖像輸入,使得模型特征提取部分表現(xiàn)力有限,不能正確學(xué)習(xí)特征分布。為解決小主干和小特征圖的性能退化問(wèn)題,ThunderNet壓縮了區(qū)域生成網(wǎng)絡(luò)(region proposal network,RPN)和R-CNN子網(wǎng),提出了上下文增強(qiáng)模塊(context enhancement module,CEM)和空間注意力模塊(SAM)兩個(gè)模塊。CEM 的功能與特征金字塔網(wǎng)絡(luò)(feature pyramid networks,F(xiàn)PN)的多尺度思想類似,且CEM 僅采用骨干后三層數(shù)據(jù)進(jìn)行操作,因此CEM 具有FPN 的功能,且擁有比FPN 更為精簡(jiǎn)的效果。SAM 使用RPN 中的得分結(jié)果對(duì)CEM的特征圖進(jìn)行加權(quán),達(dá)到抑制背景區(qū)域特征的目的,與CEM 運(yùn)算幾乎不增加計(jì)算量相比,SAM 會(huì)增加5%的網(wǎng)絡(luò)計(jì)算量。CEM 和SAM 的使用最終可將模型精度提升1.7%。

    坐標(biāo)注意力(coordinate attention,CA)模塊將通過(guò)二維全局池化操作生成一維特征向量的CAM調(diào)整為經(jīng)由兩個(gè)一維全局池化,并在垂直和水平方向上將CAM 進(jìn)行特征編碼,最終得到兩個(gè)含有特定方向信息的注意力圖。該注意力圖中分別包含輸入特征圖在該方向上的長(zhǎng)距離依賴,即注意力圖含有輸入特征圖的位置信息。CA 模塊所得注意力圖具有對(duì)特征圖的方向和位置信息敏感的特性,增強(qiáng)了模型定位和劃分待定區(qū)域的精準(zhǔn)度,且CA 模塊具有良好的可移植性,移植過(guò)程中幾乎沒有計(jì)算開銷。

    注意力機(jī)制模塊是一種簡(jiǎn)單而有效的模塊,它達(dá)到了與基礎(chǔ)卷積同時(shí)進(jìn)行端到端訓(xùn)練的程度。在兩個(gè)獨(dú)立維度上,注意力機(jī)制模塊可以做到沿著不同維度分別進(jìn)行注意力圖推斷,并在特征圖提取基礎(chǔ)上進(jìn)行自適應(yīng)優(yōu)化。在注意力推斷過(guò)程中使用輕量化的1×1 卷積進(jìn)行操作,將特征提取過(guò)程中被忽略的位置信息標(biāo)記于卷積通道,并通過(guò)方向與特征信息在空間維度中加強(qiáng)模型的定位能力。注意力機(jī)制模塊在網(wǎng)絡(luò)中常位于前饋神經(jīng)網(wǎng)絡(luò)的常規(guī)卷積層后,可忽略該模塊開銷將其無(wú)縫集成至任意CNN 架構(gòu),可移植性好。但由于其結(jié)構(gòu)中包含F(xiàn)C 結(jié)構(gòu),應(yīng)避免在通道數(shù)較多的層中多次使用。

    綜上所述,卷積模塊輕量化技術(shù)通過(guò)使用輕量化卷積搭建所需的功能模塊結(jié)構(gòu),在降低計(jì)算量的同時(shí)盡可能提升模型效率,但在卷積模塊的設(shè)計(jì)過(guò)程中為滿足具體應(yīng)用需求,可能會(huì)使用提升模型性能卻不利于降低計(jì)算量的設(shè)計(jì),甚至不同功能性模塊間的結(jié)構(gòu)設(shè)計(jì)會(huì)相互影響,從而影響模型性能提升。因此,功能性輕量化模塊具有一定提升模型性能與降低計(jì)算量作用,但需要在具體的網(wǎng)絡(luò)結(jié)構(gòu)中依據(jù)具體需求進(jìn)行人為調(diào)整。主要的模塊輕量化技術(shù)的對(duì)比如表2 所示。

    表2 模塊輕量化技術(shù)對(duì)比Table 2 Comparison of lightweight technology of modules

    3 卷積運(yùn)算輕量化技術(shù)

    近年來(lái)硬件設(shè)備的發(fā)展賦予了卷積運(yùn)算新的發(fā)展思路。乘法運(yùn)算的卷積操作十分消耗網(wǎng)絡(luò)資源與能量,因此模型雖可以正常運(yùn)轉(zhuǎn),但乘積類運(yùn)算參數(shù)量過(guò)多,使得模型可移植性較低。對(duì)乘法操作進(jìn)行替換是解決模型高計(jì)算量和功耗預(yù)算的有效方式。

    DeepShift網(wǎng)絡(luò)通過(guò)執(zhí)行按位移位和按位取反的操作來(lái)替換原有前向傳播中的浮點(diǎn)乘法運(yùn)算,減少模型運(yùn)行過(guò)程中推理所需計(jì)算時(shí)間。按位移位操作可等價(jià)為將輸入數(shù)字的基礎(chǔ)二進(jìn)制與2 的冪次方進(jìn)行乘積運(yùn)算,但2 的冪次方無(wú)論冪次取值為何,結(jié)果恒大于0,因此按位移位可取代常規(guī)卷積中的絕對(duì)值乘法運(yùn)算。在網(wǎng)絡(luò)中,正值和負(fù)值的濾波器均有助于網(wǎng)絡(luò)的邊緣檢測(cè),因此DeepShift 加入了取反運(yùn)算,按位取反操作保證了網(wǎng)絡(luò)訓(xùn)練過(guò)程中負(fù)值的乘積運(yùn)算出現(xiàn)。在硬件電路設(shè)備中,移位和取反操作甚至比加法操作速度還快,因此使用按位移位和按位取反來(lái)替換乘積運(yùn)算,可使模型運(yùn)行速度更快。與二值化神經(jīng)網(wǎng)絡(luò)(binarized neural networks,BNN)這類僅可以在小型數(shù)據(jù)集上加快網(wǎng)絡(luò)運(yùn)算速度的方法不同,DeepShift 網(wǎng)絡(luò)在ImageNet 這類大型數(shù)據(jù)集上也可正常使用,且能維持90%的精度。

    在常規(guī)卷積輕量化的方法中,雖注意到可以對(duì)卷積的乘法操作進(jìn)行替換,但似乎很少有人可以站在硬件資源加速的角度,使用底層算法徹底進(jìn)行卷積加速,這個(gè)想法既新穎又很大膽。DeepShift 的訓(xùn)練方式與常規(guī)卷積訓(xùn)練方式相同,但參數(shù)與梯度變化需要按照固定公式進(jìn)行調(diào)整。DeepShift 通過(guò)2 的冪次方進(jìn)行按位移位操作,但當(dāng)冪次方取值小于1時(shí),結(jié)果分布較為密集,而當(dāng)冪次方取值大于1 時(shí),結(jié)果分布卻越來(lái)越稀疏。這樣的分布差距可能會(huì)隨著取值范圍的變化而對(duì)DeepShift 的移位運(yùn)算造成越來(lái)越大的近似誤差。

    現(xiàn)階段,對(duì)于卷積運(yùn)算的替代方式嚴(yán)重依賴于底層硬件設(shè)備的設(shè)計(jì),二進(jìn)制運(yùn)算過(guò)程中會(huì)使得冪次運(yùn)算在替換過(guò)程中出現(xiàn)不可避免的運(yùn)算方面的誤差,從而導(dǎo)致模型在實(shí)際應(yīng)用方面受限。但該替代卷積運(yùn)算的新潮思想,仍能作為未來(lái)研究的一個(gè)方向。

    4 總結(jié)與展望

    使用更廉價(jià)的操作代替原有乘法運(yùn)算已成為卷積輕量化方法的核心思想,在廉價(jià)操作替換完畢后,通過(guò)卷積間的關(guān)系以及各種輔助工具對(duì)功能性卷積進(jìn)行調(diào)整,便可得到較為滿意的輕量化功能性卷積結(jié)構(gòu)。

    本文對(duì)近幾年輕量化模型進(jìn)行了歸類分析,所涉模型涵蓋多種類別,包含目標(biāo)檢測(cè)、目標(biāo)識(shí)別、語(yǔ)義分割、圖像分類等實(shí)際視覺應(yīng)用需求,卷積輕量化的主要途徑為:

    (1)優(yōu)化單一卷積。普通卷積單一乘法的計(jì)算方式疊加起來(lái)所需算力驚人,不適用于算力有限的小型便攜式設(shè)備。通過(guò)不同研究方向,將常規(guī)卷積完整的一次乘法運(yùn)算進(jìn)行拆解,使用更為低級(jí)的加法運(yùn)算替換掉部分乘法運(yùn)算,以此達(dá)到輕量化的目的。

    (2)優(yōu)化卷積間結(jié)構(gòu)。卷積間結(jié)構(gòu)指輕量化卷積模塊。卷積模塊的構(gòu)建需要按照具體應(yīng)用需求進(jìn)行設(shè)計(jì),設(shè)計(jì)方法有兩種:第一種是直接在現(xiàn)有的輕量化卷積模塊上按照需求進(jìn)行修改;第二種是首先設(shè)計(jì)出滿足要求的傳統(tǒng)卷積模塊結(jié)構(gòu),其次通過(guò)借用單一卷積得到的輕量化后的卷積,對(duì)傳統(tǒng)卷積模塊中的卷積進(jìn)行替換,然后使用現(xiàn)有輕量化功能結(jié)構(gòu)或使用激活函數(shù)之類的工具調(diào)整輕量化卷積在模塊間的結(jié)構(gòu)關(guān)系,最后達(dá)成輕量化卷積功能模塊的效果。

    (3)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)中的卷積。出于對(duì)硬件設(shè)備運(yùn)行速度的考量,使用底層運(yùn)算對(duì)卷積運(yùn)算進(jìn)行替代。通過(guò)底層運(yùn)算的聯(lián)合,取代卷積的高階乘法運(yùn)算,以達(dá)到輕量化的目的。

    卷積作為深度學(xué)習(xí)的構(gòu)成基礎(chǔ),將卷積輕量化可最大限度地提高網(wǎng)絡(luò)計(jì)算效率,減少卷積間的冗余計(jì)算量,使模型在相同識(shí)別精度下,卷積在參數(shù)量或計(jì)算量上占比有所下降,使得模型便于在移動(dòng)式視覺終端上使用。模型輕量化的效果如表3 所示。通過(guò)表3 數(shù)據(jù)可知,搭配工具使用了輕量化的卷積或功能模塊,在降低參數(shù)量或者提升運(yùn)行速度的同時(shí),準(zhǔn)確率均得到了一定程度的提升。

    表3 模型輕量化效果對(duì)比Table 3 Comparison of model lightweight effects

    表3 (續(xù))

    但當(dāng)前輕量化網(wǎng)絡(luò)模型的卷積輕量化操作還略顯稚嫩,均是圍繞使用廉價(jià)操作替換卷積運(yùn)算展開的。按照使用底層運(yùn)算提升硬件運(yùn)行速度的發(fā)展來(lái)看,或許可以從底層運(yùn)算入手,設(shè)計(jì)出一款基于底層運(yùn)算的卷積操作。

    希望本文可以幫助讀者認(rèn)識(shí)卷積輕量化的方法,對(duì)設(shè)計(jì)輕量化卷積結(jié)構(gòu)提供啟發(fā),并能針對(duì)具體需求設(shè)計(jì)或組合出高效的輕量化模型。

    猜你喜歡
    瓶頸輕量化分組
    汽車輕量化集成制造專題主編
    分組搭配
    一種輕量化自卸半掛車結(jié)構(gòu)設(shè)計(jì)
    怎么分組
    分組
    突破霧霾治理的瓶頸
    瞄準(zhǔn)掛車輕量化 鑼響掛車正式掛牌成立
    專用汽車(2016年1期)2016-03-01 04:13:19
    突破瓶頸 實(shí)現(xiàn)多贏
    用戶:輕量化掛車的使用體驗(yàn)
    專用汽車(2015年4期)2015-03-01 04:09:07
    如何渡過(guò)初創(chuàng)瓶頸期
    亚洲,欧美,日韩| 18禁裸乳无遮挡动漫免费视频 | 汤姆久久久久久久影院中文字幕| 国产久久久一区二区三区| 高清欧美精品videossex| 国产一区亚洲一区在线观看| 国产免费福利视频在线观看| 国产毛片a区久久久久| 日韩电影二区| 国产精品99久久99久久久不卡 | 黄色怎么调成土黄色| 欧美丝袜亚洲另类| 少妇人妻一区二区三区视频| 亚洲欧美一区二区三区黑人 | 深爱激情五月婷婷| 日本一二三区视频观看| 国产美女午夜福利| 又爽又黄a免费视频| 久久精品熟女亚洲av麻豆精品| 亚洲欧美成人精品一区二区| 日日啪夜夜爽| 免费少妇av软件| 看黄色毛片网站| 久久鲁丝午夜福利片| 99视频精品全部免费 在线| 岛国毛片在线播放| 国产在线一区二区三区精| 性色avwww在线观看| 亚洲综合精品二区| 国产 精品1| 99热这里只有是精品在线观看| 香蕉精品网在线| 九九爱精品视频在线观看| 国产爽快片一区二区三区| av线在线观看网站| 亚洲av成人精品一区久久| 久久久欧美国产精品| 99热这里只有精品一区| 国产爱豆传媒在线观看| 午夜免费观看性视频| 大又大粗又爽又黄少妇毛片口| 欧美人与善性xxx| 黄色日韩在线| 午夜免费观看性视频| 免费人成在线观看视频色| 青春草视频在线免费观看| 国产毛片a区久久久久| 国产精品.久久久| 国产成人精品福利久久| 亚洲无线观看免费| 久久久久久久久久成人| 尾随美女入室| 久久久久久久久久成人| 女人久久www免费人成看片| 天堂中文最新版在线下载 | 日韩不卡一区二区三区视频在线| 3wmmmm亚洲av在线观看| 视频区图区小说| 国产精品偷伦视频观看了| 亚洲激情五月婷婷啪啪| 亚洲精品,欧美精品| 日本色播在线视频| 国产黄频视频在线观看| 亚洲国产av新网站| 国产精品人妻久久久影院| 亚洲国产欧美在线一区| 综合色av麻豆| 成人特级av手机在线观看| 一级a做视频免费观看| 久久人人爽av亚洲精品天堂 | 亚洲综合精品二区| 干丝袜人妻中文字幕| 又黄又爽又刺激的免费视频.| 成人二区视频| 欧美一级a爱片免费观看看| 欧美成人午夜免费资源| 嘟嘟电影网在线观看| 亚洲图色成人| 中文乱码字字幕精品一区二区三区| 午夜免费鲁丝| 国产精品久久久久久av不卡| 极品少妇高潮喷水抽搐| 1000部很黄的大片| 一级毛片电影观看| 免费黄色在线免费观看| 欧美日本视频| 亚洲成人中文字幕在线播放| videossex国产| 亚洲精品一区蜜桃| 麻豆久久精品国产亚洲av| 99久久中文字幕三级久久日本| 国产国拍精品亚洲av在线观看| 99久久九九国产精品国产免费| 成年av动漫网址| 特大巨黑吊av在线直播| 男女那种视频在线观看| 国产精品国产av在线观看| 亚洲欧美日韩东京热| 免费看光身美女| 国产欧美亚洲国产| 成人免费观看视频高清| 你懂的网址亚洲精品在线观看| www.av在线官网国产| 免费观看在线日韩| 一区二区av电影网| 久久综合国产亚洲精品| 国产精品一二三区在线看| 亚洲精华国产精华液的使用体验| 3wmmmm亚洲av在线观看| 国产在视频线精品| 男女无遮挡免费网站观看| av在线蜜桃| 又粗又硬又长又爽又黄的视频| 中文乱码字字幕精品一区二区三区| 精品视频人人做人人爽| 亚洲欧美日韩无卡精品| 亚洲婷婷狠狠爱综合网| 亚洲在线观看片| 男的添女的下面高潮视频| 高清av免费在线| 日韩 亚洲 欧美在线| 涩涩av久久男人的天堂| av在线亚洲专区| 三级男女做爰猛烈吃奶摸视频| 亚洲精品视频女| 国产真实伦视频高清在线观看| 国产 一区精品| 交换朋友夫妻互换小说| 日日摸夜夜添夜夜添av毛片| 免费av观看视频| 免费观看在线日韩| 五月伊人婷婷丁香| 亚洲国产欧美在线一区| 女人十人毛片免费观看3o分钟| 国产亚洲精品久久久com| 亚洲国产色片| 国产乱人视频| 欧美区成人在线视频| 婷婷色麻豆天堂久久| 亚洲精品乱久久久久久| 午夜亚洲福利在线播放| 麻豆成人午夜福利视频| 成人鲁丝片一二三区免费| 亚洲人与动物交配视频| 男女下面进入的视频免费午夜| 亚洲欧美成人综合另类久久久| 国产成人91sexporn| 激情五月婷婷亚洲| 亚洲欧美清纯卡通| 成年av动漫网址| 欧美成人午夜免费资源| 久久久欧美国产精品| 全区人妻精品视频| 精品一区在线观看国产| 如何舔出高潮| 边亲边吃奶的免费视频| 在线观看免费高清a一片| 国产 一区 欧美 日韩| 久久精品人妻少妇| 18禁在线无遮挡免费观看视频| 国产综合懂色| 午夜福利在线在线| 性色avwww在线观看| 成人午夜精彩视频在线观看| 国产精品久久久久久精品电影| 国产人妻一区二区三区在| 特级一级黄色大片| 欧美精品国产亚洲| 国产精品伦人一区二区| 亚洲av欧美aⅴ国产| 精品少妇久久久久久888优播| 久久久久久久大尺度免费视频| 久久久欧美国产精品| 中文乱码字字幕精品一区二区三区| 99久久精品国产国产毛片| 国产一级毛片在线| 赤兔流量卡办理| 成年版毛片免费区| 精品久久久久久久久亚洲| 久久ye,这里只有精品| 热99国产精品久久久久久7| 精品亚洲乱码少妇综合久久| 天天一区二区日本电影三级| 自拍欧美九色日韩亚洲蝌蚪91 | 国产视频首页在线观看| 免费黄频网站在线观看国产| 国产一区二区三区av在线| 六月丁香七月| 中文资源天堂在线| 最近最新中文字幕免费大全7| 秋霞在线观看毛片| 网址你懂的国产日韩在线| 欧美精品国产亚洲| 美女视频免费永久观看网站| 男女啪啪激烈高潮av片| 男插女下体视频免费在线播放| 91精品一卡2卡3卡4卡| 国产黄频视频在线观看| 一级毛片 在线播放| 中文天堂在线官网| 一级毛片 在线播放| 亚洲av一区综合| 日韩免费高清中文字幕av| 内地一区二区视频在线| 成年版毛片免费区| 亚洲av成人精品一二三区| 少妇猛男粗大的猛烈进出视频 | 你懂的网址亚洲精品在线观看| 听说在线观看完整版免费高清| 97在线人人人人妻| 亚洲成人精品中文字幕电影| 丰满少妇做爰视频| 欧美人与善性xxx| 五月玫瑰六月丁香| 久久精品国产鲁丝片午夜精品| 欧美精品一区二区大全| 国模一区二区三区四区视频| 日韩,欧美,国产一区二区三区| 九九久久精品国产亚洲av麻豆| 美女cb高潮喷水在线观看| 国产伦理片在线播放av一区| 免费电影在线观看免费观看| 在线 av 中文字幕| 亚洲精品一二三| 国产成人91sexporn| 最后的刺客免费高清国语| 美女高潮的动态| 91精品一卡2卡3卡4卡| 97超碰精品成人国产| 免费黄频网站在线观看国产| 人妻 亚洲 视频| 亚洲色图av天堂| 国内精品美女久久久久久| 成人综合一区亚洲| 欧美激情国产日韩精品一区| 午夜福利高清视频| 久久久国产一区二区| av卡一久久| 久久精品国产亚洲网站| 免费看光身美女| 草草在线视频免费看| 狂野欧美白嫩少妇大欣赏| 欧美高清成人免费视频www| 日日撸夜夜添| 天堂俺去俺来也www色官网| 欧美日韩一区二区视频在线观看视频在线 | 日韩人妻高清精品专区| 超碰av人人做人人爽久久| 国产91av在线免费观看| 男女啪啪激烈高潮av片| 观看美女的网站| 亚洲在线观看片| www.av在线官网国产| 少妇人妻一区二区三区视频| 亚洲av国产av综合av卡| 日本黄色片子视频| 国产精品人妻久久久久久| 亚洲欧美精品自产自拍| 国产一区二区在线观看日韩| 午夜福利视频精品| 久久久久国产精品人妻一区二区| 小蜜桃在线观看免费完整版高清| .国产精品久久| 婷婷色综合大香蕉| 王馨瑶露胸无遮挡在线观看| 日本三级黄在线观看| 亚洲真实伦在线观看| 少妇猛男粗大的猛烈进出视频 | 免费观看a级毛片全部| 国产人妻一区二区三区在| 亚洲无线观看免费| 男女边吃奶边做爰视频| 国产欧美日韩一区二区三区在线 | 国产成人精品婷婷| 国产综合懂色| 国产黄色免费在线视频| 中文乱码字字幕精品一区二区三区| 91精品一卡2卡3卡4卡| 国产亚洲91精品色在线| 一区二区av电影网| 成年av动漫网址| av播播在线观看一区| 国产精品一区www在线观看| av天堂中文字幕网| 大片免费播放器 马上看| 特级一级黄色大片| av一本久久久久| 亚洲av不卡在线观看| 蜜臀久久99精品久久宅男| 男男h啪啪无遮挡| 高清视频免费观看一区二区| 日本wwww免费看| 麻豆乱淫一区二区| 女人久久www免费人成看片| 欧美一区二区亚洲| 国产色爽女视频免费观看| 日本色播在线视频| 色婷婷久久久亚洲欧美| 一级毛片黄色毛片免费观看视频| av国产久精品久网站免费入址| 欧美变态另类bdsm刘玥| 各种免费的搞黄视频| 国产人妻一区二区三区在| 美女被艹到高潮喷水动态| 亚洲欧美精品自产自拍| 少妇人妻久久综合中文| 性插视频无遮挡在线免费观看| 99热全是精品| 欧美高清成人免费视频www| 国产高潮美女av| 亚洲av免费在线观看| 精品人妻熟女av久视频| 美女被艹到高潮喷水动态| 亚洲一区二区三区欧美精品 | 成人高潮视频无遮挡免费网站| 国产精品爽爽va在线观看网站| 欧美丝袜亚洲另类| 黄色日韩在线| 亚洲av成人精品一二三区| 亚洲最大成人手机在线| 夫妻午夜视频| 麻豆成人午夜福利视频| 99久久九九国产精品国产免费| 看非洲黑人一级黄片| 国产成人福利小说| 九九爱精品视频在线观看| 波野结衣二区三区在线| 欧美精品国产亚洲| 久久人人爽人人片av| www.av在线官网国产| 少妇人妻久久综合中文| 在线 av 中文字幕| 欧美人与善性xxx| 日韩精品有码人妻一区| 国产av国产精品国产| 国产久久久一区二区三区| 久久久久久久久久久免费av| 国产男女内射视频| 99热全是精品| 久久久久久久久久人人人人人人| 九九久久精品国产亚洲av麻豆| 亚洲婷婷狠狠爱综合网| 久热这里只有精品99| 一区二区三区精品91| 男男h啪啪无遮挡| 精品人妻一区二区三区麻豆| 在线看a的网站| 国产高清有码在线观看视频| 热99国产精品久久久久久7| 一个人看视频在线观看www免费| 亚洲av成人精品一二三区| 成年人午夜在线观看视频| 成年女人在线观看亚洲视频 | 2018国产大陆天天弄谢| 国产精品一区www在线观看| 亚洲av中文字字幕乱码综合| 久久99精品国语久久久| 日韩亚洲欧美综合| 高清午夜精品一区二区三区| 国模一区二区三区四区视频| 高清视频免费观看一区二区| 青青草视频在线视频观看| av线在线观看网站| 中文字幕av成人在线电影| 视频区图区小说| 亚洲精品aⅴ在线观看| 99久久中文字幕三级久久日本| 啦啦啦中文免费视频观看日本| 在线免费观看不下载黄p国产| 亚洲色图av天堂| 又大又黄又爽视频免费| 久久国内精品自在自线图片| 男女那种视频在线观看| 日韩人妻高清精品专区| 欧美另类一区| 狠狠精品人妻久久久久久综合| 边亲边吃奶的免费视频| 麻豆国产97在线/欧美| 亚洲精品成人av观看孕妇| 久久久久国产网址| 亚洲欧美日韩无卡精品| 色视频在线一区二区三区| 久久久a久久爽久久v久久| 天堂中文最新版在线下载 | 亚洲欧美日韩东京热| 自拍偷自拍亚洲精品老妇| 亚洲aⅴ乱码一区二区在线播放| 黄色欧美视频在线观看| 亚洲精品日韩在线中文字幕| 亚洲人与动物交配视频| 大话2 男鬼变身卡| 久久久久国产精品人妻一区二区| 大陆偷拍与自拍| 丝袜美腿在线中文| .国产精品久久| 视频中文字幕在线观看| 一个人看视频在线观看www免费| 高清av免费在线| 成人一区二区视频在线观看| 国产成年人精品一区二区| 精品一区二区三卡| 成人国产av品久久久| 97热精品久久久久久| 色综合色国产| 亚洲,一卡二卡三卡| 欧美激情久久久久久爽电影| 亚洲av一区综合| 亚洲国产日韩一区二区| 麻豆国产97在线/欧美| 免费看不卡的av| 九九久久精品国产亚洲av麻豆| 国产亚洲av片在线观看秒播厂| 久久精品国产自在天天线| av线在线观看网站| 国产 一区精品| 亚洲精品国产av蜜桃| 国产精品秋霞免费鲁丝片| 亚洲精品456在线播放app| 婷婷色综合大香蕉| 建设人人有责人人尽责人人享有的 | 三级国产精品片| 久久这里有精品视频免费| 高清日韩中文字幕在线| 国产美女午夜福利| 国产精品.久久久| 九九久久精品国产亚洲av麻豆| 日本黄色片子视频| 老司机影院毛片| 久久久国产一区二区| 新久久久久国产一级毛片| 国产男女超爽视频在线观看| 久久久精品94久久精品| 国产精品伦人一区二区| 99视频精品全部免费 在线| av国产免费在线观看| 国产 精品1| 欧美区成人在线视频| 深爱激情五月婷婷| 又爽又黄a免费视频| 亚洲欧美精品专区久久| 一二三四中文在线观看免费高清| 高清在线视频一区二区三区| av在线观看视频网站免费| 欧美成人a在线观看| 91狼人影院| 国产精品国产三级国产av玫瑰| 老师上课跳d突然被开到最大视频| 久久精品人妻少妇| 超碰av人人做人人爽久久| 精品人妻一区二区三区麻豆| 夜夜看夜夜爽夜夜摸| 午夜老司机福利剧场| 亚洲最大成人中文| 丰满乱子伦码专区| 国产91av在线免费观看| 我的老师免费观看完整版| 欧美日韩视频高清一区二区三区二| 欧美高清性xxxxhd video| 两个人的视频大全免费| 亚洲av电影在线观看一区二区三区 | 女人十人毛片免费观看3o分钟| 内射极品少妇av片p| 少妇人妻久久综合中文| av一本久久久久| 国产欧美日韩一区二区三区在线 | 国产av码专区亚洲av| 91久久精品国产一区二区成人| av线在线观看网站| 国产永久视频网站| 毛片女人毛片| 人人妻人人爽人人添夜夜欢视频 | 男男h啪啪无遮挡| 欧美激情久久久久久爽电影| 青青草视频在线视频观看| 亚洲成色77777| 一区二区三区四区激情视频| 天堂中文最新版在线下载 | 伊人久久精品亚洲午夜| 久久韩国三级中文字幕| 五月开心婷婷网| 国产亚洲av嫩草精品影院| 一级毛片黄色毛片免费观看视频| 亚洲精品成人av观看孕妇| 91午夜精品亚洲一区二区三区| 免费看日本二区| 精品人妻视频免费看| 99久久人妻综合| 国产成人福利小说| 人妻 亚洲 视频| 国精品久久久久久国模美| 日韩三级伦理在线观看| av黄色大香蕉| 日韩强制内射视频| 国产探花在线观看一区二区| 少妇的逼好多水| 伊人久久精品亚洲午夜| 亚洲av免费在线观看| 亚洲精品一二三| 一个人观看的视频www高清免费观看| 免费看光身美女| 99久久精品国产国产毛片| 在线a可以看的网站| 亚洲欧美中文字幕日韩二区| av免费观看日本| 国产v大片淫在线免费观看| 爱豆传媒免费全集在线观看| 亚洲精品一区蜜桃| 亚洲精品国产色婷婷电影| 国产黄片美女视频| 丰满少妇做爰视频| 日产精品乱码卡一卡2卡三| 久久久久久久久久久丰满| 国产精品久久久久久精品电影| 久久久精品免费免费高清| a级毛片免费高清观看在线播放| 国产精品一区二区三区四区免费观看| 婷婷色综合www| 国产免费一级a男人的天堂| 嘟嘟电影网在线观看| 身体一侧抽搐| 国产精品蜜桃在线观看| 国产成人精品婷婷| 日韩欧美一区视频在线观看 | 亚洲成人精品中文字幕电影| 国产一级毛片在线| 中国三级夫妇交换| 国产伦在线观看视频一区| 久久综合国产亚洲精品| 精品熟女少妇av免费看| 国产乱来视频区| 成人黄色视频免费在线看| 精品久久久噜噜| 五月玫瑰六月丁香| 久久精品国产亚洲av涩爱| 国产精品熟女久久久久浪| 欧美区成人在线视频| 春色校园在线视频观看| 一个人看的www免费观看视频| 午夜福利视频精品| 在线精品无人区一区二区三 | 色吧在线观看| 精品99又大又爽又粗少妇毛片| 亚洲成人中文字幕在线播放| 久久久久性生活片| 自拍偷自拍亚洲精品老妇| 亚洲国产精品成人久久小说| 精品人妻偷拍中文字幕| 99热6这里只有精品| 国产成人91sexporn| 欧美老熟妇乱子伦牲交| 最近中文字幕高清免费大全6| 我的老师免费观看完整版| 成年人午夜在线观看视频| 99热国产这里只有精品6| 国产淫语在线视频| 国产精品爽爽va在线观看网站| 99精国产麻豆久久婷婷| 国产69精品久久久久777片| 亚洲成人中文字幕在线播放| 成人欧美大片| 天天躁日日操中文字幕| 日本免费在线观看一区| 欧美成人精品欧美一级黄| 日本wwww免费看| 欧美老熟妇乱子伦牲交| 99久国产av精品国产电影| 边亲边吃奶的免费视频| 别揉我奶头 嗯啊视频| 中国国产av一级| 人妻制服诱惑在线中文字幕| 最近2019中文字幕mv第一页| 人妻夜夜爽99麻豆av| 一级黄片播放器| 亚洲成色77777| 99久国产av精品国产电影| 午夜福利高清视频| 久久久色成人| 久久热精品热| 亚洲国产色片| 亚洲真实伦在线观看| 国产中年淑女户外野战色| 久久99精品国语久久久| 欧美区成人在线视频| 日本欧美国产在线视频| 亚洲av国产av综合av卡| 干丝袜人妻中文字幕| 街头女战士在线观看网站| 免费看日本二区| 欧美区成人在线视频| 又爽又黄无遮挡网站| 久久久国产一区二区| 欧美老熟妇乱子伦牲交| 在现免费观看毛片| 搡女人真爽免费视频火全软件| 久久久久久久亚洲中文字幕| 丝袜美腿在线中文| 免费高清在线观看视频在线观看| 在线亚洲精品国产二区图片欧美 | 草草在线视频免费看| 日韩视频在线欧美| 亚洲高清免费不卡视频| freevideosex欧美| 欧美极品一区二区三区四区| 激情 狠狠 欧美| 亚洲av日韩在线播放| 人妻系列 视频| 国产一区亚洲一区在线观看| 三级经典国产精品| 日本欧美国产在线视频| 国产精品秋霞免费鲁丝片| 欧美+日韩+精品| 欧美日韩国产mv在线观看视频 | 精华霜和精华液先用哪个| 久久精品熟女亚洲av麻豆精品| av在线天堂中文字幕|