劉慶杰,林友勇,李少利
(中電海康集團研究院,浙江 杭州 310012)
隨著人工智能技術的發(fā)展和各種傳感設備的普及,移動機器人/無人車自動駕駛等技術日趨成熟,但具備自主決策能力的智能體(智能體指宿主于復雜動態(tài)環(huán)境中,自治地感知環(huán)境信息,自主采取行動,并實現(xiàn)一系列預先設定的目標或任務的實體,如移動機器人/無人車)還相對薄弱。2016年初DeepMind團隊開發(fā)的AlphaGo戰(zhàn)勝李世石,成功地將具有自主決策能力的強化學習技術引爆科技圈。強化學習是一種通過與環(huán)境不斷交互獲取獎懲并做出最優(yōu)決策的機器學習方式,在機器人和工業(yè)自動化、博弈決策等領域都有廣泛的應用,因此將其應用到移動機器人/無人車等智能體的自動行駛中具有可行性。本文針對智能體行駛過程中面臨的避障問題展開研究。
傳統(tǒng)避障算法,如模糊控制法、啟發(fā)式搜索等面對未知的環(huán)境時依靠人為規(guī)則策略和經(jīng)驗做決策,存在通用性和靈活性差的缺點。智能避障算法,如具備自主學習功能的DQN算法,在無需人為策略和經(jīng)驗指導下即可做出決策。基于深度強化學習算法的智能體在模擬環(huán)境中對各種常見場景經(jīng)過一定時間自主學習,通過在環(huán)境中獲得獎懲指引智能體做出動作,以提升自主決策能力的準確性和魯棒性。
本節(jié)先介紹深度強化學習算法的基本概念和工作原理,進而設計了應用于避障場景的神經(jīng)網(wǎng)絡模型。
深度學習是機器學習領域非常重要、應用非常廣泛的一個分支。其起源于人工神經(jīng)網(wǎng)絡,是一種基于數(shù)據(jù)感知的表征學習方法,可以實現(xiàn)任意復雜度連續(xù)函數(shù)的逼近。深度學習經(jīng)過多年發(fā)展,典型卷積神經(jīng)網(wǎng)絡、循環(huán)神經(jīng)網(wǎng)絡和對抗神經(jīng)網(wǎng)絡等在人臉識別/通用物體識別、語音/文本翻譯、人機對話和問答等領域取得了巨大成功。
強化學習是機器學習的另一個重要分支,不同于常見的有監(jiān)督學習和無監(jiān)督學習算法,強化學習擅長于解決序列決策問題:通過自主感知環(huán)境采取動作,并根據(jù)環(huán)境的反饋獲取新的獎賞,進而選取具有最大化獎勵的策略作為最優(yōu)策略。強化學習的目標為尋找獲得最大累積獎賞的策略,示意圖如下圖1所示。
圖1 強化學習示意圖
傳統(tǒng)強化學習對于連續(xù)狀態(tài)空間的表達能力相對較弱,維度災難的存在導致難以高效地求解最優(yōu)策略。而深度學習擅長處理高維度的問題,因此本文將具有決策能力的強化學習和擅長處理高維感知數(shù)據(jù)能力的深度學習結合,構成深度強化學習新技術應用于智能體避障方案中。
深度強化學習DQN算法是基于價值函數(shù),將深度學習與強化學習結合,從而實現(xiàn)從感知環(huán)境到執(zhí)行動作的端到端學習算法,在Q-learning算法中Q值的更新方式見公式(1):
式(1)中:Q(st,at)為衡量當前狀態(tài) st下采取動作at能夠獲得收益的期望值,環(huán)境根據(jù)智能體的動作反饋相應的回報Rt,γ為獎勵衰變系數(shù),表示對未來獎勵的重視程度,α 為學習率,maxQ(st+1,a')表示下一時刻狀態(tài)下采取某個動作得到的最大Q值。
當狀態(tài)和動作空間離散且維度不高時使用Q-table表存儲更新每個狀態(tài)-動作對應的Q值。由于智能體感知的環(huán)境是連續(xù)的,采用表格化的Q-learning來存儲狀態(tài)值在現(xiàn)實中存在占用內(nèi)存空間過高、運算量大等問題。本文采用神經(jīng)網(wǎng)絡和Q-learning算法結合的深度強化學習算法DQN來擬合Q函數(shù),解決占用內(nèi)存過高和運算量大的問題。算法以移動機器人/無人車等智能體獲得的環(huán)境狀態(tài)信息作為網(wǎng)絡輸入,每個動作對應的評估值作為網(wǎng)絡Q值輸出。DQN網(wǎng)絡結構流程如圖2所示。
圖2 DQN網(wǎng)絡結構流程
在神經(jīng)網(wǎng)絡訓練中,若輸入樣本之間具有高度關聯(lián)性,則神經(jīng)網(wǎng)絡無法很好收斂。因此采用經(jīng)驗回放的技巧,把存儲到記憶庫中的樣本隨機打亂以消除樣本之間的關聯(lián)性。為解決計算當前Q值和下一狀態(tài)目標Q值采用同一網(wǎng)絡會出現(xiàn)更新不穩(wěn)定的問題,在計算目標Q值時不直接使用預更新的Q網(wǎng)絡,而是增加Target Q網(wǎng)絡來計算,這樣做的目的是為了減少目標計算與當前值的相關性,使訓練更新更加穩(wěn)定。
與有標簽樣本的監(jiān)督學習不同,DQN算法通過獎勵值和Target Q中獲取的Q值自動進行標注,通過不斷試錯方式獲取獎懲來尋找最優(yōu)策略,可以有效解決環(huán)境中存在的各種特殊情況。
為了驗證DQN算法模型在與環(huán)境交互過程中所具備的避障能力,構建了一個實驗室仿真系統(tǒng)。該仿真系統(tǒng)包含二個主要模塊:環(huán)境感知模塊、實時決策模塊、動作控制模塊。通過在智能體的不同方向上部署多個傳感器從環(huán)境中獲取數(shù)據(jù),經(jīng)過DQN神經(jīng)網(wǎng)絡實時決策模塊預測智能體需要執(zhí)行的動作,經(jīng)由動作控制模塊指導智能體完成具體轉向。仿真系統(tǒng)整體架構如圖3所示。
圖3 仿真系統(tǒng)整體架構
智能體(如移動機器人/無人車)的車身及內(nèi)部布設了大量的傳感器和攝像頭來感知外界的環(huán)境信息,并根據(jù)環(huán)境變化做出相應的決策執(zhí)行動作,如左轉、直行、右轉、剎車等。為簡單起見,實驗中通過5個超聲波傳感器分別獲得左方、左前方、前方、右前方和右方共5個方向障礙物的距離信息,同時能獲取障礙物相對智能體的位置和角度信息,將多傳感信息融合或環(huán)境感知的信息作為神經(jīng)網(wǎng)絡的輸入。
收集的傳感數(shù)據(jù)是以時間序列的連續(xù)狀態(tài),融合信息采用智能體與障礙物之間的相對距離、相對角度等參數(shù)作為神經(jīng)網(wǎng)絡的輸入,相對于采用具體位置坐標信息作為神經(jīng)網(wǎng)絡輸入,輸入樣本數(shù)據(jù)之間的特征方差更小,更容易收斂,因此魯棒性也更好。
由于只有當智能體到達目的地時才會給予正向的獎勵值,因此獎勵過于稀疏,訓練多輪也很難獲得比較好的結果?,F(xiàn)實中隨著智能體與環(huán)境的交互,狀態(tài)在不斷發(fā)生改變,障礙物和目的地之間的距離也在發(fā)生變化,因此每個狀態(tài)下的獎懲都會對智能體的行進方向起指導性作用,增設獎懲和狀態(tài)關系表,使得獎勵不再稀疏更有利于訓練。狀態(tài)-獎懲設置如表1所示。
智能體到達目的地給予+10獎勵,碰到障礙物給予-10的懲罰。每一時刻根據(jù)智能體距離終點的距離,如當智能體的位置比上一時刻距離終點更近則給予+0.5的獎勵;如果相比上一時刻距離終點更遠,則給予-0.5的懲罰。
將新的觀察參數(shù)作為神經(jīng)網(wǎng)絡輸入,結合獎懲機制進行實時決策。改進的策略為獲得+10獎勵的軌跡數(shù)據(jù)賦予更高的權重,基于此,DQN算法會更加重視順利達到目的地的那些參數(shù)信息,加速網(wǎng)絡收斂。
仿真環(huán)境下,根據(jù)智能體速度、位置等參數(shù)結合網(wǎng)絡預測得到的轉向角動作,可計算得到下一個狀態(tài)下的智能體位置信息,從而更新環(huán)境。更新后智能體獲得環(huán)境新的觀察信息,進行新的預測,如此往復形成整個閉環(huán)。
初始智能體位于起始坐標(0,0),速度為6m/s,到達目的地(350,0)所在3m半徑范圍內(nèi)視為完成任務;中間隨機設置5個半徑為4m的障礙物,智能體駛入障礙物范圍內(nèi)即視為失敗。5個傳感器因此可獲得5個觀察狀態(tài)信息,根據(jù)馬爾科夫決策過程,強化學習包含<s,a,r,s_>四個參數(shù),分別表示當前狀態(tài)、獲得的動作、獎勵以及下一個狀態(tài),因此存儲到記憶庫中的數(shù)據(jù)為12維度。
本文在模擬真實環(huán)境情況下,實現(xiàn)智能體自動避障的控制算法基于Tensorflow框架,設計了全連接神經(jīng)網(wǎng)絡作為DQN的Q網(wǎng)絡,共有4層網(wǎng)絡結構:輸入層為12維的特征張量;隱含層含128個節(jié)點,為防止過擬合增加dropout層,丟棄概率keep_prob設置為0.5;輸出層為3維張量,分別表示動作的Q值(直行、左轉、右轉)。記憶庫memory buffer容量為20000條,隨機batch_size設置為256條。和深度神經(jīng)網(wǎng)絡一樣,訓練的目標是最小化損失函數(shù)L,損失函數(shù)定義如下:
式(2)中r為當前獲得的獎勵,獎勵值的設定按照表1進行;θ為待優(yōu)化的神經(jīng)網(wǎng)絡參數(shù);γ表示對當前利益和未來利益的關注度因子:γ值越高,表示智能體更加關注未來獎勵,γ值越低表示關注眼前利益??紤]到不僅要關注眼前利益也要考慮未來的獎勵,因此 γ 值設為 0.9。r+γ·maxQ(s',a',θ')為目標Q值。
Q-learning中Q值的更新是利用獎勵Reward和Q函數(shù)計算得到的目標Q值進行的,DQN中直接將目標Q值作為樣本標簽,訓練的目標讓當前Q值趨近于Target Q值。正如公式(2)所示,將第一項r+γ*maxQ(s',a',θ')作為真實標簽,優(yōu)化方法采用梯度下降法通過不斷迭代訓練減小損失,使得主網(wǎng)絡預測的Q值逐漸逼近真實Q值。
訓練采用ε-greedy貪心策略,增加一定的探索機制,有利于更新Q值從而獲得更好的策略。起初階段采用隨機探索動作,隨著訓練的深入進行,逐步采用網(wǎng)絡預測代替隨機探索,在網(wǎng)絡輸出的3個動作Q值之間選擇最大的輸出動作作為下一步要執(zhí)行的動作,發(fā)送給動作控制模塊完成具體轉向任務。
圖4展示了智能體訓練2500局的表現(xiàn),橫坐標為訓練局數(shù)(碰撞到障礙物或者達到目的地為一個episode),縱坐標為行駛時長。圖中可以看出隨著訓練的進行,智能體的運行時間慢慢變長,從最開始的15s左右經(jīng)常避障失敗到運行2500局時能安全躲避障礙物,表現(xiàn)出一定的智能化特征。
圖4 訓練過程表現(xiàn)
圖5具體展示了智能體經(jīng)過學習,躲避障礙物到達目的地的軌跡路徑。智能體在初始位置(0,0)開始出發(fā),途中分布著5個隨機障礙物,在正右方向(350,0)處為目的地。圖中可以看出智能體已經(jīng)學會了如何躲避障礙物,且運行軌跡相對平穩(wěn)地到達目的地。
圖5 運行軌跡
本文對深度強化學習技術在智能避障場景下的應用進行了研究初探。通過多傳感信息融合,結合深度學習的數(shù)據(jù)感知能力和強化學習的自主決策能力,采用相對位置參數(shù)、改進了獎懲機制,使得網(wǎng)絡訓練更加有利于收斂,且魯棒性更好。仿真實驗表明,在無人為策略指導的情況下,智能體經(jīng)過大量自主探索試錯,學會了如何在未知環(huán)境中搜尋最優(yōu)路徑,從而實現(xiàn)躲避障礙物的目的。此算法設計對無人車自動駕駛、巡檢機器人以及無人機自主飛行都具有一定的指導意義。在智能機器人和工業(yè)自動化、博弈決策等領域,基于自主學習決策的深度強化學習技術都將會有廣泛的應用前景。