基于神经网络的量子纠错解码方法、装置及芯片与流程

文档序号:21777518发布日期:2020-08-07 19:44阅读:630来源:国知局
基于神经网络的量子纠错解码方法、装置及芯片与流程

本申请实施例涉及人工智能和量子技术领域,特别涉及一种基于神经网络的量子纠错解码方法、装置及芯片。



背景技术:

由于量子比特非常容易受到噪声的影响,所以直接在物理量子比特上实现量子计算以目前的技术来看还不现实。量子纠错码和容错量子计算技术的发展,原则上提供了在有噪声量子比特上实现任意精度量子计算的可能。

如果仅仅是针对量子信息进行存储,那我们可以检测并收集所有的错误症状并在最后根据所有的症状信息进行纠错,这种纠错方式称为后处理。但是在进行容错量子计算时,量子电路本身会实时改变错误类型,仅仅依靠症状信息无法正确跟踪定位发生在不同时空的错误。为了使量子计算能够顺利进行,必须在得到错误症状之后立刻进行解码,并在量子算法的每一个计算步骤运行之前(或者下一轮纠错开始之前)完成纠正错误。这种称为实时纠错,是实现大规模通用量子计算必不可缺的技术。

实时纠错对量子纠错码的解码算法的运行时间裕度提出了很高的刚性要求,但目前的一些量子纠错码的解码算法无法满足实时纠错的要求。



技术实现要素:

本申请实施例提供了一种基于神经网络的量子纠错解码方法、装置及芯片,可以缩减量子纠错码的解码算法的解码时间,从而满足实时纠错的要求。所述技术方案如下:

一方面,本申请实施例提供一种基于神经网络的量子纠错解码方法,所述方法包括:

获取量子电路的错误症状信息,所述错误症状信息是由量子纠错码的稳定子生成元的本征值构成的数据阵列;

通过神经网络解码器对所述错误症状信息进行分块特征提取,得到特征信息;其中,所述神经网路解码器的特征提取层用于对输入数据进行分块特征提取,所述分块特征提取是指对输入数据进行分块得到至少两个区块后,采用至少两个特征提取单元对所述至少两个区块进行并行的特征提取处理;

通过所述神经网络解码器对所述特征信息进行融合解码处理,得到错误结果信息,所述错误结果信息用于确定所述量子电路中发生错误的数据量子比特以及相应的错误类型。

另一方面,本申请实施例提供一种基于神经网络的量子纠错解码装置,所述装置包括:

症状信息获取模块,用于获取量子电路的错误症状信息,所述错误症状信息是由量子纠错码的稳定子生成元的本征值构成的数据阵列;

分块特征提取模块,用于通过神经网络解码器对所述错误症状信息进行分块特征提取,得到特征信息;其中,所述神经网路解码器的特征提取层用于对输入数据进行分块特征提取,所述分块特征提取是指对输入数据进行分块得到至少两个区块后,采用至少两个特征提取单元对所述至少两个区块进行并行的特征提取处理;

融合解码处理模块,用于通过所述神经网络解码器对所述特征信息进行融合解码处理,得到错误结果信息,所述错误结果信息用于确定所述量子电路中发生错误的数据量子比特以及相应的错误类型。

另一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述基于神经网络的量子纠错解码方法。

另一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述基于神经网络的量子纠错解码方法。

还一方面,本申请实施例提供一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,所述芯片在计算机设备上运行,用于实现上述基于神经网络的量子纠错解码方法。

又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述基于神经网络的量子纠错解码方法。

本申请实施例提供的技术方案至少包括如下有益效果:

通过对量子电路的错误症状信息进行分块特征提取,得到多组特征信息,然后进一步对上述多组特征信息进行融合解码处理,得到错误结果信息;由于采用了分块特征提取的方式,相比于对输入数据进行完整特征提取,一方面,会使得每一次特征提取得到的特征信息的通道数减少,而下一次特征提取的输入数据就会减少,这有助于减少神经网络解码器中特征提取层的数量,从而缩短神经网络解码器的深度,由于神经网络解码器的深度缩短了,其解码时间也会相应地得到缩减;另一方面,在进行分块特征提取时,采用多个特征提取单元对多个区块进行并行地特征提取处理,也即多个特征提取单元可以同步(或称为同时)地进行特征提取处理,这也有助于缩减特征提取所需的耗时,从而缩减解码时间;最终,综合上述两方面因素,在采用神经网络解码器进行量子纠错解码时,解码时间充分缩减,从而满足实时纠错的要求。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例示出的一种表面码的结构示意图;

图2是本申请实施例示出的一种表面码错误发生的示意图;

图3是本申请一个实施例提供的方案应用场景的示意图;

图4是图3所示方案应用场景所涉及的纠错解码过程的示意图;

图5是本申请一个实施例提供的基于神经网络的量子纠错解码方法的流程图;

图6是本申请一个实施例示出的分块特征提取的示意图;

图7是本申请一个实施例提供的本征值测量电路的示意图;

图8是本申请一个实施例示出的含噪声情况下的错误症状示意图;

图9是本申请一个实施例示出的三维症状分布的示意图;

图10是本申请一个实施例示出的噪声和症状的时空特征的截面图;

图11是本申请另一个实施例示出的分块特征提取的示意图;

图12是本申请另一个实施例提供的基于神经网络的量子纠错解码方法的流程图;

图13是本申请一个实施例示出的完美错误症状信息的示意图;

图14是本申请另一个实施例提供的基于神经网络的量子纠错解码方法的流程图;

图15是本申请一个实施例示出的容错纠错解码过程的示意图;

图16是本申请另一个实施例提供的基于神经网络的量子纠错解码方法的流程图;

图17是本申请一个实施例示出的仿真结果比较的示意图;

图18是本申请一个实施例提供的基于神经网络的量子纠错解码装置的框图;

图19是本申请另一个实施例提供的基于神经网络的量子纠错解码装置的框图;

图20是本申请一个实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本申请实施例进行介绍说明之前,首先对本申请中涉及的一些名词进行解释说明。

1、量子计算(quantumcomputation,qc):利用量子态的叠加和纠缠性质快速完成特定计算任务的方式。

2、量子隐形传态(quantumteleportation):是一种利用分发量子纠缠态,并传输一些经典信息的方式来传送任意未知量子态至任意距离的技术。

3、量子纠错码(quantumerrorcorrection,qec):将量子态映射到多体量子系统希尔伯特空间中的一个子空间中编码的方式。量子噪声会把编码量子态迁移到其他子空间。通过持续观测量子态所在的空间(症状提取),我们可以做到评估并纠正量子噪声的同时,不干扰编码量子态,从而保护编码量子态不受量子噪声的干扰。具体来说,一个[[n,k,d]]量子纠错码代表在n个物理量子比特中编码k个逻辑量子比特,就用来纠正任意个发生在任意单量子比特上的错误。

4、数据量子态:用来在量子计算时存贮量子信息的数据量子比特的量子态。

5、稳定子生成元(stabilizergenerator):也称奇偶校验算子。量子噪声(错误)的发生会改变某些稳定子生成元的本征值,从而我们可以根据这些信息进行量子纠错。

6、稳定子群(stabilizergroup):稳定子群是由稳定子生成元生成的群。如果有k个稳定子生成元,那么稳定子群中就包括2k个元素,这是一个可交换群(abeliangroup)。

7、错误症状(errorsyndrome):当没有错误时,稳定子生成元的本征值为0;当量子噪声发生时,某些纠错码的稳定子生成元(奇偶校验算子)的本征值会变成1。这些0,1症状比特构成的比特串称为错误症状。

8、症状测量电路:又称就校验电路,是获取错误症状的量子线路。一般情况下,该电路自身会有被噪声污染。

9、拓扑量子纠错码(topologicalquantumcode):量子纠错码中的一种特殊类别。这类纠错码的量子比特分布为在大于2维的格子阵列上。格子构成一个高维流形的离散结构。此时纠错码的稳定子生成元定义在几何上近邻且有限的量子比特上,所有在几何上是定域且容易测量的。这类纠错码的逻辑算子作用的量子比特在格点阵列的流形上构成一类拓扑非平凡的几何对象。

10、表面码(surfacecode)表面码是一类定义在二维流形上的拓扑量子纠错码。它的稳定子生成元通常由4个量子比特支撑(在边界处由2个量子比特支撑),逻辑算子为条状跨越阵列的非平庸链。表面码具体的二维结构(5×5,总共25个数据两种比特和24个辅助量子比特,可以纠正任意发生在两个量子比特上的错误)如图1所示:白色的圆圈11代表用来做量子计算的数据量子比特,黑色的圆圈12代表辅助量子比特。辅助量子比特初始制备在|0>或者|+>态。斜线填充13和白色填充14的方块(或者半圆形)代表两种不同类型的稳定子生成元,分别用于检测z错误和x错误。在本申请中,将使用如图1所示的旋转表面码(rotatedsurfacecode),因为它可以节省大约一半的物理量子比特,更方便在近期的实验上验证。

11、表面码尺度l:表面码阵列周长的四分之一。图1中的表面码阵列l=5。

12、稳定子码:由一组稳定子生成元定义的量子纠错码。稳定子生成元是一组互相对易且独立的作用在n个量子比特上的泡利算符。这组泡利算符的共同本征值为+1的本征子空间即为稳定子码的编码空间。

13、同源类(homologyclass):在拓扑里,同源理论中的同源类由边界为0的几何子对象的有限线性组合表示。如果这种线性组合的几何对象可以看成是维度大于1的几何对象的边界,则认为它与“0”(这里的0是指拓扑意义上的平庸类——可以连续收缩到点的几何对象)同源。在下文中,有时与“错误类”混用。

14、x和z错误:在物理量子比特的量子态上产生的由随机产生的泡利x和泡利z演化错误。根据量子纠错理论,如果纠错码可以纠正x和z错误,那就可以纠正任意发生在单量子比特上的错误。

15、容错量子纠错(faulttolerantquantumerrorcorrection(ftqec)):真实量子计算中的所有操作过程,包括量子门和量子测量都带有噪声。也就是说即使用来做量子纠错的电路本身也含有噪声。容错量子纠错是指我们可以通过巧妙设计纠错电路后可以使用带有噪声的纠错电路进行纠错,并且仍然能达到纠正错误并阻止错误随时间扩散的目的。

16、容错量子计算(faulttolerantquantumcomputation,ftqc):即有量子纠错保护的量子计算。在量子计算的过程中,任意物理操作都带有噪声,包括量子纠错电路本身和量子比特测量。同时假设经典操作是不带噪声的。容错量子计算是通过合理地设计量子纠错方案,并对编码的逻辑量子态进行特定方式门操作的方法,来保证使用带噪声量子比特进行量子计算的过程中,可以有效控制并纠正错误的技术方案。

17、物理量子比特:使用真实物理器件实现的量子比特。

18、逻辑量子比特:在纠错码定义的希尔伯特子空间中的数学自由度。其量子态的描述通常是多体纠缠态,一般为多个物理量子比特联合希尔伯特空间的二维子空间。容错量子计算需要运行在受到纠错码保护的逻辑量子比特上。

19、物理量子门/电路:作用在物理量子比特上的量子门/电路。

20、逻辑量子门/电路:作用在逻辑量子比特上的量子门/电路。

21、数据错误:发生在数据量子比特上的错误。

22、测量错误:由测量过程不完美引起的错误。

23、阈值定理(thresholdtheorem):对符合容错量子计算要求的计算方案,当所有操作的错误率低于某个阈值时,可以通过使用更好的纠错码,更多的量子比特,更多的量子操作,使计算的正确率可以任意逼近到1,同时这些额外的资源开销相对于量子计算的指数加速可以忽略不计。

24、神经网络:人工神经网络是由大量的简单基本元件——神经元相互联接而成的自适应非线性动态系统。每个神经元的结构和功能比较简单,但大量神经元组合产生的系统行为却非常复杂,原则上可以表达任意函数。

25、卷积神经网络(convolutionalneuralnetwork,cnn):卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络。卷积层(convolutionallayer)是卷积神经网络的核心基石,即离散二维或者三维滤波器(也称作卷积核,分别为二维或者三维矩阵)与二维或者三维数据点阵进行卷积操作。

26、线性整流层(rectifiedlinearunitslayer,relulayer):使用线性整流(rectifiedlinearunits,relu)f(x)=max(0,x)作为神经网络的激励函数。

27、误差反向传播算法(bp(backpropagation)):是人工神经网络中的一种监督式的学习算法。bp神经网络算法在理论上可以逼近任意函数,基本的结构由非线性变化单元组成,具有很强的非线性映射能力。

28、fpga:fieldprogrammablegatearray,现场可编程门阵列芯片。

本申请技术方案涉及量子技术和人工智能技术领域。人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

本申请实施例提供的方案涉及人工智能的机器学习技术在量子技术领域的应用,具体涉及机器学习技术在量子纠错码的解码算法中的应用,具体通过如下实施例进行说明。

一般来说,对量子纠错码的稳定子生成元进行测量(也称为奇偶校验)需要引入远距离量子门,并同时要求通过额外的量子比特来制备复杂的量子辅助态来完成容错纠错。由于目前实验手段的限制,人们现在还没有能力实现高精度的远距离量子门,也还没有能力制备复杂的量子辅助态。而使用表面码做容错量子纠错和容错量子计算方案并不需要使用远距离量子门和制备复杂的量子辅助态,所以被认为极有可能利用当前的技术来实现通用容错量子计算机。

作为一个纠错码,当错误发生后,我们可以通过进行奇偶校验来得到错误症状;然后根据这些症状,我们还需要通过具体的针对纠错码的解码算法来判断错误发生的位置和类型(是x错误,z错误,还是两者皆有,即y错误)。对表面码来说,错误和错误症状是有具体的空间位置的:当有错误引起症状时,对应位置的辅助量子比特的本征值为1(可以看成是该位置出现了一个点粒子),没有错误时,对应位置的辅助量子比特的本征值为0。这时,解码可以归结为以下问题:给定一个空间数字阵列(2维或者3维,数值为0或者1),根据特定的错误发生模型(errormodel)——发生在量子比特上的错误概率分布——推理最大可能发生错误的是哪些量子比特,及具体的错误类型,并根据这个推理结果进行错误纠正。

如图2所示,其示出了表面码错误发生的示意图。量子比特在二维阵列的边上,测量错误症状的辅助量子比特在二维阵列的节点上(这些症状为完美测量)。图2中黑色边21代表发生错误的量子比特形成的错误链,斜线填充的圆圈部分22代表由错误引发的症状值为1的点。只要能通过点状症状确定链状错误即可完成解码。

在上文已经介绍,采用纠错码的解码算法(也可以称为解码器)对错误症状信息进行解码,即可得到相应的错误结果信息,如包括错误发生的位置和类型。一个解码器的解码能力可以从如下四个关键指标来衡量:解码算法复杂度、解码时间、解码性能,以及能否适合进行实时纠错。

解码算法复杂度:指运算解码算法需要的总的基本计算步骤,对应计算复杂性。

解码时间:这里的时间是一个虚的概念,与真实解码时间有所区别,但有很强的关联。这里指的是对解码算法充分并行化后的算法深度。

解码性能:用某个特定的噪声模型解码之后在逻辑量子比特上的错误率来衡量。对同一个物理量子比特错误率,逻辑错误率越低,解码性能越好。

适合实时纠错:由于量子比特寿命较短(举例来说,超导量子比特的寿命在较好的工艺下大约在50微秒左右,由于错误的发生随着时间增长在逐步积累,理论要求整个纠错过程消耗时间小于超导量子比特寿命的1/100,也就是说,纠错时间的刚性裕度为500ns左右,不然错误发生率可能会超出表面码的纠错能力),cpu(centralprocessingunit,中央处理器)和gpu(graphicsprocessingunit,图形处理器)有内存读取和写入时间的不确定性导致的长时间延迟无法满足需求,且cpu/gpu的计算微结构并没有针对解码算法进行优化,所以很难达到性能指标。本申请考虑将解码算法移植到特定计算设备如fpga(fieldprogrammablegatearray,现场可编程门阵列)或者asic(applicationspecificintegratedcircuit,专用集成电路)上。而这类设备更适合运行简单的步骤以并行化(例如向量内积,矩阵乘法等),并不适合运行复杂的带有条件判定和跳转的指令。最后,由于fpga/asic的大部分芯片面积被用于做实时计算,可以预留的片上高速缓存有限,这就要求我们不能过多地在片上预载入数据。

通过基于神经网络来构建解码器(可以称为神经网络解码器),对错误症状信息进行解码,得到相应的错误结果信息。由于解码过程本身就是一个输入(错误症状信息)输出(错误结果信息)的函数,所以可以构造神经网络,并用正确的输入输出结果去训练神经网络学习如何判断错误的位置和类型(监督学习)。根据神经网络解码器输出类型的不同可以分成两类:一类是物理级,一类是逻辑级。物理级输出的模型直接生成具体的错误发生的量子比特信息,即具体哪个数据量子比特发生了何种类型的错误。逻辑级输出的模型输出的是一个具体错误经过特定映射之后的逻辑错误类(对表面码来说则为同源类),然后可以根据这个逻辑错误类反推具体发生在数据量子比特上的等价错误(这个推得的错误未必与原始发生的错误完全相同,但产生的效果是一样的,这是量子纠错码特有的错误简并现象)。较为常见的神经网络解码算法使用全联通网络、cnn、rnn(recurrentneuralnetwork,循环神经网络)等。神经网络的运算大部分都是矩阵运算,可以高度并行化并非常适合在特定硬件(如fpga或者asic)上以很短的实时计算时间运行,具备较大的实际应用潜力。

神经网络解码器的解码算法复杂度、解码时间、解码性能及是否适合实时纠错均取决于所选取神经网络模型本身,且与使用的是物理级输出还是逻辑级输出相关。对不同的神经网络,各方面都会有较大的差异。在表面码尺度较小时,构造神经网络相对容易,而且解码性能一般能够远超过mwpm(minimumweightperfectmatching,最小权重完美匹配)解码算法的性能,并接近于最优解码器(optimaldecoder)。但是目前的神将网络模型普遍无法对大尺度的表面码进行解码,因为为了达到预训练这种表面码的神经网络需要的样本数随l(即上文介绍的表面码尺度)指数上升。同时已知的针对大尺度表面码的神经网络的深度较深,并不一定适合于实时纠错。另一方面,虽然神经网络算法本身非常适合于用fpga/asic来实现,但是对物理级解码器,解码时间并不固定,在极端情况下解码时间会非常长。

相比于其它解码算法,神经网络解码器对小尺度表面码可以达到很好的解码性能,同时使用的解码时间也相对较短。本申请技术方案在神经网络算法框架的基础上,试图解决它所面临的问题。本申请技术方案提供的神经网络解码器,采取类似于分而治之(divideandconquer)的思想,对错误症状信息进行分块特征提取。这样,我们就能保证神经网络的深度很浅,因为深度给定了解码时间的下界。另外,神经网络解码器可以使用逻辑级输出,有助于降低其复杂度,从而进一步缩减解码时间。同时为了适应实时纠错的需求,本申请技术方案设计的网络结构也很简单,所有基本计算都可以较为方便地使用硬件并行化直接完成(矩阵乘法和加法),同时网络参数总量随着对应表面码尺寸增长而温和增长(至多随l为多项式增长,所有网络参数需要预先载入fpga/asic片上缓存,所以数量不能太多)。同时,训练该神经网络解码器达到所需要解码性能所使用的样本数和数据体积也随l温和增长,这样,我们的解码器就是可扩展的。数值仿真显示我们的解码器在l不大的情况下解码性能超过mwpm,具有不错的解码性能。

请参考图3,其示出了本申请一个实施例提供的方案应用场景的示意图。如图3所示,该应用场景可以是超导量子计算平台,该应用场景包括:量子电路31、稀释制冷机32、控制设备33和计算机34。

量子电路31是一种作用在物理量子比特上的电路,量子电路31可以实现成为量子芯片,如处于绝对零度附近的超导量子芯片。稀释制冷机32用于为超导量子芯片提供绝对零度的环境。

控制设备33用于对量子电路31进行控制,计算机34用于对控制设备33进行控制。例如,编写好的量子程序经过计算机34中的软件编译成指令发送给控制设备33,控制设备33将上述指令转换为电子/微波控制信号输入到稀释制冷机32,控制处于10mk的超导量子比特。读取的过程则与之相反。

如图4所示,本申请实施例提供的基于神经网络的量子纠错解码方法需要与控制设备33结合,当控制设备33的总控系统33a(如中央板fpga)从量子电路31读取到错误症状信息之后,总控系统33a发出纠错指令到控制设备33的纠错模块33b,该纠错指令中包括上述量子电路31的错误症状信息,纠错模块33b可以是fpga或asic芯片,纠错模块33b运行基于神经网络的量子纠错解码算法,对错误症状信息进行解码,并实时将解码得到的错误结果信息转换成纠错控制信号发送给量子电路31进行错误纠正。

为了方便后面的介绍,这里先介绍解码量子纠错码的基本算法。作为一个纠错码,当错误发生后,可以通过进行奇偶校验来得到错误症状(syndrome)。根据这些症状,还需要通过具体的针对纠错码的解码算法来判断错误发生的位置和类型(是x错误,z错误,还是两者都有,即y错误)。也就是说,解码过程可以等价为:给定一个错误发生模型(发生在量子比特上的错误的概率分布)和单次测量所得到的症候,推理最大可能发生的错误是什么。

与一般纠错码不同,表面码的错误和症状均具有几何意义,对表面码来说,如果不考虑纠错过程自身的错误(也即测量过程如果是完美,称为完美症状),那么错误症状可以认为是一个由0,1组成的二维阵列图像。对表面码来说,就是通过这些症状的位置来判定错误发生的位置和类型。根据量子纠错理论,我们有两类错误需要纠正,即x和z错误,这样对应的也有关于x和z错误的症状。我们可以分别对x和z错误进行纠错,这两类症状的纠错方式也是类似的。更优化的方案则应该是同时对x和z错误进行纠错,因为在很多情况下,这两类错误是相关的(mwpm无法同时利用两类错误的症状的关联)。针对无噪声(完美)错误症候,我们先介绍一下最大后验估计(maximumaposterior,map)算法,同时也是最优算法。

定义s为[[n,k,d]]量子纠错码的稳定子群(stabilizergroup),定义l为s在n位泡利群中的某个规范子类。对任意发生的泡利错误e,我们总可以把他拆解为:

e=l(e)t(s(e));

这里,l(e)∈l属于某个规范子类l,且是e的函数,s(e)是错误e的症状,是根据错误症状映射的一个错误,该映射产生一组错误集合,与症状集合一一对应,t(s(e))称为简单纠错(simpledecoding),而这个错误集合里的元素称为简单错误(simpleerror)。选取t(s(e))有很大的任意性,但是某些特定的选取方式将帮助我们更好地理解。这里我们不对此进行展开。对另一个错误e’,如果e和e’具有同样的错误症状,则:

e′=l(e′)t(s(e′)=s(e));

只要l(e′)和l(e)都属于同一个规范子类l,那么这两个错误只相差一个稳定子群中的元素,也就是说他们对编码空间的作用是等价的,我们可以选取e’对e进行纠错(也即,真实发生的错误是e,但是实际可以根据e’进行纠错,因为两者是等价的),并得到一样的效果。对以表面码为代表的拓扑量子纠错码而言,不同的规范子类l,代表算子所属不同的拓扑同源类。对拓扑纠错码,在下文中我们将以使用“同源类”或者“错误类”等名词来代表规范子类。值得注意的一点是,属于同源类的错误不会产生任何错误症状(错误症状全部为0),因此这类错误和逻辑错误是等价的。原因在于,同源类的错误造成在数学上就是逻辑错误。逻辑错误发生在编码空间,对其进行症状测量的结果就全部为0。

这样,给定发生的错误e,map解码器的推理过程可以写为:

也即是说我们只需要判定错误在去除简单错误之后最有可能属于哪个规范化子类(nomarlizerclass)即可,然后在选取该类中任意元素乘以简单解码器的输出错误即可得到需要纠正的错误。也就是说,解码问题等价于一个分类问题。对表面码来说,规范化子类对应的三个类就是逻辑量子比特的x、y和z三个算子及他们等价算子的集合。而这正好可以通过高性能的神经网络分类器有效解决(逼近最优解)。在以很高正确率估计同源类后,由于错误症状是完美的,我们可以立刻得到简单错误t(s(e))并乘以中的任意元素得到我们需要纠正的错误:

(此公式记为“式1”)

相较于一般纠错码,表面码的错误和症状均具有几何意义,对表面码来说,如果不考虑纠错过程自身的错误(也即整个症状测量过程是完美的,称为完美错误症状信息),那么错误症状信息可以认为是一个由0,1组成的二维阵列图像。对表面码来说,纠错就是通过对这些症状的位置来判定错误发生的位置和类型。为了后续的书写的方便,这里我们介绍一类有几何意义的简单解码器——这个简单解码器对理解我们的容错纠错解码框架可以提供比较直观的刻画——我们称之为“最小边界距离”解码器。由于表面码的奇偶校验算子分别侦测x错误和z错误。由于这两错误是对称的,所以我们只考虑其中一种,假设是z错误。对旋转表面码来说,任意一个值为1的症状比特,我们看做它是由一个x算子链(错误链)产生,且该链作用在将症状点连接到两个边界中任意一个。我们取所有这些链中距边界距离最小的那个,并记录这个症状点对应的简单错误。如图5所示,其示出了单个症状点对应的简单错误的示意图,在图5中,黑色圆点51表示单个值为1的症状点,直线52代表x类型简单错误链,该错误链为连接症状点到边界的最短距离。对于l×l的旋转表面码,对x类错误,我们需要对(l2-1)/2个值为1的症状都使用“最小边界距离”解码器进行解码,并记录其对应的简单错误为:

{eα|α=1,...(l2-1)/2};

然后,当我们测量得到症状时,我们定义简单解码器的解码输出为也即所有症状比特为1的简单错误的乘积。同样地,对z类错误,也需要对(l2-1)/2个值为1的症状都使用“最小边界距离”解码器进行解码,并记录其对应的简单错误。最终构建出一个包含(l2-1)组映射关系的映射表,每一组映射关系包括一个错误症状点和一个简单错误之间的映射关系。注意简单解码过程可以并行(本质是一个查表过程后求和),在实际情况下,时间复杂度可以为o(1)。

使用map或者最优算法进行解码的复杂性是在np-complete(np完全或np完备)的,也就是说我们必须使用近似的方法来逼近最优解。量子纠错码的各类解码算法都可以认为是一种对最优解的近似。本申请技术方案主要采取神经网络解码器进行近似。

请参考图5,其示出了本申请一个实施例提供的基于神经网络的量子纠错解码方法的流程图,该方法可应用于图3所示应用场景的控制设备中,该方法可以包括如下几个步骤(501~503):

步骤501,获取量子电路的错误症状信息,该错误症状信息是由量子纠错码的稳定子生成元的本征值构成的数据阵列。

采用量子纠错码对量子电路进行错误症状测量,可以得到相应的错误症状信息,该错误症状信息是由量子纠错码的稳定子生成元的本征值构成的数据阵列。可选地,错误症状信息是由0和1组成的二维或三维的数据阵列。例如,当没有错误时,稳定子生成元的本征值为0;当有错误发生时,稳定子生成元的本征值为1。

以量子纠错码是表面码为例,对表面码来说,错误和错误症状是有具体的空间位置的:当有错误引起症状时,对应位置的辅助量子比特的本征值为1(可以看成是该位置出现了一个点粒子),没有错误时,对应位置的辅助量子比特的本征值为0。因此,对表面码来说,如果不考虑纠错过程自身的错误(也即测量过程如果是完美,称为完美症状),那么错误症状信息可以认为是一个由0,1组成的二维阵列图像,如图6所示。

步骤502,通过神经网络解码器对错误症状信息进行分块特征提取,得到特征信息。

步骤503,通过神经网络解码器对特征信息进行融合解码处理,得到错误结果信息,该错误结果信息用于确定量子电路中发生错误的数据量子比特以及相应的错误类型。

神经网络解码器是基于神经网络构建的用于对错误症状信息进行解码的机器学习模型。该神经网络解码器的输入数据即为错误症状信息,输出数据即为与该错误症状信息对应的错误结果信息。神经网络解码器在对错误症状信息进行特征提取时,使用分而治之的思想,采用分块特征提取方式。也即,神经网路解码器的特征提取层用于对输入数据进行分块特征提取。所谓分块特征提取,是指神经网络解码器的特征提取层在提取特征信息时,将输入数据进行分块,划分为多个小块,对各个小块分别进行特征提取。也即,分块特征提取是指对输入数据进行分块得到至少两个区块后,采用至少两个特征提取单元对该至少两个区块进行并行的特征提取处理。其中,至少两个区块和至少两个特征提取单元一一对应,每个特征提取单元用于对一个区块进行特征提取,区块和特征提取单元的数量相同。另外,上述至少两个区块在进行特征提取时,是并行的,也即是同时进行的,从而有助于缩减特征提取所需的耗时。

我们先考虑可以获得完美错误症状的情况,这种情况可以检验模型的有效性。由于解码问题可以等效为一个分类问题,所以我们可以尝试使用传统的神经网络对不同输入的错误症状进行分类。最简单的做法是使用一个全连通网络,由输入层(inputlayer),中间隐藏层(hiddenlayers),输出层(outputlayer)组成。输出层则只包含四个需要做分类的同源类(i,x,y,z);其中,i表示没有错误,x表示x错误,z表示z错误,y表示既有x错误又有z错误。问题在于,这样的网络随着需要解码的表面码的尺度变得越来越大,所含的参数数量指数上升,训练难度(所需要的数据集和收敛时间)也指数上升。为了应对这种情况,本申请提出使用分而治之的思想,采用分块特征提取方式。即将大的表面码拆成一小块一小块,对一小块进行“分类”(此处的“分类”是指提取特征信息),然后再将分类的信息(各个类的概率)往上一层传递,然后上一层根据下一层传递的信息以及在上一层等价的错误症状再判断该层各错误类的发生概率。以此递归,直到最终汇总出整个表面码的错误类的概率后进行分类并纠错。

在示例性实施例中,神经网络解码器包括m个级联的特征提取层,m为正整数。特征提取层是用于特征提取的神经网络层。上述步骤502可以包括:通过m个特征提取层对错误症状信息进行分块特征提取,得到特征信息。其中,第1个特征提取层用于对错误症状信息进行分块特征提取,第i个特征提取层用于对前一个特征提取层的特征提取结果进行分块特征提取,i为大于1且小于等于m的整数。

可选地,神经网络解码器还包括多个级联的特征融合层,特征融合层是用于对特征提取层提取的特征信息进行融合解码处理的神经网络层。

以卷积神经网络为例,特征提取层即为卷积层,特征融合层可以是全连通层。神经网络解码器包括输入层、至少一个卷积层、至少一个全连通层和输出层。卷积层的数量通常为多个,全连通层的数量通常也为多个。如图6所示,错误症状信息61被划分为多个数据单元,图6中以错误症状信息为4×4数据阵列为例,其被划分为4个数据单元(不同的数据单元在图6中以不同的填充示出),每个数据单元为2×2子阵列。错误症状信息61输入到神经网络解码器62中。对于神经网络解码器62的卷积层,采用分块特征提取方式,不同的数据单元同时被一个相同的卷积核读取,如果需要读取c个特征,就需要c个这样的卷积核。其中,c为卷积层对应的通道数。对于一个尺度为l的表面码,每次卷积对应的子阵列的尺度为l,我们第一层需要一个从1个通道映射到c1(l)个通道的l×l卷积核,第二层需要一个从c1(l)个通道映射到c2(l)个通道的l×l卷积核,以此类推,总共需要约log(l/l)层卷积。其中通道数是一个需要调节的超参数,随着l增长。最终从卷积层输出一个大小约为o(clog(l/l)(l))的阵列,将其输入到全连通层,然后每经过一个全连通层,如果我们选取ck(l)~o(l2),则全联通层的深度约为o(logl),这样即使对很大尺度,我们也可以使用较小深度的模型。这样,模型的深度渐进为o(logl)。如果我们选取ck(l)~o(l2),那么第k层到第k+1层的卷积神经网络包含o(l2)参数,全部卷积层的总参数量为o(l4logl)。同样,全连通层总参数也是o(l4logl)。注意,这里子阵列大小对每一次重整化也可以选择不同的数值。注意这个增长方式很明显是多项式而非指数的,也就是我们的方案应该是可以扩展的。

以错误症状信息为一个8×8数据阵列为例,可以分割成16个2×2的子阵列,第一层卷积层的卷积核尺寸为2×2,通过该第一层卷积层进行分块特征提取,可以得到一个4×4的特征数据阵列,该4×4的特征数据阵列可以分割成4个2×2的子阵列,第二层卷积层的卷积核尺寸为2×2,通过该第二层卷积层进行分块特征提取,可以得到一个2×2的特征数据阵列。需要说明的是,在对错误症状信息或特征数据阵列进行分块时,划分出的各个子阵列的尺寸可以相同,也可以不同。在不同量子比特错误率不相同的情况的,不同的尺寸原则上会带来优势。但是尺寸相同的话比较容易操作,无论是训练还是推理。

可选地,特征提取层在进行分块特征提取时,任意两个分块之间无交集。也即,对于每一层特征提取,所有的子阵列之间没有通信,卷积核作用的区域之间也没有症状的交集。只有当他们的特征信息收集后汇总到下一层时他们的信息才被同时加工综合利用。由于我们这里的特征提取未必对应到具体的量子比特错误概率,我们不需要进行信心传播(beliefpropagation)来对齐边际概率(marginalprobability),这同时也会简化算法并很有可能提供更好的性能。

示例性地,以l=15为例子对算法进行说明。这里总共两层卷积:第一层卷积我们可以使用4×4的卷积核,从1个通道映射到500个通道;第二层卷积核大小为2×2,从500个通道映射到1000个通道,这时第二层神经元数目为4000。我们然后使用全连通网络对这4000个神经元的数值进行分类:第一层全连通层连接4000和1024个神经元;第二层全连通层连接1024和512个神经元,第三层全连通层连接512和128个神经元,第四层全连通层连接128到4个(i,x,y,z)。具体网络模型的pytorch代码可以如下:

从上述示例可以看出,去除简单的relu层,整个神经网络的层数只有6层,是非常浅的神经网络。

基于神经网络解码器输出的错误结果信息,可以确定出量子电路中发生错误的物理量子比特以及相应的错误类型。例如,确定出量子电路中发生错误的物理量子比特的位置,以及该位置处发生错误的物理量子比特的错误类型,如是x错误、z错误还是y错误。

可选地,为了降低神经网络解码器的复杂度,从而进一步缩减解码时间,神经网络解码器可以使用逻辑级输出。在这种情况下,神经网络解码器输出的错误结果信息包括逻辑级输出结果,该逻辑级输出结果是指错误经过特定映射之后的逻辑错误类。

另外,在进行实时量子纠错时,本申请对两类稳定子生成元的测量(奇偶校验)电路如图7所示。其中,图7中(a)部分示出了侦测z错误的稳定子生成元的本征值测量电路,图7中(b)部分示出了侦测x错误的稳定子生成元的本征值测量电路。在这个电路中,受控非门(controlnot,cnot)的作用顺序非常重要,不可有前后颠倒,不然会引起不同的量子门使用相同量子比特而引发的冲突。在此过程中,所有的步骤,包括受控非门,辅助态制备和最后的辅助态测量都会引起噪声。因为受控非门会传递错误,x和z这两类症状测量又是相互嵌套的。图7所示的排放方式可以最大程度地减少错误的传播,使其对纠错能力的影响忽略不计。其他顺序排放会大大地降低纠错的能力。

图8示出了症状测量电路(也可称为本征值测量电路或奇偶校验电路)含噪声情况下的错误症状示意图。在图8中,白色点81代表测量值为1且测量正确的错误症状,黑色点82代表测量值为1且测量错误的错误症状。其中,左下角中心带白色的黑色点,代表本来应该测到1,结果却测到0。可以预期,即使只有一个不正确的症状点也会带来灾难性的结果(这是由于表面码采用了简单的症状测量电路所导致的,根据一个不正确的症状点进行解码纠错会带来非常多的错误从而立刻超出纠错码的纠错能力),所以我们不能依赖一次症状测量的结果。与之对应,我们需要做多次症状测量。理论上,为了保证容错纠错的有效性,我们需要收集t=o(l)次测量的错误症状信息,并利用这些症状一起推断哪里发生了哪些错误进行纠错。

如图9所示,其示出了一种三维症状分布的示意图,纵向是时间。可以看成是一个三维的0,1组成的数据阵列。在图9中,总共包括4个分片91,每一个分片91代表一次测量获取的错误症状信息。在每一个分片91中,一部分黑色圆点代表测量z错误的症状本征值为1,另一部分黑色圆点代表测量x错误的症状本征值为1,在图9中没有进行区分。

同时我们也可以注意到,发生在症状测量电路的噪声可以等价为一个发生在量子比特上的随机噪声和一个辅助态测量本身引发的噪声。这样,所有噪声和症状的时空特征的一个截面类似图10所示。在图10中,斜线填充线段101代表症状为1,黑色填充线段102代表发生的错误;横向的错误表示发生在数据量子比特上的错误,纵行的错误表示对辅助量子比特测量引起的错误;这两类错误综合(“相加”)起来必定是三维空间(时间上无限延伸)上的一个闭合曲线。值得注意的是,此时即使物理上量子比特的噪声是独立的,但是这个等价的发生在量子比特上的噪声确是弱关联的,这是因为受控非门会将发生在一个辅助量子比特上的噪声传播到两个数据量子比特。但是这种程度的关联是损害有限的,因为它们在表面码的纠错范围之内,但是他们仍然会使纠错性能发生微弱的退化。

在示例性实施例中,为了保证量子纠错解码的有效性,获取的错误症状信息包括t个数据阵列,每个数据阵列是采用量子纠错码对目标量子电路进行一次错误症状测量得到的,t为大于1的整数。可选地,如上文介绍,t=o(l)。

在这种情况下,在获取错误症状信息之后,将该错误症状信息划分为至少两个数据单元;其中,一个数据单元包括t个数据阵列中位于相同位置的t个阵列单元。具体的神经网络算法如图11所示,其构造和完美症状情况下非常相似,但是也有不同之处。如图11所示,错误症状信息111被划分为多个数据单元,图11中以错误症状信息为4×4×4数据阵列为例,其被划分为4个数据单元(不同的数据单元在图11中以不同的填充示出),每个数据单元为2×2×4子阵列。错误症状信息111输入到神经网络解码器112中。对于神经网络解码器112的卷积层,采用分块特征提取方式进行特征信息的提取。在实时纠错过程中,除了对同源类分类外,我们还需要对症状进行分类。为避免重复,此处我们仍然只列出对同源类的分类作为示例。首先,我们的第一层cnn输入通道变为t层。其次其余每层cnn的输出通道数量也将从o(l2)增加至o(l3)。这样,最终解码器的深度仍然为o(logl),需要大约o(l6logl)的参数。我们在选取硬件运行算法时必须要充分考量是否有足够的空间存贮这些参数及并行化每个卷积层和全连通层。

综上所述,本申请实施例提供的技术方案,通过对量子电路的错误症状信息进行分块特征提取,得到多组特征信息,然后进一步对上述多组特征信息进行融合解码处理,得到错误结果信息;由于采用了分块特征提取的方式,相比于对输入数据进行完整特征提取,一方面,会使得每一次特征提取得到的特征信息的通道数会减少,而下一次特征提取的输入数据就会减少,这有助于减少神经网络解码器中特征提取层的数量,从而缩短神经网络解码器的深度,由于神经网络解码器的深度缩短了,其解码时间也会相应地得到缩减;另一方面,在进行分块特征提取时,采用多个特征提取单元对多个区块进行并行地特征提取处理,也即多个特征提取单元可以同步(或称为同时)地进行特征提取处理,这也有助于缩减特征提取所需的耗时,从而缩减解码时间;最终,综合上述两方面因素,在采用神经网络解码器进行量子纠错解码时,解码时间充分缩减,从而满足实时纠错的要求。

在示例性实施例中,错误症状信息是采用量子纠错码对量子电路进行带噪声的错误症状测量得到的真实错误症状信息,为了实现容错纠错解码,上述神经网络解码器包括第一解码器和第二解码器,如图12所示,本申请另一实施例提供的基于神经网络的量子纠错解码方法可以包括如下几个步骤(1201~1204):

步骤1201,获取量子电路的真实错误症状信息。

由于在真实场景下,在采用量子纠错码对量子电路进行错误症状测量时,是带噪声的,也即存在测量错误,因此这里的真实错误症状信息是指在真实场景下测量得到的带噪声的错误症状信息。

另外,为了保证容错纠错的有效性,获取的真实错误症状信息包括t个数据阵列,每个数据阵列是采用量子纠错码对量子电路进行一次带噪声的错误症状测量得到的,t为大于1的整数。可选地,如上文介绍,t=o(l),l为量子纠错码的尺度。这样,每一次错误症状测量得到的真实错误症状信息可以是一个(l+1)×(l+1)的二维数据阵列(为了方便机器学习,对每一时刻的症状边界做了适当的扩充),t次错误症状测量得到的真实错误症状信息就可以构成一个(l+1)×(l+1)×t的三维数据阵列。

步骤1202,采用第一解码器对真实错误症状信息进行解码,得到真实错误症状信息对应的逻辑错误类。

第一解码器用于对真实错误症状信息进行解码,得到真实错误症状信息对应的逻辑错误类。逻辑错误类是量子电路所发生的错误经过映射之后的类。逻辑错误类也可以称为同源类,包括如下4种分类:i、x、y和z。其中,i表示没有错误,x表示x错误,z表示z错误,y表示既有x错误又有z错误。每个逻辑错误类中,包括至少一个等价的错误元素。可选地,每个逻辑错误类中,包括多个等价的错误元素。逻辑错误类i中的元素,即为稳定子群中的元素。逻辑错误类x中的元素,即为逻辑x算符分别乘以稳定子群中的各个元素后得到的元素集合。逻辑错误类y中的元素,即为逻辑y算符分别乘以稳定子群中的各个元素后得到的元素集合。逻辑错误类z中的元素,即为逻辑z算符分别乘以稳定子群中的各个元素后得到的元素集合。属于同一个逻辑错误类中的各个元素是等价的,假设真实发生的错误e和另一个错误e’属于同一个逻辑错误类,那么对错误e进行纠错和对错误e’进行纠错是等价的,可以达到一样的效果。

在本申请实施例中,通过训练好的第一解码器预测得到真实错误症状信息对应的逻辑错误类。第一解码器的数量可以是1个,该第一解码器可以是一个四分类模型,其输出包括四个需要做分类的逻辑错误类,即i、x、y和z。第一解码器可以是基于全连通网络、cnn、rnn或者其它神经网络构建的分类模型,本申请实施例对此不作限定。

另外,第一解码器在对真实错误症状信息进行解码,得到对应的逻辑错误类时,可以采用上文实施例介绍的分块特征提取的方式:采用第一解码器对真实错误症状信息进行分块特征提取,得到特征信息;采用第一解码器对特征信息进行融合解码处理,得到真实错误症状信息对应的逻辑错误类。

步骤1203,采用第二解码器对真实错误症状信息进行解码,得到真实错误症状信息对应的完美错误症状信息。

第二解码器用于对真实错误症状信息进行解码,得到真实错误症状信息对应的完美错误症状信息。完美错误症状信息是指对量子电路进行无噪声的错误症状测量得到的信息。在本申请实施例中,对真实错误症状信息进行解码除了要得到对应的逻辑错误类之外,还需要得到对应的完美错误症状信息,这样才能依据上文介绍的式1最终确定出量子电路的错误结果信息。示例性地,如图13所示,其示出了一个完美错误症状信息的示意图,在图13中,黑色圆点131代表数据量子比特,十字132代表辅助量子比特,发生在辅助量子比特上的错误对完美症状测量没有影响,各个错误在图中以x、y和z标出。

在本申请实施例中,通过训练好的第二解码器预测得到真实错误症状信息对应的完美错误症状信息。第二解码器的数量可以是1个,也可以是多个。可选地,第二解码器的数量为k,k为正整数且k与量子纠错码的尺度相关。假设量子纠错码为稳定子码,且其尺度为l,那么第二解码器的数量k=l2-1。在这种情况下,第二解码器可以是一个二分类模型,其输出包括两个需要做分类的错误症状值,即0和1,其中0表示没有错误,1表示有错误。

需要说明的是,上述步骤1202和1203可以先后执行,也可以并行执行,当两者并行执行时,有助于缩短流程的执行耗时。为了实现实时的容错纠错解码,应尽量选择更多的设备(如fpga/asic)及合适的通信连接完成并行执行。

在示例性实施例中,第二解码器的数量为k,k为正整数且k与量子纠错码的尺度相关。该k个第二解码器用于对真实错误症状信息分别进行解码,得到k个完美错误症状比特,该k个完美错误症状比特用于整合得到完美错误症状信息。也即,如图14所示,上述步骤1203可以由如下步骤替换实现:

步骤1203a,将真实错误症状信息分别输入到k个第二解码器,得到k个完美错误症状比特;

步骤1203b,整合k个完美错误症状比特,得到真实错误症状信息对应的完美错误症状信息。

每个第二解码器用于输出得到一个症状测量位置的完美错误症状比特,将k个第二解码器的输出结果进行整合,即可得到所有症状测量位置的完美错误症状比特,也即真实错误症状信息对应的完美错误症状信息。

如图15所示,真实错误症状信息所对应的三维数据阵列151,分别输入至第一解码器152和各个第二解码器153,第一解码器152输出真实错误症状信息对应的逻辑错误类154,第二解码器153输出完美错误症状比特,将各个第二解码器153输出的完美错误症状比特整合,得到真实错误症状信息对应的完美错误症状信息155,最后根据逻辑错误类154和完美错误症状信息155,确定量子电路的错误结果信息156。

另外,第二解码器可以是基于全连通网络、cnn、rnn或者其它神经网络构建的分类模型,本申请实施例对此不作限定。上述各个解码器(包括第一解码器和各个第二解码器)的模型结构可以相同,也可以不同,但是模型深度应当尽可能地一致,以期达到最大的并行化。

另外,各个第二解码器在对真实错误症状信息进行解码,得到对应的完美错误症状信息时,可以采用上文实施例介绍的分块特征提取的方式:采用第二解码器对真实错误症状信息进行分块特征提取,得到特征信息;采用第二解码器对特征信息进行融合解码处理,得到完美错误症状比特。

步骤1204,根据逻辑错误类和完美错误症状信息,确定量子电路中发生错误的数据量子比特以及相应的错误类型。

结合上文介绍的式1,在得到逻辑错误类和完美错误症状信息之后,便可以根据该完美错误症状信息确定出相应的简单错误,然后将该简单错误乘以逻辑错误类中的任意一个元素,即可得到需要纠正的错误,也即量子电路中发生错误的数据量子比特以及相应的错误类型。例如,确定出量子电路中发生错误的数据量子比特的位置,以及该位置处发生错误的数据量子比特的错误类型,如是x错误、z错误还是y错误。

在示例性实施例中,如图14所示,上述步骤1204可以由如下步骤替换实现:

步骤1204a,获取与逻辑错误类对应的第一错误结果;

在示例性实施例中,如图16所示,上述步骤1204a可以由如下步骤替换实现:步骤1204a-1,从逻辑错误类所包括的元素中,选择任意一个元素作为第一错误结果;其中,逻辑错误类中包括至少一个等价的错误元素。

例如,解码得到真实错误症状信息对应的逻辑错误类为x,那么从该逻辑错误类x所包括的各个错误元素中,选择任意一个元素作为第一错误结果。

步骤1204b,获取与完美错误症状信息对应的第二错误结果;

解码得到真实错误症状信息对应的完美错误症状信息之后,可以采用简单解码器得到与该完美错误症状信息对应的第二错误结果。

在示例性实施例中,如图16所示,上述步骤1204b可以由如下步骤替换实现:步骤1204b-1,查询映射表获取与完美错误症状信息中的各个错误症状点分别对应的简单错误;其中,映射表中包括至少一组错误症状点和简单错误之间的映射关系;步骤1204b-2,将各个错误症状点分别对应的简单错误相乘,得到第二错误结果。

步骤1204c,根据第一错误结果和第二错误结果,确定量子电路中发生错误的数据量子比特以及相应的错误类型。

在示例性实施例中,如图16所示,上述步骤1204c可以由如下步骤替换实现:步骤1204c-1,计算第一错误结果和第二错误结果的乘积,得到量子电路中发生错误的数据量子比特以及相应的错误类型。

需要说明的是,通过上述方式对逻辑错误类反推得到的是发生在数据量子比特上的等价错误,这个推得的错误未必与原始发生的错误相同,但效果是一样的(或者错误的差异是定域的),这是量子纠错码特有的错误简并现象。

另外,上述步骤1204a和1204b可以先后执行,也可以并行执行,当两者并行执行时,有助于缩短流程的执行耗时。为了实现实时的容错纠错解码,应尽量选择更多的设备(如fpga/asic)及合适的通信连接完成并行执行。

可选地,如图16所示,在确定量子电路中发生错误的数据量子比特以及相应的错误类型之后,还可以执行如下步骤:

步骤1205,根据错误结果信息生成纠错控制信号,纠错控制信号用于对量子电路产生的错误进行纠正;

步骤1206,向量子电路发送纠错控制信号。

可选地,该纠错控制信号可以是微波控制信号,也可以是电子控制信号,或者是其它形式的控制信号,本申请实施例对此不作限定。通过向量子电路发送该纠错控制信号,使得量子电路基于该纠错控制信号对其发生的数据量子比特错误进行纠正,从而达到实时纠错的目的。

综上所述,本申请实施例提供的技术方案,通过对量子电路的真实错误症状信息进行解码,得到对应的逻辑错误类和完美错误症状信息,然后根据该逻辑错误类和完美错误症状信息,确定量子电路中发生错误的数据量子比特以及相应的错误类型,从而在量子电路的错误症状信息是不完美的情况下,实现了使用神经网络算法对错误症状信息的容错纠错解码。而且,这种方案由于实现了将容错纠错解码等价为一个分类问题,从而适合采用高效的神经网络分类器来对错误症状信息进行容错纠错解码,从而提升了容错纠错解码的速度,如果选取合适的神经网络分类器,则可以大大加速解码算法的速度,为实现实时容错纠错解码铺平了道路。

下面,对神经网络解码器的训练过程进行介绍说明。

神经网络解码器的训练数据可以采用仿真的方式,生成带标签的训练数据,然后采用监督学习的方式使用该带标签的训练数据对神经网络解码器进行训练。

首先,仍然考虑可以获得完美错误症状的情况。一种可能的实施方式是,在样本量子电路所包括的物理量子比特上概率性地产生错误,然后获取样本量子电路的错误症状信息和错误结果信息,生成训练数据。例如,通过概率p在样本量子电路的每个物理量子比特上产生x或y或z错误,具体可以采用标准的随机数产生方法,以均匀分布在[0,1]间采样随机数,如果落在[0,p/3],那么就设定为x错误;如果落在[p/3,2p/3],那么就设定为y错误;如果落在[2p/3,p],那么就设定为x错误;如果落在[p,1],那么就设定为i(即没有错误)。这样,对尺度为l的表面码,我们将得到两类奇偶校验的结果接合成一个二维的(l+1)×(l+1)的阵列,再从仿真的错误中去除简单错误,提取其所属的错误类(同源类)作为对该数据样本的标签。

但是这样的噪声模型过于理想。另一种可能的实施方式是,我们可以先在实验上对量子比特进行量子过程层析(quantumprocesstomography,qpt)来提取真实的噪声模型。由于qpt资源消耗过大,所以我们仅限于最多将qpt作用在几何上近邻的两个量子比特上。这样等价于忽略三个以上量子比特的噪声关联。如果这种关联很强,首先应该做的是在实验上去除这类关联,因为它们对量子纠错会带来致命性的影响。完成qpt之后,我们可以根据qpt使用montecarlo(蒙特卡罗)的方法直接仿真真实的物理噪声对量子态的影响,然后进行理想的奇偶校验并提取症状和错误同源类来获得标签数据。这样做的缺点是我们无法对尺度很大的表面码(如l>10的表面码)进行模拟,因为这需要全量子力学仿真(fullquantumsimulation),计算复杂度将超出现有最强计算机的能力。

神经网络解码器的训练遵照标准的神经网络训练方式。可选地,使用交叉熵(crossentropy)作为目标函数,并用随机梯度下降(stochasticgradientdecent)算法进行训练。一般情况下,使用adam(adaptivemomentestimation,自适应矩估计)算法可以获得更好的性能。训练样本可以从1百万到3千万不等,学习强度(learningrate)取1e-5至1e-2区间,学习动量(momentum)取为1e-4至1e-6。经实验发现,在以上超参数设置下,在pytorch1.2下我们可以获得较为满意的训练结果。

对于获得的错误症状信息中存在噪声干扰的情况,与完美症状情况类似,我们这里也通过仿真的方式产生训练数据集。同样我们可以通过较为简单的方式或者较为实际的方式。

如果采用较为简单的方式,神经网络解码器的训练数据的生成过程如下:

1、在样本量子电路所包括的物理量子比特上概率性地产生错误;例如,对每个数据量子比特,在奇偶校验开始前以概率p在每个量子比特上产生x、y或z错误(内存噪声);

2、在样本量子电路对应的辅助量子比特上概率性地产生错误,该辅助量子比特用于测量得到样本量子电路的错误症状信息;例如,对制备在|0>(或者|+>)的辅助量子比特,以概率p产生一个x或者z错误(态制备噪声);

3、在样本量子电路对应的本征值测量电路所包括的受控非门上概率性地产生错误,该本征值测量电路用于测量稳定子生成元的本征值;例如,对本征值测量电路中的每个受控非门,以概率p产生15个双泡利算符(包括ix、iy、iz、xi、yi、zi、xx、xy、xz、yx、yy、yz、zx、zy和zz)中的一个错误(量子门噪声);

4、在采用量子纠错码对样本量子电路进行错误症状测量时概率性地产生测量错误;例如,以概率p在z(x)测量前发生一个x(z)错误(测量噪声),其中,z(x)表示只有x错误会影响z测量,x(z)表示只有z错误会影响x测量。

5、获取样本量子电路的错误症状信息和错误结果信息,生成训练数据。

采用上文介绍的方式,重复t轮奇偶校验测量,对尺度为l的表面码,我们将得到两类奇偶校验的结果接合成一个二维的t×(l+1)×(l+1)的0、1阵列,然后我们可以对仿真的结果进行处理得到的错误和这个二维症状阵列中提取训练需要的同源类标签和完美错误症状标签。

如果采用较为实际的方式,神经网络解码器的训练数据的生成过程如下:

1、对样本量子电路进行量子过程层析,提取样本量子电路的噪声模型;

2、基于噪声模型对样本量子电路的量子态在噪声作用下的演化进行仿真;

3、获取样本量子电路的错误症状信息和错误结果信息,生成训练数据。

采用这种方式的情况下,可以先在实验上对量子比特进行量子过程层析来提取内存噪声、态制备噪声、量子门噪声和测量噪声的精确数学描述,然后通过直接对量子态在噪声作用下的演化进行仿真后产生症状及标签。

上文对神经网络解码器的训练数据集的生成过程以及训练方式进行了介绍说明,对于第一种训练数据生成方式,通过理想的噪声模型进行错误仿真来生成训练数据,这种方式较为简单;对于第二种训练数据生成方式,通过采用量子过程层析来提取真实的噪声模型,然后采用该真实的噪声模型仿真真实物理噪声对样本量子电路的影响来生成训练数据,这种方式更加贴近实际。

基于完美错误症状的情况,针对尺度为l的表面码进行了数值模拟。数值模拟方法如下:随机在每个量子比特上产生以p的概率产生x,y,z错误,以(1-p)不产生任何错误。此处p即为物理错误率。然后我们以p=0.11或者p=0.12产生训练集来训练神经网络解码器。解码器训练完毕之后,我们同样以相同的噪声模型针对不同的p的产生大量噪声样本,然后将其输入神经网络解码器并输出错误类(同源类)结果,与真实噪声的错误类进行比较,并判定其解码正确与否,然后记录解码错误的频率(概率)即为逻辑比特错误率。我们同时也使用了mwpm进行仿真从而比较解码器的性能。具体仿真结果如图17所示。

这里我们可以明显看到,对小尺度的表面码(l=5,l=7,l=11),本申请提供的神经网络解码器虽然简单,但却在错误率的各个区间均优于mwpm。对于l=15的情况,解码性能比mwpm稍差,这是由于我们仅使用了和l=11相同的网络模型和一样数量的样本(载入后达了我们测试使用的单机内存的上限32gb)。显然,对于l=15,使用约3000万以上的样本量训练网络即可超越mwpm。另外,这个简单的神经网络解码器的阈值也达到了15%,超过了mwpm的阈值,逼近理论的极限。

我们将对不同尺度表面码对应的神经网络参数在表1列出:

表1:不同尺度表面码对应的神经网络

我们可以看到,网络的深度确实随着l变化缓慢,且实际执行时间也没有快速增长。值得注意的是,我们网络参数和所需要的训练数据集并没有随着l指数上升,相反,他们是以多项式上升的,且上升的速度并不是非常快。这意味着我们的算法原则上是可扩展的。但是实际上我们仍然需要大量时间来产生大尺度表面码的训练集(可并行化),在训练模型时仍然需要消耗较多的内存和gpu计算资源(尤其对l>=15,需要大于128gb的内存和2块nvidiav100的gpu),才能在可接受的时间长度内完成训练到达预期的解码性能指标。不过一方面这些硬件资源在现有的条件下并不昂贵,另一方面一旦在实验系统上确实验证了算法的有效性,这些额外资源的投入是值得的,因为训练过程是一次性的。

需要说明的是:表1中的有效执行时间是指同时将数千次解码同时输入一个gpu(这里是基于nvidiagtx2070)后的总运算时间/解码次数可以达到的最大值(约为5000)。这个时间只能作为一个参考的必要条件(如果这个值太高,那么我们的算法必然无法得到很低的延迟)而并不能等价于gpu的实时解码的计算时间。

最后需要说明的是,在模型设计过程中,我们选取了ck~o(l2),这不是必须的。我们也可以选用其他多项式的渐进增长方式且不会对网络深度构成太多的影响。本申请提供的技术方案不仅适用于表面码,也适用于其他基本拓扑码的容错量子纠错方案,例如颜色码。在激发层之前可以引入类似batch-normalization(批归一化)层,我们也可以使用不同的目标函数,还可以使用不同的学习策略,如adam。上文实施例介绍的方案针对容错纠错的卷积层仅在空间进行重整化,也可以考虑在三个方向都进行重整化比较纠错效果。本方案主要使用仿真生成的带标签的训练数据。实际实验中,我们也可能通过直接对实验数据的测量获得错误对应的同源类。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图18,其示出了本申请一个实施例提供的基于神经网络的量子纠错解码装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1800可以包括:症状信息获取模块1810、分块特征提取模块1820和融合解码处理模块1830。

症状信息获取模块1810,用于获取量子电路的错误症状信息,所述错误症状信息是由量子纠错码的稳定子生成元的本征值构成的数据阵列。

分块特征提取模块1820,用于通过神经网络解码器对所述错误症状信息进行分块特征提取,得到特征信息;其中,所述神经网路解码器的特征提取层用于对输入数据进行分块特征提取,所述分块特征提取是指对输入数据进行分块得到至少两个区块后,采用至少两个特征提取单元对所述至少两个区块进行并行的特征提取处理。

融合解码处理模块1830,用于通过所述神经网络解码器对所述特征信息进行融合解码处理,得到错误结果信息,所述错误结果信息用于确定所述量子电路中发生错误的数据量子比特以及相应的错误类型。

在示例性实施例中,所述神经网络解码器包括m个级联的特征提取层,所述m为正整数;

所述分块特征提取模块1820,用于通过所述m个特征提取层对所述错误症状信息进行分块特征提取,得到所述特征信息;

其中,第1个特征提取层用于对所述错误症状信息进行分块特征提取,第i个特征提取层用于对前一个特征提取层的特征提取结果进行分块特征提取,所述i为大于1且小于等于所述m的整数。

在示例性实施例中,所述特征提取层在进行分块特征提取时,任意两个分块之间无交集。

在示例性实施例中,所述错误症状信息包括t个数据阵列,每个数据阵列是采用所述量子纠错码对所述目标量子电路进行一次错误症状测量得到的,所述t为大于1的整数。如图19所示,该装置1800还包括:症状信息划分模块1812,用于将所述错误症状信息划分为至少两个数据单元;其中,一个数据单元包括所述t个数据阵列中位于相同位置的t个阵列单元。

在示例性实施例中,所述错误症状信息是采用所述量子纠错码对所述量子电路进行带噪声的错误症状测量得到的真实错误症状信息;所述神经网络解码器包括第一解码器和第二解码器;其中,

所述第一解码器用于对所述真实错误症状信息进行解码,得到所述真实错误症状信息对应的逻辑错误类,所述逻辑错误类是所述量子电路所发生的错误经过映射之后的类;

所述第二解码器用于对所述真实错误症状信息进行解码,得到所述真实错误症状信息对应的完美错误症状信息,所述完美错误症状信息是指对所述量子电路进行无噪声的错误症状测量得到的信息;

如图19所示,该装置1800还包括:错误确定模块1840,用于根据所述逻辑错误类和所述完美错误症状信息,确定所述量子电路中发生错误的数据量子比特以及相应的错误类型。

在示例性实施例中,如图19所示,所述错误确定模块1840,包括:

第一获取单元1841,用于获取与所述逻辑错误类对应的第一错误结果;

第二获取单元1842,用于获取与所述完美错误症状信息对应的第二错误结果;

错误确定单元1843,用于根据所述第一错误结果和所述第二错误结果,确定所述量子电路中发生错误的数据量子比特以及相应的错误类型。

在示例性实施例中,所述第一获取单元1841,用于从所述逻辑错误类所包括的元素中,选择任意一个元素作为所述第一错误结果;其中,所述逻辑错误类中包括至少一个等价的错误元素。

在示例性实施例中,所述第二获取单元1842,用于查询映射表获取与所述完美错误症状信息中的各个错误症状点分别对应的简单错误;其中,所述映射表中包括至少一组错误症状点和简单错误之间的映射关系;将所述各个错误症状点分别对应的简单错误相乘,得到所述第二错误结果。

在示例性实施例中,所述错误确定单元1843,用于计算所述第一错误结果和所述第二错误结果的乘积,得到所述量子电路中发生错误的数据量子比特以及相应的错误类型。

在示例性实施例中,所述第二解码器的数量为k,所述k为正整数且所述k与所述量子纠错码的尺度相关;所述k个第二解码器用于对所述真实错误症状信息分别进行解码,得到k个完美错误症状比特;所述k个完美错误症状比特用于整合得到所述完美错误症状信息。

在示例性实施例中,所述神经网络解码器的训练数据的生成过程如下:

在样本量子电路所包括的物理量子比特上概率性地产生错误;

在所述样本量子电路对应的辅助量子比特上概率性地产生错误,所述辅助量子比特用于测量得到所述样本量子电路的错误症状信息;

在所述样本量子电路对应的本征值测量电路所包括的受控非门上概率性地产生错误,所述本征值测量电路用于测量稳定子生成元的本征值;

在采用量子纠错码对所述样本量子电路进行错误症状测量时概率性地产生测量错误;

获取所述样本量子电路的错误症状信息和错误结果信息,生成所述训练数据。

在示例性实施例中,所述神经网络解码器的训练数据的生成过程如下:

对样本量子电路进行量子过程层析,提取所述样本量子电路的噪声模型;

基于所述噪声模型对所述样本量子电路的量子态在噪声作用下的演化进行仿真;

获取所述样本量子电路的错误症状信息和错误结果信息,生成所述训练数据。

在示例性实施例中,如图19所示,所述装置1800还包括:纠错信号生成模块1850和纠错信号发送模块1860。

纠错信号生成模块1850,用于根据所述错误结果信息生成纠错控制信号,所述纠错控制信号用于对所述量子电路产生的错误进行纠正。

纠错信号发送模块1860,用于向所述量子电路发送所述纠错控制信号。

综上所述,本申请实施例提供的技术方案,通过对量子电路的错误症状信息进行分块特征提取,得到多组特征信息,然后进一步对上述多组特征信息进行融合解码处理,得到错误结果信息;由于采用了分块特征提取的方式,相比于对输入数据进行完整特征提取,一方面,会使得每一次特征提取得到的特征信息的通道数会减少,而下一次特征提取的输入数据就会减少,这有助于减少神经网络解码器中特征提取层的数量,从而缩短神经网络解码器的深度,由于神经网络解码器的深度缩短了,其解码时间也会相应地得到缩减;另一方面,在进行分块特征提取时,采用多个特征提取单元对多个区块进行并行地特征提取处理,也即多个特征提取单元可以同步(或称为同时)地进行特征提取处理,这也有助于缩减特征提取所需的耗时,从而缩减解码时间;最终,综合上述两方面因素,在采用神经网络解码器进行量子纠错解码时,解码时间充分缩减,从而满足实时纠错的要求。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图20,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可以是图3所示方案应用场景中的控制设备33。该计算机设备可用于实施上述实施例中提供的基于神经网络的量子纠错解码方法。具体来讲:

所述计算机设备2000包括处理单元2001(如包括cpu和/或gpu)、包括随机存取存储器(randomaccessmemory,ram)2002和只读存储器(read-onlymemory,rom)2003的系统存储器2004,以及连接系统存储器2004和处理单元2001的系统总线2005。所述计算机设备2000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o(input/output)系统)2006,和用于存储操作系统2013、应用程序2014和其他程序模块2015的大容量存储设备2007。

所述基本输入/输出系统2006包括有用于显示信息的显示器2008和用于用户输入信息的诸如鼠标、键盘之类的输入设备2009。其中所述显示器2008和输入设备2009都通过连接到系统总线2005的输入输出控制器2010连接到处理单元2001。所述基本输入/输出系统2006还可以包括输入输出控制器2010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器2010还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备2007通过连接到系统总线2005的大容量存储控制器(未示出)连接到处理单元2001。所述大容量存储设备2007及其相关联的计算机可读介质为计算机设备2000提供非易失性存储。也就是说,所述大容量存储设备2007可以包括诸如硬盘或者cd-rom(compactdiscread-onlymemory,只读光盘)驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom(erasableprogrammableread-onlymemory,可擦除可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦除可编程只读存储器)、闪存或其他固态存储其技术,cd-rom、dvd(digitalvideodisc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器2004和大容量存储设备2007可以统称为存储器。

根据本申请的各种实施例,所述计算机设备2000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备2000可以通过连接在所述系统总线2005上的网络接口单元2011连接到网络2012,或者说,也可以使用网络接口单元2011来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述实施例提供的基于神经网络的量子纠错解码方法。

在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述实施例提供的基于神经网络的量子纠错解码方法。在示例性实施例中,上述计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述实施例提供的基于神经网络的量子纠错解码方法。

在示例性实施例中,还提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,该芯片在计算机设备上运行,用于实现上述实施例提供的基于神经网络的量子纠错解码方法。

可选地,该芯片为fpga芯片或asic芯片。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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