論文筆記 <交通燈><多智能體>MetaLight:基于價值的元強化學習用于交通信號控制

今天看的論文是這篇MetaLight:基于價值的元強化學習用于交通信號控制

里面提到的創新點就是MetaLight框架:他目標是讓交通信號控制智能體(Agent)在新路口(即使結構或流量模式不同)上能??快速學習??(Few-shot Learning),避免傳統DRL需要海量數據和漫長試錯(可能引發擁堵)的問題。

MetaLight 的基石為FRAP++?

我們先來了解什么是FRAP:

FRAP的目標是設計一個??統一、靈活??的深度強化學習(DRL)模型(具體來說是 ??DQN?? 架構),能夠有效地應用于??不同結構??的交通路口(比如車道數不同、信號相位設置不同),而??無需為每個路口定制或重新訓練一個專屬模型??。其核心思想是??讓相位相互競爭??來決定哪個相位應該獲得綠燈通行權。

為什么需要 FRAP?

這就要說到傳統方法的痛點了:

1.傳統方法狀態表示不統一:?? 因為不同路口有不同的車道布局(例如,有的有專用左轉道,有的沒有)和不同的相位設置(例如,4相位、6相位、8相位)。這導致輸入狀態的維度(如每個車道的車輛數)和輸出動作空間(可選相位數量)都不同。傳統基于固定結構神經網絡(如MLP或CNN)的DRL模型無法直接處理這種變化。

2.而且模型無法共享:?? 為每個路口訓練一個獨立的模型成本極高(數據、時間、計算資源),尤其是在需要部署到成百上千個路口時。

?3.缺乏對相位關系的建模:?? 交通信號控制的關鍵是理解不同相位之間的??沖突關系??(哪些相位可以同時亮綠燈,哪些不能)和??競爭關系??(哪個相位下積壓的車輛更多、更“需要”綠燈)。傳統模型沒有顯式建模這種關系。

FRAP 的解決方案:基于相位競爭的統一架構?

FRAP 巧妙地解決了以上問題,其設計靈感來源于交通工程中“相位競爭”的理念。它的核心在于構建一個模型,讓模型的??結構??可以根據路口的具體配置(車道、相位)??動態調整??,但其核心??參數??是??共享??的。也就是類似于c++中的類(我的理解)。

  1. ??輸入:結構化的車道信息 (Lane-based Features)??

    • ??特征:?? 對于每個??車道??,輸入特征通常包括該車道當前的??車輛數量??(或隊列長度)以及該車道所屬的??當前信號相位狀態??(是綠燈、黃燈還是紅燈?)。
    • ??關鍵點:?? 輸入是按??車道??組織的,而不是按固定維度組織。模型知道有多少個車道,但每個車道使用相同的特征提取方式。
  2. ??共享嵌入層 (Shared Embedding Layer)??

    他為每個車道的特征(車輛數、相位狀態)設計一個小的??嵌入層 (Embedding Layer)??。核心創新:?? 這個嵌入層是??共享??的!??所有車道??(無論屬于哪個方向或哪個相位)都使用??同一個嵌入層??來將原始特征轉換為低維向量表示?e_l。??意義為?? 這使得模型能夠處理任意數量的車道。新增加的車道,只是用同一個嵌入層再生成一個向量而已。解決了輸入維度不統一的問題。
  3. ??相位需求表示 (Phase Demand Representation)??

    ??他的目標是?? 計算每個??相位??的“需求”或“緊迫性”。一個相位通常包含多個??不沖突??的車道(例如,“南北直行”相位包含南北方向的直行車道)。對于每個相位?p,找出所有屬于該相位的車道?L_p然后將屬于相位?p?的所有車道的嵌入向量?e_l?(l ∈ L_p) ??聚合??起來,形成該相位的總體表示向量?d_p。在原始 FRAP 中,這個聚合操作是 ??求和 (Sum)??:?d_p = Σ_{l ∈ L_p} e_l。這代表了該相位下所有相關車道的總“壓力”。求和意味著車道多的相位天然數值會更大。
  4. ??相位競爭建模 (Phase Competition Modeling)??

    目標為計算每個相位?p?的 Q 值?Q(p),即選擇該相位能帶來的預期累積獎勵。他的??核心機制:??為使用 ??1x1 卷積層 (1x1 Convolution)?? 或等效的??全連接層??來建模??任意兩個相位???p?和?q?之間的??競爭關系??。??操作為:??
    • ??計算相位?p?的 Q 值:?? 對相位?p?的最終 Q 值?Q(p),是它相對于??所有其他相位???q?的競爭力?c_{p,q}?的??聚合??(通常是求和):?Q(p) = Σ_{q ≠ p} c_{p,q}
    • 將每個相位的需求向量?d_p?輸入到一個共享的 ??相位比較網絡 (Phase Competition Network)??。這個網絡通常包含以下步驟:
      • ??復制與連接:?? 對于每個相位對?(p, q),將?d_p?和?d_q???連接?? (Concatenate) 起來,形成輸入?[d_p; d_q]
      • ??共享映射:?? 將?[d_p; d_q]?輸入一個??共享??的多層感知機 (MLP) 或等效結構。這個網絡輸出一個??標量值???c_{p,q},代表相位?p?相對于相位?q?的“競爭力”或“優勢度”。
      • ??(可選) 對稱處理:?? 為了建模對稱性(c_{p,q}?和?c_{q,p}?應包含互補信息),有時會同時計算?[d_p; d_q]?和?[d_q; d_p]?輸入共享網絡得到?c_{p,q}?和?c_{q,p},然后相加或取平均。
    • 這步是精髓!它顯式地讓每個相位與其他所有相位“PK”。c_{p,q}?網絡學習判斷“在當前狀態下,選擇相位?p?是否比選擇相位?q?能獲得更高的回報”。最終的?Q(p)?綜合了它與其他所有相位的比較結果。這個設計??完全獨立于相位的數量和具體組合方式??,只要有兩個相位,就能計算?c_{p,q}。解決了輸出動作空間(相位數量)不統一的問題,并顯式建模了相位競爭。
  5. ??輸出與決策 (Output and Decision)??

    • 模型的輸出就是每個可選相位?p?的 Q 值?Q(p)
    • 智能體(信號控制器)遵循 ??ε-greedy?? 策略(訓練時)或 ??greedy?? 策略(測試時)選擇具有??最高 Q 值??的相位作為動作?a

?同一個訓練好的 FRAP 模型??可以直接部署到具有??不同車道布局(如3車道路口 vs 5車道路口)?? 和??不同相位方案(如4相位路口 vs 8相位路口)?? 的路口上!

MetaLight框架的改進:

相位需求聚合的偏差:?? 使用 ??Sum?? 聚合意味著車道數量多的相位(即使每個車道車輛不多)其需求向量?d_p?的模長天然比車道數少的相位(即使每個車道很擁堵)更大。這可能引入偏差,影響模型對不同結構路口的公平判斷。??MetaLight 的 FRAP++ 將其改為 Mean Pooling (取平均)?? 來消除這種偏差。

訓練效率:?原始 FRAP 在??每個完整的交通模擬周期 (Episode)?? 結束后才更新模型參數。這限制了學習效率,不符合標準 DQN 按時間步更新的高效實踐。??MetaLight 的 FRAP++ 改為在每個時間步 (Step) 進行 Mini-batch 更新??,大大加速了訓練過程。

跨場景知識遷移:?? FRAP 本身是一個優秀的單任務學習模型,但它沒有解決如何將在一個或多個路口學到的知識??快速遷移/適應??到一個??全新、未見過的路口??的問題(尤其是在數據有限的情況下)。這正是 ??MetaLight 在其基礎上引入元學習 (Meta-Learning)?? 所要解決的核心挑戰。

除了FRAP++,MetaLight框架還有雙級適應機制。

MetaLight 的核心引擎:雙級適應機制 (Two-Level Adaptation)?

這是MetaLight最具創新性的部分,解決了“如何在價值型DRL(如DQN)中有效應用元學習”的關鍵挑戰。

元學習(Meta-Learning)的直覺:?? 學會學習(Learn to Learn)。MetaLight的目標是訓練一個??好的初始化參數?? (θ?)。這個初始化參數不是針對某個特定路口的,而是蘊含了從??多個不同路口??學習到的??通用交通控制知識??(比如識別擁堵模式、理解相位競爭關系)。當遇到一個新路口時,基于這個好的初始化,只需??少量新數據??和??少量梯度更新??,就能得到針對這個新路口的優化模型 (θ_t)。

為什么傳統MAML在價值型DRL上效果差???

  • MAML 原本設計用于策略梯度(Policy Gradient)類方法(如REINFORCE, PPO),這些方法通常??整輪(Episode)更新一次策略??,數據方差高。
  • 價值型DRL(如DQN)的核心優勢在于??按時間步(Step)更新??,利用經驗回放(Experience Replay)和Target Network穩定學習。
  • 將MAML直接套用在按Episode更新的FRAP上(即使改進為FRAP++后),其更新頻率低且方差高,導致學到的元初始化參數效果不佳(在MetaLight論文實驗中接近隨機初始化)。

為什么傳統MAML在價值型DRL上效果差?

MAML 原本設計用于策略梯度(Policy Gradient)類方法(如REINFORCE, PPO),這些方法通常??整輪(Episode)更新一次策略??,數據方差高。

價值型DRL(如DQN)的核心優勢在于??按時間步(Step)更新??,利用經驗回放(Experience Replay)和Target Network穩定學習。

將MAML直接套用在按Episode更新的FRAP上(即使改進為FRAP++后),其更新頻率低且方差高,導致學到的元初始化參數效果不佳(在MetaLight論文實驗中接近隨機初始化)。

雙級適應機制

它的輸入為?? 一組來自不同路口的“源任務”(Source Tasks)。輸出是?? 一個通用的元初始化參數?θ?

??過程:

元初始化:?? 這是MetaLight最終要學習的核心知識庫,是模型的起點參數。

個體級適應:目的是讓模型快速適應??當前處理的單個具體路口??

  • ??操作:??
    • 將當前路口的模型參數?θ_i???初始化為元初始化參數?θ???。
    • 在路口?I_i?的模擬運行中,??在每個時間步??,Agent 與環境交互,收集經驗?(s, a, r, s')?存入其經驗池?D_i
    • 同樣??在每個時間步??,從?D_i?中采樣一個小批量數據,計算??該路口??的DQN損失(如MSE:?(r + γ max Q(s', a'; θ?) - Q(s, a; θ_i))2),并通過梯度下降 ??只更新該路口的參數?θ_i??:
      θ_i ← θ_i - α * ?θ ?(θ_i; D_i)?(α?是學習率)

全局級適應:目的是定期??整合??所有正在進行個體級適應的路口?I_i?的最新知識,??更新元初始化參數?θ???,使其蘊含更通用的知識。這是周期性進行的。

操作:??

  • 對于當前一批源任務中的??每個路口?I_i??:
    • 從該路口的經驗池?D_i?中??采樣一個新的小批量數據?D'_i??(與個體級更新用的數據不同)。
    • 使用該路口??經過若干步個體級適應后更新的參數?θ_i??(注意:不是初始的?θ?!),計算在這批新數據?D'_i?上的損失 ?(θ_i;?D'_i)。
  • ??匯總??所有路口?I_i?的損失:∑_i ?(θ_i; D'_i)
  • ??通過梯度下降更新元初始化參數?θ???(注意梯度是關于?θ??的!):
    θ? ← θ? - β * ?θ? [∑_i ?(θ_i; D'_i)]?(β?是元學習率)

這個更新推動?θ??向一個方向調整——使得??從?θ??開始,在每個源任務上只進行少量個體級適應(梯度步),就能在該任務的?新數據?(D'_i) 上取得低損失??。這正是元學習“學會學習”的精髓。它發生在??全局??,影響所有任務。

簡單比喻:??

想象一個老師(MetaLight)在教一群學生(源路口Agent)開車(控制信號燈)。

  • ??FRAP++:?? 給所有學生提供??同一本通用駕駛手冊??(統一模型結構),手冊編寫得足夠好(均值池化),適用于轎車、SUV、卡車(不同路口結構)。
  • ??個體級適應:?? 每個學生拿到手冊后,在??自己特定的道路環境(源路口)?? 上??不斷練習??(按步DQN更新),快速提升個人駕駛技術 (θ_i)。
  • ??全局級適應:?? 老師??定期組織交流會??(每?t_θ?次練習后)。學生分享:“我從手冊的第X頁知識出發,練習了Y次后,在Z路段開得不錯”。老師??匯總大家的經驗??,??更新手冊 (θ?)??,目標是讓手冊的起點知識 (θ?) 變得更好——讓未來的學生拿著這本新手冊,能在他們自己的路上更快學會開車。
  • ??新學生(目標路口):?? 一個新學生拿到老師最終更新的??超級手冊 (θ?)??,在自己的陌生道路上練習。因為手冊起點好,他??練幾次 (θ_t?更新幾次)?? 就能開得很好了!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84266.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84266.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84266.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

華為OD-2024年E卷-尋找符合要求的最長子串[200分] -- python

問題描述: 給定一個字符串s,找出這樣一個子串: 1)該子串中的任意一個字符最多出現2次; 2)該子串不包含指定某個字符; 請你找出滿足該條件的最長子串的長度。 輸入描述 第一行為要求不包含的指定字符,為單個字符,取值范圍[0-9a-zA…

CppCon 2016 學習:What C++ Programmers Need to Know about Header <random>

隨機數生成的歷史背景 Middle-Square 方法(中位平方法): 已知最早的隨機算法之一或由修道士 Brother Edvin 在 1245 年發明由 John von Neumann 在 1949 年重新發現缺點明顯,但執行速度快 Monte Carlo 方法: 起初是…

Origin:誤差棒點線圖繪制

1.首先將你的數據復制到表格 2.選中B(y)列數據,依次點擊圖示選項 3.選中圖中紅框數據,點擊繪制點線圖即可 4.結果展示

Spring 源碼學習 1:ApplicationContext

Spring 源碼學習 1:ApplicationContext Bean 定義和 Bean 實例 AnnotationConfigApplicationContext 首先,創建一個最簡單的 Spring Boot 應用。 在入口類中接收SpringApplication.run的返回值: SpringBootApplication public class Dem…

CppCon 2017 學習:Design Patterns for Low-Level Real-Time Rendering

這段內容講的是離散顯卡(Discrete GPU)中的內存管理模型,重點是CPU和GPU各自獨立管理自己的物理內存,以及它們如何通過虛擬內存和DMA引擎實現高效通信。以下是詳細的理解和梳理: 1. 基本概念 CPU 和 GPU 是兩個獨立的…

【單調隊列】-----【原理+模版】

單調隊列 一、什么是單調隊列? 單調隊列是一種在滑動窗口或區間查詢中維護候選元素單調性的數據結構,通常用于解決“滑動窗口最大值/最小值”等問題。 核心思想是:利用雙端隊列(deque)維護當前窗口內或候選范圍內元素…

CSS語法中的選擇器與屬性詳解

CSS:層疊樣式表,Cascading Style Sheets 層疊樣式表 內容和樣式分離解耦,便于修改樣式。 特殊說明: 最后一條聲明可以沒有分號,但是為了以后修改方便,一般也加上分號為了使用樣式更加容易閱讀,可以將每條代…

模擬設計的軟件工程項目

考核題目 論文論述題:結合你 參與開發、調研或模擬設計的軟件工程項目 ,撰寫一篇論文 完成以下任務,論文題目為《面向微服務架構的軟件系統設計與建模分析》,總分: 100 分。 1. 考核內容: 一、系統論述…

個人理解redis中IO多路復用整個網絡處理流

文章目錄 1.redis網絡處理流2.理解通知機制 1.redis網絡處理流 10個客戶端通過TCP與Redis建立socket連接,發送GET name指令到服務器端。服務器端的網卡接收數據,數據進入內核態的網絡協議棧。Redis通過IO多路復用機制中的epoll向內核注冊監聽這些socket的…

【鄭州輕工業大學|數據庫】數據庫課設-酒店管理系統

該數據課設是一個基于酒店管理系統的數據庫設計 建庫語句 create database hotel_room default charset utf8 collate utf8_general_ci;建表語句 use hotel_room;-- 房型表 create table room_type( id bigint primary key auto_increment comment 房型id, name varchar(50)…

TCP 三次握手與四次揮手詳解

前言 在當今互聯網時代,前端開發的工作范疇早已超越了簡單的頁面布局和交互設計。隨著前端應用復雜度的不斷提高,對網絡性能的優化已成為前端工程師不可忽視的重要職責。而要真正理解并優化網絡性能,就需要探究支撐整個互聯網的基礎協議——…

RTD2735TD/RTD2738 (HDMI,DP轉EDP 高分辨率高刷新率顯示器驅動芯片)

一、芯片概述 RTD2738是瑞昱半導體(Realtek)推出的一款高性能顯示驅動芯片,專為高端顯示器、便攜屏、專業顯示設備及多屏拼接系統設計。其核心優勢在于支持4K分辨率下240Hz高刷新率及8K30Hz顯示,通過集成DisplayPort 1.4a與HDMI …

C++實現手寫strlen函數

要實現求字符串長度的函數&#xff0c;核心思路是通過指針或索引遍歷字符串&#xff0c;直到遇到字符串結束標志 \0 。以下是兩種常見的實現方式&#xff1a; 指針遍歷版本 #include <iostream> using namespace std; // 指針方式實現strlen size_t myStrlen(const cha…

NVPL 函數庫介紹和使用

文章目錄 NVPL 函數庫介紹和使用什么是 NVPLNVPL 的主要組件NVPL 的優勢安裝 NVPL基本使用示例示例1&#xff1a;使用 NVPL RAND 生成隨機數示例2&#xff1a;使用 NVPL FFT 進行快速傅里葉變換 編譯 NVPL 程序性能優化建議總結 NVPL 函數庫介紹和使用 什么是 NVPL NVPL (NVI…

HTTP相關內容補充

目錄 一、URI 和 URL 二、使用 Cookie 的狀態管理 三、返回結果的 HTTP狀態碼 一、URI 和 URL URI &#xff1a;統一資源標識符 URL&#xff1a;統一資源定位符 URI 格式 登錄信息&#xff08;認證&#xff09;指定用戶名和密碼作為從服務器端獲取資源時必要的登錄信息&a…

MySQL: Invalid use of group function

https://stackoverflow.com/questions/2330840/mysql-invalid-use-of-group-function 出錯SQL: 錯誤原因&#xff1a; 1. 不能在 WHERE 子句中使用聚合&#xff08;或分組&#xff09;函數 2. HAVING 只能篩選分組后的聚合結果或分組字段 # Write your MySQL query statem…

C#財政票查驗接口集成-醫療發票查驗-非稅收入票據查驗接口

財政票據是企事業單位、醫療機構、金融機構等組織的重要報銷憑證&#xff0c;其真實性、完整性和合規性日益受到重視。現如今&#xff0c;為有效防范虛假票據報銷、入賬、資金流失等問題的發生&#xff0c;財政票據查驗接口&#xff0c;結合財政票據識別接口&#xff0c;旨在為…

瀏覽器基礎及緩存

目錄 瀏覽器概述 主流瀏覽器&#xff1a;IE、Chrome、Firefox、Safari Chrome Firefox IE Safari 瀏覽器內核 核心職責 主流瀏覽器內核 JavaScript引擎 主流的JavaScript引擎 瀏覽器兼容性 瀏覽器渲染 渲染引擎的基本流程 DOM和render樹構建 html解析 DOM 渲染…

Ubuntu 安裝Telnet服務

1. 安裝Telnet 客戶端 sudo apt-get install telnet 2. 安裝Telnet 服務器 &#xff08;這樣才能用A電腦的客戶端連接B電腦的Telnet服務&#xff09; sudo apt-get install telnetd 3. 這時候Telnet服務器是無法自我啟動的&#xff0c;需要網絡守護進程服務程序來管理…

AI+預測3D新模型百十個定位預測+膽碼預測+去和尾2025年6月19日第113彈

從今天開始&#xff0c;咱們還是暫時基于舊的模型進行預測&#xff0c;好了&#xff0c;廢話不多說&#xff0c;按照老辦法&#xff0c;重點8-9碼定位&#xff0c;配合三膽下1或下2&#xff0c;殺1-2個和尾&#xff0c;再殺4-5個和值&#xff0c;可以做到100-300注左右。 (1)定…