作者: 刁学磊 量子计算基于物理学,使用不同的体系结构,不仅运算速度更快,而且还能完成更复杂的渲染,生成更细微的结果。普通计算机将信息存储为 1 或 0,而量子计算机却是使用量子纠缠和叠加,以不同的方式来处理信息。例如,量子计算不仅能生成二进制输出,而且可以进行更多的定性分析。它可以为同一个问题提供多个答案,例如,将概率分配给不同的结果,而不是只提供单一的解决方案。 在2017年的微软Ignite大会上,微软CEO Satya Nadella用玉米迷宫的形象比喻解释了经典计算机和量子计算机之间的差异:为了找到迷宫的出口,经典计算机先开启一条搜索路径,遇到障碍物后会沿原路返回。之后再次探寻新路,直到遇障返回或找到了正确出口。虽然最终能找到一个结果,但这种方法相当耗时。 对比之下,量子计算机“解锁了神奇的并行性。它们同时探寻玉米迷宫中的每一条路。”因此,量子计算机可能指数级地减少解决问题的步骤。 这种并行性正是起源于量子物理中“量子位”、“叠加”和“纠缠”等理论。 此外,量子计算使得包括机器学习在内的人工智能应用速度显著提升。许多科技巨头如微软和谷歌等对量子计算长期项目投资感兴趣背后的重要原因,是建立一个全新基础架构的潜力。量子计算让之前不切实际的计算和计算机思维变得可能,可以同时执行更多的计算。 机器学习是人工智能的核心,通过使机器模拟人类学习行为,智能化地从过去的经历中获得经验,从而改善其整体性能,重组内在知识结构,并对未知事件进行准确的推断。机器学习在科学和工程诸多领域都有着非常广泛的应用,例如金融分析、数据挖掘、生物信息学、医学诊断等。生活中常见的一些智能系统也广泛使用机器学习算法,例如电子商务、手写输入、邮件过滤等。 随着大数据时代的到来,人类产生的电子数据正在以每两年翻一番的增幅爆炸式增长。据估计,人类在过去三年间产生的数据总量超过了之前几千年产生的数据总量。另一方面,随着后摩尔时代的到来,经典计算机芯片尺寸难以进一步缩小,计算速度的进一步提升受到限制,科学家预测机器学习等大数据分析任务在未来或面临大数据爆炸式增长的巨大挑战。 应对这一挑战,欧美主要发达国家政府和高科技公司已经在积极整合研究力量和资源,抢滩布局,力争在量子信息技术应用方面占据先机。2013年,美国国家航空航天局和Google联合成立了量子人工智能实验室。
图1:由D-Wave系统公司开发的量子计算机
2013年,美国麻省理工学院(MIT)塞斯·罗伊德(Seth Lloyd)教授提出理论预言,利用量子系统在处理高维向量上的并行计算优势,可以为机器学习带来指数量级的加速,将能远远超越现有经典计算机的运算速度。理论估计,计算两个亿亿亿维向量的距离,用目前最快的、每秒钟亿亿次运算速度的经典计算机大概需要十年,而用GHz时钟频率的量子计算机则可需要不到1秒的时间。 2014年,英国牛津大学、诺基亚公司、和全球最大军火供应商洛克希德马丁公司合建了量子优化和机器学习中心。 IBM、谷歌、Intel 和旧金山的一家创业公司Rigetti 正在竞相建立各自的量子系统。这些机器利用量子物理学的违反直觉的特性,以与传统计算机不同的方式处理信息。 2017年 11 月12日,IBM 树立了计算领域的一个里程碑,宣布建成一台能够处理 50 量子比特或量子位的量子计算机。该公司还在其云计算平台上线了一个 20 量子比特的系统。 IBM 研究量子计算由来已久,该公司的研究人员创建了量子信息处理领域,并在该领域进行了几十年的基础研究。在可用性量子系统方面,IBM 也取得了重大进展,首先是实现云计算可以访问量子计算机,开发相关的软件工具,其次是证明一个简单的机器可以在化学等领域的用途。 近年来,谷歌对量子计算的兴趣也大增。2017 年 10 月 24 日,继开源 tensorflow、caffe 等深度学习开发框架后,谷歌在自己的官方博客上宣布,开源量子计算软件 OpenFermion,从而让科学家更方便的使用量子计算机。 谷歌称,这次开放的是 OpenFermion 的源代码,可供用户免费使用,化学家和材料学家可以利用谷歌软件改编算法和方程,使之能在量子计算机上运行。事实上,谷歌开源的做法也是量子计算机领域目前的趋势,IBM、英特尔、微软和 D-Wave 等公司都曾宣布开放自己的量子计算平台,使之能促进量子计算的商业化运行。 另外,在一篇发布于 Nature 的文章中,Google 发表了一份关于量子优越性的声明,公开了 Google 对于证明量子计算机拥有超越传统计算机任务执行能力的计划。计划的关键点是建立 50 量子比特的量子计算器来解决量子采样问题。 据《新科学人》报道,Google 已经成功地模拟 9 量子比特(量子计算机实现了量子采样,目前正在积极打造一个 50 量子比特的量子计算机。 主要挑战在于,随着量子比特数目的增加,如何能够保持低误码率,这是也量子可扩展性的主要问题。谷歌的工程师 Alan Ho 解释说,谷歌目前正在建立一个量子系统,预计能够在年底前达到至少 99.7%的双量子保真度。 尽管 IBM 已经建成一台能够处理 50 量子比特的量子计算机,但这并不意味着量子计算已经可以被普遍采用。因为 IBM 开发的系统仍然和其他公司构建的系统一样非常挑剔且具有挑战性。在 50 和 20 量子比特的系统中,量子态存在了 90 微秒,虽然打破了业界记录,但时长仍然十分短暂。 尽管如此,50 量子位系统的建成是量子计算机发展的重要标志。迄今为止,其他建成的系统性能有限,只能完成一些在传统的超级计算机上也可以进行的计算。而一个 50 量子比特的机器可以做到非量子计算技术无法企及的任务。 国内方面,中国科学技术大学潘建伟小组发展了世界领先的光量子计算物理实现研究平台,在国际上率先实验实现了基于量子比特的机器学习算法演示。该算法的核心是通过以经典数据编码的微观量子态和辅助量子比特的纠缠,快速提取出不同向量间的内积、欧几里得距离等信息。审稿人一致评价该工作“非常前沿,具有高度的兴趣”、“在量子机器学习这个重要而有趣的课题迈出了第一步”。PhysOrg等国际科学新闻媒体报道了这一工作。 清华大学量子信息中心,简称量子中心,挂靠交叉信息研究院,成立于2011年,由世界著名计算机学家、2000年图灵奖得主姚期智院士领导,清华大学姚期智讲座教授段路明担任执行主任,致力于在创建量子计算机和量子互联网的竞赛中,占据国际领先的位置,为中国在国际前沿科学研究上树立标杆,建设世界一流的量子信息研究中心和人才培养基地。 机器学习这类算法的瓶颈始终在有效数据量和计算性能上,机器学习是很古老的技术,计算性能的增长才能带来未来机器学习的繁荣。 量子计算机使用诸如量子相干和纠缠等效应来处理信息,而传统计算机则做不到。量子算法是在量子计算机上执行的逐步过程,用于解决诸如搜索数据库之类的问题。量子机器学习软件利用量子算法来处理信息。在解决某些问题时,量子算法在原则上可以胜过最著名的经典算法。这被称为量子加速 。 例如,量子计算机可以搜索具有N个条目的未分类数据库,所耗费时间与√N成正比,即,具有O (√N)复杂度;与此相比,经典计算机对同一数据库的黑箱访问所耗费时间与N成正比。因此,在这类问题上,量子计算机与经典计算机相比,具有平方根加速。 类似地,量子计算机可以在N个数据点上进行傅立叶变换,反转N ×N稀疏矩阵,并找到它们的特征值和特征向量,这个过程耗费的时间与log2N成正比,而已知的经典计算机最佳算法的时间消耗与 Nlog2N成正比。因此,量子计算机与经典计算机最优算法相比,在这类问题上具有指数加速。 在下面的表1中 ,加速与否是相对于经典算法而言的。例如,O(√N)意味着相对于经典算法的平方根加速, O(log(N))意味相对于经典算法的指数加速。
表1:给定量子机器学习子程序的加速技术 例如,几个量子基本线性代数程序——傅里叶变换,寻找特征向量和特征值,求解线性方程——与其最著名的经典算法对应物相比都展示了指数量子加速。这种量子基本线性代数程序的加速可转化为各种数据分析和机器学习算法的量子加速,包括线性代数,最小二乘拟合,梯度下降,牛顿法,主成分分析,线性、半定性和二次规划,拓扑分析和支持矢量机。同时,诸如量子退火器和可编程量子光学阵列等专用量子信息处理器与深度学习架构也有很好的匹配。 尽管目前还不清楚这种潜力可被实现的程度,但我们有理由认为,量子计算机可以识别出经典计算机无法在数据中识别的模式。 我们所考虑的学习机器既可以是经典的,也可以是量子的。它们分析的数据既可以是量子感测得到的量子状态,也可以或测量装置获取的经典状态。量子计算机分析的数据可以是经典数据,这些数据最终被编码为量子态或量子数据。 古典机器学习和数据分析可以分为几类。首先,计算机可以用于执行“经典”的数据分析方法,如最小二乘回归,多项式插值和数据分析。机器学习协议可以是有监督的或无监督的。在监督学习中,训练数据被分为多个标记类别,例如手写数字的样本按照所表示的数字被标记分类,机器的工作是学习如何为训练集之外的数据分配标签组。在无监督学习中,训练集未被标注,机器的目标是找出训练数据所属的自然类别(例如,互联网上不同类型的照片),然后对训练集外的数据进行分类。最后,有的机器学习任务如围棋AI,涉及监督学习和无监督学习的组合,并且会利用由机器本身所产生的训练集。 而基于线性代数的量子机器学习是通过对高维向量空间中的向量执行矩阵运算,可以对各种数据分析和机器学习协议进行操作。而量子力学所擅长的恰恰是是对高维向量空间中向量的矩阵运算。 这些方法的关键因素是,n个量子比特或量子位的量子态是2^n维复向量空间中的一个向量; 对量子位执行量子逻辑运算或测量,是将相应的状态向量乘以2^n×2^n个矩阵。 通过构建这样的矩阵变换,量子计算机已被证明可以执行常见的线性代数运算,如傅里叶变换,寻找特征向量和特征值,以及在时间上求解 2^n 维向量空间的线性方程组,只需耗费 n的多项式时间,与相应的经典算法相比具有指数级的高速。后一算法通常被称为HarrowHassidim Lloyd(HHL)算法。这个算法的原始版本假定,一个 wellconditioned 的矩阵是稀疏的。在数据科学中,稀少性不太可能。后来的改进放宽了这一假设,使之也能包含低阶矩阵。下面,通过介绍HHL算法,我们会研究几个量子算法,这些算法在量子计算学习软件中采用线性代数技术时会作为子程序被用到。 用于反演方程系统的HHL算法是一个基础性的、易于理解的子程序,它是许多量子机器学习算法的基础。该算法试图用量子计算机求解A x= b 。 图2给出了HHL算法的输入和输出。经典的求解线性方程的问题:输入一个n*n的矩阵A和一个n维向量b,输出n维向量x,满足Ax=b。
图2 HHL算法输入、输出
HHL这个量子算法则是有一定的限制条件的: 1. 对输入A和b的要求:首先要求n*n的矩阵A是一个Hermitian矩阵(即A的共轭转置矩阵等于它本身),其次输入b是一个单位向量。当A不是Hermitian时,作者在文中也给出了构造Hermitian矩阵的方法,关于这个技巧咱们以后讨论。算法的输入部分如图1中红色方框所标出。输入b存放在底部寄存器中,输入A作为相位估计中酉算子的一个组成部分。 2. 输出x的形式:算法的输出如图1中蓝色部分标出,依旧存放在底部寄存器中(即输出x和输入b是在同一个寄存器中)。底部寄存器存放的是一个蕴含了向量x的量子态。这里的“蕴含”的意思是我们并不能读出这个x的确切值是什么。不过我们能够得到一个关于x的整体特性,比如我们能够通过一个算子M,得到一个关于x期望值的一个评估:x’Mx。这也是HHL算法的一个局限性。然而,对于很多应用来说,也许x的确切值并不是非要提取出来,在这种情况下,HHL算法还是相当高效的。 HHL算法的一个核心思想是“提取占比”。 HHL算法包括3个子过程,如图3所示。HHL算法以及很多基于它的算法都可以分为3个子过程:相位估计,受控旋转,逆相位估计。逆相位估计就是相位估计的逆运算(如果把相位估计整个子过程看做是一个矩阵UPEUPE,逆相位估计就可以看作是矩阵UPEUPE的逆)。
图3 HHL算法过程 受控旋转起的作用就是:“提取占比”。在HHL算法中,受控旋转操作(蓝色方框部分)通过一个附加量子比特实现了将基态值的倒数按比例提取到了对应基态的概率幅上。 HHL算法解决了涉及多自由度的广泛线性代数问题,解决问题的速度比任何传统超级计算机都要快。并且,由于大部分机器学习都涉及到这些高自由度的(高维)代数问题,一些机器学习研究人员已经转向了HHL的研究潮流。过去几年中,基于HHL的量子机器学习算法在技术文献中不断增多。这个算法开创了整个量子机器学习时代。 线性系统是很多科学和工程领域的核心,由于HHL算法在特定条件下实现了经典算法的指数加速效果,未来能够在数据处理、机器学习、数值计算等场景具有广泛应用。未来使用量子计算最有效的方法,是把这种先进计算机与传统计算机的云计算系统结合起来。
|