
發(fā)布
注冊(cè)
/
登錄優(yōu)化嵌入式強(qiáng)化學(xué)習(xí)的案例
基于優(yōu)化嵌入強(qiáng)化學(xué)習(xí)的環(huán)島場(chǎng)景下自動(dòng)駕駛自適應(yīng)決策方法研究
近年來(lái),強(qiáng)化學(xué)習(xí)以其獨(dú)特的與環(huán)境的交互能力和自學(xué)習(xí)能力在自動(dòng)駕駛決策問(wèn)題上得到廣泛應(yīng)用。本文將強(qiáng)化學(xué)習(xí)方法應(yīng)用于環(huán)島駕駛場(chǎng)景,利用強(qiáng)化學(xué)習(xí)得到?jīng)Q策變量,然后輸入給下層非線性MPC控制器進(jìn)行跟蹤。仿真結(jié)果證明該方法具有較高計(jì)算效率和更好的性能。
摘要:
環(huán)島是一個(gè)典型的可變、交互式場(chǎng)景,在該場(chǎng)景中,自動(dòng)駕駛車(chē)輛應(yīng)做出自適應(yīng)和安全的決策。本文提出了一種優(yōu)化嵌入式強(qiáng)化學(xué)習(xí)(OERL)方法來(lái)實(shí)現(xiàn)環(huán)形交叉口下的自適應(yīng)決策。本文的改進(jìn)是對(duì)Actor-Critic框架中actor的修正,將基于模型的優(yōu)化方法嵌入到強(qiáng)化學(xué)習(xí)中,以直接探索動(dòng)作空間中的連續(xù)行為。因此,所提出的方法能夠以較高的采樣效率同時(shí)宏觀行為(是否改變車(chē)道)和中尺度行為(期望加速度和動(dòng)作時(shí)間)。當(dāng)場(chǎng)景發(fā)生變化時(shí),嵌入型直接搜索方法可以及時(shí)調(diào)整中等規(guī)模的行為,提高決策的適應(yīng)性。更值得注意的是,修改后的actor能夠匹配人類(lèi)駕駛員的行為,宏觀行為捕捉人類(lèi)思維的跳躍,而中尺度行為優(yōu)先通過(guò)駕駛技能進(jìn)行調(diào)整。為了使agent能夠適應(yīng)不同類(lèi)型的環(huán)形交叉口,本文設(shè)計(jì)任務(wù)表示方案來(lái)重構(gòu)策略網(wǎng)絡(luò)。在實(shí)驗(yàn)中,將算法效率和學(xué)習(xí)到的駕駛策略與包含宏觀行為和恒定中尺度行為(期望加速度和動(dòng)作時(shí)間)的決策進(jìn)行了比較。為了考察該方法的適應(yīng)性,本文對(duì)一種未經(jīng)訓(xùn)練的環(huán)島和兩種以上的危險(xiǎn)情況進(jìn)行了仿真,以驗(yàn)證所提出的方法在不同的場(chǎng)景下相應(yīng)地改變了決策。結(jié)果表明,所提出方法具有較高的算法效率和更好的系統(tǒng)性能。
展開(kāi) 干貨|嵌入式C代碼的十種優(yōu)化方案
7.使用復(fù)合賦值表達(dá)式
復(fù)合賦值表達(dá)式(如a-=1及a+=1等)都能夠生成高質(zhì)量的程序代碼。
8.提取公共的子表達(dá)式
在某些情況下,C++編譯器不能從浮點(diǎn)表達(dá)式中提出公共的子表達(dá)式,因?yàn)檫@意味著相當(dāng)于對(duì)表達(dá)式重新排序。需要特別指出的是,編譯器在提取公共子表達(dá)式前不能按照代數(shù)的等價(jià)關(guān)系重新安排表達(dá)式。這時(shí),程序員要手動(dòng)地提出公共的子表達(dá)式(在VC.NET里有一項(xiàng)“全局優(yōu)化”選項(xiàng)可以完成此工作,但效果就不得而知了)。
不好的代碼:
float a, b, c, d, e, f;
、、、
e = b * c / d;
f = b / d * a;
推薦的代碼:
float a, b, c, d, e, f;
、、、
const float t(b / d);
e = c * t;
f = a * t;
不好的代碼:
float a, b, c, e, f;
、、、
e = a / c;
f = b / c;
推薦的代碼:
float a, b, c, e, f;
、、、
const float t(1.0f / c);
e = a * t;
f = b * t;
四、結(jié)構(gòu)體成員的布局
很多編譯器有“使結(jié)構(gòu)體字,雙字或四字對(duì)齊”的選項(xiàng)。但是,還是需要改善結(jié)構(gòu)體成員的對(duì)齊,有些編譯器可能分配給結(jié)構(gòu)體成員空間的順序與他們聲明的不同。但是,有些編譯器并不提供這些功能,或者效果不好。所以,要在付出最少代價(jià)的情況下實(shí)現(xiàn)最好的結(jié)構(gòu)體和結(jié)構(gòu)體成員對(duì)齊,建議采取下列方法:
1.按數(shù)據(jù)類(lèi)型的長(zhǎng)度排序
把結(jié)構(gòu)體的成員按照它們的類(lèi)型長(zhǎng)度排序,聲明成員時(shí)把長(zhǎng)的類(lèi)型放在短的前面。編譯器要求把長(zhǎng)型數(shù)據(jù)類(lèi)型存放在偶數(shù)地址邊界。
展開(kāi) 一種優(yōu)化CFD網(wǎng)格的深度強(qiáng)化學(xué)習(xí)框架-MeshDQN
當(dāng)前基于機(jī)器學(xué)習(xí)技術(shù)的網(wǎng)格生成和優(yōu)化技術(shù)通常需要大量的計(jì)算成本來(lái)生成訓(xùn)練數(shù)據(jù),并且在范圍上受限于訓(xùn)練數(shù)據(jù)流機(jī)制。為了解決上述問(wèn)題,卡內(nèi)基梅隆研究團(tuán)隊(duì)開(kāi)發(fā)了一個(gè)基于圖神經(jīng)網(wǎng)絡(luò)的通用深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)框架,以不斷迭代的方式來(lái)優(yōu)化CFD的網(wǎng)格。該框架通過(guò)粗化CFD網(wǎng)格減小CFD模擬計(jì)算量的同時(shí)保持CFD模擬的計(jì)算精度。
2.方法方案
本文提出的用于CFD網(wǎng)格優(yōu)化的深度學(xué)習(xí)框架是一種強(qiáng)化學(xué)習(xí)框架,在該框架中,智能體通過(guò)動(dòng)作與環(huán)境交互。當(dāng)智能體進(jìn)入狀態(tài)s后,選擇動(dòng)作a,并導(dǎo)致新的狀態(tài)s’。此外,每次行動(dòng)后都會(huì)給予獎(jiǎng)勵(lì)r。學(xué)習(xí)的目標(biāo)是找到一個(gè)行動(dòng)選擇策略,使獎(jiǎng)勵(lì)最大化。度量智能體的狀態(tài)-動(dòng)作質(zhì)量并學(xué)習(xí)Q函數(shù)的一種方法稱(chēng)為Q學(xué)習(xí)。Q函數(shù)的定義如下式所示。
展開(kāi)