逄博
摘 要:卷積神經(jīng)網(wǎng)絡(luò)一直是一個(gè)非常強(qiáng)大的計(jì)算機(jī)視覺工具。卷積網(wǎng)絡(luò)對(duì)圖像分類、圖像分割和目標(biāo)檢測等領(lǐng)域都有非常大的幫助。本文通過對(duì)卷積神經(jīng)網(wǎng)絡(luò)和計(jì)算機(jī)視覺領(lǐng)域四篇前沿論文的分析,指出該領(lǐng)域所面臨的挑戰(zhàn),以及如何通過引入新方法或通過將現(xiàn)有方法的融合來應(yīng)對(duì)這些挑戰(zhàn)。通過比較,找出了這些論文各自的獨(dú)特的特點(diǎn)以及它們之間的共性。通過對(duì)這些前沿論文的分析,在一定程度上對(duì)卷積網(wǎng)絡(luò)的本質(zhì)進(jìn)行了探討,并提出了改進(jìn)方法,在今后進(jìn)行網(wǎng)絡(luò)設(shè)計(jì)時(shí)進(jìn)一步對(duì)DNN配置進(jìn)行改。
關(guān)鍵詞:卷積; 卷積神經(jīng)網(wǎng)絡(luò); 計(jì)算機(jī)視覺; 語義分割
中圖分類號(hào):TN911.73? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1006-3315(2020)12-198-003
1.前言
自AlexNet發(fā)明以來,卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network, CNN)就已經(jīng)開始在計(jì)算機(jī)視覺領(lǐng)域廣泛應(yīng)用。雖然從今天的視角來看,AlexNet還相對(duì)粗糙,但正是AlexNet打開了卷積分層的大門。它激發(fā)了研究人員對(duì)卷積分層的巨大興趣。我們可以看到,傳統(tǒng)的卷積不斷發(fā)展,演化出了堆棧卷積(stacked convolution)、起始卷積(inception convolution)、擴(kuò)張卷積(dilated convolution)、深部可分離卷積(depthwise separable convolution)、變形卷積(deformable convolution)等。本文選擇“用于語義分割的全卷積網(wǎng)絡(luò)”、“用于語義圖像分割的空洞卷積再思考”、“YOLO9000:更好、更快、更強(qiáng)大”和“MobileNetV2:倒殘差和線性瓶頸”四篇有關(guān)卷積網(wǎng)絡(luò)的前沿論文進(jìn)行分析比較,探討文中對(duì)有關(guān)卷積概念和思想的闡釋,并就有關(guān)技術(shù)提出自己的看法。
2.四種卷積方法簡介
計(jì)算機(jī)視覺是機(jī)器學(xué)習(xí)和人工智能領(lǐng)域最熱門的話題之一,本文所選的四篇文章是計(jì)算機(jī)視覺的最新成果,代表了四種不同的卷積方法。
2.1全卷積網(wǎng)絡(luò)法
論文“用于語義分割的全卷積網(wǎng)絡(luò)”(Fully Convolutional Networks for Semantic Segmentation)探討了卷積神經(jīng)網(wǎng)絡(luò)在語義分割領(lǐng)域的應(yīng)用。在此之前,已經(jīng)存在補(bǔ)丁訓(xùn)練(Patch-wise training)以及前處理和后處理等方法,但全卷積網(wǎng)絡(luò)(Fully Convolutional Network, FCN)為解決語義分割問題提供了一種更為有效和實(shí)用的方法。
文中提出的主要觀點(diǎn)就是,典型完全連接層具有固定的維度,并且擯棄了空間坐標(biāo)。然而,這些完全連接層也可以被看作是包含覆蓋整個(gè)輸入?yún)^(qū)域內(nèi)核的卷積,從而將其轉(zhuǎn)換成完全卷積網(wǎng)絡(luò),可以接受任何規(guī)模的輸入和輸出。
本文的關(guān)鍵在于后向步幅卷積法的采用,該方法將來自下采樣過程中產(chǎn)生的最終層預(yù)測和中間層預(yù)測相結(jié)合,來對(duì)更為精細(xì)的細(xì)節(jié)進(jìn)行預(yù)測。之所以采用這種方法,是因?yàn)殡m然完全卷積化的分類器可以對(duì)分割進(jìn)行微調(diào),但是輸出仍然不夠理想。這個(gè)最終預(yù)測層的32像素步幅限制了上采樣輸出信息的詳細(xì)程度。為了解決這一問題,本文將大量的信息和高層次與低層次相結(jié)合,換句話說,將特征的處所和特征的內(nèi)容相結(jié)合。通過融合來自不同步幅層的信息改進(jìn)完全卷積網(wǎng)絡(luò)以改善分割細(xì)節(jié),使分割更接近地面實(shí)際情況。
2.2空洞卷積法
論文“用于語義圖像分割的空洞卷積再思考”(Rethinking Atrous Convolution for Semantic Image Segmentation)的研究是基于第一篇文章中提出的完全卷積法,采用了空洞卷積(Atrous Convolution)來優(yōu)化卷積和反卷積過程,其基本工作原理如圖1所示。簡單地說,空洞卷積指的是里面有“空洞”的卷積核。它試圖包括有關(guān)像素的更為廣泛的信息,解決物體的多尺度問題。由于速率的不同,得到的信息尺度也不同。此外,空洞卷積解決了原始完全卷積網(wǎng)絡(luò)法下采樣中存在的特征圖分辨率降低和空間信息大量喪失的問題。
基于現(xiàn)有的空間金字塔池化(Spacing Pyramid Pooling)模型,通過采用速率不同的內(nèi)核,文中提出了空洞空間金字塔池化(Atrous Spacing Pyramid Pooling, ASPP)模型。在諸如最大池化(max pooling)等傳統(tǒng)池化方式中,人們僅僅選擇N×N像素的最大值而丟失了其他像素的信息。ASPP利用不同卷積步幅和速率來獲取不同尺度上的信息,然后將它們連接在一起。
不同空洞速率的ASPP能有效地捕獲多尺度信息。然而,采樣率越大,有效過濾器權(quán)重的數(shù)量就越小。也就是說,當(dāng)速率值接近特征映射大小時(shí),3×3濾波器退化為簡單的1×1濾波器。針對(duì)這一問題,論文將整體平均池化應(yīng)用于模型的最后特征圖上,將得到的圖像層面特征饋送到具有256個(gè)濾波器的1×1卷積中,然后將特征向上采樣到所需的空間維度,以獲得ASPP算法的優(yōu)化內(nèi)核組。最后,改進(jìn)的ASPP的內(nèi)核組由一個(gè)1×1卷積和三個(gè)3×3卷積組成,其中3×3卷積為輸出步幅=16時(shí),速率=(6,12,18),如圖2所示。
2.3綜合卷積法
論文“YOLO9000:更好、更快、更強(qiáng)大”與其說嘗試提出一種全新的技術(shù),不如說是對(duì)現(xiàn)有方法的整合。文中結(jié)合并使用了一些已在實(shí)踐中得到證明、可以提升計(jì)算速度或準(zhǔn)確度的現(xiàn)有技術(shù)(目標(biāo)檢測中的IOU)。論文從最初的YOLO到Y(jié)OLOv2的發(fā)展歷程進(jìn)行了綜述,指出了批歸一化(batch normalization)、高分辨率分類器(high resolution classifier)、“錨箱”卷積(convolution with anchor boxes)和多尺度培訓(xùn)(multi-scale training)等發(fā)展特征。
上述修改使YOLOv2在各種情況下都不失為一個(gè)好模型。在低分辨率下,YOLOv2是一種廉價(jià)、相當(dāng)精確的探測器。在288×288的分辨率下,其mAP幾乎和R-CNN一樣快。這使得它非常適合于更小的GPU、高幀速率視頻或多個(gè)視頻流。在高分辨率下,YOLOv2是一種最先進(jìn)的探測器,在VOC2007上有78.6的mAP,同時(shí)仍然以高于實(shí)時(shí)速度運(yùn)行。
然而,我們不得不指出,YOLO在小目標(biāo)探測方面并不是很強(qiáng)大。論文的作者之一曾經(jīng)嘗試用YOLOv2探測野生環(huán)境中的電池和瓶子。從圖3的左邊部分可以看出,YOLO可以探測得到(雖然效果不是很好)。然而,從圖3的右邊可以得知,如果我們從另一個(gè)角度拍照,YOLO就無法對(duì)該物體進(jìn)行識(shí)別。這在某種程度上反映了YOLO的弱點(diǎn):對(duì)小物體的探測不是很敏感,尤其是涉及到旋轉(zhuǎn)的情況下,其探測不夠準(zhǔn)確。這可能是由于YOLO所使用的算法的原因。YOLO只探測最后一個(gè)卷積層的輸出,然而,就小對(duì)象而言,經(jīng)過層層卷積后,其信息幾乎完全丟失在該層中。
2.4深度可分卷積法
論文“MobileNetV2:倒殘差和線性瓶頸”重點(diǎn)探討了深度可分卷積。眾所周知,移動(dòng)設(shè)備的硬件限制在很大程度上限制了神經(jīng)網(wǎng)絡(luò)的大小。正如移動(dòng)ARM SoC的運(yùn)算能力與大型服務(wù)器的運(yùn)算能力不會(huì)相同一樣,服務(wù)器和電腦上的大有前途的深層神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)在過時(shí)的iPhone上也不可能良好運(yùn)轉(zhuǎn)。因此,在精度不會(huì)有太大損失的前提下,一個(gè)輕型網(wǎng)絡(luò)就應(yīng)運(yùn)而生了。DNN壓縮常用的技術(shù)有修剪、分層和霍夫曼編碼(Huffman coding)。僅僅這些有時(shí)還不夠,研究人員正試圖發(fā)明一種小型設(shè)備友好型網(wǎng)絡(luò),能擁有至少與大型復(fù)雜網(wǎng)絡(luò)類似的精確度,這就是MobileNetV2。
在MobileNetV2中,一種稱為深度可分卷積的方法(Depthwise Separable Convolution)被用來幫助減小網(wǎng)絡(luò)大小。結(jié)果相當(dāng)驚人:雖然與傳統(tǒng)的卷積層相比,深度可分離卷積層顯著減少了參數(shù)和計(jì)算量,但精度似乎并沒有受到影響。其基本思想是用將卷積分解成兩個(gè)獨(dú)立層的因式分解版來替換完全卷積層。第一層稱為深度卷積,它通過對(duì)每個(gè)輸入通道應(yīng)用單個(gè)卷積濾波器來進(jìn)行輕量濾波。第二層是1×1卷積,稱為點(diǎn)態(tài)卷積(Pointwise Convolution),負(fù)責(zé)通過計(jì)算輸入通道的線性組合來建立起新特征。
深度可分卷積法大大減少了參數(shù)的數(shù)量以及乘法和加法的運(yùn)算。粗略地來說,有效的深度可分卷積可以降低系數(shù)k2。因此,與其早期版本MobileNetV1或者著名的輕型網(wǎng)絡(luò)ShuffleNet相比,MobileNetV2在規(guī)模上實(shí)際上要小得多。測試表明,參數(shù)的數(shù)量雖有大幅度減少,但精確度并未有所下降。
3.卷積法比較與評(píng)價(jià)
以上四篇論文都探討了計(jì)算機(jī)視覺的分支。前兩篇論文的共同點(diǎn)在于,二者都試圖將我們?cè)谀硞€(gè)區(qū)域進(jìn)行朝內(nèi)和朝外“看”時(shí)所獲得信息結(jié)合起來。前者使用跨音卷積方法,將高、低層的下采樣池化結(jié)果結(jié)合起來,得到更加準(zhǔn)確的語義分割結(jié)果;后者使用的則是不同步幅的核函數(shù)ASPP法。兩種情況都可以實(shí)現(xiàn)在深入卷積過程時(shí)不會(huì)丟失太多信息。具體而言,前者作為語義分割的基礎(chǔ),開啟了語義分割的大門。但這并不意味著后者更為瑣碎,因?yàn)樗褂昧瞬煌愋?大小的創(chuàng)新卷積核,在獲取不同尺度的物體信息方面做得更好。
后兩篇論文的重點(diǎn)不完全是關(guān)于新技術(shù)的發(fā)明。相反,它們更加注重結(jié)合和整合現(xiàn)有的方法改進(jìn)現(xiàn)有模型(YOLOv1,MobileNetV2)。改進(jìn)后的版本或者提高了在小型設(shè)備上的適用性,或者提高了模型可以同時(shí)探測對(duì)象的數(shù)量,換句話說,它們要么變得更快,要么變得更強(qiáng)。
四篇論文都涉及到了一些常見的計(jì)算機(jī)視覺任務(wù),包括圖像分類、圖像檢測和語義分割等,但它們有各有自己的特點(diǎn)。具體說來體現(xiàn)在:
作為語義分割的基礎(chǔ),F(xiàn)CN存在一些缺陷。語義分割的輪廓有點(diǎn)過于平滑。在上采樣過程中很多細(xì)節(jié)被丟失??傊?,由于FCN的內(nèi)部設(shè)計(jì)缺陷,即使使用本文提出的最優(yōu)秀的FCN-8s模型,F(xiàn)CN也不能很好地識(shí)別細(xì)節(jié)。
在空洞卷積中,存在一些潛在問題,其中之一就是網(wǎng)格效應(yīng)。也就是說,因?yàn)閮?nèi)核上“空洞”的存在,空洞內(nèi)核的多層堆疊之后,可能會(huì)發(fā)現(xiàn)有一些像素不被內(nèi)核使用,也就是說,這些信息在訓(xùn)練網(wǎng)絡(luò)時(shí)不使用省略的像素。
YOLOv2實(shí)際上是一個(gè)非常強(qiáng)大的模型,但仍然存在一些缺陷,比如小目標(biāo)檢測能力不足。這一缺陷直到Y(jié)OLOv3出現(xiàn),才得以解決。
另一個(gè)改進(jìn)方向就是使它變得更快、更輕。第四篇文章提供了一種可以普遍應(yīng)用于輕型設(shè)備上的網(wǎng)絡(luò)以減少計(jì)算量和參數(shù)的思想。實(shí)踐證明,它不會(huì)導(dǎo)致任何顯著信息的丟失。
深度可分卷積的有效性取決于卷積核的大小。如前所示,計(jì)算量的減少為系數(shù)k2。因此,如果我們使用像7×7這樣的大核(在VGG之后很少使用),我們可以實(shí)現(xiàn)大約×49的縮減。如果核的大小是3×3(現(xiàn)在很常見的大?。?,我們?nèi)匀豢梢詫?shí)現(xiàn)×9的縮減。但是,假設(shè)我們正在運(yùn)用一種由許多1×1核構(gòu)成的完全卷積的網(wǎng)絡(luò),即使沒有負(fù)面影響,這樣的深度可分卷積技術(shù)也將毫無用處。
4.結(jié)論
神經(jīng)網(wǎng)絡(luò)的改進(jìn)大致可以分為兩部分:更好更強(qiáng)大和更快更輕。我們所面臨的挑戰(zhàn)或所試圖解決的問題,都與我們希望如何改進(jìn)現(xiàn)有模式,以便在不同環(huán)境條件或有限資源下采用更好的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)。上述論文中提到的改進(jìn)方法總結(jié)如下:
FCN模型——更好、更強(qiáng)。它基于CNN最初的模式。為了找到CNN在語義分割領(lǐng)域的最佳方法,該模型在下采樣中應(yīng)用全連接到卷積層的方法,同時(shí)提出上采樣過程,生成一種解決語義分割問題的新模型。
ASPP模式——更好、更強(qiáng)。它基于FCN模型,為解決FCN模型中的多尺度、分辨率降低而且空間信息丟失等缺陷,提出改變內(nèi)核速率的想法,即也稱為空洞卷積法。其目的是改善語義分析結(jié)果的準(zhǔn)確性。
YOLO9000模型——更好、更強(qiáng)。YOLOv2是通過對(duì)像錨箱這樣的作品中提出的各種思想的應(yīng)用,由YOLO發(fā)展而來。主要結(jié)合聯(lián)合優(yōu)化探測法和分類訓(xùn)練法,將該模型被訓(xùn)練成一個(gè)對(duì)超過9000個(gè)對(duì)象類別實(shí)施實(shí)時(shí)探測的框架。相比最初的YOLO模型,該模型更強(qiáng)。
MobileNetV2型號(hào)——更快、更輕。它基于現(xiàn)有的MobileNet模型。本系列模型的目的是在移動(dòng)設(shè)備上應(yīng)用CNN資源有限。通過應(yīng)用諸如深度可分卷積的概念,MobileNetV2模型成功將最初模型瘦身,同時(shí)又保持精確度不會(huì)下降太多。
綜上所述,特定領(lǐng)域的卷積網(wǎng)絡(luò)的改進(jìn)是基于現(xiàn)有的模型,一旦其在這個(gè)領(lǐng)域的立場或修改被認(rèn)可,它就會(huì)變成新的基礎(chǔ)。因此,卷積網(wǎng)絡(luò)的發(fā)展是一個(gè)不斷對(duì)現(xiàn)有模型進(jìn)行創(chuàng)新和改進(jìn)的過程,以在不同的語境和環(huán)境中得到更好地實(shí)現(xiàn)。
參考文獻(xiàn):
[1]Jonathan Long, Evan Shelhamer, Trevor Darrell. “Fully Convolutional Networks for Semantic? ?Segmentation”arXiv preprint(2017)
[2]Liang-Chieh Chen, George Papandreou, Florian Schroff,Hartwig Adam.“Rethinking Atrous Convolution for Semantic Image Segmentation.”arXiv preprint (2017)
[3]Redmon,Joseph,and Ali Farhadi.“YOLO9000:better,faster, stronger.”arXiv preprint (2017)
[4]Mark Sandler,Andrew Howard,Menglong Zhu,Andrey Zhmoginov,Liang-Chieh Chen. “MobileNetV2: Inverted Residuals and Linear Bottlenecks” arXiv preprint(2018)
[5]Han,S.,Mao,H.and Dally,W.J.,2015.Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding. arXiv preprint arXiv:1510.00149
[6]Howard,Andrew G.,et al.“Mobilenets: Efficient convolutional neural networks for mobile vision applications.”arXiv preprint arXiv:1704.04861 (2017)