吳志鵬,董超俊
(五邑大學(xué)智能制造學(xué)部,江門 529000)
如今,隨著社會經(jīng)濟(jì)的快速發(fā)展,汽車已成為幾乎家家戶戶的便捷交通工具之一。這使得道路交通環(huán)境越來越復(fù)雜,人們期望有一個智能視覺輔助應(yīng)用,為駕駛員提供交通標(biāo)志信息,道路車輛信息,道路行人信息,以及協(xié)助車輛控制,來確保道路安全。道路目標(biāo)檢測與識別作為駕駛員輔助系統(tǒng)的重要功能之一,已經(jīng)成為國內(nèi)外研究人員的一個熱點(diǎn)研究方向。它主要是利用車輛攝像頭采集實(shí)時的道路圖像,然后對道路上遇到的目標(biāo)進(jìn)行檢測和識別,從而為駕駛系統(tǒng)提供準(zhǔn)確的信息。
自卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)被提出以來,目標(biāo)檢測的準(zhǔn)確度有了較為明顯的提高,其中比較經(jīng)典的算法有R-CNN、Faster R-CNN等。R-CNN[1]是一種結(jié)合區(qū)域提名(Region Proposal)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)的目標(biāo)檢測方法,采用的是選擇性搜索(Selective Search),所以目標(biāo)候選區(qū)的重疊使得CNN特征提取的計(jì)算中有著很大的冗余,在很大程度上限制了檢測速度。而之后提出的Faster R-CNN[2]拋棄了選擇性搜索(Selective Search),引入了區(qū)域候選網(wǎng)絡(luò)(Region Proposal Networks,RPN),使得區(qū)域提名、分類、回歸一起共用卷積特征,從而加速了目標(biāo)檢測的速度。但是Faster R-CNN需要先進(jìn)行目標(biāo)判定,然后再進(jìn)行目標(biāo)識別。所以兩種算法在檢測速度和穩(wěn)定性上仍然有提升的空間。
深度強(qiáng)化學(xué)習(xí),顧名思義是將深度學(xué)習(xí)的感知能力和強(qiáng)化學(xué)習(xí)的決策能力相結(jié)合,目的是讓兩種算法的優(yōu)勢得到互補(bǔ),輸入如果是圖像,深度強(qiáng)化學(xué)習(xí)也可以直接進(jìn)行控制。近年來,深度強(qiáng)化學(xué)習(xí)的熱度一直很高。其中Mnih等人[3]結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和Q-learning算法,提出一種深度Q網(wǎng)絡(luò)模型(Deep Q-Network,DQN),并且在雅達(dá)利2600游戲中表現(xiàn)出色。由于Q學(xué)習(xí)存在過高估計(jì)的現(xiàn)象,Hasselt等人[4]提出了深度雙 Q網(wǎng)絡(luò)(Deep Double Q-Network,DDQN),證明了DDQN可以減小過高估計(jì)帶來的誤差。之后,Schaul等人[5]在DQN中加入了優(yōu)先級經(jīng)驗(yàn)重放系統(tǒng),可以更高效的使用樣本。Hara等人[6]提出了一種深度增強(qiáng)學(xué)習(xí),用于檢測視覺目標(biāo)。本文通過調(diào)整折扣因子γ和學(xué)習(xí)率α,可以使DQN模型更加穩(wěn)定,學(xué)習(xí)的質(zhì)量也有所提升,從而提高目標(biāo)檢測的精準(zhǔn)的。
強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL),是機(jī)器學(xué)習(xí)分支。與傳統(tǒng)機(jī)器學(xué)習(xí)不同的是,強(qiáng)化學(xué)習(xí)是通過獎勵值來訓(xùn)練模型,而機(jī)器學(xué)習(xí)是通過標(biāo)簽和數(shù)據(jù)特征來訓(xùn)練模型的。強(qiáng)化學(xué)習(xí)一般用于描述和解決智能體(agent)在與環(huán)境的交互過程中通過學(xué)習(xí)策略以達(dá)成回報最大化或?qū)崿F(xiàn)特定目標(biāo)的問題[7]。強(qiáng)化學(xué)習(xí)主要包含以下幾個個元素:環(huán)境的狀態(tài)S、個體的動作A、環(huán)境的獎勵R、個體的策略π、獎勵衰減因子γ和狀態(tài)轉(zhuǎn)化模型P。強(qiáng)化學(xué)習(xí)中通常會引入馬爾可夫決策過程(Markov Decision Process,MDP)。一般的,會將馬爾科夫決策過程定義為一個四元組。其中:
(1)狀態(tài)S,有限集合{s1,s2,…,sN},即|S|=N。對于建模的問題來說,狀態(tài)是所有信息中唯一的特征。
(2)動作 A,有限集合{a1,a2,…,aN},即|A|=N。能夠用于某個狀態(tài)s∈S的集合表示為 A(s),其中A(s)?A。
(3)轉(zhuǎn)換函數(shù) P,可以通過如下方式定義:S×A×S→[0,1],即它是從(S,A,S)三元組映射到一個概率的函數(shù),其概率表示為P(s,a,s′),表示,從狀態(tài)s轉(zhuǎn)換到狀態(tài)s′的概率,其值需要滿足 0≤P(s,a,s′)≤1 且,即概率必須滿足實(shí)際,否則無意義。
(4)獎勵函數(shù)R,可以定義為S×A→R,在某狀態(tài)執(zhí)行某動作獲得獎勵。
馬爾科夫決策過程與環(huán)境交互如圖1所示。
圖1 馬爾可夫決策過程
這里假設(shè)未來每個時間步獲得的即時獎勵都必須乘以一個折扣因子γ,則從t時刻開始到T時刻情節(jié)結(jié)束時,獎勵之和定義為:
其中,Rt稱之為回報或者累計(jì)獎賞,γ∈(0,1]稱之為折扣因子。Agent的目標(biāo)是通過最大化每個狀態(tài)st下的期望累未來回報的方式來選擇操作。
狀態(tài)-動作值函數(shù):在狀態(tài)下執(zhí)行動作后獲得的期望回報。
對于所有的動作狀態(tài),假如一個策略π*的期望回報大于等于其他策略的期望回報,那么策略π*即為最優(yōu)策略。
公式(3)為最優(yōu)狀態(tài)動作值函數(shù),即當(dāng)處于狀態(tài)s,執(zhí)行了動作a,然后再按照π執(zhí)行下去到最后,能獲得的最大累計(jì)回報與期望。并且此值函數(shù)遵循貝爾曼最優(yōu)方程(Bellman Optimality Equation)。即:
強(qiáng)化學(xué)習(xí)算法的基本思想是通過使用貝爾曼方程作為迭代更新來估計(jì)動作值函數(shù):
當(dāng)i→∞時,Qi→Q*。這種值迭代算法收斂于最優(yōu)動作值函數(shù)。但是實(shí)際上,這種基本方法是完全不切實(shí)際的,因?yàn)槊總€序列的作用值函數(shù)是單獨(dú)估計(jì)的,沒有任何概括。相反,使用函數(shù)逼近器來估計(jì)動作值函數(shù)是常見的,即Q(s,a|θ)≈Q*(s,a)。
深度Q網(wǎng)絡(luò)(Deep Q-Network,DQN)是 DeepMind團(tuán)隊(duì)提出來的深度強(qiáng)化學(xué)習(xí)算法,它是將卷積神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)中的Q-learning算法相結(jié)合,這里卷積神經(jīng)網(wǎng)絡(luò)的作用是對在高維且連續(xù)狀態(tài)下的Q-Table做函數(shù)擬合,DQN相比于Q-learning有三大改進(jìn):①加入了卷積神經(jīng)網(wǎng)絡(luò);②引入了目標(biāo)網(wǎng)絡(luò)(Target Network);③訓(xùn)練過程中應(yīng)用了經(jīng)驗(yàn)回放機(jī)制(Experience Replay)。圖2表示了DQN的訓(xùn)練流程。
圖2 DQN的訓(xùn)練流程
經(jīng)驗(yàn)回放機(jī)制[8],把每個時間步中個體和環(huán)境交互所得到的經(jīng)驗(yàn)樣本數(shù)據(jù)存儲到經(jīng)驗(yàn)池中,當(dāng)模型在進(jìn)行訓(xùn)練時,就會從經(jīng)驗(yàn)池中隨機(jī)抽取小批量的樣本進(jìn)行訓(xùn)練。引入經(jīng)驗(yàn)回放機(jī)制后,不僅可以較為容易的對獎勵數(shù)據(jù)進(jìn)行備份,并且隨機(jī)的從經(jīng)驗(yàn)池中抽取小批量的數(shù)據(jù)也減小了樣本之間的關(guān)聯(lián)性,提高了系統(tǒng)的穩(wěn)定性。其中,經(jīng)驗(yàn)樣本是以五元組(s,a,r,s’,T)的形式進(jìn)行存儲的。具體表示為個體在狀態(tài)s下執(zhí)行動作a,到達(dá)下一個狀態(tài)s’,就可以獲得相應(yīng)的獎勵r。其中T表示下一個狀態(tài)s’是否為終止?fàn)顟B(tài)。
在經(jīng)典Q-learning算法中,目標(biāo)Q值會隨著預(yù)測Q值得增大而增大,這會是模型有震蕩或者發(fā)散的可能性。所以DQN使用了兩個神經(jīng)網(wǎng)絡(luò)模型:一個是用卷積神經(jīng)網(wǎng)絡(luò)來近似表示當(dāng)前值函數(shù),另一個神經(jīng)網(wǎng)絡(luò)則用來產(chǎn)生目標(biāo)Q值。
目標(biāo)函數(shù)為:
當(dāng)前狀態(tài)下估計(jì)值和目標(biāo)值之間的誤差計(jì)算公式(損失函數(shù)):
DQN算法根據(jù)損失函數(shù)的公式來更新神經(jīng)網(wǎng)絡(luò)中的參數(shù),通過引入目標(biāo)函數(shù),使得一段時間里目標(biāo)Q值是不變的,在一定的程度上降低了兩個Q值得相關(guān)性,使得訓(xùn)練時損失震蕩甚至是發(fā)散的概率降低,提高了算法的穩(wěn)定性。
通過實(shí)驗(yàn)表明,高度復(fù)雜的任務(wù),DQN可以很好地訓(xùn)練,但存在過度擬合的風(fēng)險。相反,復(fù)雜度較低的模型不會過度擬合,但可能無法捕獲重要的特性。這時候,折扣因子γ在DQN的訓(xùn)練過程中起到了作用,當(dāng)折扣因子γ在訓(xùn)練過程中越來越逼近其最終值,則可以加快魔性的收斂,從而降低了過擬合的現(xiàn)象,增加了系統(tǒng)的穩(wěn)定性。
隨著折扣因子的增加,學(xué)習(xí)率隨之降低,最終可以得到一個穩(wěn)定的DQN訓(xùn)練模型。
本文主要采用的是伯克利大學(xué)AI實(shí)驗(yàn)室(BAIR)發(fā)布的bdd100k數(shù)據(jù)集,數(shù)據(jù)集中的GT框標(biāo)簽共有10 個類別,分別為:Bus、Light、Sign、Person、Bike、Truck、Motor、Car、Train、Rider。其中包含了 10 萬段高清視頻,每個視頻大約約40秒,分辨率為720p,幀數(shù)為30fps。每個視頻從第10秒對關(guān)鍵幀進(jìn)行采樣,從中獲得了10萬張圖片,并進(jìn)行標(biāo)注。在10萬張圖片中,包含了不同天氣、場景、時間的圖片,包括晴天、陰天和雨天,以及白天和晚上的不同時間。并且數(shù)據(jù)集中都是真實(shí)的駕駛場景。
由于bdd100k數(shù)據(jù)集中有多個圖像標(biāo)簽,所以本文采用計(jì)算平均精度的方式來衡量目標(biāo)檢測模型的性能。下面是查準(zhǔn)率(precision)和查全率(recall)的定義:
由此可以得到查準(zhǔn)率-查全率曲線,簡稱“P-R曲線”。由于P-R曲線不方便比較不同模型的性能,所以將P-R曲線換算為mAP值進(jìn)行比較。
將bdd100k數(shù)據(jù)集中的100000張圖像導(dǎo)入深度Q網(wǎng)絡(luò)模型,本文的實(shí)驗(yàn)采用了Python編程語言,是Python 3.7。深度學(xué)習(xí)框架采用了TensorFlow1.0.1。將樣本圖片分為 Bus、Light、Sign、Person、Bike、Truck、Motor、Car、Train、Rider等 10 大類,不同的圖片類別被用作1,2,…,9,10個標(biāo)記。將數(shù)據(jù)庫中70000張圖像作為訓(xùn)練數(shù)據(jù),30000張圖像作為測試數(shù)據(jù)。根據(jù)類別標(biāo)識設(shè)置每組信號的期望輸出值。實(shí)驗(yàn)結(jié)果如表1。
表1 不同方法下的相同訓(xùn)練域的mAP值比較
由表1可以看出,本文在晴天(clear)、白天(daytime)、城市街道(city)三種不同的環(huán)境下,用兩種不同的方法進(jìn)行對比。實(shí)驗(yàn)結(jié)果表明,本文提出的帶自適應(yīng)學(xué)習(xí)率的深度Q網(wǎng)絡(luò)在目標(biāo)檢測的精準(zhǔn)度上,有一定的提升;并且在城市街道(city)的環(huán)境下表現(xiàn)的最好。
本文應(yīng)用了帶自適應(yīng)學(xué)習(xí)率的深度Q網(wǎng)絡(luò),并將此方法建立模型用于道路目標(biāo)的檢測。實(shí)驗(yàn)證明了本文提出的方法優(yōu)于以前的經(jīng)典算法,確實(shí)提高了模型在復(fù)雜環(huán)境下對目標(biāo)的檢測性能。希望在將來,本文提出的方法能夠得到更深層次的研究,并能夠不斷地優(yōu)化對于不同對象的檢測性能。