论文部分内容阅读
【摘 要】相比于宏观世界,量子世界就像一个不断旋转的转盘,充满了不确定性,这种不确定性也带来了无与伦比的魅力。随着材料科学和计算机科学的不断发展,量子计算机从构想逐渐变成了现实,并在慢慢走出实验室,走进我们的生活。相比于传统计算机,量子计算机的计算能力和运行速度要强大得多,具有难以估计的潜力。本文首先介绍了量子计算的基本概念,介绍了量子计算机的发展历史,接下来描述了一种QNN的基本结构,并回顾了量子神经网络的发展历史。
【关键词】量子计算;神经网络;QNN
1.量子计算简述
量子计算是一种遵循量子力学规律调控量子信息单元进行计算的新型计算模式。通用的量子计算机,其理论模型是用量子力学规律重新诠释的通用图灵机。从可计算的问题来看,量子计算机只能解决传统计算机所能解决的问题,但是从计算的效率上,由于量子力学叠加性的存在,某些已知的量子算法在处理问题时速度要快于传统的通用计算机。
1.1量子计算的概念
在传统的计算机中,由0/1两个状态组成的位(bit)是最基础的单元,这种逻辑通过低电平和高电平在硬件上实现。传统计算机通过这样的方法对所有二进制的信息进行存储和计算。而在量子世界中,电子等实体可以处于一种叠加状态,即一个“量子开关”可以同时处于开和关的状态。我们将电子的自旋看作一个开关,即“顺时针自旋”看作0,“逆时针自旋”看作1,这样就得到了一个二进制的逻辑单元。这个开关的特殊之处就在于,其可以同时处于0和1的状态。在量子计算机中,我们将这样的逻辑单元称为量子位(qubit)。量子位除了能表示0/1两个状态,还能表示这两者的叠加态。即可以同时是0态和1态。事实上,任何两态的量子系统都可以用来实现量子位,例如氢原子中的电子的基态和第 1 激发态、 质子自旋在任意方向的+ 1/ 2 分量和- 1/ 2 分量、 圆偏振光的左旋和右旋等。
举例说明:两个传统位可以表示4个数字,00表示0,01表示1,10标识2,11表示3,那么若需要同时表示这四个数字,就需要八个传统位,即一个字节;对于量子位而言,每一位都可以同时表示0或者1,这就意味着只需要两位量子位,就可以同时表示0,1,2,3这四个数字。对于n位量子位,所存储的信息可以处于种状态的叠加,再配合上量子力学演化的并行性,可以实现远高于传统计算机的处理速度。
1.2量子计算的发展
量子计算机的发展主要体现在量子位的数目上,要实现真正可用的量子计算机,关键就在于实现大规模量子位的量子纠缠。2016年5月,IBM上线使用5量子位的Quantum Experience网站,并推出IBM Q系统,使用5量子位,作为IBM云平台。2017年5月,IBM推出新型处理器,包括用于公众应用的16量子位处理器和17量子位的商业处理器原型。2017年11月,来自中科大和浙大的研究团队利用超导电路实现了10量子位的量子纠缠,并且可以基于超导量子处理器求解线性方程。不久,IBM公司就取得了重大进展,建造了20量子位的量子计算机,并且初步搭建了50量子位的原理机。2019年,IBM推出了拥有53个量子位的量子计算机,是目前最大的量子计算机系统。
1.3量子计算应用
目前在工业界,一般认为量子计算有两个主要应用一是:模拟量子系統,在材料科学、量子化学、药物发现等领域人们需要用大量的计算资源来模拟量子系统,量子计算机用来做这样的计算最自然最直接;二是:用于帮助现在互联网公司都需要做的计算,比如机器学习的提速,基于量子硬件的机器学习算法,加速优化算法和提高优化效果等。
2.量子神经网络—QNN
近年来,随着网络结构的优化和计算能力的提高,在上世纪90年代一度被忽视的神经网络迸发出全新的活力,以强大的拟合和泛化能力在各种领域都取得了突出的成绩。在图像处理,自然语言处理等领域,以神经网络为代表的深度学习方法基本完全取代了传统方法。然而,神经网络往往有非常大的参数量,导致难以训练,那么,是否可以把量子计算与神经网络相结合呢?
2.1 QNN简介
量子神经网络(QNN)是近年来引起广泛关注的新的研究思路,利用量子计算的独特特性来解决神经网络模型的固有问题。图表1所示是一种来自Google AI团队的量子神经网络构思架构。
该架构大体上与普通的全连接神经网络是一样的。注意到输入值 |ψ〉,|1〉 是n+1位的qubit状态(事先根据输入样本编码准备,其中n是样本,1是输出qubit的占位)。输出是经过一系列量子神经元的变换最终得到的一个qubit在三维中Y轴的观测Yn+1。
接下来来观察神经元中的操作,θ就是传统的神经网络中待训练的参数,即权重和偏置项 ,而U则是量子计算中的门,可以类比于传统计算机中的“与门”,“非门”等。在量子计算中,常用的门是一种线性的unitary归一门,可以想象成与一个线性矩阵相乘的操作,该操作具有保内积的特点,即经过U变换后,两组qubit的内积值保持不变。该特点可以保持量子叠加态中系数归一化的规范,也可以防止出现“梯度爆炸”的现象—在传统的神经网络中这往往是一个令人头疼的问题。
接下来介绍QNN的loss函数,如图表2所示:
其中z是样本编码,l(z)是样本标签,而后面的部分是预测值。这样,QNN通过不断预测出最后一个qubit的Yn+1的值,与标签计算loss,来对网络进行优化,调整θ参数,进而迭代更新每个unitary门,以达到训练目的。
我们都知道神经网络中激活函数的重要性,正是这些激活函数带来了强大的非线性拟合能力。但是在QNN中,非线性的功能并不是通过函数来实现,而是通过独特的连接方法。
观察如图表三所示的QNN的结构,发现其每一层之间并不是全连接的,每一层unitary门的输入都是由上一层经过不同的组合方式进行连接,这样就引入了非线性的单元。 2.2量子神经网络发展
上面描述了一种QNN的实现思路,需要强调的是,量子神经网络目前还是非常不成熟的研究领域,目前有很多种不同的研究思路,QNN到底应该如何设计尚无定论。
量子神经网络是基于量子理论设计的神经网络模型。传统的神经网络在数据量非常大时常常会遇到难以训练的问题,故一些科学家希望将量子计算的诸如并行性和干扰纠缠的特性运用到神经网络中。目前的QNN研究有两种思路,一种是利用量子理论来改进现有的神经网络,例如上面所叙述的;另一种是希望在大脑中寻找潜在的量子效应。
将量子理论与神经计算相结合是美国路易斯安那州立大学Kak 教授的创举,他在1995年发表的“On Quantum Neural Computing”一文首次提出量子神经计算的概念,开创了该领域的先河。他认为,从性能的角度看,量子计算机相当于很多被用来解决不同问题的传统计算机的集合,更加通用。除此之外,他还讨论了神经激活函数与量子力学特征值方程的相似性。
2000年, Ajit Narayanan和Tammy Menneer提出了一种基于多宇宙理论的量子神经网络模型的光子实现,并在测量时“折叠”成所需的模型。他们提供了对QNN各个组件的初步了解。從那时起,越来越多的文章发表在计算机科学和量子物理学的期刊上,QNN逐渐受到关注。2008年,Elizabeth Behrman和Jim Steck提出了一种动态学习范式,由许多具有可协调相互作用的量子比特组成。 遵循经典的反向传播规则,从所需输入 - 输出关系的训练集中学习相互作用的强度,因此量子网络“学习”算法。他们演示了经典门XOR和XNOR的学习。2014年,基于量子相位估计算法,Francesco Petruccione等人提出了使用基于电路的量子计算模型直接实现激活函数。
3.结语
量子世界充满着奇妙的理论与现象,也充满了尚未完全开采的宝贵财富,量子计算就是其中一块璀璨的宝石。相比于传统神经网络,量子神经网络具有计算速度快,记忆容量大,网络规模小,可消除失忆现象等突出优点,非常适合目前数据量大,计算能力要求高的现实应用场景,故一定会是未来的一个研究热点。让我们拭目以待,看看量子理论与神经网络结合,到底能产生什么样的火花
参考文献
[1] Farhi E , Neven H . Classification with Quantum Neural Networks on Near Term Processors[J]. 2018.
[2]林雄, 林帅. 量子计算与量子计算机展望[J]. 微型机与应用, 2012(22):8-10.
[3]王晋岚.量子计算最新进展[J].科学,2018,70(01):8.
[4]丁玲.量子机器学习算法综述[J].电子世界,2019(12):24-26.
[5]杨春平.计算机新技术的发展与普及前瞻[J].电子技术与软件工程,2019(24):108-109.
作者简介:张涵(1999.11-),男,江西抚州人,湖北省武汉市武汉大学信息与计算科学专业,本科生。
【关键词】量子计算;神经网络;QNN
1.量子计算简述
量子计算是一种遵循量子力学规律调控量子信息单元进行计算的新型计算模式。通用的量子计算机,其理论模型是用量子力学规律重新诠释的通用图灵机。从可计算的问题来看,量子计算机只能解决传统计算机所能解决的问题,但是从计算的效率上,由于量子力学叠加性的存在,某些已知的量子算法在处理问题时速度要快于传统的通用计算机。
1.1量子计算的概念
在传统的计算机中,由0/1两个状态组成的位(bit)是最基础的单元,这种逻辑通过低电平和高电平在硬件上实现。传统计算机通过这样的方法对所有二进制的信息进行存储和计算。而在量子世界中,电子等实体可以处于一种叠加状态,即一个“量子开关”可以同时处于开和关的状态。我们将电子的自旋看作一个开关,即“顺时针自旋”看作0,“逆时针自旋”看作1,这样就得到了一个二进制的逻辑单元。这个开关的特殊之处就在于,其可以同时处于0和1的状态。在量子计算机中,我们将这样的逻辑单元称为量子位(qubit)。量子位除了能表示0/1两个状态,还能表示这两者的叠加态。即可以同时是0态和1态。事实上,任何两态的量子系统都可以用来实现量子位,例如氢原子中的电子的基态和第 1 激发态、 质子自旋在任意方向的+ 1/ 2 分量和- 1/ 2 分量、 圆偏振光的左旋和右旋等。
举例说明:两个传统位可以表示4个数字,00表示0,01表示1,10标识2,11表示3,那么若需要同时表示这四个数字,就需要八个传统位,即一个字节;对于量子位而言,每一位都可以同时表示0或者1,这就意味着只需要两位量子位,就可以同时表示0,1,2,3这四个数字。对于n位量子位,所存储的信息可以处于种状态的叠加,再配合上量子力学演化的并行性,可以实现远高于传统计算机的处理速度。
1.2量子计算的发展
量子计算机的发展主要体现在量子位的数目上,要实现真正可用的量子计算机,关键就在于实现大规模量子位的量子纠缠。2016年5月,IBM上线使用5量子位的Quantum Experience网站,并推出IBM Q系统,使用5量子位,作为IBM云平台。2017年5月,IBM推出新型处理器,包括用于公众应用的16量子位处理器和17量子位的商业处理器原型。2017年11月,来自中科大和浙大的研究团队利用超导电路实现了10量子位的量子纠缠,并且可以基于超导量子处理器求解线性方程。不久,IBM公司就取得了重大进展,建造了20量子位的量子计算机,并且初步搭建了50量子位的原理机。2019年,IBM推出了拥有53个量子位的量子计算机,是目前最大的量子计算机系统。
1.3量子计算应用
目前在工业界,一般认为量子计算有两个主要应用一是:模拟量子系統,在材料科学、量子化学、药物发现等领域人们需要用大量的计算资源来模拟量子系统,量子计算机用来做这样的计算最自然最直接;二是:用于帮助现在互联网公司都需要做的计算,比如机器学习的提速,基于量子硬件的机器学习算法,加速优化算法和提高优化效果等。
2.量子神经网络—QNN
近年来,随着网络结构的优化和计算能力的提高,在上世纪90年代一度被忽视的神经网络迸发出全新的活力,以强大的拟合和泛化能力在各种领域都取得了突出的成绩。在图像处理,自然语言处理等领域,以神经网络为代表的深度学习方法基本完全取代了传统方法。然而,神经网络往往有非常大的参数量,导致难以训练,那么,是否可以把量子计算与神经网络相结合呢?
2.1 QNN简介
量子神经网络(QNN)是近年来引起广泛关注的新的研究思路,利用量子计算的独特特性来解决神经网络模型的固有问题。图表1所示是一种来自Google AI团队的量子神经网络构思架构。
该架构大体上与普通的全连接神经网络是一样的。注意到输入值 |ψ〉,|1〉 是n+1位的qubit状态(事先根据输入样本编码准备,其中n是样本,1是输出qubit的占位)。输出是经过一系列量子神经元的变换最终得到的一个qubit在三维中Y轴的观测Yn+1。
接下来来观察神经元中的操作,θ就是传统的神经网络中待训练的参数,即权重和偏置项 ,而U则是量子计算中的门,可以类比于传统计算机中的“与门”,“非门”等。在量子计算中,常用的门是一种线性的unitary归一门,可以想象成与一个线性矩阵相乘的操作,该操作具有保内积的特点,即经过U变换后,两组qubit的内积值保持不变。该特点可以保持量子叠加态中系数归一化的规范,也可以防止出现“梯度爆炸”的现象—在传统的神经网络中这往往是一个令人头疼的问题。
接下来介绍QNN的loss函数,如图表2所示:
其中z是样本编码,l(z)是样本标签,而后面的部分是预测值。这样,QNN通过不断预测出最后一个qubit的Yn+1的值,与标签计算loss,来对网络进行优化,调整θ参数,进而迭代更新每个unitary门,以达到训练目的。
我们都知道神经网络中激活函数的重要性,正是这些激活函数带来了强大的非线性拟合能力。但是在QNN中,非线性的功能并不是通过函数来实现,而是通过独特的连接方法。
观察如图表三所示的QNN的结构,发现其每一层之间并不是全连接的,每一层unitary门的输入都是由上一层经过不同的组合方式进行连接,这样就引入了非线性的单元。 2.2量子神经网络发展
上面描述了一种QNN的实现思路,需要强调的是,量子神经网络目前还是非常不成熟的研究领域,目前有很多种不同的研究思路,QNN到底应该如何设计尚无定论。
量子神经网络是基于量子理论设计的神经网络模型。传统的神经网络在数据量非常大时常常会遇到难以训练的问题,故一些科学家希望将量子计算的诸如并行性和干扰纠缠的特性运用到神经网络中。目前的QNN研究有两种思路,一种是利用量子理论来改进现有的神经网络,例如上面所叙述的;另一种是希望在大脑中寻找潜在的量子效应。
将量子理论与神经计算相结合是美国路易斯安那州立大学Kak 教授的创举,他在1995年发表的“On Quantum Neural Computing”一文首次提出量子神经计算的概念,开创了该领域的先河。他认为,从性能的角度看,量子计算机相当于很多被用来解决不同问题的传统计算机的集合,更加通用。除此之外,他还讨论了神经激活函数与量子力学特征值方程的相似性。
2000年, Ajit Narayanan和Tammy Menneer提出了一种基于多宇宙理论的量子神经网络模型的光子实现,并在测量时“折叠”成所需的模型。他们提供了对QNN各个组件的初步了解。從那时起,越来越多的文章发表在计算机科学和量子物理学的期刊上,QNN逐渐受到关注。2008年,Elizabeth Behrman和Jim Steck提出了一种动态学习范式,由许多具有可协调相互作用的量子比特组成。 遵循经典的反向传播规则,从所需输入 - 输出关系的训练集中学习相互作用的强度,因此量子网络“学习”算法。他们演示了经典门XOR和XNOR的学习。2014年,基于量子相位估计算法,Francesco Petruccione等人提出了使用基于电路的量子计算模型直接实现激活函数。
3.结语
量子世界充满着奇妙的理论与现象,也充满了尚未完全开采的宝贵财富,量子计算就是其中一块璀璨的宝石。相比于传统神经网络,量子神经网络具有计算速度快,记忆容量大,网络规模小,可消除失忆现象等突出优点,非常适合目前数据量大,计算能力要求高的现实应用场景,故一定会是未来的一个研究热点。让我们拭目以待,看看量子理论与神经网络结合,到底能产生什么样的火花
参考文献
[1] Farhi E , Neven H . Classification with Quantum Neural Networks on Near Term Processors[J]. 2018.
[2]林雄, 林帅. 量子计算与量子计算机展望[J]. 微型机与应用, 2012(22):8-10.
[3]王晋岚.量子计算最新进展[J].科学,2018,70(01):8.
[4]丁玲.量子机器学习算法综述[J].电子世界,2019(12):24-26.
[5]杨春平.计算机新技术的发展与普及前瞻[J].电子技术与软件工程,2019(24):108-109.
作者简介:张涵(1999.11-),男,江西抚州人,湖北省武汉市武汉大学信息与计算科学专业,本科生。