当前位置: 首页 > news >正文

论文笔记 <交通灯><多智能体>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))²),并通过梯度下降 ​​只更新该路口的参数 θ_i​:
      θ_i ← θ_i - α * ∇θ ℒ(θ_i; D_i) (α 是学习率)

全局级适应:目的是定期​​整合​​所有正在进行个体级适应的路口 I_i 的最新知识,​​更新元初始化参数 θ₀​,使其蕴含更通用的知识。这是周期性进行的。

操作:​

  • 对于当前一批源任务中的​​每个路口 I_i​:
    • 从该路口的经验池 D_i 中​​采样一个新的小批量数据 D'_i​(与个体级更新用的数据不同)。
    • 使用该路口​​经过若干步个体级适应后更新的参数 θ_i​(注意:不是初始的 θ₀!),计算在这批新数据 D'_i 上的损失 ℒ(θ_iD'_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.lryc.cn/news/571601.html

相关文章:

  • 20.jsBridge多页面交互与原生事件监听冲突问题
  • 锂电池充电管理芯片XSP30 适用于2-3节串联锂电池升降压快速充电
  • 新发布的一款使用ReactNative新架构加载Svga动画的开源插件[android/ios]
  • 【解决方案】Java 11 报错 <javax.net.ssl.SSLException: Tag mismatch!>,Java 8 却没问题?
  • 二分K-means:让聚类更高效、更精准!
  • Alpine Docker 容器中安装包缓存与 C/C++ 运行问题
  • 2025年暑期在线实习项目分享
  • 专业音乐播放器分享,Foobar2000多格式解码的技术实现,界面自定义的实用技巧
  • [计算机网络] 网络的诞生:协议的认知建立
  • AndroidView的简单使用
  • 【第二章:机器学习与神经网络概述】01.聚类算法理论与实践-(3)DBSCAN 聚类算法
  • python学智能算法(十二)|机器学习朴素贝叶斯方法初步-拉普拉斯平滑计算条件概率
  • Java安全-常规漏洞问题(SQL注入,XXE,SSRF,RCE)
  • Linux系统移植10:uboot移植
  • Prompt+Agent+LLM:半导体炉管设备健康评估的落地实战
  • 开源 Arkts 鸿蒙应用 开发(三)Arkts语言的介绍
  • 腾讯云TCCA认证考试报名 - TDSQL数据库交付运维工程师(PostgreSQL版)
  • 字节跳动 AI 视频生成模型 Seedance 1.0 悄然超越 Google Veo 3
  • 经典风格的免费wordpress模板
  • 【世纪龙科技】3D 赋能教育革新,解锁新能源汽车结构教学新范式
  • MCU LTE Cat.1 bis 8910DM + SD NAND MKDV4GIL-AST:赋能 T-Box 的智能存储通信一体化解决方案
  • java设计模式[4]之设计型模式
  • Java 实现网络图片下载到本地指定文件夹
  • iOS端网页调试 debug proxy策略:项目中的工具协同实践
  • 智净未来:华为智选IAM以科技巧思优化家庭健康饮水体验
  • AWS RDS :多引擎托管数据库服务
  • 前端基础之《Vue(20)—移动端REM布局》
  • Node脚本开发含(删除、打包、移动、压缩)简化打包流程
  • 安科瑞ASJ系列漏电流继电器:守护地铁配电安全的利器
  • vivado IP综合选项