一种基于GRU模型的量子密码系统稳定控制方法

文档序号:26666272发布日期:2021-09-17 14:40阅读:145来源:国知局
一种基于GRU模型的量子密码系统稳定控制方法

本发明涉及量子通信、量子加密、量子信息等领域,尤其涉及一种基于GRU模型的量子密码系统稳定控制方法。

背景技术

量子密码是量子通信的核心,它的安全与否直接决定着量子通信系统的安全性。量子密码的安全性建立在量子力学的基本原理之上,同时通过结合香农提出的“一次一密”(OTP,One Time Pad)定理,原则上可以为合法用户(Alice、Bob)提供无条件安全的量子通信。现有实用化的量子密码系统可以使用不同的编码方式,比如相位、偏振、时间-能量编码等,其中基于相位编码的系统应用最为广泛。自第一个量子密码协议——BB84协议提出以来,量子密码无论是在理论上还是在实验上均取得了巨大的进步。与此同时,越来越多的量子密码协议如参考系无关协议(RFI,Reference Frame Independent)、测量设备无关协议(MDI,Measurement Device Independent)等,也相继投入到实际的量子密钥分配应用中。但是诸多协议对应的QKD系统往往存在着相位漂移、光强起伏、偏振漂移等问题,因此在QKD实用化过程中往往需要对这些参数进行扫描、监控或其他相关操作,以获取这些参数在QKD系统中的补偿量,保证QKD系统的正常传输。但是在有些补偿量的获取过程中,如通过扫描获取补偿电压的过程中,QKD系统无法进行传输,这就导致系统整体效率低下,虽然可以使用基于FPGA的相位实时补偿技术,但这种方法需要比较高昂的硬件开销。尤其是对于高速QKD或是复杂协议系统而言,需要快速补偿或同时获取多个补偿量,使得硬件开销进一步增大。



技术实现要素:

针对现有技术在同等情况、同一时刻只能优化QKD系统一个补偿参数的不足,本发明提供了一种基于GRU模型的量子密码系统稳定控制方法,在软件层面实现同一时刻多个系统补偿参数的同时优化。利用QKD传输系统调制器件和外部环境等参数变量的时序数据,训练一个GRU时序预处理模型,根据输入当前时间步的环境参数和前时间步构建的参数向量,快速地预测出下一时间步的参数向量,再利用参数向量的解构直接获取所需的多个优化后的系统补偿参数,该方法大大加快了补偿参数的获取过程,并降低了补偿参数获取的硬件支持。本发明使用BB84相位编码QKD系统中的时序数据进行了验证,但不仅仅限于BB84协议或相位编码QKD系统。仿真结果表明:参数向量中补偿参数的预测值,和系统实际补偿参数的值接近;预测速度快,大幅提高了QKD系统的有效传输效率。

本发明提供一种基于GRU模型的量子密码系统稳定控制方法,所述方法包括以下步骤:

步骤1,利用参数向量的构建过程,将不同时间节点的待补偿参数构建为不同时间点的参数向量,并且匹配相应时间点的环境数据,以此获取feature_X的时间序列数据以及feature_Y的时间序列数据。

将包含feature_X和feature_Y的数据集按比例划分为训练集和测试集;

步骤2:根据feature_X的数据结构确定GRU神经网络的输入层规格,即输入层的神经元个数与feature_X的特征维度应匹配,所以t时刻feature_X的总特征维度=t时刻环境数据所占据的特征维度+t时刻及t时刻之前参数向量所占据的特征维度;同样,将输出层的规格与feature_Y所占据的特征维度相匹配;

步骤3:将步骤1中的训练集数据导入步骤2中搭建的GRU网络架构,利用神经网络的正向、反向传播使GRU网络拟合训练集数据;以此来获取具有QKD系统参数向量预测功能的GRU神经网络;

步骤4:利用步骤3中的具有参数向量预测功能的GRU神经网络分析处理测试集或实际系统扫描获取的feature_X,从而对下一时间步的参数向量进行预测;再利用参数向量的解构,将待补偿参数从预测的参数向量中解构出来,实现QKD系统待补偿参数的预测。

进一步的,待补偿参数的个数n根据QKD系统中采用的不同协议进行确定。

例如,采用time-bin相位编码的MDI-QKD系统,为了进行更好的编码脉冲调制,可以结合机器学习对通信双方在内的8个IM的偏置电压进行校准优化。再者,对于BB84协议通讯的QKD系统,待补偿参数的个数可以是1,对干涉环的一个初相电压参数进行调控;更优的,对于BB84协议通讯的QKD系统,待补偿参数的个数可也以是2,对初相电压和末相电压两个电压参数进行调控。

进一步的,步骤1中获取的feature_X的时间序列数据,具体为:t时刻feature_X包括t时刻的环境数据、t时刻的参数向量、以及t之前m个时刻的参数向量,m为整数,m=0、1、2、3、或……。

进一步的,采用m=2时,t时刻feature_X包括t时刻的环境数据、t时刻的参数向量、t-1时刻的参数向量、以及t-2时刻的参数向量,所述t时刻的参数向量来自于t-1时刻GRU神经网络预测输出的参数向量,t-1时刻的参数向量来自于t-2时刻GRU神经网络预测输出的参数向量,依次论推,t-2时刻的参数向量来自于t-3时刻GRU神经网络预测输出的参数向量。

进一步的,所述的环境数据包括温度、湿度和光强。

进一步的,还包括,设定微更新周期,每个微更新周期利用测试集或实际系统扫描获取的参数向量对GRU网络进行微更新。微更新周期为30时间步。

进一步的,每个微更新周期,通过实际系统连续扫描或测试集中获取的3次真实参数向量并结合matlab提供的网络矫正函数对GRU网络模型进行微更新。

本发明的有益效果是:参数向量的回归不同于单一标量的回归,根据系统所需补偿参数的不同可以自行设计所需回归的参数向量。适用于多种QKD协议、基于多种编码方式的QKD系统,以及包括光纤、片上等多种材料构成形式的QKD系统,具有能够准确、快速预测出系统所需的多个补偿参数,提高系统传输效率,减小附加系统硬件开销的优势。

附图说明

图1为本发明的GRU模型使用的完整流程图。

图2为本发明的GRU模型细胞单元的内部结构图。

图3为本发明的参数向量构建、解构及训练测试数据结构图。

图4为本发明的GRU网络的一般训练过程图。

图5不使用微更新机制的GRU模型预测参数向量中ParamA的效果图。

图6不使用微更新机制的GRU模型预测参数向量中ParamB的效果图。

图7使用微更新机制的GRU模型预测参数向量中ParamA的效果图。

图8使用微更新机制的GRU模型预测参数向量中ParamB的效果图。

图9为不同机制GRU模型同时预测参数向量中两个参数的RMSE柱状图。

图10为本发明的GRU模型与LSTM模型在训练集上的训练时长对比图。

具体实施方式

为了加深对本发明的理解,下面将结合实施例对本发明作进一步的详述,本实施例仅用于解释本发明,并不构成对本发明保护范围的限定。

本发明提供一种基于GRU模型的量子密码系统稳定控制方法,所述方法包括网络训练过程、网络预测过程和网络更新过程。

所述网络训练过程包括以下步骤:

步骤1:利用参数向量的构建过程,将不同时间节点的多个待补偿参数构建为不同时间点的参数向量,并且匹配相应时间点的环境数据,以此获取feature_X的时间序列数据以及feature_Y的时间序列数据。所述的环境数据包括温度、湿度和光强。

考虑数据集的整体大小,将包含feature_X和feature_Y的数据集按比例合理的划分为训练集和测试集。

步骤2:根据特征数据第三维度feature_X的数据结构确定GRU神经网络的输入层规格,即输入层的神经元个数与feature_X的特征维度应匹配,这里要重点考虑参数向量所占据的特征维度,即参数向量中所包含的补偿参数的个数。所以t时刻feature_X的总特征维度=t时刻环境数据所占据的特征维度+参数向量所占据的特征维度。同样,将输出层的规格与标签数据第三维度feature_Y所占据的特征维度相匹配。之后,考虑隐藏层的层数并完成GRU网络的构建。

步骤3:将步骤1中分割好的训练集数据导入步骤2中搭建的GRU网络架构,利用神经网络的正向、反向传播使GRU网络拟合当前时间范围内的QKD系统数据。以此来获取具有QKD系统参数向量预测功能的GRU神经网络。

所述网络预测过程包括如下步骤:

步骤4:利用步骤3中具有参数向量预测功能的GRU神经网络去分析处理测试集或实际系统扫描获取的feature_X,从而对下一时间步的参数向量进行预测。之后利用参数向量的解构,直接将多个待补偿参数从预测的参数向量中解构出来。

所述网络更新过程包括如下步骤:

步骤5:考虑步骤3中神经网络所能处理时序数据的最大范围,在GRU网络预测效果不佳时,利用测试集或实际系统扫描获取的参数向量对GRU网络进行微更新,消除GRU网络预测过程中导致的误差累计问题,使微更新后的GRU网络能更好的适应当前时段的系统数据,以此相对准确的对参数向量进行预测。

这里要注意,网络更新阶段和网络预测阶段的更新是不同的概念,前者是为了保证模型可以相对长时间的正常工作,而不至于误差累计导致模型失效,后者只是为了起初获取最佳预测模型。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体时序数据并参照附图,对本发明作进一步说明。

GRU网络介绍:GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network,RNN)的一种,和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度消失等问题而提出来的。相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。而对于复杂QKD系统而言,由于涉及到的参数相对较多,同时处理的是向量回归问题,所以在处理效率和准确率上,GRU相比LSTM都会有所改善。从GRU的网络结构来看,GRU与LSTM网络的整体结构类似,都由一连串结构完全相同的细胞单元构成,最大的不同点是两者细胞单元的内部结构不同,LSTM的细胞单元含有“输入门”、“输出门”、“遗忘门”,而GRU将LSTM的三门结构集成为“重置门”、“更新门”的两门结构,因此GRU在获取LSTM同等处理效果的同时,还进一步提高了数据处理的效率。GRU神经网络处理的一般数据格式为[bach,time_step,feature_dim],其中bach是时序数据的批次,time_step是时序数据的时间跨度,feature_dim是每个时间步上数据的维度。细胞单元是GRU递归网络的核心,细胞单元的数量与GRU网络输入数据的time_step直接对应,每一个时间点的数据都由一个细胞单元进行处理并将处理所得的信息传递给下一个细胞单元,因此一连串结构完全相同的细胞单元是GRU网络可以长期记忆的关键。

附图2是GRU细胞单元的内部结构图。为了解决标准RNN的梯度消失问题,GRU使用了更新门(update gate)与重置门(reset gate)。从直观上来说,重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。基本上,这两个门控向量决定了哪些信息最终能作为细胞单元的输出。这两个门控机制的特殊之处在于,它们能够保存长期序列中的信息,且不会随时间而清除或因为与预测不相关而移除。接下来分四个部分,对GRU的细胞单元进行介绍。

更新门(update gate):在时间步t,首先需要使用以下公式计算更新门Zt:Zt=σ(WzXt+Uzht-1),其中,参数Xt表示第t个时间步的输入向量,即输入序列X的第t个分量,它会经过一个线性变换(与权重矩阵Wz相乘);参数ht-1表示的是前一个时间步t-1保存的信息,它同样也会经过一个线性变换(与偏置矩阵Uz相乘)。更新门将这两部分信息相加并投入到Sigmoid激活函数中,因此结果会被激活函数压缩到0~1之间。更新门帮助模型决定到底要将多少过去的信息传递到未来,或到底前一时间步的信息有多少是需要继续传递的,这使得模型能减少梯度消失的风险。

重置门(reset gate):本质上来说,重置门主要决定了到底有多少过去的信息需要遗忘,其使用下述表达式进行计算:rt=σ(WrXt+Urht-1),该表达式与更新门的表达式是一样的,只不过线性变换的参数和用处不一样而已。如前面更新门所述ht-1和Xt先经过一个线性变换,再相加投入Sigmoid激活函数以输出激活值。

当前记忆内容:现在具体讨论一下这些门控到底如何影响最终的输出。在重置门的使用中,新的记忆内容将使用重置门储存过去相关的信息,它的计算表达式为:h′t=tanh(WXt+rt⊙Uht-1),输入Xt与上一时间步信息ht-1先经过一个线性变换,即分别右乘矩阵W和U。计算重置门rt与Uht-1的Hadamard乘积,即rt与Uht-1的对应元素乘积。因为前面计算的重置门是一个由0到1组成的向量,此向量用于衡量门控开启的大小。例如某个元素对应的门控值为0,那么就代表这个元素的信息完全被遗忘掉。该Hadamard乘积将确定所要保留与遗忘的之前信息。最后将这两部分的计算结果相加再投入双曲正切激活函数中即为当前记忆内容。

当前时间步的最终记忆:在最后一步,网络需要计算ht,该向量将保留当前单元的信息并传递到下一个单元中。在这个过程中,需要使用更新门,它决定了当前记忆内容ht和和前一时间步ht-1中需要收集的信息是什么。这一过程表示为:ht=Zt⊙ht-1+(1-Zt)⊙h′t,Zt为更新门的激活结果,同样以门控的形式控制了信息的流入。Zt与ht-1Hadamard乘积表示前一时间步保留到最终记忆的信息,该信息加上当前记忆保留至最终记忆的信息就等于最终细胞单元输出的内容。由上述分析可知,细胞单元不会随时间而清除以前的信息,它会保留相关的信息并传递到下一个单元,因此它利用全部信息而避免了梯度消失问题。

GRU模型的参数向量预测和反馈控制:本实施例在BB84相位编码QKD系统中进行了方案验证,这里对QKD系统中的两个电压参数ParamA、ParamB进行了补偿优化,即通过参数向量的构建过程,将这两个参数装入同一个数组容器,对这个数组容器整体进行优化;获取优化的参数向量之后,再通过解构过程取出对应的电压参数对系统进行补偿控制。此外还需注意一点,不同协议对应不同的QKD系统,系统所需调控的参数也不尽相同,所以参数向量中包含的补偿参数应结合所用的具体协议进行确定。以下对本实施例在BB84系统获取的数据集上的效果进行展示,GRU模型在QKD系统的完整使用流程可参见附图1。

GRU参数向量预测模型所用数据的获取和处理:BB84 QKD系统按照10秒扫描,10秒传输的方式获取GRU模型所需使用的时序数据,因此BB84 QKD系统的传输占空比为50%。获取的时序数据包括系统所处环境的温度、湿度、光强以及调控器件获取的相电压ParamA、ParamB五个参数;数据集的原始时间步为3313,由于每20s获取一个时间步的数据,所以数据集的时间跨度约为18.4小时。在系统数据采集完成的基础上,参照附图3中参数向量的相关概念,即通过参数向量的构建过程将同一时间点的电压ParamA和ParamB数据存入一个数组中构成参数向量,并结合同一时间点的温度、湿度、光强、数据,从而获取了数据格式为[time_step,feature_dim]的特征数据。参照时序神经网络对数据处理的一般格式,引入一个代表数据批次的新维度bach,即将初始数据格式[time_step,feature_dim]转换为[bach,time_step,feature_dim]。关于第一维度bach的确定需要根据具体训练数据量的大小进行确定。为了保证预测参数向量的尽可能准确同时兼顾易行性我们做了两点设计,下面结合特征数据加以说明:一方面,舍弃常规的时间窗时间序列处理方法,选择matlab官方参考手册中提供的sequence to sequence思想,即一个时间点预测一个值,这里是当前时间步预测后一时间步的参数向量;另一方面,为了尽可能的记录参数向量的特点从而保证预测的相对准确性,我们将多个时间步的参数向量数据转移到第三维度feature_dim上,在我们的设计中我们将当前时间步及之前两个时间步的参数向量放到了第三维度,结合第三维度feature_X原本的温度、湿度、光强等数据,当前的第三维度是6维的,考虑到参数向量的构建,每个向量组包括ParamA、ParamB两个参数向量,则实际第三维度等价于9维,对应于输入层规格。对于标签数据而言,其与特征数据的主要区别在于其第三维度只有我们所要预测的参数向量,对应与输出层规格。至此,为了便于验证该多参数预测的准确性和可行性,在处理好的数据的基础上将整体的数据集划分为训练集和测试集,训练集用于训练可以进行多参数预测的GRU神经网络,测试集用于评估训练好的神经网络的性能好坏,本工作中以7:3的比例划分训练集和测试集,具体的数据集划分,如表I所示。此外为了消除数据间的量纲影响并优化后续的网络训练效果,可以采用StandScaler等数据标准化方法,消除原始数据中有关参数的量纲。

GRU参数向量预测模型的训练:

根据特征数据中第三维度的feature_X确定网络的输入层结构,根据标签数据中第三维度的feature_Y确定输出层结构。并根据参数向量的预测需求确定隐藏层的数目,本工作中只用一层GRU神经层作为隐藏层。在网络训练之前还需设置网络的训练参数,对于反向传播所采用的优化算法,采用效果相对较好的Adam优化算法,数据训练的轮数设置为300轮,来训练整个GRU网络的权重(weight)和偏置(bias)。训练过程中GRU网络的正向传播和反向传播使得网络的权重和偏置不断优化,不断降低模型误差提高其预测准确性,以此获得GRU多参数预测的预处理模型。针对GRU网络的一般训练过程,可参见附图4。

GRU参数向量预测模型的预测:

获取预处理模型后,便可以利用预处理模型进行时序向量的预测。预测过程中最重要的一点是给预处理模型喂的数据应当与训练时所用的特征数据在第三维度feature_X上保持一致,这一过程涉及到参数向量的构建,即先通过构建数组来容纳两个待预测的系统参数ParamA以及ParamB,之后将这个数组容器通过数据结构的手段嵌入到第三维度。模型拿到正确格式的输入数据后,便可以进行参数向量的预测了。这里以特征数据的第三维度feature_X为例,具体介绍其数据来源以及构建过程:feature_X中的数据一方面是系统当前时间步获取的环境数据,另一方面是前2个时间步以及当前时间步的两个电压参数。这里将每个时间步的两电压参数添加进数组中作为一个整体、即参数向量,之后再将参数向量嵌入第三维度。例如将系统原始的5维时序数据温度、湿度、光强、ParamA、ParamB、,在feature_X上构造成6维。feature_X中前三维的数据,温度、湿度和光强来源于QKD系统对环境的实时获取,后三维的数据由3个参数向量构成,每个参数向量包含电压ParamA、ParamB,三个参数向量分别对应着前三个时间步的两个补偿电压。此外对于预测出来的参数向量的使用也包含两方面,一方面预测的参数向量通过参数向量的解构过程,取出容器中的两个电压参数ParamA、ParamB直接交由QKD系统作为补偿参数使用。另一方面要将预测的参数向量储存起来,方便连续使用三个参数向量并结合其他环境参数,构成6维的feature_X,进行下一时间步参数向量的预测输出。

GRU参数向量预测模型的更新:

在利用预处理模型进行参数向量预测时会出现一个问题,如果一直用存储起来的参数向量进行预测,那么参数向量中补偿参数的预测误差就会越来越大。因为在进行预测时,网络会进行反向传播,存在梯度消失和梯度爆炸等问题,这不可避免的使得预测值和真实值有所偏差,试想第一次预测的值有偏差,第二次预测需要用到第一次预测的值,在偏差的基础上接着产生偏差。随着时间跨度的增大,整个模型的效果会变得越来越差。为了使QKD系统能够长时间使用GRU参数向量预测模型,就需要对模型进行周期性的更新,来减弱误差累积的影响。而对于模型的更新则需要用到真实而非预测的补偿参数构成的参数向量,所以预处理模型还需要和获取补偿参数的设备建立联系。在模拟GRU模型在实际系统的使用时,设计了30时间步作为一个微更新周期,一个周期获取3次真实的参数向量,用这连续获取的3个参数向量并结合matlab提供的网络矫正函数(predictAndUpdateState)对GRU预处理模型进行相应的微更新,从而实现系统的反馈控制。

为了更直观的展示本实施例的预测效果,接下来对模型在测试数据集上的效果进行说明。这里使用的电脑硬件配置为Intel Core i7-9750H CPU@2.6GHZ、NVIDIA GeForce GTX1650、16GB DDR4。分析GRU模型预测参数向量的效果时选取均方根误差(RMSE)作为衡量指标。均方根误差的表达式如下所示:

下面从多个仿真图对应的不同角度,来分析GRU参数向量预测模型在测试集上所表现出的效果。

从拟合曲线角度:附图5和附图6是不带有更新机制的GRU预处理模型对电压参数ParamA、ParamB的同时预测,附图7和附图8是带有微更新机制的GRU预处理模型对电压参数ParamA、ParamB的同时预测。通过比较图5、6和图7、8,可以看出带有更新机制的GRU模型在测试集上的效果要明显优于没有更新机制的GRU模型。从图7、8拟合曲线的整体来看,训练出来的GRU时序预处理模型可以对两个不同分布的系统补偿参数进行相对较好的同时预测,这也说明了GRU参数向量预测模型对多参数预测的可行性。

从均方根误差(RMSE)角度:附图9是带有微更新机制和不带有微更新机制的GRU预处理模型同时对ParamA、ParamB电压预测的误差衡量指标RMSE。由图9可知,带有更新机制的GRU模型预测电压参数ParamA的RMSE值为0.04455,预测电压参数ParamB的RMSE值为0.03615。不带有微更新机制的GRU模型预测电压参数ParamA的RMSE值为0.26139,预测电压参数ParamB的RMSE值为0.23077。比较两个不同机制的GRU模型在同一系统参数上的预测效果,可以清楚的发现带有更新机制的GRU模型对系统参数的预测效果,要比不带有更新机制的GRU模型要好。比较同一机制的GRU模型在两个参数预测的RMSE值,可以知道对于分布特性比较规律的系统参数而言,GRU模型对其处理效果要更好一点。

从和LSTM模型的横向对比角度:对GRU模型在测试集上单方面评估之后,还测试了LSTM模型在上述测试集上的效果。经过实际仿真测试,GRU模型的预测准确程度与LSTM模型的预测效果基本一致。但是GRU的训练收敛速度明显快于LSTM,即GRU模型所用的时间明显小于LSTM模型所用的时间,具体可参见附图10中GRU模型和LSTM模型在两个训练集上通过电脑GPU进行训练的训练时长图。由此可知在补偿参数分布相对简单且规则的QKD数据集上,GRU模型收敛速度较快。结合参数向量的概念,同一时刻获取多个系统稳定运行所需的补偿参数相比于传统的利用机器学习手段同一时刻获取一个系统补偿参数的方式,这样的设计极大的减少了QKD系统的工作真空期,提高了系统的工作效率。

以上验证仅是本发明的一个实施实例,应当指出:本发明不限于相位编码的BB84协议,同样适用于其他协议或其他编码方式的量子密码系统。对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对参数向量做出若干合适的设计,这样的改变或润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1