顧江濤 胡新平
(南通大學計算機科學與技術學院 南通 226000)
當前,無人機在航拍攝影、農業植保、快遞運輸、災難救援、野生動物觀察、傳染病監控、軍事偵察、電子對抗、通信中繼等軍事或是民用領域都有著舉足輕重的地位[1]。通常情況下,手動操作無人機可以很好地執行完成既定任務,然而在某些情況下,需要無人機自動地前往目的地完成任務,比如大范圍的搜索、快遞運送等。此時就需要無人機自動規劃它的飛行線路,并根據飛行過程中實際的環境(如移動障礙物、天氣變化等)動態調整飛行線路。
實現線路規劃的算法有很多中[2~5],其中比較常見的是使用動態規劃算法對無人機飛行線路進行優化,如快速探索隨機樹(Rapid-exploration Random Tree,RRT)就是一種用來動態規劃線路的方法,它通過隨機構建空間填充樹實現有效搜索非凸、高維空間的算法。樹是從搜索空間中隨機抽取的樣本逐步構建的,并且本質上傾向于朝向大部分未探測區域生長。在無人機飛行的過程中由于各種外部因素,環境經常會發生變化,此時RRT就需要重新建樹來規劃線路。而當環境變化很大時,RRT的構建則需要較長的時間。所以RRT很難滿足動態環境的實時線路規劃要求。
深度學習[6]算法是現代人工智能領域中主流算法之一,卷積神經網絡(Convolution Neural Network,CNN)[7]在圖像分類與圖像識別領域中的重要性尤為突出。強化學習(Reinforcement Learning,RL)[8]是智能系統從環境到行為映射的學習,以使獎勵函數(Reward Function)[9]值最大,強化學習不同于連接主義學習中的監督學習,強化學習不是告訴系統如何去產生正確的動作,而是對系統產生的動作進行評價。強化學習通過對環境的探索,獲得動作的評價來驅動訓練。
無人機飛行受眾多因素影響,如天氣、地形、障礙物等。總體來說無人機的飛行任務是要動態規劃線路來規避危險區域達到目標地[10]。危險區域可能是靜態的,如地形;也可能是動態的,如天氣、鳥群等。靜態因素相對穩定,可以預先設定,而像天氣等動態因素隨時都可能發生變化,所以需要實時規劃。本文僅考慮動態因素,以二維空間為實驗環境,以天氣中的風速為動態影響因素,風速超過設定閾值即為危險區域。當無人機進入危險區域或飛行超時,就判定無人機飛行失敗;若無人機能在規定的時間內到達設定的目標地,且沒有經過危險區域,則判定無人機飛行成功。
本文將結合使用深度學習與強化學習來實現無人機飛行線路的實時優化。在實驗中,首先構建一個卷積神經網絡[11~12]來預測氣象模型給出的預測天氣,然后使用強化學習算法Q-Learning[13]來規劃線路。
無人機飛行路線規劃模型由兩部分組成,如圖1所示,上層部分為天氣預測網絡,由全卷積神經網絡組成,下層為線路規劃模型,由強化學習Q-Learning算法構建,在本文中使用了經典的Dueling Deep Q-Network來實現線路規劃。
通過氣象模型可以獲得較為精確的天氣預報,通常使用多個氣象模型給出的天氣預報來預測真實的天氣。但是傳統的預測方法比較粗糙且耗時較長,很難做到實時更新。無人機對天氣狀況的需求僅是局部的,且顆粒度較小,需要對一個地區內不同區域做出預測。

圖1 模型結構
一個地區的天氣狀況受到其周邊地區的影響,具有局部相關的特性。若采用傳統的統計方法,很難確定影響區域的范圍有多大,無法高效地提取特征。因此可以采用CNN,通過不同大小的卷積核,使其自動學習出每個卷積核的權重參數,從而達到自適應選區影響區域的目的;同時,相鄰的地區天氣狀況往往相似,通過CNN的池化(pooling)或大步長的卷積可以起到降維的作用,減少復雜度。
2.1.1 卷積神經網絡
卷積神經網絡的概念最早起源于科學家提出感受野(Receptive Field),即每個動物的神經元只會處理一小塊區域的視覺圖像,相當于CNN中卷積核的處理過程。后來又提出了神經認知機的概念,神經認知機包含兩類神經元,一類是用來提取特征的S-cell,對應于現在的CNN中卷積核的濾波操作;一類是用來抗變的C-cell,對應于現在的CNN中激勵函數、池化等操作。
一般的CNN由多個卷積層構成,每層卷積層會進行以下幾個操作:
1)圖像通過不同的卷積核濾波,加偏置bias,提取局部特征;
2)濾波輸出結果進行激活函數處理,常用Re-LU函數;
3)激活函數輸出進行池化操作,一般有最大池化和平均池化兩種方法。
CNN的強大之處在于它的多層結構能自動學習特征,并且可以學習到多個層次的特征:較淺的卷積層感知域較小,學習到一些局部區域的特征;較深的卷積層具有較大的感知域,能夠學習到更加抽象一些的特征。CNN的特征提取是通過卷積操作與池化操作實現的,通過卷積操作可以獲得卷積層C:

其中sign是激活函數,可以使用sigmoid,ReLU等,?是卷積操作,w是卷積核,x是輸入,b是偏置值,隨后進行池化操作,本文采用的是最大值池化,池化層的作用是在用來減小特征圖尺寸規模的同時,增強了特征對于旋轉和變形的魯棒性。
2.1.2 全卷積網絡
卷積網絡能夠對圖片進行分類,而預測每個區域的天氣情況則需要對每個像素點進行分類,同時每個點天氣的狀況與其周圍地區天氣的狀況是高度相關的,因此,可以使用全卷積網絡(Fully Convolutional Networks,FCN)來對每個像素點進行預測。
FCN的結構如圖2所示。通常CNN網絡在卷積層之后會接上若干個全連接層,將卷積層產生的特征圖(feature map)映射成一個固定長度的特征向量。以AlexNet為代表的經典CNN結構適合于圖像級的分類和回歸任務,因為它們最后都期望得到整個輸入圖像的一個數值描述或概率分布。FCN對圖像進行像素級的分類,由于不需要固定的全連接層,因此可以對任意尺寸的圖片進行操作。

圖2 全卷積網絡結構圖
在天氣預測網絡中,通過判斷不同的天氣預測模型給出的天氣預報來預測真實的天氣。FCN可以通過每個像素周邊情況來進行預測兼具了局部相關性與平移不變性的特點,實現端到端及像素點對像素點的功能,滿足了預測網絡的需求。
在原始的FCN中,由于采用了上采樣的操作,使得到的結果還是不夠精細,對圖像中的細節不敏感。限于精度問題不能夠很好地還原圖像當中的特征,因此,融合之前卷積得到的feature map進行細節上的補充,然后再進行反卷積。通過對生成對抗網絡(Generative Adversarial Networks,GAN)[14]模型的研究,發現采用大步長卷積來替代pooling可以更好地提取圖像特征,因此,使用大步長的卷積操作來代替最大池化。
在無人機飛行過程中,需要實時做決策,決定每一次的行動方向。每次無人機會用一組天氣圖片作為輸入,如圖3所示,白色高亮區域為危險區域,黑色區域為安全區域。該輸入中包含了當前的天氣狀況以及接下來兩個單位時間的天氣預測,即共有3個單位時間的天氣圖片。在無人機飛行的途中,天氣的狀況會隨著時間而發生改變,無人機只需關心當前時刻之后的天氣情況,而不需要關系過去的情況。

圖3 連續時間天氣的變化
2.2.1 馬爾可夫決策過程(Markov Decision Process,MDP)[15]
無人機飛行的過程具有馬爾可夫性(即無后效性),系統的下個狀態只與當前狀態信息有關,而與更早之前的狀態無關。MDP具有馬爾可夫性,同時MDP還考慮到了動作對系統的影響,即系統下個狀態不僅和當前的狀態有關,也和當前采取的動作有關。在某個狀態S下,采取一個動作a,這時下個狀態S'是無法確定的,但是和S和a有關,而不用考慮更早之前的狀態和動作,即S'受到S與a的影響。無人機的每個操作都會影響到接下來所處的環境,因此可以用MDP來解決無人機的線路規劃問題。
1)S表示狀態的集合,s∈S,si表示時刻i的狀態;
2)A表示動作的集合,a∈A,ai表示第i個動作。
3)P表示狀態轉移概率,表示在當前狀態si下,經過動作ai后,狀態變化到s'的概率;
4)γ表示后續獎勵值對當前狀態的影響,γ越大則代表越在意之后的獎勵,γ為0則代表只關心當前的獎勵;
5)R:S×A→R,R是回報函數(reward function)。表示期望獎勵。
MDP的動態過程如下:智能體(agent)的初始狀態為s0,然后從A中挑選一個動作a0執行,執行后,agent按概率隨機轉移到了下一個s1狀態。然后再執行一個動作a1,狀態移到s2,接下來再執行a2,如此循環,如圖4所示。同時,在每一次采取動作后,環境會給出當前動作的立即獎勵r。

圖4 MDP狀態轉移過程


方程(1)、(2)稱為貝爾曼方程,它表明了當前狀態值與下一個狀態值之間的關系[16~17]。如果知道下一個狀態的值,就可以知道當前狀態的值。通過這兩個方程,就可以求解MDP,從而獲得無人機線路規劃的最優策略網絡π*。
2.2.2 Dueling Deep Q-Network

由于強化學習過程是對未知環境的探索過程,因此,無法搜索整個狀態空間。假設在某一次決策時,有a、b、c三個動作,其對應的reward如圖5(a)所示,當決策網絡采取動作a的次數多于c時,那么a的總reward要大于c的總reward,此時網絡的決策會更偏向于a。為了解決這個問題,使用了Dueling Deep Q-Network,其結構如圖6所示,此時需要額外引入優勢函數


圖5 優勢函數效果對比

圖6 Dueling DQN結構圖
通常情況下,方程V表示當前狀態,方程Q表示在采取了特定的動作a之后的狀態。那么方程(5)就可以用來評估這一動作的優劣。決策網絡是一個很復雜,維度很高的方程,可以采用神經網絡來近似這個方程,這就是DQN(Deep Q-Network):,其中θ為網絡中的參數,通過下面的損失函數可以來優化參數θ:

天氣預測網絡的訓練數據來自阿里天池數據庫,通過旋轉,添加噪聲等方法對數據集進行數據增強。在實際訓練中,為了達到更好的結果,去除了pooling層,用大步長的卷積取代。具體的網絡參數如表1所示。
天氣預測模型訓練結果如圖7所示。
決策網絡訓練數據除了使用阿里天池數據庫中的數據外,還使用了額外的數據,額外數據均為隨機生成。為了使決策網絡可以完成預定的目標,避開危險區域且盡可能快的達到目的地,設置了如下回報函數:
無人機每次移動獲得-1分;
無人機朝著目標前進獲得2分;
無人機遠離目標點獲得-1分;
無人機原地不動獲得0分;
無人機進入危險區域獲得-100分;
無人機到達目標地獲得10分。

表1 全卷積網絡參數信息

圖7 天氣預測網絡訓練結果
圖8表示了決策網絡的訓練過程,其中ENV會對無人機每一次做出的動作進行打分,如果無人機進入危險區域,ENV會返回終止標記并初始化狀態開始新的一輪訓練。
決策網絡參數如表2所示。

圖8 DQN訓練
圖9顯示了實驗的具體模型。使用一個預測網絡FCN來為多個無人機預測天氣,同時將決策網絡的卷積部分DQN-CNN移動到預測網絡中。決策網絡直接接收卷積后的特征進行線路規劃。

圖9 實驗模型結構
本次實驗模擬了4個無人機,編號為0,1,2,3。在每次開始時隨機分配目標點,編號越大的無人機分配的目標點越遠。決策網絡每迭代500次進行一次實驗,實驗結果如表3所示。

表3 實驗結果
從實驗結果中可以看出,決策網絡在經過較少次的迭代后就可以取得較好的結果;隨著迭代次數的增加,失敗的次數逐漸減少;隨著飛行距離的增加,失敗的概率也逐漸變大,但趨于穩定。
在天氣預測網絡中,通過FCN進行預測后的天氣還不夠精細,今后仍需進行優化與修改。無人機的飛行狀況應是三維的,并且所需應對的障礙也不僅僅是天氣,還有各種地形、飛行物等障礙,今后將進行三維空間的線路規劃,同時引入目標檢測來識別判斷障礙物類型與位置。在強化學習的模型上,目前采用值網絡,還可以采用策略網絡,如TRPO,PPO之類。在結構方面,可以采用融合模型或更加復雜的分層模型,上層管理最基本的線路規劃,底層負責實時的危險規避。隨著機器學習與深度學習的發展,人工智能將在無人機路線規劃應用中可以承擔更多的工作。