周 超 魏樹國 陶 沙
深度學(xué)習(xí)框架是整個(gè)深度學(xué)習(xí)生態(tài)體系中的第一層,其核心思想是將神經(jīng)網(wǎng)絡(luò)計(jì)算進(jìn)一步拆分為各類常見的面向向量數(shù)據(jù)的算子。在這個(gè)過程中,深度學(xué)習(xí)框架采用算子作為落實(shí)計(jì)算任務(wù)的具體元素,為每個(gè)算子提供了在CPU 或者人工智能處理器上執(zhí)行的核函數(shù),根據(jù)所計(jì)算的圖像,深度學(xué)習(xí)框架調(diào)度執(zhí)行圖像中每個(gè)算子對(duì)應(yīng)的核函數(shù),完成整個(gè)圖像處理中的相關(guān)計(jì)算。
首先進(jìn)行圖像的輸入,將待處理的圖像或圖片通過掃描儀等輸入設(shè)備進(jìn)行采集。接著對(duì)該圖像進(jìn)行預(yù)處理,每一個(gè)圖像中的像素被提取以便交給識(shí)別模塊進(jìn)行辨別。其主要目的是消除掉與圖像分析中不相關(guān)的內(nèi)容,對(duì)其中有用的信息進(jìn)行保留,并且對(duì)這些相關(guān)的有用信息進(jìn)行增強(qiáng)處理,從而可以簡(jiǎn)化圖像處理的整體數(shù)據(jù)量。
圖像分割是圖像處理和分析過程中的關(guān)鍵步驟。經(jīng)過圖像預(yù)處理之后的圖像被劃分為多個(gè)特定的區(qū)塊,這些區(qū)塊各自具有獨(dú)特的性質(zhì),然后對(duì)這些區(qū)塊分別進(jìn)行處理。經(jīng)過圖像分割后的各區(qū)塊做成標(biāo)記,把具有相同像素的區(qū)塊賦予同樣的編號(hào)。在圖像處理中,通過圖像分割把圖像中的活動(dòng)景象和靜止圖片進(jìn)行分開,進(jìn)一步地,把活動(dòng)景象中移動(dòng)量大的部分與移動(dòng)量小的部分進(jìn)行編號(hào),然后對(duì)二者分別進(jìn)行編碼處理,從而可以降低傳輸碼率,提高傳輸效率。
特征提取利用軟件程序提取圖像信息,以便對(duì)圖像中的像素進(jìn)行判斷是否屬于一個(gè)特征。具體地,把圖像中的像素分成不同的集合,其中每個(gè)集可以是點(diǎn)、線或者區(qū)域。然后對(duì)這些集合進(jìn)行影響分析和數(shù)學(xué)變換,以便從中以提取所需特征。在特征提取之后還要進(jìn)行特征選擇,從上述提取的特征中選出最有效的特征,其中最有效的特征滿足如下標(biāo)準(zhǔn):同類像素中具有不變形;不同像素中具有辨別性;所有像素中具有魯棒性。
隨后,要對(duì)經(jīng)過特征提取之后的圖像進(jìn)行目標(biāo)識(shí)別。圖像的目標(biāo)識(shí)別基于圖像描述。所述圖像描述是用數(shù)學(xué)的方法對(duì)圖像中的景象進(jìn)行相關(guān)特征的描述,或者描述各對(duì)象之間的相互關(guān)系,從而得到對(duì)象與其相關(guān)特征間的抽象表達(dá)式。在圖像識(shí)別技術(shù)過程中通常使用模板模型進(jìn)行匹配。在一些應(yīng)用場(chǎng)景中,圖像識(shí)別不但要判別出物體或景物是什么,而且還要判別出其所在的方位和位置以及它們的運(yùn)動(dòng)形態(tài)。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,出現(xiàn)了基于深度學(xué)習(xí)的目標(biāo)識(shí)別,此技術(shù)大幅提高了圖像識(shí)別的精準(zhǔn)度和效率。最后將經(jīng)過目標(biāo)識(shí)別之后的圖像進(jìn)行最終的輸出。
人工神經(jīng)網(wǎng)絡(luò)被廣泛運(yùn)用于圖像處理、語音識(shí)別等領(lǐng)域。其包含數(shù)百、數(shù)千甚至數(shù)百萬個(gè)稱為“人工神經(jīng)元”的處理單元(就像人腦中的神經(jīng)元一樣)。人工神經(jīng)元協(xié)同工作以解決具體問題?;镜纳窠?jīng)網(wǎng)絡(luò)由三層組成:分別為輸入層、隱藏層以及輸出層。其中隱藏層根據(jù)不同的神經(jīng)網(wǎng)絡(luò)還可以進(jìn)一步分為卷積層、池化層、批歸一化層、激活層以及全連接層等。下面簡(jiǎn)要介紹一下應(yīng)用于圖像處理中的ResNet 模型。
使用歸一化層對(duì)算子進(jìn)行歸一化后,雖然可以正常地訓(xùn)練網(wǎng)絡(luò),然而出現(xiàn)了新的問題。即網(wǎng)絡(luò)的性能下降。盡管網(wǎng)絡(luò)層的數(shù)量已經(jīng)增加,但是歸一化的準(zhǔn)確性和有效性卻在降低。以上問題表明,對(duì)深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化比較困難,為了解決該問題,殘差神經(jīng)網(wǎng)絡(luò)ResNet 應(yīng)運(yùn)而生。
在ResNet 網(wǎng)絡(luò)中,我們將深度卷積神經(jīng)網(wǎng)絡(luò)的后續(xù)層構(gòu)成相互映射的關(guān)系,這樣就可以將網(wǎng)絡(luò)進(jìn)一步簡(jiǎn)化為層數(shù)更加少的淺層。接著網(wǎng)絡(luò)開始學(xué)習(xí)恒等映射函數(shù)。假設(shè)網(wǎng)絡(luò)的輸入變量為x,使用映射H(x)。由于深層網(wǎng)絡(luò)難以訓(xùn)練的原因,因此該映射直接學(xué)習(xí)H(x)= x 的擬合比較困難。但是如果把網(wǎng)絡(luò)函數(shù)設(shè)計(jì)為F(x)=H(x)-x,不直接擬合射H(x),而是通過學(xué)習(xí)的殘差x,則學(xué)習(xí)就變得容易多了。ResNet 網(wǎng)絡(luò)的結(jié)構(gòu)是將輸入與輸出端直接相連,以便形成短接狀態(tài)。然后使用多重卷積去逼近殘差值,以便將網(wǎng)絡(luò)學(xué)習(xí)目的結(jié)果轉(zhuǎn)換成該殘差值。在此過程中,學(xué)習(xí)利用了函數(shù)F(x)=H(x)-x,其中如果F(x)=0,則就由此構(gòu)成了恒等的映射關(guān)系。
通過以上的介紹,我們認(rèn)識(shí)到在卷積神經(jīng)網(wǎng)絡(luò)的連接中,有些層比較重要,而另外一些層利用不到,因此對(duì)一些不重要的卷積核進(jìn)行刪除,而將比較重要的卷積核進(jìn)行保留??梢允顾阕痈尤菀子?jì)算,同時(shí)減少一些不必要的冗余計(jì)算,節(jié)約了網(wǎng)絡(luò)內(nèi)存和處理器計(jì)算資源,從而實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)優(yōu)化。圖像處理中國的刪減策略主要由基于權(quán)重的刪減、基于相關(guān)性的刪減以及基于卷積核的刪減,下面主要利用基于卷積核的刪減對(duì)圖像進(jìn)行分析與處理。
基于卷積核的刪減的思路在于如何正確判斷卷積核的權(quán)重。在判斷權(quán)重時(shí),可以根據(jù)如下的原則:如果神經(jīng)網(wǎng)絡(luò)中的一層中的神經(jīng)算子的一個(gè)子集來能夠無限接近原來的集合,則就可以進(jìn)行無失真替代,那么這個(gè)子集之外的其他集合就可以進(jìn)行刪除,并且于刪除的集合的上下相鄰的兩層中的卷積核。在進(jìn)行卷積核刪減操作時(shí),還可以對(duì)所有卷積核的權(quán)重進(jìn)行取絕對(duì)值并求和,然后對(duì)將計(jì)算結(jié)果中較大的權(quán)值所對(duì)應(yīng)的卷積核進(jìn)行保留,而對(duì)較小的結(jié)果所對(duì)應(yīng)的卷積核進(jìn)行刪除。在進(jìn)行卷積核刪減操作時(shí)的另外一個(gè)思路是根據(jù)神經(jīng)算子的矩陣做特征值分析,具體地對(duì)特征值進(jìn)行分解,然后將計(jì)算得到的大的特征值所對(duì)應(yīng)的卷積核進(jìn)行保留,而對(duì)結(jié)果小的特征值的卷積核進(jìn)行刪除操作。下面分析一下特征值的分解過程。
假設(shè)處理圖像的卷積神經(jīng)網(wǎng)絡(luò)中的卷積層的卷積核為向量(B,H,W,C),其中B 為卷積核的數(shù)量,H 為長(zhǎng)度,W 為寬度,C 為深度。首先對(duì)這個(gè)向量中的各元素進(jìn)行絕對(duì)值處理,然后再將其轉(zhuǎn)換成(B,H×W×C)大小的矩陣為(1)。
然后將上面的矩陣變形為協(xié)方差矩陣(2)。
最后對(duì)上述協(xié)方差矩陣進(jìn)行特征值分解可以得到式(3)。
其中,δ1,δ2,…δB 決定了卷積核的權(quán)值,數(shù)值越大就表示該卷積核越重要,則予以保留,而將數(shù)值小的特征值所對(duì)應(yīng)的卷積核進(jìn)行刪除。
另外還可以對(duì)卷積核的刪減進(jìn)行微調(diào)。當(dāng)刪減率比較大時(shí),被處理的圖像的清晰度就會(huì)降低,此時(shí)需要通過一些技術(shù)手段將圖像損失的像素進(jìn)行補(bǔ)償處理以便使得圖像更接近原始圖像而不失真。微調(diào)操作就是在卷積核刪減操作后對(duì)模型進(jìn)行一些學(xué)習(xí)訓(xùn)練和更新,以便補(bǔ)償刪除操作帶來的過刪除問題。具體地,微調(diào)操作利用梯度下降算法,通過一個(gè)比較小的動(dòng)量去進(jìn)行訓(xùn)練學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),最后使得神經(jīng)網(wǎng)絡(luò)的各層的性能得到改善,從而提高圖像識(shí)別的精度。
通過仿真和實(shí)驗(yàn),主要針對(duì)圖像數(shù)據(jù)集DIRFC-20 進(jìn)行分析。其中DIRFC-20 數(shù)據(jù)集是用于物體識(shí)別的計(jì)算機(jī)視覺在線公共數(shù)據(jù)集。它主要包含50 000 張16×64 的RGB 彩色圖片,其中訓(xùn)練集為40 000,測(cè)試集為9,000。
使用ResNet 網(wǎng)絡(luò)對(duì)DIRFC-20 數(shù)據(jù)集進(jìn)行評(píng)估,在此過程中,分別進(jìn)行了150 次迭代計(jì)算。由于ResNet 網(wǎng)絡(luò)模型的每一層的輸出結(jié)果沒有完全輸入到其后面的各層中。所以對(duì)于ResNet 網(wǎng)絡(luò)的刪減是針對(duì)每個(gè)層獨(dú)立進(jìn)行的,這樣就需要按照各層的比例設(shè)置一個(gè)總閾值,例如該閾值設(shè)置為60%。在刪減過程中,利用了比較窄的網(wǎng)絡(luò)模型,通過復(fù)制神經(jīng)網(wǎng)絡(luò)中需要保留的卷積核到新的模型中,以此完成一次刪除操作,然后進(jìn)行下一次刪除操作,如此往復(fù),最后將整個(gè)網(wǎng)絡(luò)模型刪減到最優(yōu)效果。同時(shí)為了彌補(bǔ)在刪除操作中的過刪除現(xiàn)象,還要對(duì)刪除操作進(jìn)行微操作補(bǔ)償,采用較小的學(xué)習(xí)率,使得過度刪除的網(wǎng)絡(luò)模型得以修繕和恢復(fù),從而使得圖像更加清晰,色彩更加還原。
卷積神經(jīng)網(wǎng)絡(luò)與圖像識(shí)別相結(jié)合,解決了圖像處理中的某些特定問題,通過對(duì)ResNet 網(wǎng)絡(luò)進(jìn)行卷積核刪除操作,使得處理的圖像更加清晰、精確度更高,并且圖像處理的速度大大提高,減輕了系統(tǒng)的負(fù)擔(dān)。