K-Nearst-Neighbor量子线路实现方法
技术领域
本发明属于量子算法仿真领域,具体涉及一种K-Nearst-Neighbor量子线路实现方法。
背景技术
当下,量子计算信息技术正处在从基础研究走向应用探索的关键时期。量子计算从计算方式上根本改变现有计算机的冯诺伊曼机架构,能够带来计算能力指数级别的提升,而量子计算和人工智能的结合并不是随性偶遇或是强行撮合,一方面指运用传统机器学习技术,可以帮助量子物理学家去处理很多复杂的量子物理数据分析;另一方面,运用量子计算技术可以推动机器学习的发展。为了突破现有算力的局限性,量子人工智能可谓是强强联合,并被视为新的突破点。
K最邻近法KNN算法的核心思想是,如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说, KNN方法较其他方法更为适合。
量子KNN算法不再能适用欧式距离描述待分类点与分类中心之间的距离,而改用Hamming距离来描述两点距离。Hamming距离定义为计算两个长度相等的位向量的对应符号不同的位置数。例如:Hamming距离:0110与0001的距离为 3,Hamming距离:0110与1110的距离为1。虽然在KNN下这样使用Hamming 距离有违常识,利用预定hash函数将自然向量映射到位向量,使得Hamming空间下的KNN分类器性能可以与复杂的判别分类器(包括支持向量机和神经网络) 相竞争。在量子机器KNN算法中,将目标的特征映射到Hi lbert空间中的基态量子态,则通过计算这些态之间的Hamming距离可以更容易地选择测试样本的k 个最近邻,从而避免了一般操作中的一些耗时操作,进一步提高了量子态计算性能。
本专利意在提供一种基于量子受控非门、泡利门的K-Nearst-Neighbor量子线路实现方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种K-Nearst-Neighbor量子线路实现方法,以解决KNN算法的量子线路实现问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种K-Nearst-Neighbor量子线路实现方法,该方法包括如下步骤:
S1、输入待检测样本,将待检测样本的特征向量存储为量子位向量|X>,同时将训练集的特征向量|Vp>以及对应的分类标签Cp∈{1,…,L}构造成训练集| Τ>;
S2、将待检测样本放在量子计算网络第一寄存器中,训练集存入第二寄存器,并准备一位辅助位量子态|0>在第三寄存器中,三个寄存器的量子线路状态共同组成了初始量子态
S3、通过受控非门CNOT网络进行|X>与|Vp>的区别位计算,计算结果记为将第一寄存器中数据更换供后续计算,三个寄存器的量子线路状态共同组成了量子态
S4、计算的Hamming距离,并根据Hamming距离是否达到阈值来更改辅助量子位,三个寄存器的量子线路状态共同组成了量子态
S5、对KNN类别进行测量:的Hamming距离计算完成之后,在量子线路中的量子位进行连续OR门操作,最高位的输出信号表示的是Hamming距离的分类结果。
进一步地,所述步骤S1具体包括:将待检测样本集和训练集的特征向量存储为二进制位向量,并在此基础之上对二进制位向量进行编码,将其转换成量子向量。
进一步地,所述对二进制位向量进行编码,将其转换成量子向量具体包括:
将二进制位向量中的0用基本量子态|0>表示,同时二进制位向量中的1用基本量子态|1>表示;然后将所有量子态组合成为一个N维的量子位向量,其中待测样本集为|X>,训练集为|Vp>,p=1,…,N;并生成对应的分类标签Cp∈ {1,…,L};最后构造训练集:
其中,P是定义域,|Vp>是指一个n维量子位向量,其中分量分别为: Cp是指最终生成的量子位对应的分类标签。
进一步地,所述步骤S2中的量子态为:
进一步地,所述步骤S3中的量子态的计算公式为:
其中X()指对相应量子线路进行非门NOT门运算,即|1>变为|0>或者|0>变为|1>;CNOT()指对相应的两个量子线路进行受控非门CNOT门运算,如果量子位的状态相同则返回|1>,不同则会返回|0>。
进一步地,所述量子态为:
其中U表示对量子态的一次操作;Ω表示为一个包含训练集数据标签的集合,该集合包含了所有训练集中Hamming距离小于阈值t的数据标签;如果标签是在集合内,则辅助量子位更改为|1>,不在集合中则辅助量子位不更改。
进一步地,U在物理学中希尔伯特空间的一次幺正变换,在数学中一个厄米共轭矩阵。
进一步地,所述计算的Hamming距离具体包括:对中每一位的数字求和得到Hamming距离|a0…an-1>是累加到的求和结果,用二进制数a来表示求和结果,然后与di+1进行求和即可得i+1次求和后的结果: a+di+1。
进一步地,由于使用到了X(Xk)NOT门,所以Hamming距离是被反置的,实际上Hamming距离≤t等价于:
假设2k-1≤n≤2k,设l=2k-n,则Hamming距离≤t最终被表达为:
将a=l+t,Hamming距离≤t被确定为是否溢出寄存器;当累加Hamming距离完成之后,将计算结果的量子位向量从最高位开始的个量子比特作为典型量子比特,并将典型量子比特进行连续的OR门操作,最高位的输出信号是CONDp信号。
进一步地,CONDp信号表示的是Hamming距离是否小于t,如果小于t,则认为被测样本和训练集属于同一类。
(三)有益效果
本发明提出一种K-Nearst-Neighbor量子线路实现方法,结合量子线路编辑和经典KNN算法的基本思想,构造了量子KNN线路。量子相干性和量子纠缠等特性为量子信息处理带来了完全不同于经典计算的独特运算方式,量子计算的能力随量子比特数目呈指数增加。量子信息处理表现出的并行性将是经典计算能力无法比拟的。同时,经典量子混合计算架构也符合当前量子人工智能领域的发展趋势,使得本发明具有科研前沿性和创新性。
附图说明
图1为量子受控非门CNOT的结构图;
图2为量子求和线路详细(a)和化简(b)结构图;
图3为量子OR门线路详细(a)和化简(b)结构图;
图4为量子KNN整体的结构图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
基于上述问题,本发明提供了一种基于量子受控非门、泡利门的 K-Nearst-Neighbor量子线路实现方法:
S1、输入待检测样本,将待检测样本的特征向量存储为量子位向量|X>,同时将训练集的特征向量|Vp>以及对应的分类标签Cp∈{1,…,L}构造成训练集| Τ>。
其中P是定义域,|Vp>是指一个n维量子位向量,其中分量分别为: Cp是指最终生成的量子位对应的分类标签。
S2、将待检测样本放在量子计算网络第一寄存器中,训练集存入第二寄存器,并准备一位辅助位量子态|0>在第三寄存器中。三个寄存器的量子线路状态共同组成了初始量子态
S3、通过受控非门CNOT网络进行|X>与|Vp>的区别位计算,计算结果记为例如:|X>=|0010>,|Vp>=|1010>则将第一寄存器中数据更换供后续计算,三个寄存器的量子线路状态共同组成了量子态
其中X()指对相应量子线路进行非门(NOT门)运算,即|1>变为|0>或者|0> 变为|1>。CNOT()指对相应的两个量子线路进行受控非门(CNOT门)运算,如果量子位的状态相同则返回|1>,不同则会返回|0>。
S4、计算的Hamming距离,并根据Hamming距离是否达到阈值来更改辅助量子位。三个寄存器的量子线路状态共同组成了量子态
其中U表示对量子态的一次操作,物理学中对应希尔伯特空间的一次幺正变换,数学中代表一个厄米共轭矩阵。Ω表示为一个包含训练集数据标签的集合,该集合包含了所有训练集中Hamming距离小于阈值t的数据标签。如果标签是在集合内,则辅助量子位更改为|1>,不在集合中则辅助量子位不更改。
S5、对KNN类别进行测量。的Hamming距离计算完成之后,在量子线路中的量子位进行连续OR门操作,最高位的输出信号表示的是Hamming距离的分类结果。
本发明结合量子线路编辑和经典KNN算法的基本思想,构造了量子KNN线路。量子相干性和量子纠缠等特性为量子信息处理带来了完全不同于经典计算的独特运算方式,量子计算的能力随量子比特数目呈指数增加。量子信息处理表现出的并行性将是经典计算能力无法比拟的。同时,经典量子混合计算架构也符合当前量子人工智能领域的发展趋势,使得本发明具有科研前沿性和创新性。
下面结合附图1-4对本发明做进一步具体说明。
实施步骤:
步骤一,首先将待检测样本集和训练集的特征向量存储为二进制位向量,并在此基础之上对经典二进制位向量进行编码,将其转换成量子向量。具体的做法是,将经典二进制位向量中的0用基本量子态|0>表示,同时经典二进制位向量中的1用基本量子态|1>表示;然后将所有量子态组合成为一个N维的量子位向量,其中待测样本集为|X>,训练集为|Vp>,p=1,…,N;并生成对应的分类标签Cp∈{1,…,L}。最后构造训练集:
步骤二,将待检测的样本和训练集分别放入第一寄存器和第二寄存器,并在此基础之上,添加一位新的辅助位量子态|0>,为了方便后续的计算,此时将结果记作
步骤三,通过量子受控非门组成的网络对样本|X>与训练集|Vp>的每一位进行区别计算,其中量子受控非门如图1所示。如果量子位的状态相同则返回|1>,不同则会返回|0>。再通过X(Xk)量子门(NOT门-Pauil X门)将返回的结果进行翻转,即|1>变为|0>或者|0>变为|1>。最后将其返回数据用表示,并存储在第一寄存器。此时结果用量子态表示:
步骤四,因为计算出每一位的区别并保存在中,结合Hamming距离的定义,需要对中每一位的数字求和才能得到Hamming距离具体的量子求和电路如图2所示,|a0…an-1>是累加到的求和结果(增加电路计算的结果),可以用二进制数a来表示求和结果,然后与di+1进行求和即可得i+1次求和后的结果:a+di+1。为方便整合为inCk电路。
步骤五,对KNN类别进行测量。在区别位的计算过程中,由于使用到了X(Xk) 量子门(NOT门-Pauil X门),所以Hamming距离是被反置的,实际上Hamming 距离≤t等价于:
假设2k-1≤n≤2k,设l=2k-n,则Hamming距离≤t最终可以被表达为:
这意味着可以将a=l+t,这样Hamming距离≤t可以被确定为是否溢出寄存器。当累加Hamming距离完成之后,将计算结果的量子位向量从最高位开始的个量子比特作为典型量子比特,并将典型量子比特进行连续的OR门操作,图3表示的是t个量子位进行连续OR的量子线路实现,最高位的输出信号是CONDp信号,该信号表示的是Hamming距离是否小于t,如果小于t,则认为被测样本和训练集属于同一类。最终的量子KNN线路图如图4所示。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。