传统的深度强化学习需要一个估值网络和一个目标网络,通过两个网络之间延迟更新参数产生损失函数值,通过减少损失最终达到收敛。由于要平衡应用和探索,一般会采用随机搜索的方式选取部分动作。但当历史数据稀疏时,在学习初始期算法很难选择到有效的动作,导致算法学习不到有用信息搜索效率很低,收敛速度非常慢。
因此,我将在数据稀疏或者环境反馈耗时较久的情况下,先将有限的历史数据在时间维度和摄像头维度进行分解,对时间和摄像头分别建立β分布,分别表示摄像头发生违规事件的初始时间概率分布和摄像头发生违规事件的初始概率的概率分布。由时间和摄像头的β分布采样作为首次动作值输入,通过比较现实网络的动作输出值与实际动作的相似度作为奖励函数,同时将现实网络的输出动作分解为违规事件的时间分布和违规事件的摄像头分布,用来更新时间和摄像头对应的两个β分布,基于更新后的β分布来生成下一时刻的动作值,作为输入开始第二次强化模型迭代。
分别生成时间维度和摄像头维度的概率的概率分布,用该分布快速生成可行性“动作-状态”作为样本保存下来供之后学习。由于β分布对于少量样本较为敏感,因此可以在小样本上获得较为明显的概率的概率分布,从而快速解决强化学习在训练之初寻找不到有效信号的学习缓慢问题。同时,β分布属于启发式学习,可以快速更新优化并且自发引入随机性,起到“应用-探索”平衡的作用,而强化学习可以调整生成动作的概率,与β分布实现加和效应,进一步提高初始训练的学习速度。
1.系统框架
图1 本文着力点
本文主要解决强化学习没有充足历史数据或历史样本反馈周期长时间成本不允许的情况下实现环境虚拟响应从而加快学习速度。因此,本文的核心逻辑如图1所示,主要在于利用智能体的动作输出对摄像头违规事件分布进行更新,同时使用更新后的分布产生环境的下一刻反馈动作代替使用实际计算资源真正进行违规事件检测。其中,摄像头违规事件分布分解为时间维度的β分布和摄像头维度的β分布,更新分布采用智能体返回的动作即策略,对其拆解成时间维度和摄像头维度进行分布更新。通常情况下,强化学习的环境是由环境自主产生的响应变换,而本文基于智能体的反馈构建β分布,由分布产生响应来解决拿不到历史数据的问题。
2. 构造β代替环境交互的策略选择环节
图2 不同α和β取值的被Beta分布图
β分布概率密度:
式1
其中系数B为:
式2
Gamma函数可以看成阶乘的实数域推广:
式3
β分布的期望:
式4
具体来看使用有限的历史数据在时段维度上统计发生频数记为,未发生记为,构造初始化分布;在摄像头维度上统计发生频数记为,未发生记为,构造初始化分布。
β分布可以看作是一个概率的概率分布,当不知道摄像头发生事件的具体概率是多少时,可以给出所有概率出现的可能性。β是一个非固定的公式,其表示的是一组分布,表示某个事件发生概率的概率分布。
而随着新产生的事件可以使用式5对分布进行更新:
式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+β分布的环境响应机制框架原理
图2 本文使用β分布模拟环境变换原理
3.1 时间维度与摄像头维度数据分解
历史数据分解进行初始化β分布:
假设总共有N个摄像头,历史违规事件总量为M件,每一个事件定位到具体的摄像头的过程看作是二项分布,每个摄像头可设分布如,其中m1,m2....,mN分别代表N个摄像头发生违规事件的频数,M-m1,M-m2....,M-mN代表不是该摄像头监控到的违规事件频数,因此可得N个摄像头维度的β分布。
总共有48个时段,历史违规事件总量为M件,每一个事件定位到具体的摄像头的过程看作是二项分布,每个摄像头可设分布如,其中t1,t2....,tN分别代表48个时段发生违规事件的频数,M-t1,M-t2....,M-tN代表不是该时段监控到的违规事件频数,因此可得48个时段维度的β分布。
估值网络输出策略(动作)分解进行β分布更新:
估值网络输出的策略即为动作,行如表1所示,全部抽查的动作和记为P,此处为467,在摄像头维度可以得到每一个摄像头对应的,以及,从而可以对摄像头维度的N个β分布根据式5进行更新;在时间维度上可以得到每一个摄像头对应的,以及,从而可以对时间维度的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个;因此,在初始化时使用有限的历史数据构建描述时段维度和描述摄像头维度的分布,使用分布采样初始化动作。
图3 四只摄像头β分布例子
图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为更新后的β分布采样的的动作空间,为估值网络输出与新β分布采样动作空间的协方差,分别为方差,使用相关系数衡量估值网络输出与新β分布采样动作空间的差异,相似度越高其值越高,代表的反馈奖励也越高。
式6
采用DQN算法通常需要实现一个估值网络和一个现实网络,其中估值网络用于决策,现实网络用于价值评价,而现实网络的参数更新较估值网络有一定滞后,目标是最小化估值网络的动作价值与该动作产生的奖励值和现实网络动作评估值。在本文中,做两点改变:
1.当前状态是由构造的β分布产生,下一刻状态是通过被估值网络动作输出值更新之后的β分布产生的,并不真正进行环境响应,从而解决获取真实样本耗时久的难题。
2.由于已知历史数据每一天其实是残缺,有偏见,不能够真实反映实际违规事件分布的时段和摄像头分布。因此,使用构造的β分布与仅有的历史样本进行奖励值计算,通过beta分布不断更新的过程,同时分布采样的下一刻状态可以与每一个时间节点交叉式的计算奖励值,极大限度衡量了真实违规事件的分布。
4.方案流程细节
本文使用DQN网络,价值迭代公式如下:
式7
图5 本文训练流程图
其中,本方案核心创新点是构造β分布,并将β分布用估值网络输出动作值做分解后来更新分布时间段和摄像头的分布参数,使用更新后的分布采样动作作为环境响应的状态变换。而奖励值是通过估值网络的输出与更新后的分布产生的环境响应状态来代替传统的环境真实反馈奖励值。
由于在训练初期利用了历史数据缩小了搜索空间,迭代开始后每一轮的估值网络输出把学到的知识立刻指导搜索空间下一次的搜索方向,从而加快了DQN学习初始的收敛速度。
训练开始后更新分布产生的状态变换数据同样作为历史数据保存下来,供后续循环使用,此机制解决相当于产生了足量的较为丰富的历史数据,从而无需等待真实的违规事件检测计算资源漫长计算周期。
由于采用了β分布启发式采样,所以可以认为采样的样本符合当时的真实状态,可以代替实际发生的事件。因此,当采样事件与强化学习估值网络的输出一致时对于强化学习网络来看属于预测正确,反之预测错误,同时对于β分布认为发生违规事件,同时更新分布参数,反之认为未发生违规事件,更新β分布参数。
最终,由于实际并不依赖真实的视频推理,解决了强化学习在摄像头违规事件监控上由于视频推理耗时过长的问题,但由于仅有的视频推理数据给强化学习和β分布提供先验知识,而β分布在不断参数调整过程中生成了更多的真实数据采样,从而加速了学习,解决了反馈周期长,推理耗时久的问题。