趙 純,董小明
(安慶師范大學(xué) 計算機(jī)與信息學(xué)院,安徽 安慶 246000)
隨著機(jī)動車數(shù)量的不斷增長,道路交叉口的擁堵問題迫在眉睫,想要更好地處理交通擁堵問題,就必須從根源出發(fā)。傳統(tǒng)的交通信號控制時間固定,導(dǎo)致綠燈階段的不必要等待,造成了極大的資源浪費(fèi),而且也需要大量的人力物力資源[1]。因此通過交通信號控制,能夠很好地緩解擁堵壓力,減少交通事故的發(fā)生,使系統(tǒng)更加效率化和合理化。
交叉口路網(wǎng)系統(tǒng)具有一定的不確定性和實(shí)時性,因此需要設(shè)計一個能夠感知狀態(tài)變化、選擇最優(yōu)時間的控制器。由于近年來交通控制系統(tǒng)的目標(biāo)是通過預(yù)測未來的交通狀態(tài)提前制定適當(dāng)?shù)目刂品桨竅2],這一方案突出了智能交通的重要性和艱巨性。但是隨著強(qiáng)化學(xué)習(xí)和深度學(xué)習(xí)的不斷發(fā)展進(jìn)步,有許多學(xué)者把深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)結(jié)合為深度強(qiáng)化學(xué)習(xí)應(yīng)用到交通控制上[3]。機(jī)器學(xué)習(xí)是目前快速發(fā)展的理論方向,包含了眾多的研究方向,而強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個領(lǐng)域,使得強(qiáng)化學(xué)習(xí)成為時下研究的熱點(diǎn)問題之一[4-5]。
強(qiáng)化學(xué)習(xí)是一種自適應(yīng)生成控制策略,其中一個或多個Agent學(xué)習(xí)如何利用Agent和環(huán)境本身之間的交互產(chǎn)生的經(jīng)驗(yàn)來解決環(huán)境中的任務(wù)。早期階段的交通信號強(qiáng)化學(xué)習(xí)控制對手動特征提取有著很大的依賴性,需要極大的人力資源,而且狀態(tài)非常不穩(wěn)定,很容易就丟失最主要的狀態(tài)信息。強(qiáng)化學(xué)習(xí)由于近年來AlphaGo[6]等的成功而越來越吸引人們的關(guān)注和研究興趣。
文中提出的方法主要優(yōu)勢在于:
(1)通過采用密集采樣策略和改進(jìn)后的獎勵函數(shù)相結(jié)合的方式對Agent模型進(jìn)行修改,這種方式在一定程度上提高了控制的性能。
(2)所有的仿真實(shí)驗(yàn)都是使用現(xiàn)在國際主流的交通模擬軟件(simulation of urban mobility,SUMO)來完成的,大大提高了實(shí)驗(yàn)的可靠性和穩(wěn)定性。
(3)參數(shù)設(shè)置合理,通過多次實(shí)驗(yàn)減少偶然性,提高了控制系統(tǒng)的穩(wěn)定性。
文中的Agent通過與環(huán)境進(jìn)行交互學(xué)習(xí)如何制定一個最優(yōu)策略[7]。交互由微型交通模擬器進(jìn)行處理,模擬器能夠讓智能體體驗(yàn)多種情況,并在模擬過程中學(xué)習(xí)哪些因素影響并激活了錯誤的信號燈相位。在強(qiáng)化學(xué)習(xí)框架[8]中,Agent被定義為三個基本屬性:狀態(tài)表示、一組可能的行為和獎勵函數(shù)。
近年來有關(guān)交通信號燈控制器的研究工作提出了信息豐富的狀態(tài),但在現(xiàn)實(shí)中,由于這種表示中所使用的信息很難收集,所以很難實(shí)現(xiàn)。而Agent感知到某一時刻t的環(huán)境狀態(tài),這里使用一種簡單并且易于應(yīng)用的狀態(tài)表示方法來增加獲得良好結(jié)果的可能性。在交叉口的每一條臂上,進(jìn)入的車輛在單元中被離散化,這些單元可以識別其中是否有車輛。環(huán)境狀況被表現(xiàn)為路面的離散化,目的是告知Agent車輛在特定時間內(nèi)的位置。
動作集確定了Agent可用的交互方式,它被定義為一個交通燈的配置,執(zhí)行一個操作就意味著在一組車道上將一些交通燈變綠,并保持固定的時間。以下表示Agent可以采取的所有可能的操作:
·東西向前進(jìn):綠色階段適用于位于東西向且想要直行或右轉(zhuǎn)的車輛。
·東西向左轉(zhuǎn):綠色階段適用于處于東西向并希望左轉(zhuǎn)的車輛。
·南北前進(jìn):綠色階段適用于位于南北向并希望直行或右轉(zhuǎn)的車輛。
·南北向左轉(zhuǎn):綠色階段適用于位于南北向并希望左轉(zhuǎn)的車輛。
根據(jù)Agent選擇的動作行為,從環(huán)境中產(chǎn)生反饋給Agent,以評估其選擇的行動。Agent通過收到的獎勵來改進(jìn)其將來的行為選擇策略,積極的獎勵是好的行動的反饋結(jié)果,而消極的獎勵是在選擇壞的行動之后得到的。在此實(shí)驗(yàn)中,目標(biāo)是最大化通過交叉口的交通流量。為了達(dá)到這個目標(biāo),獎勵應(yīng)該從一些績效指標(biāo)中獲得確信的流量效率,因此Agent能夠理解是否采取了合理的行動來提高或降低交叉口效率。
Q-Learning是無模型強(qiáng)化學(xué)習(xí)的一種形式,它包括為從特定狀態(tài)執(zhí)行的操作并分配一個稱為Q-value的值。Q-value的目的是量化一個行動的優(yōu)缺點(diǎn),使用即時獎勵和最大預(yù)期未來回報相結(jié)合,這樣Agent就知道哪些行動將導(dǎo)致最佳的總體策略[9]。然后,該狀態(tài)與該狀態(tài)的動作值之間的映射被一個深層神經(jīng)網(wǎng)絡(luò)逼近。
傳統(tǒng)的Q學(xué)習(xí)算法[10-11]更新式如下:
Q(st,at)=Q(st,at)+α(rt+1+γ.maxAQ(st+1,at+1)-Q(st,at))
(1)
該方程使用學(xué)習(xí)率α來更新當(dāng)前的Q值。rt+1表示與在狀態(tài)st處采取行動相關(guān)的獎勵,Q(st+1,at)表示近期未來的Q值,st+1是環(huán)境在狀態(tài)st選擇動作后演化的下一個狀態(tài),γ是假設(shè)值介于0和1之間的折扣因子,通過這個折扣因子可以降低未來獎勵的重要性。
文中使用了改進(jìn)后的公式,如下:
Q(st,at)=rt+1+γ.maxAQ'(st+1,at+1)
(2)
獎勵rt+1是在st采取行動之后才收到的獎勵,Q(st,at)是st+1采取相關(guān)行動后有關(guān)的Q值,也就是采取行動后的下一個狀態(tài),折扣因子γ表示和即時獎勵相比,未來獎勵的懲罰相對較小。這個公式是通過即時獎勵和未來動作的折扣Q值來更新狀態(tài)st中當(dāng)前行動Q值的規(guī)則。所以,表示未來動作隱含價值的Q'(st+1,at+1)是持有st+1之后的最大折扣回報,即Q''(st+2,at+2)。同樣,它也擁有下一個狀態(tài)的最大折扣回報,即Q'''(st+3,at+3)。這就說明不管Agent如何選擇動作,不僅僅基于即時獎勵,而且也基于未來預(yù)期折扣獎勵。在模擬過程中,Agent迭代地獲得關(guān)于動作序列值的知識。最后,希望它能夠選擇動作序列,從而獲得更高的累積回報以獲得最佳性能。
文中涉及的獎勵函數(shù):
文獻(xiàn)獎勵函數(shù):當(dāng)Agent選擇一個錯誤的動作時,就給它返回一個負(fù)值,當(dāng)它選擇一個好的動作時,就給它返回一個正值。不良行為可以表示為在當(dāng)前時間步驟t中,與前一時間步驟t-1中的情況相比,在隊(duì)列中添加更多車輛的操作,導(dǎo)致與上一時間步驟相比等待時間更長。
文獻(xiàn)獎勵函數(shù)的等式如下:
rt=Swt-1-Swt
(3)
其中,rt表示在時間步驟t的獎勵,Swt-1和Swt是在時刻t-1和t時所有車輛的總等待時間。
將上面這個等式進(jìn)行了改進(jìn),表示如下:
rt=0.8·Swt-1-Swt
(4)
等式符號與式(3)基本相同,唯一的不同就在于系數(shù)為0.8,修改這個系數(shù)的主要原因是增加所獲得獎勵的幅度。這種變化的效果是,Agent對行動的后果有更強(qiáng)的代表性,訓(xùn)練的有效性得到了提高。
文中使用了深度Q-Learning算法,將觀察到的環(huán)境狀態(tài)st映射到與動作相關(guān)的Q值,并搭建一個深度神經(jīng)網(wǎng)絡(luò)[12]。它的輸入是時間步長為t時的IDR(環(huán)境狀態(tài)向量),深度神經(jīng)網(wǎng)絡(luò)的輸出是來自狀態(tài)st的作用Q值。
一般地,神經(jīng)網(wǎng)絡(luò)的輸入nin被定義為:
(5)
(6)
神經(jīng)網(wǎng)絡(luò)是基于感知機(jī)的擴(kuò)展,而深度神經(jīng)網(wǎng)絡(luò)(DNN)可以理解為有很多隱藏層的神經(jīng)網(wǎng)絡(luò)。多層神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)DNN其實(shí)也是指的一個東西,DNN有時也叫做多層感知機(jī),它是一種具有校正線性單位激活函數(shù)和完全連接的深層神經(jīng)網(wǎng)絡(luò)。圖1清楚地展示了神經(jīng)網(wǎng)絡(luò)的層與層之間的聯(lián)系。
圖1 神經(jīng)網(wǎng)絡(luò)訓(xùn)練機(jī)制
從圖1可以看出,作為深度神經(jīng)網(wǎng)絡(luò)的輸入,輸入了n個IDR向量,并傳輸給神經(jīng)網(wǎng)絡(luò)層進(jìn)行訓(xùn)練,訓(xùn)練結(jié)束后輸出與時間步t相關(guān)的Q-Value值。
本實(shí)驗(yàn)所使用的實(shí)驗(yàn)環(huán)境是國際通用的交通模擬軟件SUMO[13](simulation of urban mobility),它是一種開源,微觀,多模態(tài)的交通模擬,具體到道路上每一輛車的運(yùn)行路線都可以單獨(dú)規(guī)劃,允許模擬由單個車輛組成的給定交通需求。如何在給定的道路網(wǎng)絡(luò)中移動,示意圖如圖2所示。使用可視化編輯器NetEdit設(shè)計交叉口的靜態(tài)元素,環(huán)境由一個4方向的交叉口來表示,每個臂有4條駛?cè)氲能嚨篮?條駛出的車道,每條臂長700米,車輛接近交叉口的時候,有三個方向的車道可以選擇,真實(shí)地還原了十字交叉口的車輛情況。通過這個軟件,用戶可以隨心所欲地設(shè)計道路基礎(chǔ)設(shè)施的每一個元素,包括道路特性、交叉口的車道連接等,實(shí)現(xiàn)交通流的微觀控制。環(huán)境中的交通燈系統(tǒng)由每個入口車道的停車線上的顏色表示,該顏色表示車道在精確時間步長上的交通燈狀態(tài)。環(huán)境中的每個紅綠燈都是按照以下規(guī)則工作的:
圖2 交通路網(wǎng)
(1)顏色的相位變化總是這樣的:紅綠黃紅。
(2)每個紅綠燈相位的持續(xù)時間是固定的。綠色時間始終為10秒,黃色時間始終為4秒。因此,紅色相位的持續(xù)時間被定義為自上次相位變化以來的時間量。
(3)對于每個時間步,至少有一個紅綠燈處于黃色或綠色相位。
(4)不可能所有的紅綠燈同時處于紅燈狀態(tài)。
為了比較Agent的性能差異,引入了靜態(tài)交通系統(tǒng)[14]作為比較的基線。靜態(tài)交通系統(tǒng)具有相同的紅綠燈相位集,以相同的順序遍歷每個紅綠燈相位,并且具有固定的預(yù)定義持續(xù)時間。
在交通量特別少的情況下,交通燈固定循環(huán)不是一個好的策略,因?yàn)樵S多車輛都會等待大量的時間,并且會亮起空車道的相位燈。但是在交通量大的情況下,來自四面八方的車輛很多,因此靜態(tài)交通燈的政策可以說是最有效的。在南北向交通和東西向交通場景中,需要更多綠燈時間的車道但沒有優(yōu)先次序,因?yàn)橛幸粋€固定的周期,這將使得排隊(duì)時間較長的車輛等待的時間超過必要時間,從而導(dǎo)致系統(tǒng)的性能平庸。靜態(tài)交通燈的評價結(jié)果如表1所示,此數(shù)據(jù)將作為對比Agent性能的重要指標(biāo)之一。
表1 靜態(tài)交通燈評價結(jié)果
Traci(traffic control interface)是SUMO給出的連接到交通仿真的一個接口,使得人們可以獲取仿真中的參數(shù)還有實(shí)時控制仿真。Traci使用基于TCP的客戶端/服務(wù)器體系結(jié)構(gòu),將SUMO作為服務(wù)器,可以將車輛的特性、類型和外觀進(jìn)行定義,還可以與運(yùn)行中的模擬進(jìn)行交互操作,在每個時間步長里檢索交叉口的實(shí)時狀態(tài)。模擬訓(xùn)練過程如圖3所示,用戶通過SUMO-GUI工具觀看圖形化模擬過程,可用于檢查Agent的性能。
圖3 訓(xùn)練過程
模型實(shí)驗(yàn)使用了以下的超參數(shù)進(jìn)行模擬訓(xùn)練:
神經(jīng)網(wǎng)絡(luò):5層,每層包含400個神經(jīng)元。
γ值:0.25。
獎勵函數(shù):文獻(xiàn)獎勵。
采樣策略:通過這種方式,代理將嘗試更多地考慮其對環(huán)境演化的預(yù)測,從而選擇當(dāng)前的操作,使接下來的幾個操作的預(yù)期回報最大化。這種方式有很長的前瞻性,并且每一步都試圖尋找最佳的策略來獲得最佳績效,但是缺乏一定的穩(wěn)定性,具體表現(xiàn)通過下面的實(shí)驗(yàn)結(jié)果體現(xiàn)。
文中對實(shí)驗(yàn)的策略進(jìn)行了改進(jìn),通過結(jié)合密集采樣策略和改進(jìn)后的獎勵函數(shù)對Ag ent模型進(jìn)行訓(xùn)練,超參數(shù)如下:
神經(jīng)網(wǎng)絡(luò):5層,每層包含400個神經(jīng)元。
γ值:0.75。
獎勵函數(shù):改進(jìn)后的獎勵函數(shù)。
采樣策略:密集采樣策略。通過強(qiáng)化該模型的實(shí)施和測試,從而提高γ值較高的時候Agent在訓(xùn)練階段的性能,這種新的獎勵函數(shù)和抽樣策略的結(jié)合有利于解決Q值不穩(wěn)定的問題,減少了未來最佳行為誤導(dǎo)的可能性。Agent的培訓(xùn)階段包括在給定的環(huán)境狀態(tài)下找到最有價值的行動。盡管如此,在訓(xùn)練的早期階段,并不知道哪些動作是最有價值的。為了克服這一問題,在培訓(xùn)開始時,Agent應(yīng)發(fā)現(xiàn)行動的后果,而不必?fù)?dān)心其性能表現(xiàn)。因此,在任務(wù)中發(fā)現(xiàn)最有價值的行為和行為的頻率應(yīng)該增加。
經(jīng)驗(yàn)回放機(jī)制:
文中實(shí)驗(yàn)所使用的經(jīng)驗(yàn)回放機(jī)制[15]是在訓(xùn)練階段為提高Agent的性能和學(xué)習(xí)效率而采用的一種技術(shù)。它包括以稱為批處理的隨機(jī)樣本組的形式向Agent提交學(xué)習(xí)所需的信息,而不是立即提交Agent在模擬過程中收集的信息(通常稱為在線學(xué)習(xí))。批處理來自一個直觀地稱為內(nèi)存的數(shù)據(jù)結(jié)構(gòu),它存儲在訓(xùn)練階段收集的每個樣本。樣本m定義為四種元素。m={st,at,rt+1,st+1},其中rt+1是在從狀態(tài)st采取動作之后得到的獎勵,它將環(huán)境演變成下一個狀態(tài)st+1。
訓(xùn)練實(shí)例包括從記憶中收集一組樣本,并使用上述樣本進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。圖4顯示了與內(nèi)存交互的表示。如前所述,經(jīng)驗(yàn)回放技術(shù)需要一個內(nèi)存,其特征是內(nèi)存大小和批處理大小。內(nèi)存大小表示內(nèi)存可以存儲多少個樣本,并設(shè)置為40 000個樣本,批大小定義為在一個訓(xùn)練實(shí)例中從內(nèi)存中檢索的樣本數(shù)。如果在某個時間步進(jìn)記憶填充時,將移除最舊的樣本,以便為新樣本留出空間。因此,如果在每個時間步將一個樣本插入存儲器,則單個樣本在其消除之前仍存儲在存儲器中的片段數(shù)約為150,為訓(xùn)練實(shí)例收集樣本的次數(shù)取決于批大小和訓(xùn)練實(shí)例的頻率。
圖4 內(nèi)存交互示意圖
使用經(jīng)驗(yàn)回放,培訓(xùn)階段有兩個主要優(yōu)勢:
(1)消除了觀察序列中的相關(guān)性。
(2)刷新Agent的體驗(yàn)。
在這種環(huán)境中,兩個連續(xù)的狀態(tài)是自然相關(guān)的,因?yàn)榄h(huán)境st+1的狀態(tài)是狀態(tài)st的直接演化。狀態(tài)st+1中包含的大多數(shù)信息不是由于Agent的行為而派生的,但是,作為當(dāng)前情況的自發(fā)轉(zhuǎn)變,因此已經(jīng)實(shí)現(xiàn)了經(jīng)驗(yàn)回放,以避免在智能體的神經(jīng)網(wǎng)絡(luò)中引入誤導(dǎo)性關(guān)聯(lián)。其次,在訓(xùn)練過程中,神經(jīng)網(wǎng)絡(luò)有可能會忘記在訓(xùn)練的早期階段所獲得的關(guān)于某個情境的知識。通過使用經(jīng)驗(yàn)回放,代理偶爾會收到以前在舊狀態(tài)下所學(xué)內(nèi)容的“刷新”。
在此次的實(shí)驗(yàn)中,將γ設(shè)置為較高的0.75,設(shè)置這么高的γ值意味著使Agent的預(yù)期累積回報能夠達(dá)到最大化,保持真實(shí)性的同時提高效率。因?yàn)槲磥韼状涡袆拥念A(yù)期回報會顯著影響在某一步選擇的行動的價值。這種方法與環(huán)境的性質(zhì)卻恰恰相反:在一個確定的環(huán)境中,每次Agent從狀態(tài)st采取動作時,環(huán)境總是在特定的狀態(tài)st+1中演化。圖5是在訓(xùn)練結(jié)束后獲得的累積獎勵值,從圖中可以很清楚地看到,快要結(jié)束的時候,Agent表現(xiàn)很不穩(wěn)定,嚴(yán)重影響了代理的穩(wěn)定性,從而導(dǎo)致性能的下降。因?yàn)樵谟?xùn)練快要結(jié)束的時候,基本上不可能采取隨機(jī)行動,大多數(shù)的還是選擇剝削行為,最終導(dǎo)致其中車輛的高等待排隊(duì)時間。
圖5 改進(jìn)前的累計獎勵值
再來看看結(jié)合了密集采樣策略和新獎勵函數(shù)的這種方式,如圖6所示。在訓(xùn)練快要結(jié)束的時候,累積獎勵值的穩(wěn)定性有著顯著的提升,這是對于好的行動選擇策略的極好信號。通過這種新的結(jié)合方式能夠很好地解決Q值不穩(wěn)定的問題,因?yàn)樾陋剟詈瘮?shù)增強(qiáng)了對錯誤行為選擇的懲罰,并且大大減少了對未來最佳行為誤導(dǎo)的可能性。
圖6 改進(jìn)后的累計獎勵值
這種密集采樣策略實(shí)際上大大增加了Agent訓(xùn)練的數(shù)據(jù)集,使得動作值更加穩(wěn)定和漸進(jìn)。圖5的采樣方法收集了大約250萬個樣本,用于1 600次的訓(xùn)練。但是在這種密集采樣策略下,減少到只有300次迭代,但是采集的樣本總數(shù)高達(dá)6 000萬多個,由此可見數(shù)據(jù)集采樣呈現(xiàn)一個質(zhì)的提升。
將訓(xùn)練好的兩種網(wǎng)絡(luò)模型進(jìn)行測試,從圖7可以明顯看出,改進(jìn)后的平均排隊(duì)長度顯著提高,說明這種新的結(jié)合策略使Agent性能得到了顯著的提升,并提高了系統(tǒng)的穩(wěn)定性。
圖7 算法測試結(jié)果對比
下面將具體的實(shí)驗(yàn)數(shù)據(jù)列了一張表格進(jìn)行對比,如表2所示。改進(jìn)后的平均累積負(fù)獎勵值相比于靜態(tài)交通燈系統(tǒng)非常低,獎勵值提高了將近42%以上,車輛的平均排隊(duì)長度也大大地減少了。性能也優(yōu)于使用傳統(tǒng)策略的深度強(qiáng)化學(xué)習(xí)算法,總體效率提升了29%左右。
表2 三種算法測試結(jié)果反饋
實(shí)驗(yàn)結(jié)果表明,文中所提出的新獎勵函數(shù)和密集采樣策略的結(jié)合對解決交通擁堵問題起到了很好的改善作用,說明這種方法是可取的。
交通智能化、數(shù)據(jù)化、復(fù)雜化已經(jīng)是現(xiàn)在社會的一種潮流和趨勢。文中將深度強(qiáng)化學(xué)習(xí)應(yīng)用到交通燈信號配時當(dāng)中,顯著地減少了交叉口的擁堵狀況,大大地節(jié)約了能源的消耗,在效率和性能的提升上起到了很大的作用。在現(xiàn)實(shí)世界中,駕駛員還可以利用本系統(tǒng)提供的策略模式,在交叉口進(jìn)行不同的駕駛行為,最終達(dá)到提高交叉口效率的目的。文中提出一種采用密集采樣策略和改進(jìn)后的新獎勵函數(shù)相結(jié)合的新控制方法,在一定程度上提高了控制的性能。
在未來的工作中,筆者將對更加復(fù)雜的路口進(jìn)行研究,為交通系統(tǒng)開辟更多高效率的算法,應(yīng)該更多地從單個車輛的角度分析和優(yōu)化Agent策略的公平性,而不是僅僅通過最小化延誤或最大化吞吐量來提高交叉口的整體性能。在過去的幾年中,交通信號控制的強(qiáng)化學(xué)習(xí)技術(shù)已經(jīng)明顯成熟,特別是隨著深度學(xué)習(xí)的普及。對于實(shí)際設(shè)備,強(qiáng)化學(xué)習(xí)交通信號控制器的假設(shè)部署應(yīng)接受在線和離線數(shù)據(jù)方面的培訓(xùn),以便在學(xué)習(xí)標(biāo)準(zhǔn)交通效率政策后能夠適應(yīng)特定場景。由于該文只是仿真實(shí)驗(yàn),未來還將應(yīng)用到實(shí)際的場景中,使交通行業(yè)迎來更加智能化的時代。