何金栋,卜艳玲,石聪聪,谢 磊
1.国网福建省电力有限公司电力科学研究院,福州 350007
2.南京大学 计算机软件新技术国家重点实验室,南京 210023
3.全球能源互联网研究院有限公司 信息网络安全实验室,南京 210023
近年来,为了实现电力系统的万物互联与优化管理,国家电网充分运用多种信息技术和通信技术,积极建设泛在电力物联网。其中,射频识别技术(radio frequency identification,RFID)是泛在电力物联网建设的核心技术。凭借价格低廉、无需电源、非视距通信、远距离通信等特点,RFID 被广泛应用于电力仓储物资管理、电力巡检等场景,以监控物品的存储、出入等[1-5]。由于在实际仓库中,贴有标签的电力设备的数量动态变化,需要时常盘点标签,而不能仅根据列表检测缺失标签[6-10]。由于仓库中往往存在大量标签,通信过程容易出现标签信号冲突。为了提高标签识别效率,需要设计良好的防冲突算法来减少标签冲突,实现快速盘点。同时,由于信号衰减等因素,阅读器与标签的通信过程存在包丢失或者篡改的可能性,导致通信失败,而这种不确定性为标签的快速盘点增加了难度。
由于基于ALOHA 的防冲突算法[11-21]简单公平、性能良好,目前商用RFID 系统所采用的EPC C1G2标准[21]便是遵循基于时隙的ALOHA 算法来管理标签响应。以往的ALOHA 研究工作主要聚焦于优化ALOHA 模型参数来调整帧长,但是它们仅考虑了通信失败概率为零的理想情况,而实际由于信号衰减、环境干扰等因素,这些方案无法满足应用需求。商用RFID 系统中采用Q 算法来动态调整帧长,稳定性强、吞吐率高,但是提前结束帧的机制使得阅读器需要不断发送询问命令,增加了传输数据量。
本文提出了基于QN-learning 的帧时隙ALOHA帧长优化算法,通过结合Q-learning 和神经网络,能够在实际存在多种不确定因素的情况下确定最优帧长,有效识别标签。基本思想是让阅读器自主学习在不同的标签响应状态下如何选择最优帧长,最大化标签识别效率。动态调整帧长的过程本质上是强化学习中的马尔可夫决策过程[11-13,22],在环境中标签数未知、阅读器和标签之间通信失败概率未知的情况下,阅读器根据观察到的标签响应状态,如空时隙数、单时隙数和冲突时隙数,来学习如何选择最优帧长,使得系统能够消耗最少的时隙总数来识别所有标签。为了得到帧长选择的策略,本文基于Q-learning的思想计算值函数并作为帧长选择的标准。值函数的输入为阅读器观察到的某一帧中标签的响应状态,即不同种类时隙的个数,输出为使得最终消耗时隙总数最少的帧长。由于状态空间稀疏而庞大,传统的基于表格的值函数无法满足应用需求,本文提出利用神经网络来近似值函数,通过值函数网络来近似值函数的真值表示。另外,为了减少计算量,本文提出通过利用神经网络来估算标签数以缩小最优帧长的选择范围。在标签数估计方面,前人工作通常没有考虑通信失败概率等不确定因素,而本文将标签数估计问题转化为回归问题,输入为不同种类时隙的个数,真实值为实际标签数,通过训练网络来估算标签数,从而确定最优帧长区间,减小搜索范围。
本文主要有以下三个贡献:(1)将基于帧时隙的ALOHA 算法中的动态帧长调整问题转化为强化学习中的马尔可夫决策过程,在标签数未知且存在不确定的通信失败概率的情况下,能够较好地调整帧长,减少时隙冲突,鲁棒而高效地识别标签。同时,兼容C1G2标准,易于部署到当前的商用系统中。(2)提出了QN-learning 算法来训练值函数网络,能够根据不同种类时隙的个数指导选择最优帧长。通过将Qlearning 算法和神经网络相结合,利用神经网络来模拟Q-learning 算法中的值函数,能够隐式地学习到环境中的通信失败概率,从而在值函数网络的基础上,结合实时的标签响应状态,确定最优帧长。本文也提出了利用神经网络来估计标签数,以缩小帧长搜索范围,减少计算量。(3)通过仿真实验评估了QNlearning 算法的性能。实验表明,基于QN-learning 训练得到的值函数网络在指导最优帧长选择方面表现优异,能够在保障高吞吐率的同时控制数据传输量。
为了实现标签的快速识别,如果已有标签列表,则仅需检测缺失标签来实现快速盘点。一般而言,通信过程要尽可能避免信号冲突,但对缺失标签检测而言,研究者们却偏好冲突时隙,当原本的冲突时隙不发生冲突或者原本的单时隙变成空时隙时,通过查询标签列表即可快速检测缺失标签[6-10]。例如,文献[6]提出通过哈希将多个标签分配到同一个时隙中,批量检测这些标签是否缺失。但是文献[6]的方法不兼容C1G2标准,无法被部署在当前的商用RFID 系统之上。此外,对于流动性较大的仓库,不仅存在标签的流出,还有新标签的流入,要维持详尽的标签列表困难较大,因而无法采用缺失标签识别的方法清点标签,必须对全部标签进行盘点。
在基于时隙ALOHA 算法[11-21]中,当标签列表未知时,设置合适的帧长是提高识别效率的关键,常见的动态帧长调整算法有:一种是目前商用系统中采用的Q 算法[12,20-21];另一种是基于不同种类的时隙数来优化模型选择帧长[15-19]。Q 算法在遇到过多空时隙或者冲突时隙时会提前结束帧,调整帧长以开启新的一帧进行询问,这种方法稳定性强、吞吐率高,但是要求阅读器不断发送询问命令,因此轮询过程传输的数据量较大。而对于基于不同时隙种类的方法,Q 算法的缺点并不成立,但是由于它不会提前结束帧,对帧长的设置更为敏感。文献[2]指出,当帧长设置与标签数相同时,时隙利用率最高,因此学者们针对如何利用不同种类的时隙数估计标签数做了大量的研究[17-18],但是他们的工作大部分建立在通信失败概率为零的基础上,因而他们提出的方案并不适用于实际场景。文献[19]考虑了通信失败造成标签丢失的情况。在通信失败概率已知的基础上,他们提出了利用概率模型来确定最优帧长。但是在实际中,通信失败概率往往也是未知的,这为标签数的估算又增加了难度。
与前人工作相比,本文方法基于帧时隙ALOHA算法,兼容C1G2 标准,易于在已有的RFID 系统中进行部署。同时,本文考虑了标签数未知且不确定的通信失败概率,注意到单次的最佳识别效率并不意味着识别完所有标签的最佳效率,因此通过强化学习来确定全局最优的帧长选择策略,以更贴合实际应用需求,有效识别标签,在保障高吞吐率的同时控制询问次数,减少数据传输量。
在基于帧时隙的ALOHA(framed slotted ALOHA,FSA)防冲突算法中,每一帧由若干时隙组成,阅读器以帧为单位对标签进行询问。在询问开始的时候,阅读器广播帧长f,通知标签即将开始的帧中包含的时隙个数。标签在收到帧长之后随机选择时隙,等到轮到该时隙时作出响应。若被成功识别,标签不再响应,否则继续参与下一帧的询问。按照时隙中响应标签的个数,时隙可以分为空时隙、单时隙和冲突时隙三类。当且仅当阅读器接收到单时隙时,阅读器有机会解码标签。理论上,当帧长等于阅读器扫描范围内未响应标签个数时,识别性能最佳,吞吐率可达36.8%。但在实际中,标签个数往往是未知的,并且通信过程存在一定的通信失败概率。通信失败主要出现在三个阶段:
标签激活阶段:由于Query/QueryAdjust/QueryRep收发的失败可能性,并非所有标签都能被激活。
标签响应阶段:由于RN16 收发的失败可能性,在阅读器端接收到的时隙状态不一定为原来的时隙状态,包括原单时隙变成空时隙,原冲突时隙变成单时隙、空时隙。
阅读器解码阶段:由于确认命令(acknowledgement,ACK)收发的失败可能性,阅读器不一定能解码出标签信息。
为了获得最佳性能,需要动态调整帧长。因此,在标签数不确定且存在未知通信失败概率的情况下,如何根据不同类型的时隙数来确定最优帧长是提高时隙吞吐率的关键所在。
动态调整帧长的过程可以看作一个马尔可夫决策过程(Markov decision process,MDP),如图1 所示。具体而言,阅读器处于环境E中,状态空间为S,其中状态s∈S为阅读器观察到的上一帧中不同种类时隙的个数,包括空时隙数、单时隙数、冲突时隙数,分别记作ne、ns、nc;动作空间为A,其中动作a∈A为阅读器可以选择的帧长。在根据状态s执行动作a之后,阅读器将得到环境新反馈的状态,即新一帧中不同种类时隙的个数,并根据奖赏函数R得到这一轮的奖赏r,如当前帧的吞吐率(被成功识别的标签数与帧长的比值)。图1 中的箭头表示状态的转移,可见下一时刻的状态只与当前时刻的状态有关,而不依赖于之前的任何状态。根据转移函数P,从一个状态到另一个状态按照一定的概率发生转移。综上,动态帧长调整问题可以描述为四元组E=。
Fig.1 Markov decision process for dynamic frame size adjustment图1 动态帧长调整的马尔可夫决策过程
阅读器所要做的就是通过不断尝试来学习一个策略π,决定在状态s时所要选择的最优帧长a=π(s)。在动态帧长调整过程中,为了最大化整体的标签识别效率,不仅需要考虑即时奖赏,还要考虑未来奖赏,学习目标是消耗最少的时隙总数来识别环境中的所有标签。注意到,在当前状态执行的动作对下一时刻的奖赏影响最大,随着时间的推移,对未来奖赏的影响逐步减小,因此不妨采用“γ折扣累积奖赏”来计算长期累积奖赏,如式(1)所示。
其中,Rt表示从时刻t开始的累积奖赏,rt表示时刻t的即时奖赏,γ为折扣因子并且γ∈[]0,1 。实际上,在动态帧长调整问题的四元组中,状态函数P和奖赏函数R都无法用模型进行刻画。因此,一种可行方案是采用Q-learning 实现“无模型学习”。
在Q-learning中,策略的评估标准为值函数Q(s,a),表示在状态s时执行动作a之后到该轮学习结束所能获得的最大累积奖赏,类似于奖赏函数。从而在状态s时,选择使值函数最大的动作,即:
值函数与当前动作、状态、当前奖赏和下一状态有关,记为,类似式(1),值函数可以迭代表示为:
Q-learning 的基本思想是通过不断迭代更新值函数,获得可靠的策略评估标准。在学习初期,值函数可能存在较大误差,但是随着迭代计算的推进,值函数会逐渐趋向于真值,指导阅读器执行最优帧长。
在一般的Q-learning 中,值函数可以用一个“状态-动作”表格来表示,但是在动态帧长调整问题中,状态空间稀疏而庞大,无法列举所有的可能组合,因此不妨采用函数来模拟Q值的变化,一种可行的方法是利用神经网络来近似值函数,问题即转化为“QN-learning”,其中的“N”指代神经网络。如图2 所示,输入为状态和动作,输出为Q值,学习过程则是为了训练中间的神经网络。由于该神经网络是用来模拟值函数的,将这个网络称为“值函数网络”。
Fig.2 Structure of QN-learning图2 QN-learning 的基本结构
网络的训练实质上可以看作一个回归任务,使得目标值与预测值无限接近,其损失函数为:
在Q-learning 中,机器每执行一个动作,值函数更新一次,当前的不再参与后续训练,这可能会导致网络训练无法收敛。为解决这个问题,常用的方法是经验重放。在学习过程中,将一段时间内的经验都存储在记忆库中,当训练网络时,从记忆库中随机采样迷你数据集以更新值函数网络。通过随机采样,可以打破相邻经验的关联性,使得值函数网络更趋近于真值。
图3 展示了基于经验重放的QN-learning 的示意图。首先,机器与环境进行交互,从环境中获得状态s和奖赏r;然后,机器将经验存储到记忆库中,每隔一定周期更新值函数网络;机器根据策略选择动作,在环境中执行动作之后,观察新的状态和奖赏。如此循环,最后得到策略和值函数网络。
Fig.3 Diagram of QN-learning with experience replay图3 基于经验重放的QN-learning 示意图
为了获得较好的值函数,需要采样不同的状态和动作,累积多种形式的经验。如果策略是一定的,即对于某个状态只有一种确定的动作,那么可能会错过最优动作,因此采用ϵ-贪心法来选择策略。
此时,在选择策略时能够兼顾探索与利用:每次以概率ϵ进行探索,从动作空间A中均匀地随机选取一个动作;并以概率1-ϵ进行利用,选择使值函数最大的动作,如式(2)所示。采用ϵ-贪心策略,对于同一状态,所有的动作都有机会被选择,可以获得不同的采样数据,使得值函数的估计更加精确。
综合以上分析,针对动态帧长调整问题,其基于经验重放的QN-learning 算法流程如图4 所示。整个流程主要包括五个功能模块:选择动作、执行动作、存储经验、更新网络、更新动作空间。在达到学习次数之前,重复执行不断学习。
结合图4 的算法流程,算法1 展示了基于经验重放的QN-learning 算法的伪代码,具体实现如下。
算法1基于经验重放的QN-learning 算法
Fig.4 Flow of QN-learning with experience replay图4 基于经验重放的QN-learning 算法流程
步骤1初始化。初始化具有一定存储能力的记忆库D;初始化值函数网络,随机确定网络的参数;初始化其他参数值,包括学习轮数、贪心策略中的ϵ、折扣因子γ等。
步骤2判断是否达到规定的学习轮数。在动态帧长调整问题中,一轮学习指的是所有标签被成功识别,当不再有标签响应时,说明本轮学习结束,所有标签等待新一轮的识别,开始新一轮学习过程。如果达到规定的学习轮数,结束学习过程,输出值函数网络,否则继续学习。
步骤3判断当前一轮的学习是否结束。如果所有标签被识别,本轮学习结束,否则继续学习。判断结束的方法可以为:在连续观察到的状态中,只有空时隙,没有得到任何标签的响应。
步骤4选择动作。在动态帧长调整问题中,状态对应于不同种类时隙的个数s=(ne,ns,nc),动作对应于帧长a=f。在首次学习时,由于欠缺观察状态,随机选择帧长,否则采用ϵ-贪心策略来确定帧长,以保障采样数据的多样性。具体而言,先生成随机数μ∈[0,1],如果μ≥ϵ,从动作空间中选择使值函数最大的帧长,否则,从动作空间中均匀采样一个帧长,如算法1 中的6~11 所示。理论上,动作空间为任意帧长的集合,但为了减小搜索空间,不妨根据当前未读标签数确定帧长范围,例如按照未读标签数的±30%来搜索帧长,约束动作空间。
步骤5执行动作。根据选定的帧长,发送时隙对标签进行询问,记录新的状态,包括空时隙、单时隙和冲突时隙的个数。由于系统目标是为了最大化吞吐率,即利用最少的时隙来识别所有标签,令即时奖赏的计算方式为,按照公式计算即时奖赏。
步骤6存储经验。将经验
步骤7更新网络。每隔一段时间需要更新值函数网络,若无需更新,跳到下一步骤,否则更新表示值函数的神经网络的参数,如算法1 中的18~22 所示,包括采样迷你数据集、计算目标值、训练网络三个子步骤。(1)采样迷你数据集:从记忆库中随机采样迷你数据集Dmini,随机采样是为了消除训练数据之间的关联性。(2)计算目标值:根据式(3),对采样的每条经验
步骤8更新动作空间。计算当前未读标签数,更新帧长搜索范围。在训练时,可以根据初始标签个数和每一次询问中成功响应的标签个数来计算未读标签数。
步骤9跳到步骤2,重复以上学习过程,直到学习结束,输出值函数网络。
在值函数网络训练完成之后,可以根据值函数网络来动态调整帧长。由此,可以实现初始标签数未知且存在通信失败可能性时标签的高效识别。
在实际情况下,由于初始标签数未知,无法根据成功响应的标签个数来推断每次询问时的未读标签数,确定帧长搜索范围。对此,本文提前训练标签数估计网络,根据不同种类时隙的个数来估算当前参与询问的标签个数。这是一个简单的基于神经网络的回归任务,输入为空时隙数、单时隙数和冲突时隙数,标记为真实标签数,训练过程在此不再赘述。使用时,即可根据输入的各时隙数输出标签数估算值。由此,基于标签数估算网络就能在实际初始标签数未知的情况下估算标签数,确定帧长搜索范围。在获得标签数估计网络和值函数网络之后,可以根据实时观察到的不同种类时隙的个数来动态调整帧长,具体流程如算法2 所示。
算法2基于值函数网络的动态帧长调整算法
在询问标签时,如算法2 中3~7 所示,首先根据未读标签数确定帧长搜索范围,从中选择使值函数网络最大的动作作为帧长f;然后按照帧长f进行询问,收集标签反射信号,统计空时隙、单时隙、冲突时隙的个数以及成功响应的标签个数;最后为了确定下一次询问时的帧长搜索范围,估计当前未读标签数nunread=nall-nread,其中nall为基于各时隙个数利用标签数估计网络估算的当前标签总数,nread为本次询问中成功响应的标签数,通过作差即得当前未读标签数。如果连续多次询问都没有标签响应,即收到的时隙只有空时隙,那么认为所有标签都已经被成功识别,结束识别;否则,重复询问过程,直到所有标签被识别。
针对动态帧时隙ALOHA 的帧长选择问题,本文将动态帧长选择看作强化学习中的马尔可夫决策过程,能够在标签数未知、通信失败概率未知的情况下,让阅读器自主根据标签响应来选择最优帧长,提高标签识别效率。具体而言,为了克服“状态-动作”空间过大的问题,本文基于少量数据来训练值函数网络,隐式地学习实际环境中的不确定因素,进而指导帧长的选择。同时为了减少计算量,本文利用神经网络来估计标签数,缩小帧长搜索范围。通过优化帧长,能够在控制空时隙比例的前提下降低冲突时隙发生的概率,从而最大化信道利用率。由于本文方法仅是提供最优帧长,未对现有通信协议做物理层修改,因此兼容现行的C1G2 标准,能够方便地部署到现有的RFID 系统之中。本文方法考虑了实际情况,能够充分利用信道,有效识别标签,具有良好的可行性。
本文在Matlab 中进行了仿真实验。标签总数默认为10 000 个,实际个数在5 000~10 000 之间。考虑到实际情况下阅读器和标签可能通信失败,设通信失败概率为15%。在值函数网络训练时,根据经验,设贪心策略中的ϵ为0.1,累积奖赏的折扣因子γ为0.1,利用Matlab 提供的feedforwardnet 函数来模拟值函数网络,隐藏层大小默认为15,学习轮数默认为20,一轮学习要求成功识别所有标签。标签数估计网络同样采用feedforwardnet 函数来进行训练。在测试时,基于估算的当前未读标签数,在以标签数为中心的±30%标签数范围内搜索最佳帧长。对于不同的实验设置,分别采集100 组测试数据。
系统性能采用两个指标来进行评估,分别为吞吐率和询问次数。反映了标签识别效率;询问次数指的是阅读器通过发起新帧或修改帧长对标签进行询问的次数,询问次数越多,传输数据越多。
在当前商用RFID 系统中,帧长调整一般采用Q算法。在Q 算法中,当遇到空时隙或者冲突时隙时,以步长C微调Q值。例如,遇到空时隙,Q值减去常量C(取值区间在0.1~0.5),最小为0;遇到冲突时隙,Q值增加C,最大为15[1]。考虑到默认标签数为10 000 个,Q值初始值设为14,步长C根据Q值自适应调整[20]C=为了验证基于值函数网络进行帧长调整方法的性能,下面从“吞吐率”和“询问次数”两方面将其与Q 算法进行比较。因为帧长调整策略会影响Q 算法的性能,本文比较了三种不同帧长调整策略的基于Q 算法的方法。一是传统的对Q值取整后进行判断[21],当取整后Q值变化时调整帧长。二是文献[20]中提出的对2Q进行判断,当2Q变化到一定程度时对帧长进行调整,门限由以下公式确定,Q′为Q按照步长微调后的数值,由于实验中标签数较多,参数a和b分别近似为0.8 和1.5。三是自定义地对Q值进行判断,当Q值发生变化时重新发送询问命令。这些方法分别记为“QN-learning”(本文方法)、“传统Q算法”[21]、“改进Q算法1”[20]、“改进Q算法2”,实验结果如图5和图6所示。
Fig.5 Throughput of different algorithms图5 不同算法的吞吐率
Fig.6 Number of queries of different algorithms图6 不同算法的询问次数
就吞吐率而言,当实际标签数与默认标签数相差不超过35%时,基于值函数网络动态调整帧长方案的吞吐率高于Q 算法。图5 绘制了不同标签数时基于值函数网络和Q 算法的吞吐率。注意到本文引入了通信失败概率,因此吞吐率会受到一定的影响。从图5 可以发现,三种基于Q 算法的方法都具有较稳定的吞吐率,其中“改进Q 算法2”的平均吞吐率最高,约为30.2%。这里的稳定性得益于Q 算法遇到空时隙或者冲突时隙时提前结束帧的机制,因此Q 算法对于不同实际标签数均有鲁棒的识别效率。因为帧长变化的判断标准不同,三种基于Q 算法方法的帧长调整灵活度为Q 算法<改进Q 算法1<改进Q 算法2,灵活度越高,提前结束帧的概率越高,时隙浪费越少,因此“改进Q 算法2”得到了最高的吞吐率。同时,根据图5,本文提出的基于值函数网络的方法的吞吐率随着标签数的增加整体上呈小幅增长趋势,尤其当标签数从5 000 增加到6 500 的过程中,吞吐率增长明显,这个现象主要是在初始识别时按照默认标签数来搜索帧长的缘故。当标签数高于6 500时,QN-learning 的平均吞吐率约为30.9%;随着实际标签数接近于默认标签数,QN-learning 的优势逐渐扩大,当标签数大于9 000 时,QN-learning 的吞吐率比“改进Q 算法2”高1%左右。QN-learning 之所以能够获得更高的吞吐率,是因为在基于Q 算法的方法中,Q 值的调整是一个逐渐逼近最优值的过程,而本文基于值函数网络能够快速地根据标签响应选择最优帧长,省去了中间逐步调整的过程,减少了由调整带来的时隙浪费,从而提高了时隙吞吐率。虽然QNlearning 的优化幅度看似不大,但是考虑到Q 算法本身是一个成熟的商用算法,在其基础上进行改进具有较大的挑战性,因此认为QN-learning 带来的改进依旧是令人欣慰、值得肯定的。
就询问次数而言,QN-learning 的发送询问次数远小于基于Q 算法的方法,意味着QN-learning 所需的数据传输量较小。如图6 所示,四种方法的询问次数都随着标签数的增大而增大,但它们的数值在不同的量级之上。当标签数从5 000 上升到10 000 时,QN-learning 的平均询问次数仅从26.8 上涨到31.7,而基于Q 算法的方法的询问次数在千次以上。对于QN-learning 而言,它并不会提前结束帧,虽然在实际标签数与默认标签数差距较大时会损失一定的吞吐率,但其每次询问都能成功读取大量标签,因此询问次数少。相反的,对于基于Q 算法的方法而言,Q 算法遇到过多的空时隙或者冲突时隙时会提前结束帧,这样的做法增加了阅读器向标签发送询问命令或者询问调整命令的次数,进而将导致数据传输量的显著提升。同时,因为“改进Q 算法2”具有最灵敏的帧长调整策略,所以它调整帧长最为频繁,向标签发送询问的次数相应最多。
总体而言,利用QN-learning 训练得到的值函数网络在动态调整帧长方面可以取得优异的性能。当实际标签数与默认标签数相差不多时,QN-learning能够比基于Q 算法的方法获得更高的吞吐率,并且QN-learning 发送的询问次数远小于基于Q 算法的方法,将节省大量的数据传输开销。
在训练值函数网络时,不同的参数设置会影响QN-learning 的性能,因此下面探索神经网络隐藏层大小和学习轮数带来的影响。由于询问次数主要与标签数有关,这里只使用吞吐量作为评价指标。
图7 展示了不同隐藏层大小对吞吐率的影响。可以发现,当隐藏层大小适中时,即隐藏层个数在6~18 时,吞吐率较高,在31%附近波动。当隐藏层过大或者过小时,吞吐率下降明显,小于29.7%。这是由于当隐藏层过小时,神经网络无法充分近似值函数网络,存在“欠拟合”问题。当隐藏层过大时,则导致了“过拟合”现象,因此需要设置合适的隐藏层大小。根据实验结果,当隐藏层大小为15 时,平均吞吐率最大,为31.3%,因此将15 作为默认值。
Fig.7 Effect of different hidden layer sizes on throughput图7 不同隐藏层大小对吞吐率的影响
Fig.8 Effect of different training rounds on throughput图8 不同学习轮数对吞吐率的影响
图8 展示了不同学习轮数对吞吐率的影响。可以发现,当学习轮数从5 增加到20,吞吐率从29.8%上涨到31.3%,而当学习轮数继续增加时,吞吐率趋于稳定。考虑到学习轮数越多,训练时间越长,并容易导致过拟合。根据实验结果,当学习轮数为20 时吞吐率最高,因此将20 作为默认学习轮数。
针对实际中标签数未知且存在通信失败可能性情况下标签快速盘点的问题,本文提出了兼容EPC C1G2 标准的基于QN-learning 的动态帧时隙ALOHA冲突算法。通过将动态帧长选择问题转为马尔可夫决策过程,基于Q-learning 和神经网络来学习帧长选择策略。仿真实验表明,本文方法能够有效识别标签,在保障高吞吐率的同时控制询问次数,减少数据传输。与商用Q 算法相比,本文方法吞吐率高,询问次数少,但需要提前采集数据进行网络训练,当环境发生变化,如通信概率改变时,需要重新训练网络,但是环境中的通信概率一般是较为稳定的,只需偶尔更新网络。当前本文采用了估计标签数的方法来缩小动作空间,在未来工作中,将进一步考虑改进值函数网络,将动作空间的限制嵌入到值函数网络中,从而简化流程,提高标签识别效率。