网站地图制作方法,自学编程网站免费,公众号接入小程序,设计网站建设常州本文档用于记录参加腾讯开悟智能信号灯调度赛道的模型优化过程。官方提供了dqn和target_dqn算法#xff0c;模型的优化在官方提供的代码基础上进行。最终排名是在榜单16#xff0c;没能进入最后的决赛。 
一.赛题介绍 
赛题简介#xff1a;在本地赛题中#xff0c;参赛团队…本文档用于记录参加腾讯开悟智能信号灯调度赛道的模型优化过程。官方提供了dqn和target_dqn算法模型的优化在官方提供的代码基础上进行。最终排名是在榜单16没能进入最后的决赛。 
一.赛题介绍 
赛题简介在本地赛题中参赛团队需要在平台提供的仿真交通场景下通过算法模型驱动交通信号灯以在各种交通状况高峰期、雨天等下都能最大程度地服务车辆使其在模拟环境中获得综合最大得分。 
赛题目标参赛团队需要在指定的时间内本地训练并提交一个模型并在最终考核中控制交通信号灯在场景中获得尽可能多的得分。 
得分规则参赛团队提交模型后根据以下指标进行综合得分计算 
平均车辆排队长度位于交叉口内进口车道上处于等待状态的平均车辆数量。 
平均车辆延误位于交叉口内进口车道上所有车辆的平均延误时间。 
平均车速位于交叉口内进口车道上所有车辆的平均速度。 
排名规则在参赛团队提交的模型评估得分后根据得分进行排名。排名前12的团队进入专家评审环节。综合参考模型得分及专家评审成绩形成总成绩最后按照总成绩从高到低进行最终排名。具体评审细则待公布 
二.特征处理 三个函数分别用于特征处理动作处理和样本处理。官方进行了部分的特征处理在原始的observation_process函数中获取到了车辆的位置和速度。 
在原函数的处理之下加入了加速度和等待时间。 
车辆信息 除了车辆信息以外尝试加入了车道信息和交叉口的信息。 
车道信息 交叉口信息 最后的状态向量 但是最终提交的版本中还是只用加入了车辆信息其他的特征信息尝试加入以后效果反而变差了也有可能是我代码设计的问题。车辆信息主要是在原始的基础上加入了加速度和车辆等待时间. 三.奖励函数 奖励函数分为相位奖励和持续时间奖励相位奖励即为切换信号灯所带来的奖励持续时间奖励指的是该信号灯持续所带来的奖励原始的奖励函数采用了平均等待时间作为奖励持续时间的奖励等于相位奖励本赛题的评估指标有平均等待时间平均排队长度平均车辆延误。于是尝试多奖励组合即平均等待时间平均排队长度平均车辆延误的加权和公式为W1 * 平均等待时间  W2 * 平均排队长度  W3 * 平均车辆延误但经过测试效果提升不大有论文指出可以用平均排队长度代替平均排队长度它们呈线性相关所以可能提升不大。 
参考2019的论文PressLight的压力计算方式采用压力平均等待时间平均排队长度平均车辆延误的加权和公式为W1 * 平均等待时间  W2 * 平均排队长度  W3 * 平均车辆延误  W4 * 压力值效果稍微好了一些但是由于超参数过多很难进行调参只能凭感觉进行调参。 
在此的基础上进行了奖励的归一化。同时采取动态调整权重。 四.策略优化 
dqn算法已经比较成熟尝试在dqn的基础上使用变种dqn尝试了Double dqn,Dueling DQN同时也尝试了A2C算法.目前效果比较好的是Dueling DQN。 
先介绍一下传统的dqn算法。 
传统的dqn算法其实就是用神经网络来代替q-learing中的q表举一个简单的列子超级玛丽大家都玩过其动作选择其实也比较简单上下左右所谓的q表就是记录选择每个动作以后的得分假设选择上可以吃到宝箱得3分选择左和右不得分选择下就死亡扣100分那么q表中上的评分则是最高的下最低选择的动作即为q值最高的动作。而如果使用 DQN神经网络将学习一个函数该函数可以根据当前游戏屏幕的像素值预测每个动作的预期奖励。这样代理可以根据网络的输出来选择动作而不需要显式地存储一个巨大的 Q 表。 
Dueling DQN 
Dueling DQN是DQN的一种变种算法它在传统Vanilla DQN的基础上只进行了微小的改动却大幅提升了DQN的表现能力。具体来说就是Dueling DQN并未直接来估计Q值函数而是通过估计V状态价值函数和A优势函数来间接获得Q值函数。 
在标准DQN中Q值函数表示的是在给定状态下执行某个动作的总价值。然而在很多状态下动作之间的价值差异很小导致难以区分动作的优劣。Dueling DQN 引入了一种新的网络架构旨在更有效地学习状态的价值函数与动作的优势函数。 
Dueling DQN 使用一个特殊的网络结构将 Q 值函数分解为两个部分 
1状态值函数 V(s)表示在状态 s下的预期总回报而不考虑具体的动作。 
2. 优势函数 A(s,a)表示在状态 s下选择动作 a 相对于其他动作的优势。 
网络的最后一层不再直接输出 Q 值而是先计算状态值函数和优势函数然后通过以下公式组合成 Q 值 V(s) 是状态值函数表示在状态 s下的价值。A(s,a) 是优势函数表示在状态 s下动作 a相对于其他动作的相对优势。通过减去优势函数的平均值消除由于相对优势引起的偏差。这个架构的优点在于即使在一些情况下不同动作的价值相差不大网络仍然可以通过状态值函数学到重要的信息从而更好地评估和选择动作。 Double DQN 
Double DQNDouble Deep Q-Network是一种改进版的DQN算法用于解决传统DQN算法中过度估计Q值的问题。在DQN中目标Q值是通过选择当前网络中预测的最大Q值来计算的而这可能导致某些动作的价值被高估。Double DQN引入了双网络结构来缓解这个问题。具体来说它使用当前Q网络来选择动作但使用目标Q网络来评估该动作的Q值从而更准确地计算目标Q值减少了过估计的偏差。 软更新 
软更新Soft Update是一种更新目标网络的方式区别于硬更新Hard Update。在硬更新中目标网络会每隔固定的时间完全替换为当前Q网络。而在软更新中目标网络是逐步更新的使用指数移动平均的方法  
θ′τθ(1−τ)θ ′其中θ ′是目标网络的参数θ是当前网络的参数τ是一个很小的系数如0.001表示每次只更新目标网络的一小部分权重。这样可以使目标网络的更新更加平滑减少训练中的不稳定性。 多DQN决策 
多模型决策机制旨在通过集成多个DQN模型model, model2, model3的输出进行更加稳健的决策。这种策略通过引入多个模型可以降低单个模型预测不准确时的风险并通过融合机制提高决策的可靠性。 
通过集成多个模型系统能够在多个模型之间进行权衡使得最终决策更具有鲁棒性。相比于单一模型多个模型的集成可以有效减小预测中的偏差和方差尤其是在面对不确定性或复杂任务时更为有效。 
三种DQN模型被同时用于同一个任务它们的作用是在给定输入特征feature的情况下预测下一步的动作action即交通信号的相位phase和持续时间duration。 
多模型的独立决策 
代码首先通过三个独立的DQN模型进行推理每个模型根据输入特征feature给出一个动作预测。动作被分解成两个部分 
Phase相位交通信号灯的相位可以理解为当前路口哪个方向的车流应该被放行。 
Duration持续时间该相位保持的时间即信号灯持续亮灯的时间。 
多模型结果的融合策略 
多模型决策的关键在于如何有效地融合多个模型的输出。代码采用了以下融合策略 
(1) 相位的决策 
对于每个观测数据三个模型各自输出一个相位。 
系统会在三个模型中找到出现次数最多的相位即投票机制。多数投票可以减少单个模型预测出错带来的影响。 
如果三个模型的相位完全不同则会随机选择一个相位。这种情况相对较少但在模型间预测差异较大时能保证系统继续运行。 
(2) 持续时间的决策 
当多个模型的相位一致时系统计算这些相位对应的持续时间的平均值以平衡各个模型的预测结果。 
如果相位不同比如在三个模型都预测出不同的相位时则使用随机选中的相位对应的持续时间。