
發布
注冊
/
登錄優化嵌入式強化學習
關注創建者:匿名 創建時間:2021-10-29

優化嵌入式強化學習的實例教程
近年來,強化學習以其獨特的與環境的交互能力和自學習能力在自動駕駛決策問題上得到廣泛應用。本文將強化學習方法應用于環島駕駛場景,利用強化學習得到決策變量,然后輸入給下層非線性MPC控制器進行跟蹤。仿真結果證明該方法具有較高計算效率和更好的性能。
摘要:
環島是一個典型的可變、交互式場景,在該場景中,自動駕駛車輛應做出自適應和安全的決策。本文提出了一種優化嵌入式強化學習(OERL)方法來實現環形交叉口下的自適應決策。本文的改進是對Actor-Critic框架中actor的修正,將基于模型的優化方法嵌入到強化學習中,以直接探索動作空間中的連續行為。因此,所提出的方法能夠以較高的采樣效率同時宏觀行為(是否改變車道)和中尺度行為(期望加速度和動作時間)。當場景發生變化時,嵌入型直接搜索方法可以及時調整中等規模的行為,提高決策的適應性。更值得注意的是,修改后的actor能夠匹配人類駕駛員的行為,宏觀行為捕捉人類思維的跳躍,而中尺度行為優先通過駕駛技能進行調整。為了使agent能夠適應不同類型的環形交叉口,本文設計任務表示方案來重構策略網絡。在實驗中,將算法效率和學習到的駕駛策略與包含宏觀行為和恒定中尺度行為(期望加速度和動作時間)的決策進行了比較。為了考察該方法的適應性,本文對一種未經訓練的環島和兩種以上的危險情況進行了仿真,以驗證所提出的方法在不同的場景下相應地改變了決策。結果表明,所提出方法具有較高的算法效率和更好的系統性能。
展開 7.使用復合賦值表達式
復合賦值表達式(如a-=1及a+=1等)都能夠生成高質量的程序代碼。
8.提取公共的子表達式
在某些情況下,C++編譯器不能從浮點表達式中提出公共的子表達式,因為這意味著相當于對表達式重新排序。需要特別指出的是,編譯器在提取公共子表達式前不能按照代數的等價關系重新安排表達式。這時,程序員要手動地提出公共的子表達式(在VC.NET里有一項“全局優化”選項可以完成此工作,但效果就不得而知了)。
不好的代碼:
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;
四、結構體成員的布局
很多編譯器有“使結構體字,雙字或四字對齊”的選項。但是,還是需要改善結構體成員的對齊,有些編譯器可能分配給結構體成員空間的順序與他們聲明的不同。但是,有些編譯器并不提供這些功能,或者效果不好。所以,要在付出最少代價的情況下實現最好的結構體和結構體成員對齊,建議采取下列方法:
1.按數據類型的長度排序
把結構體的成員按照它們的類型長度排序,聲明成員時把長的類型放在短的前面。編譯器要求把長型數據類型存放在偶數地址邊界。
展開 當前基于機器學習技術的網格生成和優化技術通常需要大量的計算成本來生成訓練數據,并且在范圍上受限于訓練數據流機制。為了解決上述問題,卡內基梅隆研究團隊開發了一個基于圖神經網絡的通用深度強化學習(Deep Reinforcement Learning,DRL)框架,以不斷迭代的方式來優化CFD的網格。該框架通過粗化CFD網格減小CFD模擬計算量的同時保持CFD模擬的計算精度。
2.方法方案
本文提出的用于CFD網格優化的深度學習框架是一種強化學習框架,在該框架中,智能體通過動作與環境交互。當智能體進入狀態s后,選擇動作a,并導致新的狀態s’。此外,每次行動后都會給予獎勵r。學習的目標是找到一個行動選擇策略,使獎勵最大化。度量智能體的狀態-動作質量并學習Q函數的一種方法稱為Q學習。Q函數的定義如下式所示。
展開 
優化嵌入式強化學習的相關專題、標簽、搜索
優化嵌入式強化學習的最新內容
1.背景介紹 計算流體動力學(Computational Fluid Dynamics,CFD)中的網格生成是實現穩定、準確模擬的關鍵步驟。然而,網格生成和自適應仍然是CFD工作流程中一個重要瓶頸。自適應網格劃分技術允許網格自動更新,為當前問題提供準確的解決方案。現有的經典自適應網格劃分技術要么需要求解器之外的附加計算,要么需要許多次的CFD模擬計算。當前基于機器學習技術的網格生成和優化技術通常需
代碼的優化是有側重點的,優化是一門平衡的藝術,它往往要以犧牲程序的可讀性或者增加代碼長度為代價。在嵌入式開發中對程序執行速度的要求比較高,所以學好做好代碼優化可以讓你的代碼執行效率更高。
一、選擇合適的算法和數據結構
選擇一種合適的數據結構很重要,如果在一堆隨機存放的數中使用了大量的插入和刪除指令,那使用鏈表要快得多。數組與指針語句具有十分密切的關系,一般來說,指針比較靈活簡潔,而數組則比較直觀
本文提出了一種優化嵌入式強化學習(OERL)方法來實現環形交叉口下的自適應決策。本文的改進是對Actor-Critic框架中actor的修正,將基于模型的優化方法嵌入到強化學習中,以直接探索動作空間中的連續行為。因此,所提出的方法能夠以較高的采樣效率同時宏觀行為(是否改變車道)和中尺度行為(期望加速度和動作時間)。當場景發生變化時,嵌入型直接搜索方法可以及時調整中等規模的行為,提高決策的適應性。