卞偉偉,邱旭陽,申 研
(北京機械設備研究所,北京,100854)
城市環境中“低慢小”無人機目標體積小,顏色與復雜的背景環境相接近,使得對其進行探測與識別已成為一個世界性難題[1],將計算機視覺與圖像處理技術相結合成為目標檢測與識別的必然選擇。神經網絡深度學習方法[2]的成功很大程度上歸功于特征工程的自動化,即利用分層特征提取器以端到端的方式從數據而不是手動設計中學習,故深度學習的模型效果依賴于數據,在以某一特定數據集進行訓練時,模型提取該類數據的特征,那么將該模型運用在該類數據集上將會獲得優異的表現。在影像分類中運用深度學習模型,除了借助已經存在的模型,也可以重新設計并訓練新的模型。隨著數據的復雜度不斷增加,在設計相應的神經網絡時需要更多的知識,不同類型的數據需要不同的先驗知識,如果訓練的是大規模的網絡,將有百萬個參數需要設計與學習,從而帶來巨大的挑戰;如果訓練小規模的網絡,獲得的神經網絡只是面向當前影像數據集,難以在其他種類的影像數據集上獲得優異的表現。除此以外,也不能保證得到的模型優于自然圖像集訓練的模型以及根據自然圖像集模型微調的模型。神經網絡的設計是一個長耗時過程,如何在較短的時間內自動化設計一個高效的面向影像的神經網絡成為了提升影像分類精度的關鍵,關系著目標識別概率的高低。
本文通過網絡收集與實際拍攝,以多旋翼無人機、固定翼無人機、城市飛鳥為目標,采用一種可微神經結構搜索的高效結構搜索方法[3],對目標識別問題進行研究。
在目標識別分類任務中,需要使用大量帶有標簽的數據來訓練模型,但是在實際中,訓練影像的人工標記需要花費大量的人力和物力,同時需要大量的先驗知識,導致影像數據集規模較小,可用于模型訓練的數據較小,而為了讓影像分類取得優異的效果,設計的深度學習模型包含的神經網絡層數多,可能產生大量的參數,在訓練時會出現過擬合現象,造成分類精度過低。模型遷移是將一個樣本數據集上學習到的模型通過特定的方式運用到另一個具有相同或者相似學習任務的樣本數據集上[4],這樣可以提高模型的實用性,增加深度學習模型的泛學習能力。但是由于當前獲取影像的方式眾多,不同的儀器采集的影像具有不同的特點,故影像數據的成像幾何形狀和內容不同,同時隨著空間分辨率、光譜分辨率的增加,影像包含目標以及通道信息越來越豐富,因此當直接使用已存在的模型對其他種類的影像數據集進行訓練時,實際取得的分類果不佳,為了使該模型可以在其他數據集上取得優異的結果,便需要對當前模型添加特定的任務知識,使其充分提取當前影像的特征,提高分類精度。
可微神經結構搜索方法將搜索空間放寬為連續的候選體系結構,以便通過梯度下降來優化體系結構的驗證集性能。與低效的黑盒搜索相比,基于梯度的優化數據效率允許可微神經結構搜索使用數量級更少的計算資源來實現與現有技術的競爭性能。同時可微神經結構搜索方法相比許多現有方法更簡單,因為它不涉及任何控制器或性能預測器,并且可通用搜索卷積和循環體系結構。另外,可微神經結構搜索方法能夠在豐富的搜索空間內發現具有復雜圖形拓撲的高性能結構,而不限于任何特定的結構系列,并且能夠發現卷積網絡和循環網絡。
對于搜索空間而言,以搜索計算單元作為最終結構的構建塊,學習的單元可以堆疊形成卷積網絡或者遞歸地連接以形成循環網絡[5]。每個單元是有向無環圖,由N個節點的有序序列組成。每個節點x(j)是潛在表示(例如卷積網絡中的特征映射),每個有向邊(i,j)都與每個節點的x(j)某些o(i,j)轉換操作相關聯,假設每個單元有2個輸入節點和單個輸出節點。對于卷積單元,輸入節點在前2層中定義了單元輸出,通過對所有中間節點應用縮小操作(例如連接)來獲得單元的輸出。每個中間節點的計算都是基于它的所有前導節點計算的:
(1)
為了將離散的搜索空間轉為連續的,首先定義一組候選操作O,例如卷積、最大池化,表示應用于x(j)的一些函數o(·),為了使搜索空間連續,將特定操作的分類選擇放寬為所有可能操作的輸出層的激勵函數(SoftMax):
(2)
式中:一對節點(i,j)的操作混合權重由維度|O|的向量α(i,j)參數化,在放寬操作后,結構搜索任務就變為了學習一組連續變量:
α={α(i,j)}
(3)
(4)
式中:α為(編碼)體系結構。
放寬之后,目標就是在所有混合操作(例如卷積濾波器)的權重內共同學習結構α和權重ω,類似于使用強化學習或進化方法的結構搜索將驗證集的性能作為獎勵,可微神經結構搜索的目標是優化驗證損失,但是需要使用基于梯度下降的方法來計算。
分別用Ltrain和Lval表示訓練損失和驗證損失,這2種損失不僅由結構α確定,而且由網絡中的權重ω確定,結構搜索的目標是找到使驗證損失Lval(ω*,α*)最小化的α*,其中通過最小化訓練損失來獲得與結構相關聯的權重ω*,即:
ω*=arg minωLtrain(ω,α*)
(5)
這意味著一個雙層優化問題,α為上層變量,ω為下層變量:
(6)
s.t.ω*(α)=arg minωLtrain(ω,α)
(7)
嵌套公式也出現在基于梯度的超參數優化中,盡管連續體系結構α維數遠高于標量值超參數(如學習率),并且更難以優化,但是在某種意義上,連續體系結構α也可以被視為一種特殊類型的超參數。
完全解決雙層優化是非常困難的,因為無論α發生任何變化,都需要通過求解式(7)來重新計算ω*(α)。因此,可以使用近似迭代優化的方法,其中ω和α分別通過在權重和結構空間中的梯度下降步驟之間交替優化。在步驟k,給定當前結構αk-1,通過在最小化訓練損失Ltrain(ωk-1,αk-1)的方向上移動ωk-1來獲得ωk,然后,在保持權重ωk不變的情況下對結構進行更新,在權重梯度下降一步后最小化驗證損失:
Lval(ωk-ξωLtrain(ωk,αk-1),αk-1)
(8)
式中:ξ是該虛擬梯度步驟的學習率。
式(8)的目的是找到一個結構,當它的權重通過(單步)梯度下降優化時具有低驗證損失,其進一步展開的權重用作ω*(α)的替代。值得注意的是,當前動態迭代算法定義了α的優化器(領導者)和ω的優化器(跟隨者)之間的斯塔克伯格(Stackelberg)博弈,這通常要求領導者預測跟隨者的下一步移動以達到平衡,雖然目前還沒有意識到優化算法的收斂保證,但實際上它能夠選擇合適的ξ收斂。除此以外,當沖量被用于權重優化時,一步前進學習目標(8)被相應地修改,并且上述分析仍然適用。
通過對式(8)中的α求微分來求出體系結構梯度(為了簡便起見,省略步驟索引k):
(9)
其中,
ω′=ω-ξωLtrain(ω,α)
(10)
式(10)表示一步正演模型的權重,梯度(9)在其第2項中包含矩陣向量乘積,其計算成本高,使用有限差分近似可以大大降低復雜性。假設ε是一個很小的實數的平方,有:
(11)
和
(12)
則:
(13)
評估有限差分只需要2個向前傳遞的權重和2個向后傳遞的α,并且復雜性O(|α||ω|)降低到O(|α|+|ω|)。
在獲得連續的體系結構編碼α后,離散結構通過以下方式生成:
1)保留每個中間節點的k個最強的前導,其中邊緣的強度定義為:
(14)
為了生成的結構與現有工作中的結果相當,對卷積網絡使用k=2。
2)通過采用函數argmax將每個混合操作替換為最可能的操作。
實驗采用由重復單元組成的神經網絡結構,其中重復單元有正常單元和縮小單元,生成的神經網絡的層數即為重復單元的個數,完整的實驗包括2個階段:結構搜索和結構評估。在結構搜索階段,使用可微神經結構搜索對多個結構進行研究,并根據其驗證性能確定最佳單元;在結構評估階段,使用這些單元構建更大的結構,從頭開始訓練并在測試集上測試它們的性能。
實驗中,上文提及的一組候選操作O中包括以下操作:3×3和5×5可分離卷積、3×3和5×5擴張可分離卷積、3×3最大池化、3×3平均池化、Identity和Zero,所有操作的步長都是1(如果適用),并且填充卷積特征圖以保持其空間分辨率,使用ReLU-Conv-BN順序進行卷積運算,并且每個可分離卷積總是應用2次。
每個卷積單元由N=7個節點組成,其中輸出節點被定義為所有中間節點(排除的輸入節點)的深度級聯。其余的設置遵循Zoph等[6]、Liu等[7]和Real等[8],然后通過將多個單元堆疊在一起形成網絡。
卷積單元k的第1和第2節點分別設置為卷積單元k-2和卷積單元k-1的輸出,并且根據需要插入1×1個卷積。位于網絡總深度的1/3和2/3處的小區域是縮小單元,其中與輸入節點相鄰的所有操作步長都是2。因此,體系結構編碼是(αnormal,αreduce),其中αnormal由所有正常單元共享,αreduce由所有縮小單元共享。
將訓練集中40%的數據作為驗證集,其余部分作為訓練集。共進行2次結構搜索,第1次網絡層數為8,訓練周期50個,第2次網絡層數為12。由于GPU顯存有限,而數據集原始圖像分辨率為256×256,為了保證輸入圖片可以在GPU上進行運算,在加載數據集時,將數據分辨率壓縮至32×32。
其他超參數設置如下:每次訓練數據輸入批量大小為64(對于訓練集和驗證集),初始通道數為16,使用動量SGD來優化權重ω,初始學習速率ηω=0.025(在余弦調度(cosine schedule)之后衰減到0)、動量大小為β=0.9和權重以ω=3×10-4的大小衰減,使用Adam作為結構變量的優化器(即正常和縮小單元中的α),初始學習率ηα=3×10-4,動量β=(0.5,0.999),權重以ω=3×10-3的大小衰減。
網絡層數為8的小網絡在單個GPU上進行結構搜索花費了大約40 min,網絡層數為12的小網絡花費了1 h。
對一個有20層的大型網絡進行訓練,訓練時間為600個時期,批量數據輸入大小為96,圖片大小仍然為32×32,其他超參數與結構搜索的超參數保持相同,增加其他增強功能包括圖片剪切、隨機失活概率為0.3和權重為0.4的輔助節點。由8層小網絡卷積單元組成的大網絡在單個GPU上進行結構驗證花費了1 h 24 min,由12層小網絡卷積單元組成的大網絡花費了1 h 15 min。
訓練數據對基于深度學習的目標識別至關重要。針對城市中常見的飛行物類型,本文通過網絡收集與實際拍攝,收集了豐富的目標影像數據,包括3類目標:固定翼無人機、多旋翼無人機與飛鳥,各1 000張。影像分辨率固定為256×256,以jpg格式保存。數據集實例見圖1。

圖1 數據集實例
“低慢小”目標數據集共進行了2次實驗,共得到4種基本單元,見圖2~5。在每個單元中c{k-1}和c{k-2}表示前2個單元的輸出作為本單元的輸入,c{k}表示本單元的輸出。從結果來看,不同層數的網絡,其基本的卷積單元不同,同時每個卷積單元每個節點處有多個輸入和輸出,構建了一個復雜的網絡結構。

圖2 網絡層數為8的正常單元

圖3 網絡層數為8的縮小單元

圖4 網絡層數為12的正常單元

圖5 網絡層數為12的縮小單元
通過對數據集進行實驗,得到了當前數據集的最優神經網絡結構,在找到結構后,通過在驗證集上驗證,得到相應的測試結果,見表1。

表1 使用可微神經結構搜索的深度神經網絡測試結果
從表1可以得知,城市飛行物數據集的2個實驗的分類精度分別為96.50%和97.25%,滿足不小于95%的精度要求。
最優精度與人工設計的常用網絡對比見表2。顯然,本文方法具有更好的測試精度,在用于“低慢小”無人機類目標分類檢測方面具有更強的適用性。

表2 不同結構神經網絡在目標數據集上的測試結果
本文利用神經結構搜索可以在給定目標數據集上得到當前任務最優的深度神經網絡,且在“低慢小”目標識別上取得了良好的效果,但這一方法仍然需要一定量的有標簽數據。因此,在后續的目標識別方法研究過程中應結合當前在小樣本數據進行分類的研究,將其運用在神經結構搜索中,提升樣本數據量較小時的分類精度,防止過擬合現象的發生;同時,在面對無標簽影像時,考慮是否可以通過結合神經結構搜索獲取的高層語義特征與其他方法獲取的有關圖像的中、低層語義特征,從而提升分類精度。