吳志鵬,董超俊
(五邑大學智能制造學部,江門 529000)
如今,隨著社會經濟的快速發展,汽車已成為幾乎家家戶戶的便捷交通工具之一。這使得道路交通環境越來越復雜,人們期望有一個智能視覺輔助應用,為駕駛員提供交通標志信息,道路車輛信息,道路行人信息,以及協助車輛控制,來確保道路安全。道路目標檢測與識別作為駕駛員輔助系統的重要功能之一,已經成為國內外研究人員的一個熱點研究方向。它主要是利用車輛攝像頭采集實時的道路圖像,然后對道路上遇到的目標進行檢測和識別,從而為駕駛系統提供準確的信息。
自卷積神經網絡(Convolutional Neural Networks,CNN)被提出以來,目標檢測的準確度有了較為明顯的提高,其中比較經典的算法有R-CNN、Faster R-CNN等。R-CNN[1]是一種結合區域提名(Region Proposal)和卷積神經網絡(CNN)的目標檢測方法,采用的是選擇性搜索(Selective Search),所以目標候選區的重疊使得CNN特征提取的計算中有著很大的冗余,在很大程度上限制了檢測速度。而之后提出的Faster R-CNN[2]拋棄了選擇性搜索(Selective Search),引入了區域候選網絡(Region Proposal Networks,RPN),使得區域提名、分類、回歸一起共用卷積特征,從而加速了目標檢測的速度。但是Faster R-CNN需要先進行目標判定,然后再進行目標識別。所以兩種算法在檢測速度和穩定性上仍然有提升的空間。
深度強化學習,顧名思義是將深度學習的感知能力和強化學習的決策能力相結合,目的是讓兩種算法的優勢得到互補,輸入如果是圖像,深度強化學習也可以直接進行控制。近年來,深度強化學習的熱度一直很高。其中Mnih等人[3]結合卷積神經網絡(CNN)和Q-learning算法,提出一種深度Q網絡模型(Deep Q-Network,DQN),并且在雅達利2600游戲中表現出色。由于Q學習存在過高估計的現象,Hasselt等人[4]提出了深度雙 Q網絡(Deep Double Q-Network,DDQN),證明了DDQN可以減小過高估計帶來的誤差。之后,Schaul等人[5]在DQN中加入了優先級經驗重放系統,可以更高效的使用樣本。Hara等人[6]提出了一種深度增強學習,用于檢測視覺目標。本文通過調整折扣因子γ和學習率α,可以使DQN模型更加穩定,學習的質量也有所提升,從而提高目標檢測的精準的。
強化學習(Reinforcement Learning,RL),是機器學習分支。與傳統機器學習不同的是,強化學習是通過獎勵值來訓練模型,而機器學習是通過標簽和數據特征來訓練模型的。強化學習一般用于描述和解決智能體(agent)在與環境的交互過程中通過學習策略以達成回報最大化或實現特定目標的問題[7]。強化學習主要包含以下幾個個元素:環境的狀態S、個體的動作A、環境的獎勵R、個體的策略π、獎勵衰減因子γ和狀態轉化模型P。強化學習中通常會引入馬爾可夫決策過程(Markov Decision Process,MDP)。一般的,會將馬爾科夫決策過程定義為一個四元組。其中:
(1)狀態S,有限集合{s1,s2,…,sN},即|S|=N。對于建模的問題來說,狀態是所有信息中唯一的特征。
(2)動作 A,有限集合{a1,a2,…,aN},即|A|=N。能夠用于某個狀態s∈S的集合表示為 A(s),其中A(s)?A。
(3)轉換函數 P,可以通過如下方式定義:S×A×S→[0,1],即它是從(S,A,S)三元組映射到一個概率的函數,其概率表示為P(s,a,s′),表示,從狀態s轉換到狀態s′的概率,其值需要滿足 0≤P(s,a,s′)≤1 且,即概率必須滿足實際,否則無意義。
(4)獎勵函數R,可以定義為S×A→R,在某狀態執行某動作獲得獎勵。
馬爾科夫決策過程與環境交互如圖1所示。

圖1 馬爾可夫決策過程
這里假設未來每個時間步獲得的即時獎勵都必須乘以一個折扣因子γ,則從t時刻開始到T時刻情節結束時,獎勵之和定義為:

其中,Rt稱之為回報或者累計獎賞,γ∈(0,1]稱之為折扣因子。Agent的目標是通過最大化每個狀態st下的期望累未來回報的方式來選擇操作。
狀態-動作值函數:在狀態下執行動作后獲得的期望回報。

對于所有的動作狀態,假如一個策略π*的期望回報大于等于其他策略的期望回報,那么策略π*即為最優策略。

公式(3)為最優狀態動作值函數,即當處于狀態s,執行了動作a,然后再按照π執行下去到最后,能獲得的最大累計回報與期望。并且此值函數遵循貝爾曼最優方程(Bellman Optimality Equation)。即:

強化學習算法的基本思想是通過使用貝爾曼方程作為迭代更新來估計動作值函數:

當i→∞時,Qi→Q*。這種值迭代算法收斂于最優動作值函數。但是實際上,這種基本方法是完全不切實際的,因為每個序列的作用值函數是單獨估計的,沒有任何概括。相反,使用函數逼近器來估計動作值函數是常見的,即Q(s,a|θ)≈Q*(s,a)。
深度Q網絡(Deep Q-Network,DQN)是 DeepMind團隊提出來的深度強化學習算法,它是將卷積神經網絡與強化學習中的Q-learning算法相結合,這里卷積神經網絡的作用是對在高維且連續狀態下的Q-Table做函數擬合,DQN相比于Q-learning有三大改進:①加入了卷積神經網絡;②引入了目標網絡(Target Network);③訓練過程中應用了經驗回放機制(Experience Replay)。圖2表示了DQN的訓練流程。

圖2 DQN的訓練流程
經驗回放機制[8],把每個時間步中個體和環境交互所得到的經驗樣本數據存儲到經驗池中,當模型在進行訓練時,就會從經驗池中隨機抽取小批量的樣本進行訓練。引入經驗回放機制后,不僅可以較為容易的對獎勵數據進行備份,并且隨機的從經驗池中抽取小批量的數據也減小了樣本之間的關聯性,提高了系統的穩定性。其中,經驗樣本是以五元組(s,a,r,s’,T)的形式進行存儲的。具體表示為個體在狀態s下執行動作a,到達下一個狀態s’,就可以獲得相應的獎勵r。其中T表示下一個狀態s’是否為終止狀態。
在經典Q-learning算法中,目標Q值會隨著預測Q值得增大而增大,這會是模型有震蕩或者發散的可能性。所以DQN使用了兩個神經網絡模型:一個是用卷積神經網絡來近似表示當前值函數,另一個神經網絡則用來產生目標Q值。
目標函數為:

當前狀態下估計值和目標值之間的誤差計算公式(損失函數):

DQN算法根據損失函數的公式來更新神經網絡中的參數,通過引入目標函數,使得一段時間里目標Q值是不變的,在一定的程度上降低了兩個Q值得相關性,使得訓練時損失震蕩甚至是發散的概率降低,提高了算法的穩定性。
通過實驗表明,高度復雜的任務,DQN可以很好地訓練,但存在過度擬合的風險。相反,復雜度較低的模型不會過度擬合,但可能無法捕獲重要的特性。這時候,折扣因子γ在DQN的訓練過程中起到了作用,當折扣因子γ在訓練過程中越來越逼近其最終值,則可以加快魔性的收斂,從而降低了過擬合的現象,增加了系統的穩定性。

隨著折扣因子的增加,學習率隨之降低,最終可以得到一個穩定的DQN訓練模型。

本文主要采用的是伯克利大學AI實驗室(BAIR)發布的bdd100k數據集,數據集中的GT框標簽共有10 個類別,分別為:Bus、Light、Sign、Person、Bike、Truck、Motor、Car、Train、Rider。其中包含了 10 萬段高清視頻,每個視頻大約約40秒,分辨率為720p,幀數為30fps。每個視頻從第10秒對關鍵幀進行采樣,從中獲得了10萬張圖片,并進行標注。在10萬張圖片中,包含了不同天氣、場景、時間的圖片,包括晴天、陰天和雨天,以及白天和晚上的不同時間。并且數據集中都是真實的駕駛場景。
由于bdd100k數據集中有多個圖像標簽,所以本文采用計算平均精度的方式來衡量目標檢測模型的性能。下面是查準率(precision)和查全率(recall)的定義:

由此可以得到查準率-查全率曲線,簡稱“P-R曲線”。由于P-R曲線不方便比較不同模型的性能,所以將P-R曲線換算為mAP值進行比較。
將bdd100k數據集中的100000張圖像導入深度Q網絡模型,本文的實驗采用了Python編程語言,是Python 3.7。深度學習框架采用了TensorFlow1.0.1。將樣本圖片分為 Bus、Light、Sign、Person、Bike、Truck、Motor、Car、Train、Rider等 10 大類,不同的圖片類別被用作1,2,…,9,10個標記。將數據庫中70000張圖像作為訓練數據,30000張圖像作為測試數據。根據類別標識設置每組信號的期望輸出值。實驗結果如表1。

表1 不同方法下的相同訓練域的mAP值比較
由表1可以看出,本文在晴天(clear)、白天(daytime)、城市街道(city)三種不同的環境下,用兩種不同的方法進行對比。實驗結果表明,本文提出的帶自適應學習率的深度Q網絡在目標檢測的精準度上,有一定的提升;并且在城市街道(city)的環境下表現的最好。
本文應用了帶自適應學習率的深度Q網絡,并將此方法建立模型用于道路目標的檢測。實驗證明了本文提出的方法優于以前的經典算法,確實提高了模型在復雜環境下對目標的檢測性能。希望在將來,本文提出的方法能夠得到更深層次的研究,并能夠不斷地優化對于不同對象的檢測性能。