本發(fā)明涉及一種基于強(qiáng)化學(xué)習(xí)的車輛跟馳模型建立方法,屬于汽車無人駕駛技術(shù)領(lǐng)域。
背景技術(shù):
汽車的發(fā)明加快了人員、物資、信息的流動,縮短了空間距離,節(jié)約了時(shí)間,加快了社會的發(fā)展,具有里程碑意義。同時(shí),帶來了嚴(yán)重的社會問題和環(huán)境問題。例如,在汽車行駛過程中,駕駛員需要精神高度集中,不斷在加速狀態(tài)和減速狀態(tài)之間切換汽車的狀態(tài),增加了交通事故發(fā)生的可能性。
無人駕駛汽車是降低交通事故發(fā)生率和駕駛強(qiáng)度,實(shí)現(xiàn)交通事故接近零傷亡的行之有效的手段。現(xiàn)有的車輛跟馳決策模型能夠很好地描述有人駕駛汽車的跟馳決策行為,但無法很好地描述無人駕駛汽車的跟馳決策行為。無人車輛跟馳技術(shù)的應(yīng)用可以把駕駛員從高強(qiáng)度的駕駛操作中解脫出來,避免交通事故的發(fā)生。跟馳模型的研究始于1950年,60多年來國內(nèi)外研究人員對車輛跟馳模型進(jìn)行了大量的研究,取得了眾多的研究成果,其中比較典型的理論模型有g(shù)ipps模型,idm模型,krauss模型,wiedemann模型,元胞自動機(jī)模型。
gipps模型是微觀交通流模型中被廣泛使用的一種安全距離模型。該模型能夠比較真實(shí)的反映汽車的走停行為,同時(shí),通過道路上實(shí)際觀測的數(shù)據(jù),很容易對模型中的參數(shù)進(jìn)行校驗(yàn)。由于所需要的參數(shù)少,計(jì)算簡單,該模型在實(shí)際中有著廣泛的應(yīng)用,如英國的sistm,美國的varsim都使用此模型。但是,避免碰撞的假設(shè)與實(shí)際情況存在一定的差距。在實(shí)際的駕駛中,駕駛員并沒有完全按照安全距離行駛。
idm模型是一種基于刺激-響應(yīng)方法的模型,它計(jì)算瞬時(shí)加速度。idm模型中的刺激是當(dāng)前距離差和需求距離差的差距比率,跟馳車輛試圖追上遠(yuǎn)離的前導(dǎo)車輛,或者跟馳車輛因前導(dǎo)車輛越來越近而減速。但是idm模型是一種純確定性的模型,僅基于確定性刺激來獲取瞬時(shí)加速度,因此它無法對不合理行為進(jìn)行建模。krauss是一種純刺激-響應(yīng)的模型,它在時(shí)間上是離散的。krauss試圖對人類個別的、不合理的反應(yīng)進(jìn)行建模。該模型使用隨機(jī)參數(shù)來描述idm模型無法模擬的特征。這種隨機(jī)變量具有高效的物理建模能力,能夠建模加速情形,并提供與駕駛員行為一致的模型。該模型在sumo中使用。
wiedemann模型是德國karlsruhe大學(xué)的wiedemann于1974年建立的一種心理-物理模型。不同的駕駛員可能對同一個刺激產(chǎn)生不同的反應(yīng)。例如,如果駕駛員離某輛車很遠(yuǎn)或者很近,那么他對相對距離變化的反應(yīng)肯定會不同。該模型把駕駛狀態(tài)分為4類,從而描述駕駛員可能所處的狀態(tài),控制對同一刺激的反應(yīng):自由駕駛、接近模式、跟隨模式、制動模式。但是駕駛員的駕駛行為是一個復(fù)雜的過程,受心理、物理、環(huán)境等因素的影響。不同的駕駛員對速度和距離變化的感覺和評價(jià)是不同的,因此該模型很難進(jìn)行校驗(yàn)。
元胞自動機(jī)模型在空間和時(shí)間上是離散的,從而減少了計(jì)算的復(fù)雜度。該模型把交通系統(tǒng)描述為大小相同的元胞晶格,使用一些規(guī)則來控制車輛在元胞之間移動。元胞能夠承載單個車輛,并且能使車輛在下一個時(shí)間步內(nèi)移動到下一個元胞。但是,模型中的車輛跟馳規(guī)則畢竟與真實(shí)的車輛駕駛行為存在較大的差距。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有的跟馳模型方法至少存在以下問題:(1)現(xiàn)有的車輛跟馳模型方法是基于經(jīng)驗(yàn)公式,通過人為地設(shè)定模型參數(shù)來描述車輛的跟馳行為,由于跟馳行為的復(fù)雜性,人為設(shè)定的參數(shù)不能反映車輛真實(shí)的跟馳行為;(2)現(xiàn)有的跟馳模型,無論是針對有人駕駛車輛的跟馳模型還是針對無人駕駛車輛的跟馳模型,都沒有考慮無人駕駛汽車的特性及其對有人駕駛汽車的影響,由于汽車駕駛員已經(jīng)習(xí)慣了有人駕駛汽車的反應(yīng)時(shí)間而無人駕駛汽車的反應(yīng)時(shí)間極短,當(dāng)汽車駕駛員前方的無人駕駛汽車突然停止時(shí),后方駕駛員往往因?yàn)閬聿患皠x車而造成追尾等交通事故;(3)現(xiàn)有的車輛跟馳模型方法基于數(shù)據(jù)驅(qū)動,需要大量的數(shù)據(jù)驗(yàn)證模型的正確性,但是很難保證所使用的數(shù)據(jù)包含了所有的特殊狀態(tài);(4)基于現(xiàn)有的車輛跟馳模型方法作出的決策往往不是最優(yōu)決策。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明目的是提供一種基于強(qiáng)化學(xué)習(xí)的車輛跟馳模型建立方法。該方法首先觀察無人駕駛車輛所處環(huán)境的狀態(tài),然后對無人駕駛車輛在所處環(huán)境狀態(tài)下所選擇的動作對當(dāng)前環(huán)境狀態(tài)及未來的影響進(jìn)行評價(jià);重復(fù)這個過程直到無人駕駛汽車每次選擇的動作都是最優(yōu)的。該方案以較低的計(jì)算時(shí)間開銷,無需人為設(shè)定參數(shù),無需數(shù)據(jù)驅(qū)動,并且所選擇的動作具有最優(yōu)性。
為了實(shí)現(xiàn)上述發(fā)明目的,解決已有技術(shù)中存在的問題,本發(fā)明采取的技術(shù)方案是:一種基于強(qiáng)化學(xué)習(xí)的車輛跟馳模型建立方法,包括以下步驟:
步驟1、定義經(jīng)驗(yàn)緩存d、創(chuàng)建q值網(wǎng)絡(luò),設(shè)置存儲經(jīng)驗(yàn)的經(jīng)驗(yàn)緩存d={mi,mi+1,...,mi+n-1}的容量為n,式中mi表示第i步到第i+1步環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的一次轉(zhuǎn)換樣本,mi+1表示第i+1步到第i+2步環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的一次轉(zhuǎn)換樣本…mi+n-1表示第i+n-1步到第i+n步環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的一次轉(zhuǎn)換樣本,創(chuàng)建q值網(wǎng)絡(luò),q值網(wǎng)絡(luò)采用多層感知器網(wǎng)絡(luò),q值表示目標(biāo)車輛的長期回報(bào);
步驟2、隨機(jī)初始化環(huán)境中所有車輛位置、速度、加速度和環(huán)境狀態(tài),環(huán)境狀態(tài)作為q值網(wǎng)絡(luò)的輸入;
步驟3、選擇并執(zhí)行動作,記錄轉(zhuǎn)移樣本,計(jì)算長期回報(bào),以概率ε隨機(jī)選擇一個動作,其中ε可通過公式(1)計(jì)算得到,
式中,t表示當(dāng)前時(shí)間步數(shù),執(zhí)行該動作并觀察環(huán)境狀態(tài)和立即獎勵,再將環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的轉(zhuǎn)換樣本m=(s,a,s',r)加入到經(jīng)驗(yàn)緩存中,其中,
式中,hfront表示執(zhí)行動作前目標(biāo)車輛與前方車輛的時(shí)距,hrear表示執(zhí)行動作前目標(biāo)車輛與后方車輛的時(shí)距,x表示執(zhí)行動作前目標(biāo)車輛的位置,xfront表示執(zhí)行動作前目標(biāo)車輛前方車輛的位置,xrear表示執(zhí)行動作前目標(biāo)車輛后方車輛的位置,l表示目標(biāo)車輛的車長,lfront表示目標(biāo)車輛前方車輛的車長,lrear表示目標(biāo)車輛后方車輛的車長,v表示執(zhí)行動作前目標(biāo)車輛的速度,vfront表示執(zhí)行動作前目標(biāo)車輛前方車輛的速度,vrear表示執(zhí)行動作前目標(biāo)車輛后方車輛的速度;
其中,
式中,h'front表示執(zhí)行動作后目標(biāo)車輛與前方車輛的時(shí)距,h'rear表示執(zhí)行動作后目標(biāo)車輛與后方車輛的時(shí)距,x'表示執(zhí)行動作后目標(biāo)車輛的位置,x'front表示執(zhí)行動作后目標(biāo)車輛前方車輛的位置,x'rear表示執(zhí)行動作后目標(biāo)車輛后方車輛的位置,l表示目標(biāo)車輛的車長,lfront表示目標(biāo)車輛前方車輛的車長,lrear表示目標(biāo)車輛后方車輛的車長,v'表示執(zhí)行動作后目標(biāo)車輛的速度,v'front表示執(zhí)行動作后目標(biāo)車輛前方車輛的速度,v'rear表示執(zhí)行動作后目標(biāo)車輛后方車輛的速度,δt表示時(shí)間步長,afront表示目標(biāo)車輛前方車輛的加速度,arear表示目標(biāo)車輛后方車輛的加速度,a表示目標(biāo)車輛的加速度,其范圍為a∈[-3.0,2.0],每個加速度之間間隔為0.1,單位為m/s2;
其中,立即獎勵r可通過公式(4)計(jì)算得到,
式中,
式中,r表示立即獎勵,γ表示折扣因子,γ∈[0,1],q(s',a')表示在執(zhí)行動作后的環(huán)境狀態(tài)s'下選擇加速度a'的q值;
步驟4、更新q值網(wǎng)絡(luò)權(quán)重,對誤差函數(shù)loss進(jìn)行一次梯度下降,可以通過公式(6)計(jì)算得到,
loss=[y-q(s,a)]2(6)
式中,q(s,a)表示在執(zhí)行動作前的環(huán)境狀態(tài)s下選擇加速度a的q值,將執(zhí)行動作后的環(huán)境狀態(tài)賦給執(zhí)行動作前的環(huán)境狀態(tài),即s=s',其中梯度下降方法包括,adagrad、rmsprop及adam;
步驟5、步數(shù)是否超過最大時(shí)間步數(shù),重復(fù)步驟3至步驟4,直到步數(shù)超過最大時(shí)間步數(shù)timestepmax的值或碰撞;
步驟6、步數(shù)是否超過最大回合數(shù),重復(fù)步驟2至步驟5,直到步數(shù)超過最大回合數(shù)episodemax的值。
本發(fā)明有益效果是:與已有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn),(1)該模型建立方法是智能車輛在不斷地學(xué)習(xí)和探索中得到,與傳統(tǒng)的人為設(shè)定模型參數(shù)、對真實(shí)駕駛數(shù)據(jù)進(jìn)行擬合相比,不需要預(yù)先設(shè)定參數(shù)和提供駕駛數(shù)據(jù)。(2)該模型建立方法不但對安全的跟馳行為進(jìn)行了學(xué)習(xí)和探索,并且對可能會導(dǎo)致交通事故的跟馳行為也進(jìn)行了學(xué)習(xí)和探索,傳統(tǒng)的基于駕駛數(shù)據(jù)的模型使用的駕駛數(shù)據(jù)是安全跟馳行為的駕駛數(shù)據(jù),沒有可能會造成交通事故的跟馳行為的駕駛數(shù)據(jù),也沒有對可能會造成交通事故的跟馳行為進(jìn)行研究和建模;(3)該模型建立方法不但考慮了周圍車輛對目標(biāo)車輛的影響,而且考慮了目標(biāo)車輛的行為對周圍車輛的影響,傳統(tǒng)的車輛跟馳模型方法只考慮了周圍車輛對目標(biāo)車輛的影響。(4)該模型建立方法考慮了無人駕駛汽車和有人駕駛汽車的區(qū)別,與傳統(tǒng)只考慮無人駕駛汽車或只考慮有人駕駛汽車的跟馳模型相比,能有效地減少追尾交通事故;(5)該模型建立方法基于強(qiáng)化學(xué)習(xí),作出的決策是最優(yōu)的,傳統(tǒng)的車輛跟馳模型方法作出的決策不是最優(yōu)的。
附圖說明
圖1是本發(fā)明方法步驟流程圖。
圖2是本發(fā)明中的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖3是本發(fā)明中的q值網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明。
如圖1所示,一種基于強(qiáng)化學(xué)習(xí)的車輛跟馳模型建立方法,包括以下步驟:
步驟1、定義經(jīng)驗(yàn)緩存d、創(chuàng)建q值網(wǎng)絡(luò),設(shè)置存儲經(jīng)驗(yàn)的經(jīng)驗(yàn)緩存d={mi,mi+1,...,mi+n-1}的容量為n,式中mi表示第i步到第i+1步環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的一次轉(zhuǎn)換樣本,mi+1表示第i+1步到第i+2步環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的一次轉(zhuǎn)換樣本…mi+n-1表示第i+n-1步到第i+n步環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的一次轉(zhuǎn)換樣本,創(chuàng)建q值網(wǎng)絡(luò),q值網(wǎng)絡(luò)采用多層感知器網(wǎng)絡(luò),q值表示目標(biāo)車輛的長期回報(bào);
步驟2、隨機(jī)初始化環(huán)境中所有車輛位置、速度、加速度和環(huán)境狀態(tài),環(huán)境狀態(tài)作為q值網(wǎng)絡(luò)的輸入;
步驟3、選擇并執(zhí)行動作,記錄轉(zhuǎn)移樣本,計(jì)算長期回報(bào),以概率ε隨機(jī)選擇一個動作,其中ε可通過公式(1)計(jì)算得到,
式中,t表示當(dāng)前時(shí)間步數(shù),執(zhí)行該動作并觀察環(huán)境狀態(tài)和立即獎勵,再將環(huán)境從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的轉(zhuǎn)換樣本m=(s,a,s',r)加入到經(jīng)驗(yàn)緩存中,其中,
式中,hfront表示執(zhí)行動作前目標(biāo)車輛與前方車輛的時(shí)距,hrear表示執(zhí)行動作前目標(biāo)車輛與后方車輛的時(shí)距,x表示執(zhí)行動作前目標(biāo)車輛的位置,xfront表示執(zhí)行動作前目標(biāo)車輛前方車輛的位置,xrear表示執(zhí)行動作前目標(biāo)車輛后方車輛的位置,l表示目標(biāo)車輛的車長,lfront表示目標(biāo)車輛前方車輛的車長,lrear表示目標(biāo)車輛后方車輛的車長,v表示執(zhí)行動作前目標(biāo)車輛的速度,vfront表示執(zhí)行動作前目標(biāo)車輛前方車輛的速度,vrear表示執(zhí)行動作前目標(biāo)車輛后方車輛的速度;
其中,
式中,h'front表示執(zhí)行動作后目標(biāo)車輛與前方車輛的時(shí)距,h'rear表示執(zhí)行動作后目標(biāo)車輛與后方車輛的時(shí)距,x'表示執(zhí)行動作后目標(biāo)車輛的位置,x'front表示執(zhí)行動作后目標(biāo)車輛前方車輛的位置,x'rear表示執(zhí)行動作后目標(biāo)車輛后方車輛的位置,l表示目標(biāo)車輛的車長,lfront表示目標(biāo)車輛前方車輛的車長,lrear表示目標(biāo)車輛后方車輛的車長,v'表示執(zhí)行動作后目標(biāo)車輛的速度,v'front表示執(zhí)行動作后目標(biāo)車輛前方車輛的速度,v'rear表示執(zhí)行動作后目標(biāo)車輛后方車輛的速度,δt表示時(shí)間步長,afront表示目標(biāo)車輛前方車輛的加速度,arear表示目標(biāo)車輛后方車輛的加速度,a表示目標(biāo)車輛的加速度,其范圍為a∈[-3.0,2.0],每個加速度之間間隔為0.1,單位為m/s2;
其中,立即獎勵r可通過公式(4)計(jì)算得到,
式中,
式中,r表示立即獎勵,γ表示折扣因子,γ∈[0,1],q(s',a')表示在執(zhí)行動作后的環(huán)境狀態(tài)s'下選擇加速度a'的q值;
步驟4、更新q值網(wǎng)絡(luò)權(quán)重,對誤差函數(shù)loss進(jìn)行一次梯度下降,可以通過公式(6)計(jì)算得到,
loss=[y-q(s,a)]2(6)
式中,q(s,a)表示在執(zhí)行動作前的環(huán)境狀態(tài)s下選擇加速度a的q值,將執(zhí)行動作后的環(huán)境狀態(tài)賦給執(zhí)行動作前的環(huán)境狀態(tài),即s=s',其中梯度下降方法包括,adagrad、rmsprop及adam;
步驟5、步數(shù)是否超過最大時(shí)間步數(shù),重復(fù)步驟3至步驟4,直到步數(shù)超過最大時(shí)間步數(shù)timestepmax的值或碰撞;
步驟6、步數(shù)是否超過最大回合數(shù),重復(fù)步驟2至步驟5,直到步數(shù)超過最大回合數(shù)episodemax的值。