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

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

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

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

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

     

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学习初始的收敛速度。

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

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

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

 

目录
相关文章
|
4天前
|
机器学习/深度学习 存储 人工智能
【AI系统】计算图与自动微分
自动求导利用链式法则计算雅可比矩阵,从结果节点逆向追溯计算路径,适用于神经网络训练中损失值对网络参数的梯度计算。AI框架中,自动微分与反向传播紧密相连,通过构建计算图实现高效梯度计算,支持动态和静态计算图两种模式。动态图如PyTorch,适合灵活调试;静态图如TensorFlow,利于性能优化。
27 6
【AI系统】计算图与自动微分
|
4天前
|
人工智能 调度 算法框架/工具
【AI系统】计算图的调度与执行
深度学习训练过程涉及前向计算、计算损失及更新权重参数。AI框架通过计算图统一表示训练过程,算子作为计算图的节点,由后端硬件高效执行。计算图调度包括算子间的调度、并发调度和异构调度,确保计算资源的有效利用。图执行模式分为单算子执行、整图下沉执行和图切分多设备执行,适应不同场景需求。以PyTorch为例,其算子执行通过两次调度选择合适的Kernel进行张量操作,并支持自动求导。
26 5
|
7月前
|
算法 调度
电网两阶段鲁棒优化调度模型(含matlab程序)
电网两阶段鲁棒优化调度模型(含matlab程序)
|
6月前
|
机器学习/深度学习 算法 TensorFlow
强化学习是一种通过与环境交互来学习最优行为策略的机器学习方法。
强化学习是一种通过与环境交互来学习最优行为策略的机器学习方法。
|
7月前
|
调度
【核心完整复现】基于目标级联法的微网群多主体分布式优化调度
【核心完整复现】基于目标级联法的微网群多主体分布式优化调度
|
7月前
|
数据可视化 测试技术
R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例
R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例
|
算法 搜索推荐 数据挖掘
基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)
基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)
153 0
基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)
|
算法 调度
基于目标级联法的微网群多主体分布式优化调度(Matlab代码实现)
基于目标级联法的微网群多主体分布式优化调度(Matlab代码实现)
189 0
|
数据采集 监控 算法
【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)
【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)
101 0
|
数据采集 监控 定位技术
【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)
【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)
117 0