基于β分布模拟环境的强化学习调度实现

简介: 本文介绍了深度强化学习需要一个价值网络和一个目标网络,通过两个网络之间延迟更新参数产生的误差损失来减小损失函数。通过对比网络之间的差异性,将其用于动作价值函数的更新,使得深度强化学习的模型性能得到提升。此外,作者提出了一个分布式深度强化学习算法,将其应用于资源调度场景,取得了较好的效果。

传统的深度强化学习需要一个估值网络和一个目标网络,通过两个网络之间延迟更新参数产生损失函数值,通过减少损失最终达到收敛。由于要平衡应用和探索,一般会采用随机搜索的方式选取部分动作。但当历史数据稀疏时,在学习初始期算法很难选择到有效的动作,导致算法学习不到有用信息搜索效率很低,收敛速度非常慢。

因此,我将在数据稀疏或者环境反馈耗时较久的情况下,先将有限的历史数据在时间维度和摄像头维度进行分解,对时间和摄像头分别建立β分布,分别表示摄像头发生违规事件的初始时间概率分布和摄像头发生违规事件的初始概率的概率分布。由时间和摄像头的β分布采样作为首次动作值输入,通过比较现实网络的动作输出值与实际动作的相似度作为奖励函数,同时将现实网络的输出动作分解为违规事件的时间分布和违规事件的摄像头分布,用来更新时间和摄像头对应的两个β分布,基于更新后的β分布来生成下一时刻的动作值,作为输入开始第二次强化模型迭代。

分别生成时间维度和摄像头维度的概率的概率分布,用该分布快速生成可行性“动作-状态”作为样本保存下来供之后学习。由于β分布对于少量样本较为敏感,因此可以在小样本上获得较为明显的概率的概率分布,从而快速解决强化学习在训练之初寻找不到有效信号的学习缓慢问题。同时,β分布属于启发式学习,可以快速更新优化并且自发引入随机性,起到“应用-探索”平衡的作用,而强化学习可以调整生成动作的概率,与β分布实现加和效应,进一步提高初始训练的学习速度。

     

1.系统框架

image.png

图1 本文着力点

 

本文主要解决强化学习没有充足历史数据或历史样本反馈周期长时间成本不允许的情况下实现环境虚拟响应从而加快学习速度。因此,本文的核心逻辑如图1所示,主要在于利用智能体的动作输出对摄像头违规事件分布进行更新,同时使用更新后的分布产生环境的下一刻反馈动作代替使用实际计算资源真正进行违规事件检测。其中,摄像头违规事件分布分解为时间维度的β分布和摄像头维度的β分布,更新分布采用智能体返回的动作即策略,对其拆解成时间维度和摄像头维度进行分布更新。通常情况下,强化学习的环境是由环境自主产生的响应变换,而本文基于智能体的反馈构建β分布,由分布产生响应来解决拿不到历史数据的问题。

 

2. 构造β代替环境交互的策略选择环节

image.png

2 不同α和β取值的被Beta分布

 

β分布概率密度

image.png

1

 

其中系数B为:

image.png

式2

 

Gamma函数可以看成阶乘的实数域推广:

image.png

式3

 

β分布的期望:

image.png

式4

 

具体来看使用有限的历史数据在时段维度上统计发生频数记为image.png,未发生记为image.png,构造初始化分布image.png;在摄像头维度上统计发生频数记为image.png,未发生记为image.png,构造初始化分布image.png

β分布可以看作是一个概率的概率分布,当不知道摄像头发生事件的具体概率是多少时,可以给出所有概率出现的可能性。β是一个非固定的公式,其表示的是一组分布,表示某个事件发生概率的概率分布。

 

而随着新产生的事件可以使用式5对分布进行更新:

image.png

式5

 

可以对N个摄像头的每一个摄像头维护一个β分布,每次采样每个β分布,取排名最高的前n个摄像头作为最可能发生事件的摄像头,如果真实发生事件则(hits=1;misses=0),如果没有发生事件则(hits=0;misses=1)对分布进行更新。同样对时间维度24小时分割成的48个时段也可以建立一个β分布,如果在该时间段内发生事件则(hits=1;misses=0),如果没有发生事件则(hits=0;misses=1)对分布进行更新。

生成抽样动作:[摄像头的β分布采样列表*时间β分布采样列表]样本大小为48*N,选取前X样本即为采样动作。

 

3.DQN+β分布的环境响应机制框架原理

 

image.png

图2 本文使用β分布模拟环境变换原理

 

3.1 时间维度与摄像头维度数据分解

 

历史数据分解进行初始化β分布:

 

假设总共有N个摄像头,历史违规事件总量为M件,每一个事件定位到具体的摄像头的过程看作是二项分布,每个摄像头可设分布如image.png,其中m1,m2....,mN分别代表N个摄像头发生违规事件的频数,M-m1,M-m2....,M-mN代表不是该摄像头监控到的违规事件频数,因此可得N个摄像头维度的β分布。

image.png

总共有48个时段,历史违规事件总量为M件,每一个事件定位到具体的摄像头的过程看作是二项分布,每个摄像头可设分布如image.png,其中t1,t2....,tN分别代表48个时段发生违规事件的频数,M-t1,M-t2....,M-tN代表不是该时段监控到的违规事件频数,因此可得48个时段维度的β分布。

image.png

 

估值网络输出策略(动作)分解进行β分布更新:

 

估值网络输出的策略即为动作,行如表1所示,全部抽查的动作和记为P,此处为467,在摄像头维度可以得到每一个摄像头对应的image.png,以及image.png,从而可以对摄像头维度的N个β分布根据式5进行更新;在时间维度上可以得到每一个摄像头对应的image.png,以及image.png,从而可以对时间维度的48个β分布根据式5进行更新。

是否检查(策略/动作)

时段1

时段2

时段3

...

时段48

合计(hits_s)

摄像头1

...

34

摄像头2

...

12

摄像头3

...

67

...

...

...

...

...

...

摄像头N

...

23

合计(hits_t)

5

19

23

...

11

467

表1 估值网络输出样例

 

3.2 β分布采样生成下一刻状态

本文的问题域是时间序列问题,其每一个时间节点可以看作是时段维度*摄像头维度的二维空间。其中每个时间节点是一天;每个时段是将24小时划分成每半个小时为一个时段,一天有48个时段;摄像头有n个;因此,在初始化时使用有限的历史数据构建描述时段维度和描述摄像头维度的分布,使用分布采样初始化动作。

image.png

图3 四只摄像头β分布例子

image.png

图4 三个时段β分布例子

如图3,例如已知四个摄像头维度的β分布,分别进行采样,发生违规的可能性从大到小依次是摄像头3(1.95)>摄像头1(1.45)>摄像头2(1.2)>摄像头4(0.8);如图4,例如已知三个时段的β分布,分别进行采样,发生违规的可能性从大到小依次是时段3(15.7)>时段1(12.5)>时段2(2.2);假设计算资源上限是4,因此可得表2,采样结果为绿色。

计算资源上限假设为4

时段1(12.5)

时段2(2.2)

时段3(15.7)

摄像头1(1.45)

18.125(0)

3.19(0)

22.765(1)

摄像头2(1.2)

15(0)

2.64(0)

18.84(1)

摄像头3(1.95)

24.375(1)

4.29(0)

30.615(1)

摄像头4(0.8)

10(0)

1.76(0)

12.56(0)

表2 四个摄像头与三个时段的采样例子

 

3.3 奖励值计算

奖励值计算公式见式6,其中X为估值网络的输出,Y为更新后的β分布采样的的动作空间,image.png为估值网络输出与新β分布采样动作空间的协方差,image.png分别为方差,使用image.png相关系数衡量估值网络输出与新β分布采样动作空间的差异,相似度越高其值越高,代表的反馈奖励也越高。

 

image.png

式6

 

采用DQN算法通常需要实现一个估值网络和一个现实网络,其中估值网络用于决策,现实网络用于价值评价,而现实网络的参数更新较估值网络有一定滞后,目标是最小化估值网络的动作价值与该动作产生的奖励值和现实网络动作评估值。在本文中,做两点改变:

1.当前状态是由构造的β分布产生,下一刻状态是通过被估值网络动作输出值更新之后的β分布产生的,并不真正进行环境响应,从而解决获取真实样本耗时久的难题。

2.由于已知历史数据每一天其实是残缺,有偏见,不能够真实反映实际违规事件分布的时段和摄像头分布。因此,使用构造的β分布与仅有的历史样本进行奖励值计算,通过beta分布不断更新的过程,同时分布采样的下一刻状态可以与每一个时间节点交叉式的计算奖励值,极大限度衡量了真实违规事件的分布。

 

4.方案流程细节

本文使用DQN网络,价值迭代公式如下:

image.png

式7

 

image.png

图5 本文训练流程图

 

其中,本方案核心创新点是构造β分布,并将β分布用估值网络输出动作值做分解后来更新分布时间段和摄像头的分布参数,使用更新后的分布采样动作作为环境响应的状态变换。而奖励值是通过估值网络的输出与更新后的分布产生的环境响应状态来代替传统的环境真实反馈奖励值。

由于在训练初期利用了历史数据缩小了搜索空间,迭代开始后每一轮的估值网络输出把学到的知识立刻指导搜索空间下一次的搜索方向,从而加快了DQN学习初始的收敛速度。

训练开始后更新分布产生的状态变换数据同样作为历史数据保存下来,供后续循环使用,此机制解决相当于产生了足量的较为丰富的历史数据,从而无需等待真实的违规事件检测计算资源漫长计算周期。

   由于采用了β分布启发式采样,所以可以认为采样的样本符合当时的真实状态,可以代替实际发生的事件。因此,当采样事件与强化学习估值网络的输出一致时对于强化学习网络来看属于预测正确,反之预测错误,同时对于β分布认为发生违规事件,同时更新分布参数,反之认为未发生违规事件,更新β分布参数

   最终,由于实际并不依赖真实的视频推理,解决了强化学习在摄像头违规事件监控上由于视频推理耗时过长的问题,但由于仅有的视频推理数据给强化学习和β分布提供先验知识,而β分布在不断参数调整过程中生成了更多的真实数据采样,从而加速了学习,解决了反馈周期长,推理耗时久的问题。

 

目录
相关文章
|
12天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化
R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化
|
25天前
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
|
1月前
|
人工智能 搜索推荐 测试技术
让智能体像孩子一样观察别人学习动作,跨视角技能学习数据集EgoExoLearn来了
【4月更文挑战第11天】EgoExoLearn是一个大规模数据集,用于模拟人类通过观察视频学习任务的能力,包含120小时的日常生活和实验室场景视频,重点是第一人称视角和注视数据。该数据集提供多模态注释,设有跨视角动作理解等基准测试,旨在推动AI模仿人类行为的研究。尽管有挑战,如视角转换和多样性问题,但EgoExoLearn为AI学习和融入人类环境开辟了新途径。
23 1
让智能体像孩子一样观察别人学习动作,跨视角技能学习数据集EgoExoLearn来了
|
5月前
|
自然语言处理 JavaScript Java
CodeFuseEval : 代码类大模型多任务评估基准
CodeFuseEval是结合CodeFuse大模型多任务场景,在开源的HumanEval-x、MBPP、DS1000评测基准基础上,开发的面向大模型代码垂类领域的企业级多类型编程任务评估基准。可用于评估大模型在代码补全、自然语言生成代码、测试用例生成、跨语言代码翻译、中文指令生成代码、代码注解释、Bug检测/修复、代码优化等不同任务的能力表现。
403 1
|
5月前
|
存储 JSON 自然语言处理
使用ExLlamaV2量化并运行EXL2模型
量化大型语言模型(llm)是减少这些模型大小和加快推理速度的最流行的方法。在这些技术中,GPTQ在gpu上提供了惊人的性能。与非量化模型相比,该方法使用的VRAM几乎减少了3倍,同时提供了相似的精度水平和更快的生成速度。
117 0
|
7月前
|
机器学习/深度学习 人工智能 算法
可训练软决策树集成的多实例学习
可训练软决策树集成的多实例学习
39 0
|
11月前
|
数据采集 缓存 算法
m基于多属性决策判决算法的异构网络垂直切换matlab性能仿真,对比网络吞吐量,网络负载,平均切换次数,阻塞率,回报值
m基于多属性决策判决算法的异构网络垂直切换matlab性能仿真,对比网络吞吐量,网络负载,平均切换次数,阻塞率,回报值
180 0
|
机器学习/深度学习 传感器 算法
【生产调度】基于和声搜索算法实现并行机器调度附matlab代码
【生产调度】基于和声搜索算法实现并行机器调度附matlab代码
|
机器学习/深度学习 资源调度 JavaScript
机器学习概念漂移检测方法(Aporia)
目前,有多种技术可用于机器学习检测概念漂移的方法。熟悉这些检测方法是为每个漂移和模型使用正确度量的关键。 在本文章中,回顾了四种类型的检测方法:统计、统计过程控制、基于时间窗口和上下文方法。
|
存储 机器学习/深度学习 数据采集
【GNN】task4-数据完整存储与内存的数据集类+节点预测与边预测任务实践
对于占用内存有限的数据集,我们可以将整个数据集的数据都存储到内存里。PyG为我们提供了方便的方式来构造数据完全存于内存的数据集类(简称为InMemory数据集类)。在此小节我们就将学习构造InMemory数据集类的方式。
473 0