原文:zh.annas-archive.org/md5/672c3b00edaf838546b2ff73dc54c7d0

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

量子机器学习 – 既是最被夸大的领域,也是最被低估的领域。


约尔达尼斯·凯雷尼迪斯

引言

为什么是量子计算? 量子计算和人工智能将像 20 世纪下半叶的经典数字计算以及 21 世纪前二十年的互联网一样,彻底改变并颠覆我们的社会。

量子计算(或者更广泛地说,量子信息理论)自 1960 年代以来一直是广泛研究的主题,但直到最近十年,硬件方面的进展才使得量子计算算法的测试成为可能;而且直到最近几年,量子计算的优越性才最终被确认为一种实验事实(即在谷歌的 53 量子位 Sycamore 量子芯片上进行的具有里程碑意义的实验[16])。

量子计算的发展历程在这方面类似于人工智能的故事:人工智能诞生于 1950 年代,但经历了两次“寒冬”,在那时人工智能和机器学习的兴趣大幅下降(先是 1970 年代英国的 Lighthill 报告和美国的语音理解研究灾难,随后是 1990 年代 LISP 的崩溃),之后才广泛应用和接受,以至于我们现在无法想象没有它的生活。

尽管我们不能排除在量子计算技术像互联网、智能手机和人工智能那样深入日常生活之前会经历“量子计算寒冬”,但我们在过去几年中目睹的量子计算突破使这一可能性变得不太可能。

随着近期在该领域的进展,我们终于进入了噪声中间规模量子(NISQ)计算时代[237]。NISQ 时代的计算机足够强大,可以测试量子计算算法并解决具有挑战性的实际问题——并且在可比的经典硬件上建立量子加速和量子优势。

然而,首批真正的生产级商业应用可能会是混合量子-经典协议,其中大部分计算和数据处理是经典完成的,但最难的问题会外包给量子芯片。在金融领域,离散投资组合优化问题(即 NP 难问题)就是这样的例子,并且是明确的解决目标。

为什么选择量子机器学习? 它是量子计算和人工智能的结合,可能会带来最激动人心的机会,包括在金融领域的广泛应用,同时也包括在医学、化学、物理学等领域的应用。我们已经见证了使用参数化量子电路训练的第一个有前景的结果,这些电路可以作为生成模型(如量子电路博恩机,可作为合成数据生成器使用)或判别模型(如量子神经网络,可以作为分类器训练)。可能的应用场景包括市场生成器、数据匿名化、信用评分和交易信号生成。

到目前为止提到的所有模型和技术都依赖于通用的门模型量子计算机的存在。然而,还有另一种类型的量子硬件——量子退火器——它实现了绝热量子计算的原理。量子退火器是模拟量子计算机,非常适合解决对于经典计算机来说是 NP 难的复杂优化问题。优化问题是金融领域中大量难以解决的问题,更不用说许多金融中使用的监督学习和强化学习工具是通过解决优化问题(最小化成本函数,最大化奖励)进行训练的。

使用量子退火器解决的判别式机器学习问题的一个例子是通过多个弱分类器构建一个强分类器——量子提升算法。强分类器对过度训练和训练数据中物理可观察量相关性错误具有较强的抗干扰能力。量子退火训练的分类器的表现与最先进的经典机器学习方法相当。然而,与这些方法不同,基于退火的分类器是直接可解释的实验参数的简单函数,具有明确的物理意义,并且在小型训练数据集上,相比传统机器学习方法表现出一定的优势。

量子退火的另一个应用是生成学习。在深度学习中,训练深度神经网络的一个著名方法是先训练生成式深度玻尔兹曼机,通常使用对比散度(CD)算法,然后使用反向传播或其他判别技术对权重进行微调。然而,生成式训练通常耗时较长,因为玻尔兹曼(吉布斯)采样的混合速度较慢。基于量子采样的训练方法可以在生成式训练的迭代次数显著减少的情况下,达到与传统 CD 方法相当甚至更好的准确性。

因此,本书的主要焦点是解决可以在 NISQ 硬件上执行的量子机器学习(QML)算法的实际应用问题,而非采用传统的量子计算教材方式,详尽描述标准量子计算算法(如 Shor 算法、Grover 算法、),这些算法的量子硬件需求远超 NISQ 计算机的能力。书中还重点介绍了反映最有效利用量子计算能力的混合量子-经典计算协议——量子计算解决方案在与经典计算协同工作时,能为用户提供最大效益。

本书涵盖了所有主要的量子机器学习(QML)算法,这些算法已成为业界深入研究的对象,并且显示出了早期的量子优势潜力。我们还提供了对模拟量子计算机和数字量子计算机的平衡视角,并未试图预测哪种量子计算技术(超导量子比特、困束离子、中性原子等)最终会获胜。内容以硬件无关的方式呈现,重点强调算法的基本特性,而非它们的硬件实现,尽管我们并没有忽视算法的嵌入问题以及现有量子计算硬件的实际限制。

为什么选择金融? 可以合理预期,近年来我们所见证的量子硬件的快速进步,将促使量子计算技术在金融领域的广泛应用。金融行业已经在研究量子机器学习(QML)解决经典计算难题的潜力,并帮助实现数字化转型。我们可能已经超越了量子计算霸主地位的阶段,但我们探索量子计算优势的旅程才刚刚开始。

定量金融是一门充满有趣但计算上非常复杂的问题的学科。许多此类问题具有跨学科的特性,通常需要将其他领域中发展出的数学和计算技术进行转化和应用。例如,我们可以提到随机微分方程理论在期权定价中的应用[226],最优控制理论方法在管理科学和经济学中的应用[260],以及机器学习技术在投资组合构建和优化中的应用[193]。

这就是为什么当我们寻找各种现实世界的应用案例来测试(并改进!)量子计算算法时,我们转向金融领域。本书提供了许多量子计算技术和算法的示例,应用于解决实际的金融问题,如投资组合优化、信用卡违约预测、信用审批以及生成合成市场数据。同时,方法和技术以最一般的形式进行了表述和展示——我们希望读者能在金融及其他领域发现许多新的、令人兴奋的量子计算应用案例。

本书适合的读者

本书主要面向三个群体:学术研究人员和 STEM(科学、技术、工程和数学)学生;从事定量金融和相关领域的金融专业人士;计算机科学家以及机器学习/人工智能专家。同时,本书的组织方式使其对更广泛的受众也具备可读性和实用性。

本书不要求读者具备量子力学的前置知识,数学工具的复杂性不应让人感到畏惧:尽管我们没有牺牲数学的严谨性,但重点是理解模型和算法的基本属性。

本书的内容

本书分为两部分,反映了从类比量子计算到数字量子计算的自然进展,同时深入分析和理解算法。然而,我们从一章开始,讲解量子力学的基本原理,并为基于这些原理的计算方法提供动机。

第一章,量子力学原理,涵盖了量子力学的基本数学原理。它提供了必要的定义,并讨论了量子力学的公设及其与量子计算的相关性。

第一部分:类比量子计算 – 量子退火

多年来,量子退火器是唯一可用的大规模量子计算设备,用于解决非平凡的 NP 困难组合优化问题。尽管量子退火特别针对解决经典上难以解决的优化问题,但它也可以用于许多不同的量子-经典混合问题,例如采样器和分类器。本书详细介绍了这些应用,并通过具体的金融案例进行说明。

第二章,绝热量子计算,介绍了类比量子计算的概念。本章首先讲解了绝热量子计算的原理,并接着阐述了量子绝热定理。绝热量子计算的物理实现是量子退火,它与经典的退火方法——模拟退火一起进行解释。本章还讨论了绝热量子计算的实现、局限性和普适性。

第三章,二次无约束二进制优化,描述了量子退火最重要的应用:解决经典难度的优化问题。许多组合优化问题可以被表述为二次无约束二进制优化(QUBO)问题(或等价地,作为伊辛问题),这些问题可以通过量子退火器求解。本章深入讲解了前向和反向量子退火技术,并展示了量子退火在离散投资组合优化案例中的强大能力。

第四章,量子增强,将 QUBO 应用的范围扩展到组合优化以外,并概述了量子增强算法,该算法旨在将大量弱经典分类器组合成一个强分类器。该算法被表述为一个可在量子退火器上执行的 QUBO 问题,并应用于从大量弱预测器中构建信用卡违约强预测器的案例。

第五章,量子玻尔兹曼机,进一步探讨了量子退火在机器学习中的应用。量子玻尔兹曼机可以作为生成模型,用于从学习到的概率分布中进行采样,同时也是预训练深度前馈神经网络的高效方法。

第二部分:门模型量子计算

门模型量子计算硬件近年来取得了巨大的进展,正迅速接近量子优势的门槛。寻找量子优势——即量子计算解决方案在现实世界中能够优于任何可行的经典替代方案——是金融及其他领域量子计算研究的主要动力之一。本书探讨了在现有的 NISQ 设备上可实现的主要量子计算算法,并突出了可能从这一新量子计算范式中受益的各种金融应用。

第六章,量子比特与量子逻辑门,介绍了门模型量子计算的范式。我们从经典数字计算的基本概念开始,扩展计算逻辑以适应叠加和纠缠的新原则。本章对比了经典与量子逻辑门,并展示了如何从单个量子逻辑门组装量子电路。

第七章,参数化量子电路与数据编码,继续构建量子算法,涵盖了构建参数化量子电路(PQCs)的理论和实践方面,并展示了如何将经典样本编码为由 PQCs 处理的量子态。本章提供了具体数据编码技术的详细描述。

第八章,量子神经网络,探讨了训练为分类器的参数化量子电路。在本章中,我们展示了如何利用可微分和不可微分的学习算法高效地训练量子神经网络。本章还讨论了现有量子处理单元(QPUs)的局限性,以及如何设计量子电路以最大程度地从现有的量子计算硬件中获得益处。我们在信用审批的应用案例上调查了量子神经网络的性能,并将其与几种标准的经典分类器进行了对比。

第九章,量子电路博恩机器,介绍了量子版的经典生成模型,例如玻尔兹曼机——量子电路博恩机器(QCBM)。本章首先定义了 QCBM,并介绍了如何在现有的量子处理单元(QPUs)上高效地配置和运行它,接着讨论了可微分和不可微分的学习与训练过程,并以经典限制玻尔兹曼机为基准,最后讨论了市场生成器的应用案例。

第十章,变分量子特征求解器,介绍了变分原理,并制定了变分量子特征求解器(VQE)在优化问题中的方法。本章讨论了量子-经典混合方法来训练 VQE,并探讨了在 NISQ 设备上运行 VQE 的实际问题。

第十一章,量子近似优化算法,描述了门模型量子计算方法(受量子退火启发)解决 QUBO 类型问题的思路,例如 NP 难度的最大割优化问题。

第十二章,参数化量子电路的力量,探讨了我们期望在参数化量子电路的实际应用中展示量子优势的主要来源。本章重点讨论了两个方面:量子神经网络提供的强正则化和量子生成模型的表达能力。

第十三章,展望未来,讨论了新兴的有前景的量子算法和技术,例如量子核方法、量子生成对抗网络(GAN)、贝叶斯量子电路和量子半正定编程。

如何最大化本书的价值

本书旨在深入介绍量子计算技术在量化金融问题中的应用。虽然本书设计为自包含的,但假设读者对代数、分析和计算中的基本数学概念有所了解。不要求具备量子力学的知识,但书中的主要工具将会被解释,并使非物理学家也能理解。

使用的约定

本书中使用了多种文本约定。

CodeInText:表示文本中的代码词汇、软件包、文件夹名称、路径名等。

当我们希望引起您对某个特定定义或符号的注意时,相关的行或条目将采用斜体粗体显示。

重要的备注和结论以框框形式展示。

联系我们

我们始终欢迎来自读者的反馈。

一般反馈: 请通过电子邮件 feedback@packtpub.com,并在邮件主题中提及书名。如果您对本书的任何内容有疑问,请通过电子邮件联系 questions@packtpub.com。

勘误: 虽然我们已尽全力确保内容的准确性,但错误有时难以避免。如果您在本书中发现任何错误,我们将非常感激您向我们报告。请访问 www.packtpub.com/submit-errata,选择您的书籍,点击勘误提交表单链接,并填写相关详情。

盗版: 如果您在互联网上遇到任何非法的我们的作品副本,无论以何种形式,我们将非常感激您提供具体地址或网站名称。请通过 copyright@packtpub.com 联系我们,并提供链接。

如果您有兴趣成为作者: 如果您在某个领域有专业知识,并且有兴趣撰写或为书籍贡献内容,请访问 authors.packtpub.com

分享您的想法

一旦您阅读了 《量子机器学习与金融优化》,我们非常希望听到您的想法!请 点击这里直接前往亚马逊评论页面 并分享您的反馈。

您的评价对我们和技术社区非常重要,它帮助我们提供优秀的内容。

下载此书的免费 PDF 版本

感谢您购买本书!

您是否喜欢随时随地阅读,但又无法将纸质书籍随身携带?您的电子书购买是否与您选择的设备不兼容?

别担心,现在购买每本 Packt 书籍时,您都可以免费获得该书的无 DRM PDF 版本。

在任何地方、任何设备上随时阅读。直接从您最喜欢的技术书籍中搜索、复制并粘贴代码到您的应用程序中。

福利不仅仅止步于此,您还可以独享折扣、新闻简报,并每天将精彩的免费内容发送到您的收件箱。

按照以下简单步骤获取福利:

  1. 扫描二维码或访问下面的链接:

    https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file2.png

    packt.link/free-ebook/9781801813570

  2. 提交您的购买证明

  3. 就是这样!我们会直接将您的免费 PDF 和其他福利发送到您的电子邮件。

第一章:量子力学原理

量子力学是物理理论发展的框架;它本身并不是一种物理理论[80]。实际的物理理论是建立在量子力学的基础之上的。这也是为什么量子力学在所有自然科学中扮演着如此重要的角色。信息理论也不例外,同样从量子力学的思想和方法中获得了启发。

理解量子计算需要对量子力学的基本原理有一定的了解。本书不假定读者已有量子力学的背景知识,并在需要时提供所有必要的定义和解释。同时,鼓励读者根据自己熟悉的数学形式主义,进一步了解这一迷人的学科。在介绍量子力学的广泛教科书宇宙中,有必要提到经典的兰道和李夫希茨的书籍[182],以及同样经典的尼尔森和程关于量子计算的书籍[223],它们从量子计算的角度涵盖了量子力学的最相关方面。对于刚开始接触量子计算并希望获得整体概念和历史视角的人来说,伯恩哈特的优秀书籍[32]提供了这些内容,并且没有大量使用复杂的数学工具。寻求量子力学正式现代解读的读者可以参考罗宾内特的书籍[249]。量子计算的实际应用方面则在苏托尔的书籍[278]中得到了详细阐述,任何寻求量子计算编程的 Python 教材的读者,都可以在洛雷多的著作[195]中找到。

1.1 量子力学中的线性代数

量子计算和量子力学依赖于一种特定的符号体系,这是由于狄拉克的贡献,并且得到了经典线性代数的支持,特别是矩阵的厄米结构和张量积。我们在这里提供了这些工具的独立回顾,以便于理解本书的其余部分。我们从基本的线性代数原理开始,然后介绍狄拉克符号和线性代数工具的量子对应物。第 1.1.1 节到第 1.1.4 节集中介绍有限维希尔伯特空间和矩阵的标准定义,而第 1.1.5 节到第 1.1.7 节回顾了复矩阵的关键细节和性质(分解、厄米性质和旋转)。第 1.1.9 节到第 1.1.11 节介绍了狄拉克的形式主义及量子算符的基本方面。

1.1.1 基本定义和符号

我们令𝔽表示实数域ℝ或复数域ℂ。对于复数z = x+iy ∈ℂ,其中 x,y ∈ℝ,我们写作共轭 z^∗ := x−iy。我们令ℳm,n 表示维度为m × n,元素为𝔽的矩阵空间;当m = n时,写作ℳn。对于 A := (a[ij])[1≤i≤m; 1≤j≤n] ∈ℳm,n,A^∗ := (a[ij]^∗)[1≤i≤m; 1≤j≤n] 是其复共轭。如果 A ∈ℳn,我们写 A^⊤ 表示其转置,A^† := (A∗)⊤ 表示其厄米共轭。最后,令 I 为单位矩阵,并在需要强调维度时写作 I[n],0[m,n]表示ℳm,n 中的零矩阵。回想一下,若矩阵 A ∈ℳn 是可逆的(或非奇异的),则存在 B ∈ℳn 使得 AB = BA = I[n]。对于两个矩阵 A ∈ℳp,m 和 B ∈ℳq,n,我们定义它们的张量积为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file3.jpg

由于向量是矩阵的一种特例,对于 u ∈𝔽^m 和 v ∈𝔽^n,我们可以写作

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file4.jpg

1.1.2 内积

定义域为𝔽的向量空间 V 是一个集合,并配备了

  • 一个交换的、结合的加法运算,

  • 一个标量乘法的操作。

加法和标量乘法具有以下性质(对于标量α,β ∈𝔽 和向量 u*,*v ∈V):

  • v + 0 = v;

  • v + (−v) = 0;

  • α(βv) = (αβ)v;

  • (α + β)v = αv + βv;

  • α(u + v) = αu + αv;

  • 1 ⋅ v = v。

有了这个,我们现在可以定义 V 上的内积:

定义 1. 一个映射 ⟨⋅*,⋅⟩ : V ×V →𝔽 被称为内积*,如果对于 u*,v,*w ∈V 和 α ∈𝔽,

  • (正定性) ⟨u*,u⟩≥ 0,且 ⟨u,*u⟩ = 0 当且仅当 u = 0;

  • (共轭对称性) ⟨u*,v⟩ = ⟨v,*u⟩^∗;

  • (第一个参数是线性的) ⟨u + v*,w⟩ = ⟨u,w⟩ + ⟨v,w⟩ 且 ⟨αu,v⟩ = α⟨u,*v⟩;

  • (第二个参数是反线性的) ⟨u*,v + w⟩ = ⟨u,v⟩ + ⟨u,w⟩ 且 ⟨uv⟩ = α^∗⟨u,*v⟩。

内积进一步被称为非退化的,如果 ⟨u*,*v⟩ = 0 对所有 v ∈V ∖{0} 都意味着 u = 0。

例如,以下空间带有自然内积:

  • 向量空间ℂ^n 的内积定义为 ⟨u*,v⟩ := u^†v = ∑ [i=1]n*u*[i]v*[i];

  • 定义在[0*,1]上的复值连续函数空间,其内积定义为 ⟨f,g⟩ := ∫ [0]¹f*(t)^∗g(t)dt

  • 如果 X*,Y ∈ℳm,n,则 ⟨X,*Y⟩ := Tr(X^⊤Y) = ∑ [i=1]^m ∑ [j=1]^nX[ij]Y[ij] 定义了(实数)矩阵空间上的内积。

投影矩阵在几何中特别有用:

定义 2. 一个矩阵 P ∈ℳn 称为(正交)投影,如果 P² = P。

特别地,如果 W 是𝔽^n 的一个向量子空间,并且有一个正交归一基 (w[1]*,…,*w[d]),那么很容易验证满足 𝒫[W] : 𝔽^n →𝔽^n 的映射,它将𝔽^n 投影到 W 上。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file5.jpg

定义了一个正交投影。

1.1.3 从线性算子到矩阵

设 V 是一个定义在 𝔽 上的有限维向量空间,且 ⟨⋅*,*⋅⟩ 是 V 上的非退化内积。给定线性算子 𝒜 : V →V,根据 Riesz 表示定理 [309,第 III-6 节],存在唯一的线性算子 𝒜^† : V →V,称为伴随算子,使得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file6.jpg

实际上,对于任何 v ∈V,映射 u ∈Vhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file7.jpg⟨𝒜u*,v⟩ 是一个线性泛函,因此它是对偶空间 V^†(V 上有界线性泛函的空间)中的一个元素,因此对于每个 v ∈V,存在 v′∈V 使得 ⟨𝒜u,v⟩ = ⟨u,*v′⟩。然后可以容易地证明映射 vhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file8.jpgv′ 是线性的,从而证明伴随算子是唯一确定的。在特别的情况下,当 𝒜 = 𝒜^† 时,算子 𝒜 称为厄米算子,这是量子力学中的一个关键要求:

定义 3. 如果 𝒜 = 𝒜^†,则称算子 𝒜 为 厄米算子,或 自伴随算子

对于厄米算子 𝒜,我们有,对于任意 u ∈V,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file9.jpg

通过共轭对称性(定义 1),因此 ⟨𝒜u*,u⟩ 是实数。反之,如果 ⟨𝒜u,*u⟩ 是实数,那么

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file10.jpg

因此,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file11.jpg = 0;因为对所有 u ∈V 这都成立,因此 𝒜 = 𝒜^†。

以下算子属性将有助于确保由算子驱动的系统保持距离或范数:

定义 4. 线性算子 𝒜 : V → V 称为 酉算子,如果它是满射的,并且

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file12.jpg

回想一下,两个有限维范数空间之间的线性算子是有界的,因此是连续的。对于任何 u ∈V,这意味着 ∥𝒜u∥ = ∥u∥,因此酉算子 𝒜 保持范数。在这种情况下,𝒜 是等距的,因此是单射的。由于它也是满射的,它是双射的,因此其逆存在。对于酉算子 𝒜 和任何 u*,*v ∈V,我们有

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file13.jpg

根据伴随算子的定义,意味着

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file14.jpg

其中 ℐ 是单位算子。

示例(实矩阵): 如果 V = ℝ^n 且内积 ⟨u*,v⟩ := u^⊤v 对于 u,*v ∈ℝ^n,则线性算子 𝒜 可以看作 ℳn 中的矩阵 A。其伴随算子无非就是转置矩阵 A^⊤,因此 A 当且仅当它是对称矩阵时才是自伴随的。在这种情况下,如果 A 是酉矩阵(或正交矩阵),那么它是可逆的,并且 A^(−1) = A^⊤。在 ℝ² 中的旋转矩阵将在后续构建量子电路时发挥重要作用,它们是 ℝ² 上到自身的唯一酉映射,形式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file15.jpg

对于 𝜃 ∈ 0*,2π*) 和 δ ∈{−1*,*+1}。

示例(复矩阵): 如果 V = ℂ^n,内积 ⟨u*,v⟩ := v^†u,对于 u,*v ∈ℂ^n,线性算子 𝒜 现在可以看作是 ℳ[n 中的一个矩阵。此时,该矩阵的伴随矩阵是 Hermitian 共轭 A^†,如果 A = A^† 则称 A 为 Hermitian 矩阵,如果 A^†A = I[n],则称 A 为酉矩阵。我们将用 𝒰n 表示 ℳn 中的酉矩阵集合。我们将在第 1.1.6 节中更详细地讨论复数域上的 Hermitian 矩阵。

1.1.4 条件数

为了操作矩阵并进行测量,我们需要矩阵范数:

定义 5. 矩阵范数 ∥⋅∥ : ℳm,n →ℝ 是一个满足以下条件的函数,对于任意 α ∈𝔽 和 A,*B ∈ℳm,n,

  • (正值)∥A∥≥ 0;

  • (确定的) ∥A∥ = 0 当且仅当 A = 0[m,n];

  • (绝对齐次)∥αA∥ = |α|∥A∥;

  • (三角不等式)∥A + B∥≤∥A∥ + ∥B∥。

如果 ∥AB∥≤∥A∥∥B∥,则该范数进一步称为子乘法范数。

矩阵的条件数是理解线性方程组 Ax = b 稳定性的重要工具,其中 A ∈ℳn,b ∈𝔽^n。假设 A 非奇异,则真实解显然是 x[∗] := A^(−1)b。然而,假设向量 b 仅通过某些(不一定是量子)测量误差已知,实际观察到的是 b + Δ[b]。此时解为 A^(−1)(b + Δ[b]) = x[∗] + Δ[x],其中 Δ[x] := A^(−1)Δ[b]。特别地,对于任何(子乘法)矩阵范数 ∥⋅∥,我们可以写作:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file16.jpg

从这个不等式中,我们可以看出,数量 ∥A^(−1)∥∥A∥ 约束了解的相对误差与输入向量 b 测量误差的相对误差之间的关系。这引出了以下术语:

定义 6. 给定矩阵 A ∈ ℳn 和子乘法范数 ∥⋅∥,我们称

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file17.jpg

条件数(相对于范数 ∥⋅∥)是矩阵 A 的一个重要指标(如果 A 是奇异的,则赋予其无穷大值)。

备注: 上述条件数的定义适用于任何矩阵范数 ∥⋅∥,但在特定情况下,对于谱范数 ∥⋅∥[2],具有更为明确的表示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file18.jpg

其中 ∥x∥[2] := https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file19.jpg^(https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file20.jpg) 是向量的 L [2] 范数。如果矩阵 A 非奇异,则

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file21.jpg

其中 λmax 和 λmin 分别表示矩阵 A 的最大和最小特征值。

1.1.5 矩阵分解与谱定理

在定义了(复)矩阵的基本属性后,我们现在引入几个基本工具,帮助我们更好地理解它们的性质。

奇异值分解是分析矩阵性质和行为的关键工具。它在应用统计学和机器学习中无处不在,能够将一个大矩阵的解释维度缩减为少数几个有意义的成分。

定理 1(奇异值分解). A ∈ℳm,n p := min(m,n)。存在 U ∈𝒰m*,* V ∈𝒰n σ[1] ≥https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file22.jpgσ[p] ≥ 0 使得 A = UΣV^†,其中 Σ ∈ℳm,n 是对角矩阵,且 Σ[ii] = σ[i] 对于 i = 1,…,p Σ[ii] = 0 对于 i > p*。

数字 {σ[1],…,σ[p]} 称为 A 的奇异值,并且是唯一确定的。U 和 V 的列向量分别是 A 的左奇异向量和右奇异向量,即如果 σ ∈ {σ[1],…,σ[p]},则存在 U 的一列向量 u 和 V 的一列向量 v,使得 Av = σu 和 A^†u = σv。回顾一下,矩阵的秩定义为其列的张成空间的维度。根据奇异值分解定理,矩阵的秩等于非零奇异值的数量。奇异值分解是一般性的,即它适用于任何矩阵。在方阵的特定情况下,舒尔分解和谱定理提供了更精细的结果。

谱定理是线性算子理论中的基石结果,特别是对于(有限维)矩阵。回顾一下,算子 𝒜 : V →V 被称为正常的,如果它与其伴随算子对易,即 𝒜𝒜^† = 𝒜^†𝒜。自伴算子(或厄米算子)显然是正常的,但反之不一定成立。进一步回顾,𝒜 的特征向量是一个非零向量 u ∈V,满足 𝒜u = λu,其中 λ ∈ℂ,我们用 σ(𝒜) 表示 𝒜 的特征值集合。

以下结果比后续的谱定理更一般,它允许我们分解任何任意的复方阵。

定理 2(舒尔分解). 对于任意 A ∈ ℳn ,存在一个 酉矩阵 U ∈ 𝒰n 和一个上三角矩阵 T ,使得 A = UTU^(−1)*。

注意,由于 U 是酉矩阵,因此 U^(−1) = U^†。我们称矩阵 T 为 A 的舒尔变换,定理中的恒等式意味着 A 和 T 是相似的,特别地,它们具有相同的特征值,这些特征值都位于 T 的对角线上。如果 A 是一个正常矩阵,则 T 也是正常矩阵,因此 T 必须是对角矩阵,且为清晰起见,我们写作 T = D。在这种情况下,我们称矩阵 A 是可对角化的,且 A = UDU^†,其中 D 的对角元素是 A 的特征值,U 的列向量是 A 的标准正交特征向量。

定理 3(谱定理). 线性算子 𝒜 : V → V 正常的当且仅当存在一个由 A 的特征向量组成的* V 的标准正交基*。

对于每个特征值 λσ(𝒜),记对应的特征空间为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file23.jpg

由于向量空间 V 是各个特征空间(按 𝒜 的特征值索引)的正交直和,因此我们可以写出谱分解

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file24.jpg

其中 𝒫[λ] 是对 𝒱[λ] 的正交投影算子。注意,这样的算子自然是自伴的  [309, 定理 2, 第 III-1 节]。

1.1.6 厄米矩阵

我们上面介绍了厄米矩阵作为复数域 ℂ 上的矩阵集合 A,满足 A = A^†。作为量子计算的基础构建块,我们进一步研究了它们的性质。显然,一个实矩阵当且仅当它是对称矩阵时才是厄米矩阵,这时 A^⊤ = A。

命题 1。 厄米矩阵的特征值是实数。

证明。 如果 Ax = λx 且 λ ∈ℂ 和 x ∈ℂ^n,那么

⟨Ax*,*x⟩ = x^†Ax = λx^†x = λ∥x∥²*,*
⟨x*,*Ax⟩ = (Ax)^†x = (λx)^†x = λ∗x†x = λ^∗∥x∥²*.*

由于这两者通过厄米性质相等,因此 λ = λ^∗,从而证明了命题。 □

奇异值分解(定理 1)在厄米矩阵的情况下有其特定的形式:

定理 4。 *根据定理 1的符号,如果 *A ∈ ℳn *厄米矩阵,那么矩阵 *U *和 *V *是相等的,并且矩阵 *Σ 实对角矩阵。

定理 5。 对于一个厄米矩阵 A ∈ ℳn*,以下条件是* 等价的:

  1. 特征值是非负的。

  2. 存在一个厄米矩阵 B ∈ℳn 使得 A = B²

  3. 存在一个矩阵 B ∈ℳn 使得 A = B^†B

  4. 对于每个 x ∈ℂ^n*,* ⟨Ax*,x⟩≥ 0。*

这样的矩阵称为半正定矩阵。

证明。 谱定理表明,存在一个酉矩阵 U ∈𝒰n 和一个对角矩阵 Σ ∈ℳn,使得 A = UΣU^†,其中 Σ 的对角元素是 A 的特征值。假设 (i),我们可以定义 B = Uhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file25.jpgU^†∈ℳn。然后显然

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file26.jpg

因为 U 是酉矩阵。等式 A = B^†B 也是显然的。后者意味着

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file27.jpg

最后,假设 (iv),并且让 λ 是 A 的一个特征值,特征向量为 u。那么

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file28.jpg

由于后者严格大于零,因此显然 λ ≥ 0。

以下性质是量子系统哈密顿量模拟的核心:

定理 6。 如果 A ∈ ℳn 是厄米矩阵,那么,对于任何 t ∈ ℝ e^(itA) 是酉矩阵;反之,每个酉矩阵都可以表示为 e^(itA) ,其中 A 是某个厄米矩阵。

回顾一下,对于一个矩阵 A ∈ℳn,它的指数是由以下公式给出的

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file29.jpg

然而在实践中,给定一个厄米矩阵 A,找到对应的酉矩阵 U 并不容易。哈密顿量模拟问题定义如下。

哈密顿量问题: 给定一个厄米矩阵 A ∈ℳn,一个时间 t > 0,一个容差水平 𝜀 > 0,以及某个矩阵范数 ∥⋅∥,找到一个酉矩阵 U,使得 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file30.jpg𝜀

1.1.7 旋转矩阵

旋转矩阵以及它们的量子门等效形式将在构建量子电路中发挥关键作用。我们从以下引理开始:

引理 1. 如果一个矩阵 A ∈ℳn 满足 A² = I*,那么对于任何* 𝜃 ∈ℝ*,*

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file31.jpg

证明。 这直接来自于级数展开

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file32.jpg

该式具有无限的收敛半径。□

引理 1 对于计算目的将是至关重要的。作为简单的例子,考虑以下内容:

练习: 计算 A ∈{X*,Y,*Z} 和 𝜃 ∈ℝ 时的 e^(i𝜃A),其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file33.jpg

对于任意 α ∈ [0*,2π*),现在考虑映射 ℛ[α] : ℝ² →ℝ²,使得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file34.jpg![对于任意 r ∈ ℝ 和 𝜃 ∈ 0,2π),

其本质上是角度 α 的旋转,并且不会影响输入向量的范数。对于映射 ℛ[α],我们可以关联矩阵 R[α],使得对于任何 u ∈ℝ²,ℛα = R[α]u。很容易(练习)证明以下内容:

引理 2. *矩阵 *R[α] 具有以下形式

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file36.jpg

这个表示是 ℝ² 中旋转矩阵的一般形式(在(1.1.3)中引入)。

练习: 写出前面练习中 A ∈{X*,Y,*Z} 的矩阵 e^(i𝜃A) 作为旋转矩阵。

1.1.8 极坐标

记住,一个点 z = x + iy,其中 x,y ∈ℝ,位于单位圆上,可以写作 z = e^(i𝜃),其中 𝜃 ∈ 0*,2π*)。事实上,只需让 x = r cos(𝜃),y = r sin(𝜃) 并加上约束 r = 1。现在考虑一个形式为的通用向量 u ∈ℂ²

![u = αe1 + βe2,

其中,α,β ∈ℂ,满足 |α|² + |β|² = 1。这里,(e[1]*,*e[2]) 构成了 ℝ² 的一个基:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file38.jpg

在极坐标系中,我们可以写为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file39.jpg

请注意,任意的乘法相位没有影响——这是量子力学中的一个关键事实——因为,对于任何 γ ∈ℝ,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file40.jpg

因此,实际上,乘以全局相位 e^(−i𝜃[α]) 并令 𝜃 := 𝜃[β] −𝜃[α],我们考虑

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file41.jpg

写下暂时的 r[β]e^(i𝜃) = x + iy。坚持让 u 在单位球面上,进一步要求 ∥u∥² = 1,即

1 = ∥u∥² = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file42.jpgr[α]e[1] + (x + iy)e[2]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file43.jpg^†https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file44.jpgr[α]e[1] + (x + iy)e[2]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file45.jpg
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file46.jpgr[α]e[1]^⊤ + (x − iy)e [2]^⊤https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file47.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file48.jpgr[α]e[1] + (x + iy)e[2]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file49.jpg
= r[α]² + x² + y²*,*

由于 (e[1]*,*e[2]) 是正交归一的。这不过是单位球面的方程。在极坐标中,我们可以写为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file50.jpg

并且显然 r = 1,因为我们位于单位球面上。因此

u = cos(𝜃)e[1] + https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file51.jpgsin(𝜃)cos(ϕ) + isin(𝜃)sin(ϕ)https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file52.jpge[2]
= cos(𝜃)e[1] + sin(𝜃)e^(iϕ)e [2].
1.1.9 狄拉克符号

给定一个向量 v ∈ℂ^n,狄拉克的 ketbra 符号表示为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file53.jpg

使用这些符号,操作 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file54.jpg := ⟨u|v⟩ 定义了 ℂ^n 上的内积。标准正交归一基的符号是 (https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file55.jpg)[i=0,…,n−1],即,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file56.jpg

在坐标系中,我们可以写出,对于任何 u,v ∈ℂ^n,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file57.jpg

因此,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file58.jpg

1.1.10 量子算子

在狄拉克符号的语言中,我们可以定义 外积 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file59.jpg⟨v|(对于 u ∈U 和 v ∈V)作为从 V 到 U 的线性算子,这里有两个向量空间,形式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file60.jpg

特别地,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file61.jpg⟨v| 是对由 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file62.jpg 生成的一维空间的投影。任何线性算子都可以表示为外积的线性组合,形式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file63.jpg

其中 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file64.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file65.jpg 是标准基向量(1.1.9)。

与上面线性代数的设置类似,我们可以定义线性算子 𝒜 : V →V 的特征向量为非零向量 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file66.jpg,使得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file67.jpg

对于某些复特征值 λ,与任何线性算子 𝒜 相关联的伴随算子 𝒜^† 满足

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file68.jpg

事实上,在上述线性算子的语言中,我们有

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file69.jpg

根据内积的定义(定义 1)。

1.1.11 张量积

给定两个维度分别为 mn 的向量空间 U 和 V,张量积 U ⊗V 是一个维度为 mn 的向量空间。对于 u ∈U 和 v ∈V,我们可以形成向量 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file70.jpg := https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file71.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file72.jpg∈U ⊗V,具有以下性质:

给定线性算子 𝒜 : U →U 和 ℬ : V →V,我们可以将它们的张量积定义为作用在 U ⊗V 上的算子 𝒜⊗ℬ:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file82.jpg

它可以用矩阵形式表示为 A ⊗ B ∈ℳmn,mn。

这个狄拉克形式主义,完全植根于(经典)线性代数,现在为深入探索量子力学基础打开了大门。

1.2 量子力学的公设

量子力学陈述了物理理论必须满足的几个数学公设。事实证明,量子力学的数学允许更一般的 计算:与经典数字计算相比,更一般的 记忆状态 定义和更广泛的 变换 可能性。一个自然的问题是:为什么这种优越的计算模式直到最近才被使用?答案是,尽管量子力学几乎一个世纪前就被提出(保罗·狄拉克的开创性著作《量子力学原理》[86]于 1930 年出版),但将量子力学的规则应用于在经典数字计算机上执行的计算协议需要巨大的内存。计算能力的指数增长被指数级的内存需求所抵消。

为了高效地执行量子计算,我们需要使用实际的量子力学系统,利用其在状态中编码信息的能力。为了说明这一点,由 n 个量子比特(qubits)组成的量子系统的状态可以通过指定 2^n 个概率振幅来描述——即使对于非常小的系统(n ∼ 100)来说,这也是一个庞大的信息量,并且在经典内存中存储这些信息是不可能的。在量子处理单元(QPUs)——控制量子力学系统进行计算的设备——变得可行之前,经历了数十年的技术进步。

现在让我们继续推导构成量子力学基础的数学公设。这些公设规定了描述物理系统行为的一般框架[80,182,249]:

  1. 如何描述一个封闭系统的状态。

  2. 如何描述一个封闭系统的演化。

  3. 如何描述系统与外部系统的相互作用。

  4. 如何描述系统的可观测量。

  5. 如何描述复合系统的状态,以及它的组成部分。

1.2.1 第一个公设——静力学

公设 1与任何物理系统相关联的是一个复杂的内积空间被称为该系统的状态空间。系统在任何给定时刻完全由其状态向量描述,该状态向量是其状态空间中的单位向量。

从量子计算的角度来看,第一个公设的重要性是什么?答案是,量子力学为我们提供了经典二进制位(bit)的直接推广。经典比特是一个二态系统,在这两个状态之间有控制的转换。例如,我们可以使用一个电气开关,它可以处于两个离散的、稳定的状态(“开”和“关”)之一。尽管在晶体管时代,电气开关似乎是比特的一个奇怪物理实现,但它们说明了一个关于计算的一般重要观点:它是独立于底层硬件的。使用电气继电器和 CMOS 晶体管可以获得完全相同的计算结果。

量子力学中的比特版本,称为量子二进制位(量子比特,qubit),是一个量子力学的二态系统。量子力学的第一个公设告诉我们,这样一个系统的状态可以通过一个二维复数向量空间中的单位向量在数学上表示。这也意味着这样的系统可以存在于基态的叠加态中。事实上,任何向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file83.jpg在二维复数向量空间中,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file84.jpg

可以表示为标准基向量的线性组合:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file85.jpg

由于状态向量是单位向量,系数αβ必须满足

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file86.jpg

系数αβ概率振幅。尽管一个量子比特可以存在于基态的叠加中,但一旦测量(见公设 3),其状态会塌缩到基态之一:|α|²和|β|²分别给出了在测量后找到量子比特处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file87.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file88.jpg的概率。

我们可以类比自然数空间ℕ如何扩展到实数空间ℝ,然后扩展到复数空间ℂ。相比于ℕ,我们在ℝ和ℂ中有更多的函数可以操作并取得值。类似地,允许二态系统存在于叠加态显著扩展了可以转换这些状态的算子的范围(即进行计算)。

例如,不存在一个布尔函数f,当它作用于经典比特两次时,会产生一个 NOT 门:f(f(0)) = 1 且 f(f(1)) = 0。然而,在量子计算中,确实存在这样的算子。我们可以通过直接计算轻松验证,矩阵

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file89.jpg

对基向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file90.jpg应用两次会将其转换为基向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file91.jpg,对基向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file92.jpg应用两次会将其转换为基向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file93.jpg。M 是一个量子逻辑门的例子——它是一个转换量子比特状态的算符,从而实现计算。

备注: 物理系统的状态空间可以是无限维的。基于无限维希尔伯特空间的量子计算范式被称为连续变量量子计算,例如在一些光子量子计算系统中得以实现。然而,在数字量子计算的背景下,我们将限制分析为有限维状态空间。

量子比特(量子计算的基本存储单元,是经典比特概念的推广)的状态可以在数学上描述为二维复向量空间中的单位向量。任何其状态空间可以由ℂ²描述的物理系统都可以作为量子比特的实现。

1.2.2 第二公设 – 动力学

公设 2: 闭合量子系统的时间演化由 薛定谔方程 描述

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file94.jpg

其中是普朗克常数,是一个与时间无关的厄米算符被称为系统的哈密顿量

一个量子系统的哈密顿量是对应于该系统总能量的算符,其特征值是系统可能的能级。对哈密顿量的了解提供了关于系统动力学的所有必要信息。

在薛定谔方程(1.2.2)中,闭合量子系统在时间t[1]的状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file95.jpg与时间t[2]的状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file96.jpg之间通过仅依赖于t[1]和t[2]的单位算符𝒰(t[1],t[2])相互联系:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file97.jpg

其中𝒰(t[1],t[2])是由哈密顿量ℋ得到的。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file98.jpg

单位算符保持内积(因此保持范数、长度和距离),这意味着对于两个向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file99.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file100.jpg,如果𝒰是单位算符,那么𝒰https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file101.jpg与𝒰https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file102.jpg之间的内积与https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file103.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file104.jpg之间的内积是相同的:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file105.jpg

单位算符是旋转的复数推广:单位算符将正交基变换到另一个正交基,任何具备此性质的算符都是单位算符。在量子力学中,物理变换如旋转、平移和时间演化对应于将量子态映射到其他量子态的映射。这些映射应该是线性的,并且保持内积。这使得我们可以将单位算符视为实现量子计算协议的量子 逻辑门。此外,单位算符是可逆的,这一关键特性确保了量子计算是可逆的

量子逻辑门(经典计算中的布尔逻辑门的量子对应物)是单位算符,能够变换量子态,从而实现计算。

1.2.3 第三公设 – 测量

给定一个厄米算符 𝒜,谱定理意味着系统的状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file106.jpg 可以写成一个叠加态

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file107.jpg

其中系数(α[i])[i=1,…,N]是复数概率振幅,假设已标准化,满足∑ [i=1]^N|α[i]|² = 1,并且 (https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file108.jpg)[i=1,…,N] 是𝒜的特征函数。测量公设则如下所述:

公设 3如果我们在状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file109.jpg 中测量厄米算符 𝒜 ,则测量的可能结果是 𝒜 的特征值 (λ[i])[i=1,…,N] ,并且测量到 λ*[i] 的概率 *p[i] p[i] = |α[i]|²给出。测量结果 *λ[i]后,系统的状态变为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file110.jpg

在相同计算基下的即时测量将给出相同的 结果,没有任何不确定性。

量子测量由测量算符 (𝒫[i])[i=1,…,N] 描述,作用于系统的状态空间,具有N个可能结果。如果系统的状态在测量前是 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file111.jpg,则结果i的概率为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file112.jpg

测量算符还应满足完整性条件

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file113.jpg

其中ℐ是单位算符。这确保了所有结果的概率之和为 1。

这些测量算符是线性的,但不是单位的。从量子计算的角度来看,我们关注的是投影测量算符(定义 2),它们是计算基的投影,例如由 (1.1.9)给出的标准正交基。

例如,单个量子比特的测量算符可以定义为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file114.jpg

我们可以很容易验证𝒫[0]² = 𝒫[0]且𝒫[1]² = 𝒫[1],这正是投影算符的性质,并且满足完整性条件(1.2.3)。如果量子比特处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file115.jpg = αhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file116.jpg + βhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file117.jpg,那么测量算符𝒫[0]将以概率|α|²给出https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file118.jpg,测量算符𝒫[1]将以概率|β|²给出https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file119.jpg。实际上,

𝒫[0]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file120.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file121.jpg⟨0|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file122.jpgαhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file123.jpg + βhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file124.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file125.jpg = αhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file126.jpg⟨0|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file127.jpg + βhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file128.jpg⟨0|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file129.jpg = αhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file130.jpg,
𝒫[1]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file131.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file132.jpg⟨1|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file133.jpgαhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file134.jpg + βhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file135.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file136.jpg = αhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file137.jpg⟨1|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file138.jpg + βhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file139.jpg⟨1|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file140.jpg = βhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file141.jpg.

量子力学的测量公设表明,在相同的计算基中进行的直接测量将返回相同的结果,不会有任何不确定性。这里的关键词是“相同的计算基”。如果接下来的测量是在另一个基中进行(由来自状态空间的另一组线性无关的单位向量指定的基)会发生什么呢?例如,假设量子比特处于状态

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file142.jpg

测量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file143.jpg在{https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file144.jpg,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file145.jpg}计算基中,将以相等的概率 12 观察到态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file146.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file147.jpg。假设我们测量了https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file148.jpg,此时量子比特的状态为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file149.jpg

如果我们在相同的{https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file150.jpg,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file151.jpg}计算基中重复测量,我们将以概率 1 得到状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file152.jpg,这符合测量公设。然而,如果我们在哈达玛基{https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file154.jpg,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file155.jpg}基中测量状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file153.jpg,则由下式给出

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file156.jpg

我们将有相等的概率得到https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file157.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file158.jpg的结果。假设我们测量了https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file159.jpg,此时量子比特的状态为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file160.jpg

如果我们在哈达马尔基{https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file162.jpg,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file163.jpg}中重复测量态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file161.jpg,我们以概率 1 获得态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file164.jpg。但是从{https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file167.jpg,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file168.jpg}计算基的角度看,量子比特的状态是态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file165.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file166.jpg的等幅叠加,在这个基中我们有相等的机会测量到https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file169.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file170.jpg

备注: 组成标准计算基的基向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file171.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file172.jpg可以通过应用以下幺正算符(旋转),称为哈达马尔门,转换为组成哈达马尔基的基向量https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file173.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file174.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file175.jpg

第 6、10 和 11 章提供了哈达马尔门应用的示例。

测量在量子计算中起着至关重要的作用。这个过程是坍缩量子态并读取经典信息:测量编码量子态的量子比特将产生一个经典比特串。测量过程会生成概率性的结果。因此,我们需要对同一个量子态进行多次测量,以生成足够多的经典比特串,从而产生可靠的统计数据。

测量过程描述了量子态由于与环境的接触而坍缩的过程。测量后,量子比特的状态是已知的且没有任何不确定性。从一个量子比特中最多可以提取 1 比特信息。为了提取有关给定量子态中编码的概率分布的更多信息,需要对同一个状态进行多次测量。

1.2.4 第四公设 – 可观察量

公设 4对于物理系统的每个可测量属性,都存在一个 相应的厄米算符。物理可观察量的值 对应于厄米算符的期望值。厄米算符 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file176.jpg 在归一化态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file177.jpg 中的期望值由下式给出

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file178.jpg

让我们考虑一般情况,其中厄米算符𝒜在态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file179.jpg中计算其期望值,且此态并不是𝒜的本征函数。根据谱定理 3(另见(1.2.3)),系统的态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file180.jpg可以表示为叠加态

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file181.jpg

其中 (https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file182.jpg)[i=1,…,N]是𝒜的本征函数,(α[i])[i=1,…,N]是相应的概率幅度。

因此,给定状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file183.jpg下𝒜的期望值,根据(1.2.4),其计算公式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file184.jpg

其中 (λ[i])[i=1,…,N] 是𝒜的特征值。由于特征函数的正交性,只有当 i = j 时,表达式中的项才会存在,因此

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file186.jpg

因此,物理可观测量的值是对应的厄米算符特征值的加权平均值。加权因子是系数 (|α[i]|²)[i=1,…,N],它们是测量𝒜对应特征态的概率。

厄米算符在量子力学中扮演着异常重要的角色,因为它们的期望值对应于物理可观测量。

1.2.5 第五公设 – 复合系统

公设 5. 复合物理系统的状态空间是各个组分物理系统状态空间的张量积。

如果第一个组分物理系统处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file187.jpg,而第二个组分物理系统处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file188.jpg,那么组合系统的状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file189.jpg由张量积给出:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file190.jpg

并非所有组合系统的状态都可以分解为单个组分状态的张量积。如果一个系统的状态无法分解为组分部分的状态,我们称这些组分部分是纠缠的。

量子系统的纠缠是量子计算计算能力的主要来源之一。它使得我们可以将信息以指数级别存储在各个子系统(在极限情况下——单个量子比特)的状态之间的关联中,而不是直接存储在各个子系统的状态中。

为了说明这一点,我们可以看一下描述n量子比特系统状态所需的概率幅度的数量。经过测量后,单个量子比特可以处于两种可能的状态之一——两种基态之一,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file191.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file192.jpg。这意味着我们需要指定两个概率幅度来完全描述量子比特在测量之前的状态。如果所有量子比特是独立的,并且系统的状态可以表示为单个量子比特状态的张量积,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file193.jpg

然后,我们需要指定 2n个概率振幅(每个单独量子态都有两个)来描述系统的态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file194.jpg。然而,如果所有单个量子比特都发生纠缠,并且系统态的张量积表示https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file195.jpg不存在,我们则需要指定 2^n 个概率振幅——这是可以存储在系统中的有效信息度量。

量子计算的力量源自叠加原理和纠缠原理。纠缠使我们能够将大部分信息存储在量子比特态之间的关联中。

1.3 纯态与混合态

在某些情况下,量子力学系统的态不能通过状态向量来描述。在这里,我们将讨论这种情况,并提供一个数学工具来描述它们。

1.3.1 密度矩阵

让我们从一个由两个组成部分的物理系统的态开始,该系统由公式(1.2.5)给出。让 (https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file196.jpg)[i=1,…,N] 和 (https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file197.jpg)[j=1,…,M] 分别表示系统AB的希尔伯特空间的标准正交基:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file198.jpg

其中(α[i])[i=1,…,N] 和 (β[j])[j=1,…,M]是一些概率振幅。允许通过状态向量表示的态(1.3.1)称为纯态。在这种情况下,组合系统的状态为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file199.jpg

然而,通常情况下,组合系统的状态将呈现如下形式:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file200.jpg

其中γ[ij]是可能不能分解为概率振幅的乘积(α[i])[i=1,…,N] 和 (β[j])[j=1,…,M])的概率振幅。如果γ[ij]不能分解为α[i]β[j],则组成系统AB是纠缠的,其状态不能通过状态向量表示(1.3.1)。这种系统AB的态称为混合态

更一般的设置是由集合形式的态组成,形式为 {p[k],https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file201.jpg}[k=1,…,N],其中每个https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file202.jpg是一个量子态,其波函数已知且确定(尽管这并不一定提供测量统计的完整知识),而每个p[k]是与之关联的概率(而非振幅),范围在[0*,1]之间。为了正确定义纯态和混合态,引入密度算符*如下:

定义 7. 密度算符ρ是一个正半定的厄米算符,其迹为 1,并且形式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file203.jpg

其中 ∑ [k=1]^Np[k] = 1,且https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file204.jpgk = l时为 1,否则为零。

从数学上讲,这样的密度算子 ρ 对应于一个 密度矩阵 (ρ[kl])[k,l=1,…,N],使得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file205.jpg

1.3.2 纯态

纯态是可以通过一个态向量表示的。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file206.jpg

其中 (α[i])[i=1,…,N] 是在 ℂ 中的概率振幅,满足 ∑ [i=1]^N|α[i]|² = 1。在上述集合设置中,这意味着存在 k^∗∈{1*,…,N*} 使得 p[k^∗] = 1,因此 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file207.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file208.jpg,因此 ρ = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file209.jpgψ|。密度矩阵还允许我们计算类似于(1.2.4)的期望值:

引理 3. *设 *ρ *为与纯态关联的密度矩阵(1.3.2),且 *𝒜 为可观测量(厄米算子),则

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file210.jpg

证明。 该引理由直接计算得出。

ψ|𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file211.jpg = ⟨ψ|𝒜∑ [i=1]^Nα [i]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file212.jpg
= ∑ [i=1]^Nα [i] ⟨ψ|𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file213.jpg
= ∑ [i=1]^Nhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file214.jpgψ|𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file215.jpg
= ∑ [i=1]^N ⟨i|ρ𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file216.jpg = Tr(ρ𝒜).

通过状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file217.jpg 给定的(1.3.2),我们得到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file218.jpg

同时我们有

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file219.jpg

比较(1.3.2)和(1.3.2)得到纯态密度矩阵的以下表达式:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file220.jpg

示例: 纯态的一个例子是哈达玛尔态

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file221.jpg

对应的密度矩阵为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file222.jpg

1.3.3 混合态

混合态是无法用单一的纯态向量表示的,因此它被表示为纯态的统计分布,形式为量子态的集合 {p[k],https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file223.jpg}[k=1,…,N],其中 ∑ [k=1]^Np[k] = 1 且 p[k] ∈ [0*,*1] 对每个 k 都成立。因此,混合态的密度表示为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file224.jpg

类似于引理 3,我们可以使用密度矩阵表示关于混合态的观测量期望:

引理 4. *设 *ρ *为与混合态关联的密度矩阵(1.3.3),且 *𝒜 为可观测量(厄米算子),则

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file225.jpg

证明。 该引理由直接计算得出。

Tr(ρ𝒜) = ∑ [i=1]^N ⟨i|ρ𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file226.jpg
= ∑ [i=1]^N ⟨i|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file227.jpg𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file228.jpg
= ∑ [k=1]^Np [k]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file229.jpg
= ∑ [k=1]^Np [k] ⟨ψ[k]|𝒜https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file230.jpg.

现在让我们看看密度矩阵形式如何帮助我们描述复合系统的状态。考虑一个由两个系统 AB 组成的纠缠态,给定为 (1.3.1),并且一个只在系统 A 的希尔伯特空间内起作用的厄米算符 𝒜。这个态中 𝒜 的期望值是多少?从 (1.2.4) 开始,我们得到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file231.jpg

由于在 (1.3.3) 中,只有 l = j 的项才会存活,这是因为基态的正交性,我们得到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file232.jpg

因此,描述系统 A 的混合态的密度矩阵为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file233.jpg

注意,如果概率幅度 γ[ij] 可以分解为概率幅度 (α[i])[i=1,…,N] 和 (β[j])[j=1,…,M] 的乘积,则我们得到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file234.jpg

这描述了一个纯态。

区分纯态和混合态的一个简单标准如下:

引理 5. *令 *ρ 为一个密度矩阵。 不等式 Tr(ρ²) ≤ 1 始终成立,且当且仅当 ρ 对应纯态时 Tr(ρ²) = 1

证明。 考虑一个由纯态组成的集合 {p[i],https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file235.jpg}[i=1,…,N],其密度矩阵由 (1.3.3) 给出。因此

Tr(ρ²) = Trhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file236.jpg
= Trhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file237.jpg
= Trhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file238.jpg = ∑ [i=1]^Np [i]²Trhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file239.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file240.jpgψ[i]|https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file241.jpg = ∑ [i=1]^Np [i]²https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file242.jpg = ∑ [i=1]^Np [i]²*,*

由于 p[i] 是位于 [0*,1] 之间的概率,且其和为 1,因此它小于 1。现在假设 Tr(ρ²) 等于 1,那么 ∑ [i=1]^Np*[i]² 也成立。如果对于所有 i = 1*,…,N*,p[i] ∈ (0*,*1),则

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file243.jpg

这是一个矛盾,因此存在 i^∗∈{1*,…,N*},使得 p[i^∗] = 1,从而 ρ = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file244.jpgψ[i^∗]| 是纯态。反之,如果 ρ = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file245.jpgψ[i]| 对某些 i ∈{1*,…,N*} 代表纯态,那么

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file246.jpg

示例: 一个混合态的示例是统计集,由状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file247.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file248.jpg组成。如果一个物理系统以相等的概率处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file249.jpg或状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file250.jpg,则它可以用混合态来描述。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file251.jpg

请注意,这与纯态的密度矩阵不同

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file252.jpg

它的表达式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file253.jpg

与纯量子态不同,混合量子态无法用单一的态矢量来描述。然而,纯态和混合态都可以通过密度矩阵来描述。

总结

在本章中,我们学习了量子力学的关键原理,首先回顾了线性代数的基本元素,然后介绍了狄拉克符号。

我们接着介绍了量子力学的主要公设及其在量子计算中的相关性。我们学习了如何描述一个封闭系统的状态(静态)和演化(动态),系统与外部系统的相互作用(测量),可观察量,以及复合系统的状态如何通过其组成部分来表示。

我们最终介绍了密度算符,它使我们能够描述纯态和混合态量子态,并与只能表示纯量子态的态矢量进行对比。

在下一章中,我们将探讨量子力学原理在模拟量子计算中的应用——量子退火。

加入我们书籍的 Discord 空间

加入我们的 Discord 社区,结识志同道合的人,并与 2000 多名成员一起学习:packt.link/quantum

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file1.png

第一部分:模拟量子计算 – 量子退火

第二章:绝热量子计算

搜索算法是计算机科学中最重要和最基础的算法之一,最基本的例子就是在包含N个项目的列表中找到一个特定项。已知经典算法在时间上与问题规模N成正比解决这个问题,当N变得非常大时,问题变得非常难以处理。1996 年,格罗弗(Grover)[117]设计了一种量子算法,可以在时间上实现二次加速来解决此类搜索问题,但显然在那个时候量子计算机尚不存在。不久之后,法希(Farhi)、戈德斯通(Goldstone)、古特曼(Gutmann)和西普瑟(Sipser)[98]通过绝热演化的量子计算方法将格罗弗问题重新表述为可满足性问题。

另一个难以用经典方法解决的难题是组合优化问题。卡车调度问题最早由丹齐格(Dantzig)和拉姆塞尔(Ramser)提出[78],旨在寻找最佳的送货卡车路线,它是著名的旅行商问题(TSP)的推广。其他同类著名的优化问题还包括划分问题和二进制整数线性规划,等等。精确算法仅对小规模问题有效。启发式算法和元启发式算法(例如,进化搜索启发式算法,如遗传算法和粒子群优化算法)通常更适用于实际应用,因为现实世界中的问题规模通常较大。由于搜索时间随着问题规模呈指数增长,因此一直有强烈的动力寻找替代方法来解决这些具有广泛实际应用的问题,尤其是在金融领域。绝热量子计算(AQC)准备进入舞台。

2.1 计算问题的复杂度

在本章及随后的章节中,我们将常常讨论对经典计算机来说难以处理,但可以通过量子算法和硬件高效解决的计算问题。我们如何量化计算问题的难度呢?一种方法是从计算资源的角度来分析问题:解决这些问题需要多少时间和内存?这引出了复杂度类的概念。以下是一些重要的示例:

  • P 类(多项式)是指可以通过确定性图灵机在多项式时间内解决的决策问题的集合。

  • NP 类(非确定性多项式)是指可以通过非确定性图灵机在多项式时间内解决的决策问题的集合。

这些定义要求我们进一步指定以下对象:

  • 决策问题是指可以将输入值表示为是/否问题的计算问题。

  • 多项式时间意味着算法的运行时间在算法输入的大小上被一个多项式表达式所上界。

  • 图灵机 是一种计算的抽象模型,其通用性足以涵盖任何计算机问题。

  • 确定性图灵机 是最基本类型的图灵机,它使用一组固定的规则来确定其未来的操作。

  • 非确定性图灵机 是一种能够从给定状态探索多个备选未来操作的图灵机。

在计算难度方面,我们将特别关注那些 NP 完全NP 难 的问题。

当一个问题是 NP 完全问题时

  1. 每个解的正确性都可以在多项式时间内验证,且蛮力搜索算法可以通过尝试所有可能的解来找到一个解;

  2. 它可以用来模拟其他每个我们能够在多项式时间内验证其解是否正确的问题。

NP 完全问题是最困难的,它们的解可以快速(在多项式时间内)被验证。如果我们能够快速找到某些 NP 完全问题的解,那么我们就能快速找到每个其他问题的解,只要给定的解能够容易地被验证。

当 NP 中的每个问题都能在多项式时间内归约到该问题时,该问题是 NP 难的。或者说,当每个 NP 完全问题都能在多项式时间内归约到该问题时,该问题是 NP 难的。由于 NP 中的每个问题都能在多项式时间内归约到一个 NP 完全问题,因此第二个定义也意味着第一个定义。

NP 难类不限于决策问题,还包括搜索问题和优化问题。这意味着 NP 难问题不必属于复杂度类 NP。

可以说,计算机科学中最重要的未解问题是 P = NP 是否成立。尽管尚未证明,但广泛认为 P NP。图 2.1 展示了两种情形下复杂度类之间的关系。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file254.jpg

图 2.1:P、NP、NP 完全和 NP 难问题集之间关系的示意图。

2.2 绝热量子计算的原理

绝热量子优化是一种有前景的方法,用于解决 NP 完全和 NP 难问题 [97]。假设优化问题的解被编码在量子哈密顿量 ℋ[F] 的基态(即对应于最低本征值的量子态)中。根据量子力学的第二公设(第 1.2.2 节),量子系统的动力学完全由其哈密顿量来指定。如果我们知道如何将我们想要最小化的目标函数编码到量子系统的哈密顿量中,那么找到哈密顿量的基态就等同于找到最小化目标函数的决策变量集。

作为一个简单的例子,考虑一个函数 f :{0*,*1}^n →ℝ,它需要被最小化,并且取哈密顿量

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file255.jpg

显然,对于任何 z[0] ∈{0*,*1}^n,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file256.jpg

由于计算基(https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file257.jpg)[z∈{0,1}^n] 是正交归一的。因此,任何 z[0] ∈{0*,*1}^n 都是 ℋ[F] 的本征态,具有本征值 f(z[0])。因此,最小化 f 显然等同于找到哈密顿量 ℋ[F] 的最低本征值。

让我们进一步假设有另一个量子哈密顿量 ℋ[0],其基态易于找到并且容易在实验设置中准备。那么,如果我们将量子系统准备在 ℋ[0] 的基态,然后绝热地(缓慢地)改变系统哈密顿量 ℋ(t),从 t = 0 时的 ℋ[0] 到 t = τ 时的 ℋ[F],根据以下时间演化:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file258.jpg

然后,如果 τ 足够大,并且 ℋ[0] 与 ℋ[F] 不对易,则量子系统将始终保持在基态,按照量子绝热定理进行。测量 t = τ 时的量子状态将产生我们问题的解(一个编码二进制决策变量最优配置的比特串)。

我们在第 2.2.1 节中提供了详细的绝热量子优化算法解释以及量子绝热定理的说明。就与最佳经典算法相比,可能实现的量子加速而言,对于大小为 N 的问题,量子优化器在时间上按以下比例解决 NP-困难的组合优化问题:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file259.jpg

随着 N 趋向无穷大,对于正系数 βγ,它们可能小于已知的经典算法 [197]。事实上,早期实现绝热量子计算原理的量子退火器实验展示了数个数量级的量子加速(忽略各种计算开销,随着量子退火技术的成熟,这些开销可能会减少) [175,201,296]。

系数 γ 迄今为止是最重要的。这可以通过以下表格来说明,表中提供了计算时间的估算值,作为问题规模的函数。假设单次操作需要 1 微秒,且操作次数按 2^N(“经典基准”)或 e^(https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file260.jpg)(“量子优化”时 γ = 0*.*5)来变化,我们得到以下结果:

N 2^(N) e^(https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file261.jpg)
10 1 毫秒 0.024 毫秒
50 35.7 年 1.2 毫秒
100 4 × 10¹⁶ 年 22 毫秒
500 10¹³⁷ 年 1.4 小时

表 2.1:计算时间与问题规模的关系。

绝热系统演化持续时间 T 的渐近估计是问题规模的指数函数,它来源于系统应始终保持在局部哈密顿量的基态这一要求。随着基态与第一激发态之间的能量间隙变小,系统演化过程应相应减缓。

然而,如果我们仅对近似解感兴趣(并愿意接受所得到解的质量有所下降),我们可以预期,当 N 变大时,NP-困难的组合问题能够在多项式时间内得到解决,且解的时间与 N^γ 成正比,其中 γ > 0 [23, 253]。

绝热量子计算的优势在于它能够通过物理系统的自然演化解决困难的计算问题。

2.2.1 量子绝热定理

在薛定谔方程 (1.2.2) 中(归一化时取ℏ = 1)且哈密顿量 ℋ 恒定的情况下,如果系统从 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file262.jpg 开始,则解会发展到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file263.jpg

在时刻 t ≥ 0 时。这尤其意味着,任何哈密顿量 ℋ 的本征态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file264.jpg,满足 ℋhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file265.jpg = λ[0]https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file266.jpg 对某个本征值 λ[0],将通过薛定谔方程从 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file267.jpg 演化到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file268.jpg

即本征态仅获得一个相位 e^(−iλ[0]t),且不同本征态之间不存在时间上的跃迁。我们现在考虑的更有趣的情况是时间依赖的哈密顿量。

再次考虑薛定谔方程 (1.2.2)(归一化时取ℏ = 1),时间区间为 [0*,τ*],其中哈密顿量 ℋ 是时间的函数。时间变化 t(⋅),使得 t(0) = 1 且 t(1) = τ,得出

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file269.jpg

在单位时间区间 [0*,*1] 内。需要注意的是,哈密顿量 ℋ 与时间区间 τ 本身无关。特别是,这排除了具有多个时间尺度的哈密顿量,如在 [206] 中所述。在这里,我们主要关注的是(稍微推广的)形式为 (2.2) 的哈密顿量,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file270.jpg

对于给定的两个哈密顿量 ℋ[0] 和 ℋ[F],其中 r(⋅) 是一个连续的绝热演化路径,从 r(0) = 1 递减到 r(1) = 0。标准的绝热调度由 r(s) = 1 − s 给出。

量子绝热定理的核心内容如下。假设系统从 ℋ[0] 的基态开始。如果哈密顿量的时间演化足够缓慢,则系统将保持在随时间演化的哈密顿量的基态,直到时间 1。该定理最初由 Born 和 Fock 提出 [41],并通过 Kato [156] 使用线性算符扰动理论进行了推广。

为了正确陈述,设 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file271.jpg 为施罗丁格方程 (2.2.1) 的解,因此对于任意 s ∈ [0*,*1],存在一个单位算符 𝒰,使得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file272.jpg

考虑形式为 (2.2.1) 的哈密顿量和时间变化 t(s) = (因此 t′(s) = τ),使得施罗丁格演化动态可以写作

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file273.jpg

在区间 [0*,1] 上,对于每个 t ∈ [0,*1],我们用 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file274.jpg 表示 ℋ[t] 的基态。

我们最终呈现以下量子绝热定理的版本,该定理由 Jansen、Seiler 和 Ruskai 提出 [149]。我们回顾一下,如果存在与某个特征值关联的唯一特征态,则该特征值称为非简并的。对于任意 t ∈ [0*,*1],给定哈密顿量 ℋ(t),我们用 Δ[t] 表示 ℋ[t] 的最低特征值和下一个特征值之间的(严格正的)能隙。

定理 7(量子绝热定理)。假设对于任意 t ∈ [0*,*1] 哈密顿量 ℋ(t) 具有非简并的基态,并且存在 𝜀 > 0 使得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file275.jpg

然后,从状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file276.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file277.jpg* 开始系统,施罗丁格演化在时间 1 时给出一个状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file278.jpg 满足

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file279.jpg

这种量化版本的绝热定理提供了一个估计,说明时间范围 τ 需要多大才能达到足够的精度 𝜀。例如,考虑插值方案 (2.2.1),其中 r(s) = 1 − s,因此

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file280.jpg

因此,ℋ′(s) = −ℋ[0] + ℋ[F] 且 ℋ′′(s) = 0。在这种情况下,定理 7 中的定量估计简化为以下形式:

推论 1在定理 7 中的相同假设下,并且采用上述插值方案,定量估计

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file281.jpg

并且 Δ := min[s∈[0,1]]Δ[s],再次确保 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file282.jpg𝜀*。

这个推论特别突出了谱隙 Δ的重要性。它越小,等待绝热特性变得高效的时间就越长。量子绝热定理有不同的版本,每个版本有稍微不同的假设。Avron 和 Elgart [19] 以及 Bornemann [40] 证明了没有谱隙条件的弱形式。

量子绝热定理的证明相当技术性且有多个版本,每个版本的证明略有不同。然而,它们都依赖于分析对应于哈密顿量的演化算符 𝒰(⋅),显然它能够解决

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file283.jpg

从恒等式出发,特别是需要构造一个绝热算符 𝒰A,它解决相同的薛定谔方程,将 ℋ(⋅)替换为其绝热版本。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file284.jpg

其中 𝒫(t)表示投影算符,投影到 ℋ(t)的期望本征态。然后,证明跟随通过展示随着 τ增大,𝒰[A]和𝒰变得足够接近。

通过将量子系统的绝热极限的几何特性与向量束中的平行运输联系起来,Berry [33] 和 Simon [267] 的研究催生了几何量子计算。Van Dam、Mosca 和 Vazirani [291] 证明了可以构造出一个离散时间的演化算符 𝒰的近似,且只需要多项式时间的开销。

量子绝热定理为绝热量子计算提供了理论背景。

2.2.2 优化与元启发式算法

元启发式算法用于寻找“一般”优化问题的“良好”近似解。通俗来说,元启发式算法是一种搜索策略,通过在某些点评估优化函数 f(⋅),来探索优化过程。存在无数的元启发式算法,它们根据函数评估的历史决定接下来(在哪个 x 值)评估 f(x),但所有这些算法都基于同一基本原则,即好的解往往靠近其他好的解,换句话说,优化表面具有一定的平滑性。这揭示了所有元启发式算法必须权衡的探索与开发的取舍。

元启发式算法可以通过逐步下降来利用其“当前”状态。风险在于,这可能会返回一个(可能并不太好的)局部最小值。另一方面,元启发式算法可以通过进行“较大移动”来探索优化表面,以发现是否有其他部分的优化表面返回更小的f(x)值。在这种情况下,可能会找到全局最小值,但返回的 x 值可能只是实际全局最小值的一个相当差的近似值。

模拟退火

模拟退火是一种受热退火启发的元启发式算法。考虑在某个定义域 D ⊂ℝ^n 上最小化给定函数 f : D →ℝ。算法的工作流程如下:

  1. 从初始值 x ∈ D 开始,并计算 f(x)。

  2. 随机选择一个邻居 y 作为 x 的邻居,并计算 f(y)。

  3. 如果 f(y) < f(x),则设 x = y。

  4. 否则,保持 x 不变或设 x = y。

  5. 重复直到达到结束标准。

关键步骤是步骤 4 中的随机选择,旨在避免陷入局部最小值,并且至少在算法的开始阶段,偏向于探索而非开发利用。在 f(y) ≥ f(x) 的情况下,我们将以概率 yhttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file285.jpgx 进行切换。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file286.jpg

其中,τ 充当热退火温度:当系统较热时,粒子会移动(探索),而当需要精细化(开发)时,它会冷却下来。

量子退火与量子隧穿

量子退火将模拟退火的思想与量子绝热定理结合,通过考虑时间依赖的哈密顿量。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file287.jpg

其中,ℋ[F] 是最终的纵向场哈密顿量,其基态编码了优化问题的最优解,ℋ[0] 是初始的横向场哈密顿量,假设与 ℋ[F] 不对易。函数 Γ 是横向场系数,它充当热退火的温度,即一个随着 t 接近最终时间时逐渐趋近于零的连续下降函数。根据量子绝热定理(定理 7),如果系统处于 ℋ(0) 的基态,并且 ℋ(⋅) 随时间缓慢演化,那么它将始终保持在每个时刻的 ℋ(t) 基态,因此会收敛到 ℋ[F] 的基态(从而收敛到问题的最优解)。顺便提一下,模拟退火框架中跨越局部山丘的量子等价物是量子隧穿。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file288.jpg

图 2.2:量子退火求解优化问题的示意图。目标是通过绝热演化将系统保持在ℋ(t)的基态。

图 2.2 说明了量子退火在解决优化问题中的实际应用。我们首先将系统置于某个易于准备的横向场哈密顿量 ℋ[0] 的基态中。然后,初始哈密顿量缓慢(绝热地)转变为最终的纵向场哈密顿量 ℋ[F]。如果系统在整个量子退火过程中始终保持在局部哈密顿量的基态,那么读取结果将为我们提供与最终哈密顿量中编码的目标函数全局最小值对应的二进制决策变量(量子比特值)的最优配置。

回顾以下两个(比特)字符串之间的哈明距离定义:

定义 8. 设 a := (a[1],…,a[n]) 和 b := (b[1],…,b[n]) 表示两个比特字符串,属于 {0*,*1}^n。a 和 b 之间的哈明距离定义为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file289.jpg

在寻找全局最小值的过程中,有两个重要的机制:热退火和量子隧穿。在图 2.2 中,最终哈密顿量在状态 101101 处具有全局最小值,而在状态 010110111001 处具有两个局部最小值。尽管两个局部最小值的能量相同,但它们与全局最小值的哈明距离不同。状态 010110 和全局最小值状态 101101 之间的哈明距离是 5:需要翻转 5 位才能从这个局部最小值状态到达全局最小值。状态 111001 和全局最小值之间的哈明距离是 2。然而,由于它们之间有高能量障碍,从状态 111001 到全局最小值状态 101101 更为困难,而从状态 010110 到全局最小值则相对简单:通过热退火,可以通过一个相对较低且平坦的能量障碍进行一系列连续的比特翻转。幸运的是,我们还拥有量子隧穿效应,这使得系统能够穿越高但窄的能量障碍。一次性翻转 5 位(宽障碍)对于量子隧穿来说可能是一个具有挑战性的任务,但翻转 2 位(窄障碍)则是一个可以以足够高的概率发生的过程。

量子退火是绝热量子计算原理的实际实现,可以与其经典对手——模拟退火进行对比。量子退火的强大来自两个来源:热退火和量子隧穿。正是这些经典和量子效应的结合,使得量子退火能够实现卓越的性能。

2.3 AQC 的实现

我们如何构建量子退火器?它们的物理实现是什么?我们能找到一种合适的度量标准来客观量化它们的性能吗?我们在它们的发展过程中是否观察到稳定的进展?在本节中,我们将提供这些问题的答案,这些答案是二十年来深入研究的成果。

2.3.1 量子退火的简短历史

第一个主要的专利由 Amin 和 Steininger 为 D-Wave Systems 设计[11],并导致了开创性的论文[151]。从那时起,许多研究探讨了 D-Wave 计算机的价值,特别是 McGeoch 和 Wang[211],他们证明了在早期的 D-Wave 处理器(D-Wave Two,512 量子比特)上针对特定问题的显著加速。此后,更多的实验跟进了这一早期研究,其中有两个结果,毋庸置疑,它们从许多其他有趣的发现中脱颖而出。

首先,D-Wave 量子退火器的性能已经通过在 D-Wave Two [38]上的实验确立了量子隧穿的贡献。观察到了多量子比特隧穿,并且实验表明它在可编程量子退火器中发挥了计算作用。

然后,Denchev et al. [83] 在一个精心设计的、具有高且窄能量屏障并通过这些屏障将局部极小值分开的问题上,在 1,152 量子比特的 D-Wave 2X 处理器上,相对于经典基准(模拟退火),实现了 8 个数量级的加速。对于具有 945 个变量的实例,D-Wave 2X 量子退火器的 99%成功概率的时间比在单个处理器核心上运行的模拟退火快了 1 亿倍。

此外,Venturelli 和 Kondratyev 通过在较新的 2,048 量子比特 D-Wave 2000Q 处理器上执行正向和反向量子退火,解决了一个完全连接图问题[175,296]。第三章提供了这一用例的详细描述。

截至撰写本文时,最先进的 D-Wave 机器是 5,760 量子比特的 Advantage 系统,它还具有更低的噪声和更好的量子比特连接性——一个物理量子比特可以直接连接最多 15 个其他物理量子比特,而在 D-Wave 2000Q 中,一个物理量子比特最多只能与 6 个其他物理量子比特连接[92]。因此,表示二进制变量的逻辑量子比特由更短且更稳定的物理量子比特链组成。例如,对于问题规模N = 64(对应于可以嵌入 D-Wave 2000Q 的最大完全连接图),D-Wave 2000Q Chimera 图的链长为 17,而 Advantage Pegasus 图的链长仅为 7。

有趣的是,量子计算算法促使了经典算法的密集改进,并且最近在优化经典算法方面的进展证明[259],它们至少能够与 D-Wave 机器匹敌。

2.3.2 D-Wave 量子退火器的跨代比较

D-Wave 量子退火器的技术进展已被 Pokharel 等人 [235]研究过。研究了四代 D-Wave 量子退火器在解决一类参数化调度问题集合中的表现。这些问题是 NP 难的,并且有许多实际应用。

量子退火器的性能通过一种叫做“解决时间”(TTS)的指标来衡量。在基准测试研究中,使用量子退火器多次运行收集的数据来计算给定可调参数配置下找到基态解的概率。这个概率由以下公式给出:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file290.jpg

等效 TTS 定义为在成功概率为 α 的情况下,至少一次获得基态解所需的期望时间,计算公式为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file291.jpg

其中 t[run] 是量子退火器单次运行的退火时间,α 默认取值为 99%。

由于调度问题是 NP 难的,TTS 应该在渐近极限下随着问题大小 N 指数级增长,如公式(2.2)所示,γ = 1。这是一个关于参数 β(缩放指数)取什么值最能符合实验结果的问题。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file292.jpg

对于某些常数 T[0] > 0。正如在[235]中所确定的,缩放指数从 D-Wave Two 的 1*.01 到 D-Wave Advantage 的 0.*17 不等。

为了说明这种改进的规模,我们设定 N = 10,并且对于两种情况(β = 1*.01 和 β = 0.*17),TTS = 100 微秒。这产生了表 2.2 中所示的 TTS 作为 N 的函数的以下显著结果:

N TTS (β = 1*.*01) TTS (β = 0*.*17)
10 100 微秒 100 微秒
15 16 毫秒 234 微秒
20 2.4 秒 547 微秒
25 6.3 分钟 1.3 毫秒
30 16.5 小时 3.0 毫秒

表 2.2:TTS 作为问题大小 N 的函数,适用于不同的缩放指数值。

2.3.3 量子退火器的物理实现

量子退火机是一种通过首先指定具有容易计算的基态的初始哈密顿量,然后慢慢演化到最终问题哈密顿量的设备。硬件方面,为了确保量子相干性,系统处于封闭环境中,远离外部磁源,并保持在极低的温度下。系统的状态被视为量子比特的叠加态,每个量子比特都通过超导环表示,从而量子比特的状态定义为环中的电流方向。在计算过程中,电流的方向是未知的,但当系统解相干(由于观测或噪声)时,电流方向变得已知。每个量子比特的自旋方向通过施加在环上的磁场物理表示,磁场作为噪声可能扰动量子比特的自旋。量子比特之间还通过铁磁性(反铁磁性)耦合相连接,迫使它们的自旋朝同一方向或相反方向排列。

D-Wave 量子退火机依赖于哈密顿量的 Ising 公式化。这一做法得到了验证,因为 Barahona [24] 显示,求解 Ising 自旋玻璃的基态是 NP-hard 的。这意味着任何 NP 完全问题都可以通过多项式时间复杂度的开销转化为 Ising 自旋玻璃问题(参见第 2.1 节)。从数学上讲,优化问题被公式化为代价函数的最小化问题。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file293.jpg

其中 s := (s[1],…,s[N]) 是二进制决策变量的向量(经典自旋变量取值 {−1*,*+1}),而 (g[i])[i=1,…,N] 和 (J[ij])[1≤i<j≤N] 是编码优化问题参数的系数。

根据量子力学中自旋的描述,我们需要将经典自旋变量替换为相应的算符——保利算符 σ[x]、σ[y] 和 σ[z](它们的矩阵表示请参见第 6.3.3 节)。然后,问题最终 哈密顿量呈现以下 Ising 形式 [147]:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file294.jpg

其中 g[i] 是施加在量子比特 i 上的偏置,而 J[ij] 是量子比特 ij 之间的耦合。

初始 哈密顿量的形式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file295.jpg

其中算符 σ[x](见第 6.3.3 节)是量子 NOT 门,用于翻转量子比特的状态:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file296.jpg

回忆在 (1.2.3) 中定义的量子态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file297.jpg 和 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file298.jpg,我们得到

NOThttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file299.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file300.jpgNOThttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file301.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file302.jpg + https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file303.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file304.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file305.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file306.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file307.jpg + https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file308.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file309.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file310.jpg
NOThttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file311.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file312.jpgNOThttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file313.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file314.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file315.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file316.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file317.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file318.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file319.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file320.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file321.jpg = −https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file322.jpg,

因此,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file323.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file324.jpg 是两个本征态。

初始哈密顿量的本征态(2.3.3)是所有单独量子比特的状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file325.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file326.jpg的等权重叠加:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file327.jpg

哈密顿量ℋ[0]是横场哈密顿量。它的作用是制造无序,防止自旋彼此对齐(沿z轴)。哈密顿量ℋ[F]是纵场哈密顿量。在退火过程结束时,当横场和σ[x]项趋于零时,自旋应该沿z方向彼此对齐,可能是平行的,也可能是反平行的(这取决于相应耦合因子的值及其各自的偏差)。

D-Wave 量子退火机的架构基于一个特定的图(在 D-Wave 2000Q 的情况下是Chimera图,或在 Advantage 系统中的情况下是Pegasus图),该图实现了物理量子比特之间的特定连接模式。如前所述,这些图并不是完全连接的,这意味着要在量子退火机上解决的具体优化问题必须首先转换(嵌入)为一个图。我们请读者参考[63, 64],其中给出了这些嵌入的理论描述。在这里,我们仅展示Chimera图的示意图,并展示如何从多个物理量子比特的链中构建逻辑量子比特。

除了 D-Wave,Steffen [273] 还使用核磁共振构建了一种在室温下可用的绝热量子计算,基于量子绝热定理的离散时间近似。另一个核磁共振实现是[305]中为整数因式分解开发的。

最后,有必要提到一种基于中性原子技术的类比量子计算机的构建方法[131, 163]。中性原子量子退火器有可能超越其他技术构建的量子退火器,并缩小 NISQ 和容错优势之间的差距。

2.3.4 Chimera 图和逻辑量子比特的嵌入

Chimera 图拓扑结构[76, 91]具有一个重复出现的二分图结构,称为单元格,如图 2.3 所示。单元格由两组各包含四个量子比特的组构成,不同组之间的量子比特有配对连接,而同一组内的量子比特之间没有连接。因此,每个单元格图由 8 个顶点(物理量子比特)和 16 条边(物理量子比特之间的连接)构成。这些物理量子比特(超导回路)通过内部耦合器连接。单元格之间的连接通过外部耦合器实现。

每个物理量子比特在Chimera 图中与其他六个物理量子比特相连(通过四个内部耦合器和两个外部耦合器)。如果我们希望在二进制决策变量(逻辑量子比特)和相应的物理量子比特之间建立一对一映射,这就对可嵌入图中的问题类型提出了严峻的限制。然而,如果逻辑量子比特可以通过一串物理量子比特表示,那么逻辑量子比特之间的有效连接可以得到改善。这将使我们能够到达图的遥远角落,从而解决完全连接图的问题。图 2.3 展示了由量子比特 A、B、C 和 D(由粗线连接的深色阴影量子比特)形成的量子比特链的示例。尽管单个量子比特只有六个连接,量子比特链 A-B-C-D 却有 18 个外部连接。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file328.jpg

图 2.3: Chimera 图。图中展示了四个单元格的裁剪视图。每个物理量子比特以圆圈表示,内部耦合器以直线表示,外部耦合器以弯曲线表示。量子比特 A、B、C 和 D 形成一个量子比特链(逻辑量子比特)。

为了确保量子比特 A、B、C 和 D 作为一个单一的逻辑量子比特工作,我们需要使它们之间的连接足够强,以便它们的状态始终保持对齐,并且在逻辑量子比特翻转时它们能够同时翻转。由于它们现在表示一个单一的二进制决策变量(逻辑量子比特),相应的偏置g(见 (2.3.3) 和 (2.3.3))将在链中的所有四个物理量子比特之间均匀共享。

我们期望链中的所有物理量子比特在测量后具有相同的值,但实际情况并不总是如此。当量子比特链条过长,且物理量子比特之间的内部和外部耦合器过多时,链条可能在某个点断裂。这将表现为构成链条的物理量子比特之间的分歧——其中一些会被测量为-1,另一些为+1。解决方法是应用多数投票规则:逻辑量子比特的值由所有组成物理量子比特值的众数决定。例如,如果物理量子比特 A、B 和 C 被测量为-1,而量子比特 D 被测量为+1,则逻辑量子比特的值假定为-1。链条越长,断裂的可能性越大。这就是为什么与旧的Chimera图相比,新的Pegasus图改进了连接性,从而为完全连接的图问题生成更短的链条,并导致 TTS 显著减少的原因。

量子退火已成功地通过超导量子比特实现,超导量子比特由微波辐射脉冲控制。近年来,在提高连接性和扩大系统规模方面取得了显著进展,量子退火器已经展示了其作为强大优化器的潜力。

2.4 AQC 的普适性

量子计算在理论上具有能够同时表示指数数量的状态的优势,从而相比经典算法证明了指数级的加速。历史上重要的例子包括 Shor 的整数因式分解 [265] 和 Grover 的数据库搜索 [117]。然而,在实践层面,仍然不清楚这种加速是否真正触手可及,尤其是对于 NP 难问题。

绝热量子计算(AQC)是一种与门模型量子计算完全不同的范式——尽管它们有些相似——并且基于量子绝热定理。与门模型量子计算不同,AQC 具有固有的容错性,如 [61] 所证明。由于其性能依赖于绝热定理中的谱间隙,可以通过在比该间隙低得多的温度下运行 AQC 设备来最小化环境去相干。

连接门模型量子计算和其绝热版本的关键见解由 Aharonov 等人 提供[7],以及由 Farhi 等人 提供[97]。前者证明了 AQC 可以模拟任何算法,而相比于门模型量子计算,其仅需多项式级别的额外开销;后者则展示了门模型量子计算机能够重现任何 AQC 计算。因此,这两项结果意味着 AQC 和门模型量子计算在多项式意义上是等价的。[7]中的证明假设在绝热公式中,初始和最终的哈密顿量是所谓的k局部的,意味着它们可以表示为多个独立哈密顿量的和,每个哈密顿量仅作用于k个量子比特。现有的 AQC 算法依赖于关于最终哈密顿量的若干假设,其中主要假设是该哈密顿量的非对角元素为零,且具有 2 局部的连通性结构,如 D-Wave 量子退火机的情况。不幸的是,这一假设目前不在[7]的范围内,因此关于这一设置的普适性仍然是一个未解之谜。还有其他 AQC 算法,特别是涉及 stoquastic 哈密顿量[45],其非对角元素为实数且为非正数,或更为严格的考虑[35]。

比较算法(无论是经典的、量子的还是绝热的)的标准背景是复杂性类别。在这里我们不会深入探讨太多技术细节,而是参阅[197]以获取更多信息。在那里,给出了针对大量 NP 完全和 NP 难问题的 Ising 问题(AQC 解决的标准问题)的数学公式,其中包括对 Karp 提出的 21 个基础 NP 完全问题[155]的精确表述,这是一个完美的比较量子算法的实验平台。

摘要

在本章开始时,我们介绍了几种基本的复杂性类别并讨论了它们之间的关系。解决 NP 难题所需的时间随问题规模的增长呈指数级增长,这为探索替代方法(如模拟的绝热量子计算)提供了强大的动力。尽管量子优化器在时间上也以问题规模的指数增长解决 NP 难的组合优化问题,但其指数中的前因子可能比已知的经典算法要小。此外,我们还可以期待在多项式时间内找到一个近似解,这为绝热量子计算的许多实际应用提供了强大的动力。

我们接着介绍了基于绝热量子定理的 AQC 原理。AQC 的物理实现——量子退火——与其经典对应物——模拟退火进行了对比。我们强调了量子退火计算能力的两个主要来源:热退火,它帮助我们找到目标函数在宽而适中的能量障碍下的最小值;以及量子隧穿,它使我们能够穿越狭窄而陡峭的能量障碍。两者的结合确保了在许多实际问题中能够高效地收敛到目标函数的全局最小值。

在确立了 AQC 的原理和相应的理论框架后,我们考察了基于超导量子比特的量子退火器形式的 AQC 实际应用。我们还介绍了伊辛模型,它为量子退火器可解决的问题提供了数学描述。

我们学习了量子芯片布局(图)的重要性,以及如何将多个物理量子比特耦合在一起,形成一个表示单一逻辑量子比特的链条。最后,我们触及了 AQC 的普适性。

在下一章中,我们将学习量子退火如何用于解决实际的 NP 难优化问题,如离散投资组合优化。

加入我们书籍的 Discord 空间

加入我们的 Discord 社区,结识志同道合的人,与超过 2000 名成员一起学习,链接:packt.link/quantum

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file1.png

第三章:二次无约束二进制优化

毋庸置疑,二次无约束二进制优化(QUBO)是量子退火的旗舰应用。只需要仔细观察这一类优化问题的名称,就能理解其原因:

  • 量子退火器操作在二进制自旋变量上。二进制决策变量(由逻辑量子比特表示)与自旋变量之间的映射非常直接。

  • 二次优化问题的目标函数只有线性项和二次项。这大大简化了模型,并允许其嵌入现有的量子退火硬件中。

  • 无约束优化意味着尽管 QUBO 允许我们指定必须满足的条件,但这些条件并不是硬性约束。约束的违反通过 QUBO 目标函数中的附加项来惩罚,但仍然有可能找到违反指定约束的解。

所有这些特性使得 QUBO 问题可以在量子退火器上求解。同时,QUBO 形式也适用于许多重要的 NP 难的组合优化问题,如图划分、作业车间调度、二进制整数线性规划等。此类问题还包括我们在本章中考虑的离散投资组合优化问题。我们还应在此提到一些最近使用经典方法解决离散投资组合优化问题的尝试,例如 Vaezi 人提出的背包问题形式 [289],以及 Anagnostopoulos 和 Mamanis 使用遗传算法等进化搜索方法的应用 [12]。背包问题和遗传算法将在本章中讨论。

3.1 二次无约束二进制优化原理

QUBO 表示需要在所有可能的 2^N 个变量赋值中最小化 N 个二进制变量 q[1],…,q[N] 的二次函数的优化问题。需要最小化的函数称为 成本函数,可以表示为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file329.jpg

其中 q := (q[1],…,q[N]) ∈{0*,*1}^N 表示 N 个二进制决策变量的赋值。

一类具有许多实际应用的优化问题可以采用 QUBO 公式化 [197]。为了精确求解困难的 QUBO 问题,已知的经典算法需要指数级的时间(时间复杂度以二进制决策变量数量 N 为基础)[120]。已经有几种近似经典方法被设计出来以降低计算成本;然而,快速发展的量子退火技术旨在证明在最困难的 QUBO 问题上,如 NP-hard 离散投资组合优化问题,能够显著提高计算速度 [175, 296]。

3.1.1 QUBO 到 Ising 转换

QUBO 问题可以很容易地转化为一个可以在量子退火机上求解的 Ising 问题。N 个自旋变量 s := (s[1],…,s[N]) ∈{−1*,*+1}^N 的 Ising 代价函数为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file330.jpg

Ising 模型和 QUBO 模型通过转换 s[i] = 2q[i] − 1 相关联,因此与 (3.1) 的关系为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file331.jpg

忽略优化中不重要的常数偏移量。

3.1.2 QUBO 问题示例

有许多重要的 QUBO 问题示例可以直接应用于金融领域的实际案例。这里,按照 Lucas [197] 的做法,我们列举了其中一些传统的公式化问题。

数字划分

给定一组 N 个正数 {n[1],…,n[N]},是否可以将这组数字划分为两个不相交的子集,使得两个子集中的元素和相等?例如,我们可以将这组数字 {n[1],…,n[N]} 看作必须平等分配给两个方的资产。该问题的 Ising 公式化为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file332.jpg

其中自旋变量 (s[i])[i=1,…,N] ∈{−1*,*+1} 是决策变量。如果 Ising 模型有解且 L = 0,那么就存在一种自旋配置,使得对于 +1 自旋的 n[i] 的和与 −1 自旋的 n[i] 的和相同。数字划分问题在经济学和金融中有广泛的应用,从路由和调度问题 [71] 到信号检测和时间序列分析 [148]。

图划分

考虑一个无向图

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file333.jpg

其中 V 代表顶点集合,E 代表边集合,且顶点数 N 为偶数。任务是将集合 V 划分为两个大小相等的子集 N∕2,使得连接这两个子集的边的数量最小化。这个问题有许多应用:找到这些划分可以让我们在两个划分上并行运行一些图算法,然后根据连接边数较少的情况进行一些修改 [36]。自旋变量表示图的顶点,值 +1 和 −1 表示顶点属于 {+} 集合或 {−} 集合。该问题通过由两个部分组成的成本函数来求解:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file334.jpg

其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file335.jpg

如果 {+} 集合中的元素数量与 {−} 集合中的元素数量不相等,则会提供惩罚,且

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file336.jpg

是一个术语,每当一条边连接来自不同子集的顶点时,都会提供惩罚。如果 B > 0,则我们希望最小化两个子集之间的边数;如果 B < 0,则我们会选择最大化这个数字。如果选择 B < 0,必须确保 B 足够小,以便永远不会违反 L[A] 约束。图划分问题可应用于研究金融市场中的聚类 [271]。

这两个问题,数目问题和图划分问题,都是 NP-困难问题 [155]。

二进制整数线性规划

令 q := (q[1],…,q[N]) 为 N 个二进制变量的向量。任务是最大化 c ⋅ q,对于某个向量 c,给定约束条件

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file337.jpg

其中 S ∈ℳm,N,b ∈ℝ^m。许多问题可以表述为二进制整数线性规划,例如,在监管约束下最大化利润 [255]。

与该问题相关的成本函数 L(q) 可以构造为两项之和,L(q) = LA + LB,其中第一项是

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file338.jpg

对于某个常数 A > 0。注意 L[A] = 0 强制执行约束 Sq = b。第二项是

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file339.jpg

另有一个正的常数 B < A

背包问题(整数权重)

我们有一个 N 个对象的列表,按索引 i = 1*,…,N* 标记,每个对象的权重为 w[i] ∈ℕ,值为 c[i],并且我们有一个只能容纳最大重量 W[max] ∈ℕ 的背包。如果 q[i] 是一个二进制变量,表示对象 i 是否包含在背包中(q[i] = 1),则背包中的总重量为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file340.jpg

总值为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file341.jpg

任务是最大化C,同时约束WW[max]。背包问题在经济学和金融中有多种应用[159, 289]。

我们为每个n = 1*,…,W*[max]引入一个二进制变量,y[n],当背包的最终重量为n时,y[n]为 1,否则为 0。如前所述,成本函数由两项组成,L(q) = LA + LB,其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file342.jpg

这确保了重量只能取一个值,并且背包中物品的重量等于我们声明的值,且

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file343.jpg

由于我们要求不能找到一个解,其中L[A]在L[B]变得更加负的情况下被弱违反,因此我们要求 0 < B max[i=1,…,N]c[i] < A(即不允许向背包中添加一个使其过重的物品)。

许多其他著名的 NP-hard 优化问题可以在量子退火器上解决。在这里,我们可以提到图着色问题[76]和作业车间调度问题[295],它们已在 D-Wave 量子退火器上成功解决。在本章中,我们详细描述并分析了一个与金融相关的重要 QUBO 问题——Venturelli 和 Kondratyev 研究的离散投资组合优化问题[175, 296]。这是一个困难的完全连接图问题,最适合使用新开发的反向量子退火技术来解决。

许多著名的 NP-hard 问题可以在量子退火器上通过 QUBO 形式有效解决,即使是包含非平凡数量变量的情况。这使得量子退火成为处理经典难度优化问题的有用工具。

3.2 正向和反向量子退火

在定义了 QUBO 问题之后,我们现在回顾量子退火如何作为一种高效的求解器。

3.2.1 正向量子退火

量子退火协议受到量子力学中绝热原理的启发,详细内容见第二章,它要求将系统从初始哈密顿量ℋ[0]的易于准备的基态驱动到问题哈密顿量ℋ[F]的未知低能量子空间,理想情况下达到与目标函数全局最小值对应的最低能量状态。这一正向量子退火过程可以理想地描述为试图驱动时间依赖哈密顿量的演化

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file344.jpg

从以下开始

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file345.jpg

其中,ℋ[0]是描述每个自旋系统中独立局部横向磁场的哈密顿量(σ[x]是保利 X 自旋算符,或量子 NOT 门,详见第 6.3.3 节)。

在表达式(3.2.1)中,第一个求和符号遍历所有逻辑量子比特,它们代表 QUBO 优化问题中二进制决策变量,而第二个求和符号遍历所有代表逻辑量子比特的链中的物理量子比特。从一链物理量子比特构建逻辑量子比特的过程在第二章中有详细说明,图 2.3 展示了在Chimera图上的量子比特链的示例嵌入。任何物理量子比特不能属于多个量子比特链。假设采用最密集的嵌入方案,我们有N × N[c] = K,其中K是量子芯片中物理量子比特的总数。然而,在实际应用中,对于大多数需要逻辑量子比特间完全连接的现实规模问题,N × N[c] < K。例如,在一个由K = 2,048 个物理量子比特构成的 D-Wave 2000Q Chimera图中,最大数量的完全连接逻辑量子比特为 64,链中物理量子比特的最大数量为 17,这意味着N × N[c] = 1,088。

图 3.1 展示了A(t)和B(t)在总退火时间τ尺度上是如何变化的。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file346.jpg

图 3.1:正向退火计划示意图。A(t)表示横向磁场的强度,B(t)表示纵向磁场的强度。

在退火过程结束时,A(τ) = 0,系统通过对每个量子比特的磁化测量投影到计算基上。退火的持续时间τ是一个自由参数,因此通常有必要定义退火进度的分数完成度s = t∕τ

3.2.2 反向量子退火

图 3.2 展示了当量子退火机被设置为反向退火机时的量子退火协议。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file347.jpg

图 3.2:反向退火计划示意图。A(t)表示横向磁场的强度,B(t)表示纵向磁场的强度。

系统初始化时,B(0) = max{B},A(0) = 0,且自旋设置为经典的比特串。随后,演化过程进行逆过程调度,直到哈密顿量的时间依赖性被暂时暂停。参考哈密顿量演化(见 3.2.1),我们为该协议编程的横场演化是以下的三阶段函数(对于B(t)的类比方程):

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file348.jpg

其中,ρ是暂停的持续时间,s[p] ∈ [0*,1]表示实施暂停的前向调度的位置。所选的逆退火协议的总持续时间为 2τ* + ρ,而前向退火的持续时间为τ。尽管逆退火的理论才刚刚开始被研究,逆退火的物理学原理可以在这个过于简化的观点中找到:如果系统初始化为状态𝒮,该状态对应于目标函数的局部最小值,那么量子波动和热波动的相互作用可能有助于在逆退火过程中让状态从能量陷阱中“隧穿”出来,而退火暂停(以及在某种程度上最终的前向退火)则允许系统在新发现的最小值邻域内热化并放松。初始状态𝒮的质量可能会显著影响逆退火过程。对于本章介绍的投资组合优化应用案例,可以使用经典的贪婪算法来设定𝒮,具体方法见[296]。

逆量子退火与经典贪婪搜索算法的结合有潜力大幅加速 QUBO 求解器,从而实现一种有前景的混合量子-经典算法。

3.3 离散投资组合优化

最优投资组合构建问题是量化金融中最广泛研究的问题之一。现代投资组合理论(MPT)[202]为极具影响力的均值-方差投资组合优化方法奠定了基础。根据 MPT,典型的投资组合优化问题可以表述如下。令N为资产数量,μ[i]为资产i的预期回报,Σ[ij]为资产i和资产j之间的回报协方差,R为目标投资组合回报。那么决策变量为权重w[i],即与资产i相关的投资额(w[i] ∈ℝ)。标准的马科维茨均值-方差方法包括受约束的二次优化问题。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file349.jpg

这种形式的二次问题可以通过标准计算方法(例如,带线性约束的二次规划)有效求解,前提是协方差矩阵是正定的。然而,相关的离散投资组合优化问题(带有离散权重w[i])则更难解决。事实上,它们被认为是 NP 完全的[158]。

有趣的是,这个问题也可以转化为一个无约束的二次优化问题,这对于量子退火器是一个合适的模型[116, 205, 234, 251]。我们要解决的问题是从已知特征(如资产回报率、波动率和成对相关性)的资产集合中构建最优投资组合。一个典型的投资组合优化问题是从N个可投资资产中选择M个资产。这些M个资产应该根据某些标准,理想地是最优选择。

我们所针对的场景是一个基金组合经理,他面临着选择最佳基金的任务,这些基金遵循特定的交易策略,以根据某个模型最大化风险调整后的回报[175],并且有一个约束条件,即资产选择时要赋予相等的偏好权重[82]。如果我们希望通过更大比例的分配给某一特定资产来推广投资组合,我们可以通过克隆资产并将其视为新资产,从而允许参考权重的倍数。

3.3.1 QUBO 编码

选择M个基金( 替换)的问题可以通过二次形式进行编码:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file350.jpg

其中,q[i] = 1 表示选择了资产iq[i] = 0 表示未选择资产i。任务就是找到一个 q := (q[1],…,q[N])的配置,使得L(q)最小化,并满足基数约束(即选择恰好M个资产)。解决基数约束的常见方法是,在成本函数中添加一个项Lpenalty,根据(3.3.1),使得不满足约束的选择会受到一个大值P ≫ 1 的惩罚,从而迫使全局最小值满足∑ [i=1]^Nq[i] = M

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file351.jpg

系数(a[i])[1≤i≤N] 反映了资产的独立吸引力,可以通过单个资产的预期风险调整回报来推导得出。具有较大预期风险调整回报的资产应该通过负值的a[i]来奖励,而具有较小预期风险调整回报的资产则应该通过正值的a[i]来惩罚。系数(b[ij])[1≤i<j≤N] 反映了成对的多样化惩罚(正值)和奖励(负值)。这些系数可以通过成对的相关性来推导得出。

给定的 QUBO 代价函数的最小化(见 3.3.1 和 3.3.1)应通过使用夏普比率的度量优化风险调整后的回报。夏普比率(以资产波动率单位衡量的超额资产回报)计算公式为(rr[0])∕σ,其中 r 是预期的年化资产回报,r[0] 是适用的无风险利率,σ 是资产波动率(资产回报的年化标准差)。基金的夏普比率越高,意味着基金相对于其承担的风险所获得的回报越好。波动率可以通过净资产价值回报(每股)的历史年化标准差来估算。预期回报可以通过基金投资的历史回报来估算,或者由分析师/投资组合经理独立推算,考虑未来基金表现的不同因素。

3.3.2 粗粒度编码方案

与其使用从金融数据中获得的原始实数作为 QUBO 系数,我们选择将单个基金的夏普比率及其相互相关性粗粒度化为整数值,方法是将区间分组到桶中(样本映射方案见表 3.1)。通过使用桶化值,我们定义了一个评分卡,该评分卡松散地基于过去的基金表现,但可以由投资组合经理根据他们的个人观点以及任何尚未反映在基金报告中的新信息进行轻松调整。

夏普比率桶 系数 a[i]
等间距桶, 映射方案:
从最差到最好 A
第一 15
第二 12
第三 9
第四 6
第五 3
第六 0
第七 −3
第八 −6
第九 −9
第十 −12
第十一 −15
相关性桶 系数 b[ij]
映射方案:
D
−1.00 ≤ρ[ij] < −0.25 −5
−0.25 ≤ρ[ij] < −0.15 −3
−0.15 ≤ρ[ij] < −0.05 −1
−0.05 ≤ρ[ij] < 0.05 0
0.05 ≤ρ[ij] < 0.15 1
0.15 ≤ρ[ij] < 0.25 3
0.25 ≤ρ[ij] ≤1.00 5

表 3.1:来自净资产值时间序列市场数据的样本 QUBO 系数规格。

QUBO 系数选择为小整数是由现有量子退火器架构的技术实现所决定的(超导芯片电路的精度)。在这一限制下,投资组合经理可以为 QUBO 系数选择任何线性或非线性比例。例如,二次映射方案 B 强烈惩罚低夏普比率基金,并且强烈奖励高夏普比率基金。线性映射方案 A 和 C 则能更好地区分表现一般的基金。类似地,映射方案 E 比映射方案 D 更强烈地惩罚大正相关,并奖励大负相关。

3.3.3 数值实验的实例集构建

我们案例研究中使用的实例集是通过模拟资产价值获得的,借助于相关几何布朗运动过程,具有常数相关性ρ、漂移μ和对数正态波动率σ。这些参数的具体值来源于广泛的基金行业研究(见[79],关于夏普比率分布的部分),因此,可以视为行业的代表。模拟的时间范围选择为一年,时间步长设为一个月。

每个模拟(或“实际”)的投资组合场景都包含每个资产的 12 个月回报率。根据这些回报率,我们计算了每个资产的总实际回报和实际波动率(显然,它们与其预期值μσ不同),以及整个投资组合的总回报和波动率。我们还根据输入的统一相关性ρ计算了所有资产之间的实际成对相关性。最后,我们计算了单个资产和投资组合的夏普比率。作为参考,当ρ = 0.1,μ = 0.075,σ = 0.15,且常数无风险利率设定为r[0] = 0.015 时,投资组合中每个资产的预期夏普比率为 0.4。由于资产之间的多样化和低相关性,N资产投资组合的预期夏普比率要显著更高,例如,对于一个 48 个资产的投资组合,我们预计夏普比率的值将在 0.5(第 25 百分位)到 2.1(第 75 百分位)之间,均值约为 1.4。

3.3.4 经典基准 – 遗传算法

我们选择遗传算法(GA)作为经典基准启发式方法,GA 是解决难度较大的组合优化问题的流行选择。遗传算法是一种通过应用模仿自然遗传继承的算子并模拟达尔文生存斗争来搜索解空间的自适应方法。遗传算法在投资组合优化问题中的应用有着丰富的历史,最近的研究包括[172,179]。

在投资组合优化的情况下,解(染色体)是一个向量 q := (q[1],…,q[N]),由 N 个元素(基因)组成,这些元素可以取二进制值 {0*,*1}。任务是找到一种基因组合,最小化代价(适应度)函数 L(q)。由于解由相对较短的比特字符串表示,我们不使用交叉重组机制,因为它对提高算法收敛性几乎没有价值。算法 1 对 GA 程序进行了详细描述。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file352.jpg

参数 LK 的最佳值依赖于问题规模和具体的 QUBO 系数映射方案,可以通过反复试验来找到。这里的目标是通过最少的目标函数调用次数实现目标收敛。

我们的首要任务是验证所提出的映射方案是否合理,即最小化目标函数(3.3.1)和(3.3.1)是否确实能够构建最优投资组合。选择从 N 个可投资资产中挑选出 M 个最佳资产的问题的一个可能方法是根据各自的 Sharpe 比率选择 M 个单独最佳的资产。此方法忽视了某些单独最佳资产之间可能存在的较大正相关性对多样化的负面影响,因此没有理由相信这样的投资组合是最优的。因此,我们应该要求,通过最小化 L(q) + Lpenalty 构建的最优投资组合应优于 M 个单独最佳资产的投资组合。

例如,我们可以比较从 48 个资产的集合中选择的最优 24 资产投资组合的结果(对于 10,000 个投资组合实例,模拟条件为ρ = 0*.1,μ = 0.075,σ = 0.15;如前所述,假设一个恒定的无风险利率r*[0] = 0*.*015)。表 3.2 显示了根据表 3.1 提供的样本 QUBO 系数映射方案获得的夏普比率分布统计[296]。结果以以下格式呈现:平均值(第 25 百分位;第 75 百分位)。


|


|


|

b [ij] 映射方案

|


|


|

D E F
映射 A 4.7 (2.5; 6.4) 4.5 (2.1; 6.1) 4.0 (1.7; 5.5)

|


|


|


|

方案 B 4.8 (2.7; 6.5) 4.3 (2.0; 5.9) 4.2 (2.0; 5.8)

|


|


|


|

对于 a[i] C 5.0 (3.0; 6.7) 4.8 (2.6; 6.3) 4.6 (2.5; 6.1)

表 3.2:不同映射方案的夏普比率分布统计。

对于个别最佳资产的投资组合,夏普比率分布统计如下:

平均值:3.8,第 25 百分位:2.6,第 75 百分位:4.7

平均而言,最优投资组合的夏普比率比个别最佳资产的投资组合高 0*.8,尽管一些 QUBO 系数映射方案的结果优于其他方案。图 3.3 展示了通过最小化成本函数L*(q) + Lpenalty 找到的最优投资组合相对于由 24 个个别最佳资产组成的投资组合,在映射方案 A 和 D 中的表现更好。

我们的第二个任务是了解解决方案所需的时间如何随着问题规模的变化而变化,以及量子退火是否能与经典算法相比表现出显著的加速效果。移除最优投资组合中资产数量的约束将会是一个有趣的实验。图 3.3 中展示的投资组合优化结果是针对M = N∕2 的情况获得的,这可能是最难的组合优化问题之一,因为它涉及到资产数量的约束,基于搜索空间的大小[175]。从蛮力方法的角度来看,如果我们去掉这个约束,问题将变得更加困难,因为解空间会随着N的增加而增长,变成 2^N,而不是https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file353.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file354.jpg

图 3.3:夏普比率直方图(QUBO 系数映射方案 A 和 D)。M = N∕2\。

去除基数约束也是必要的,因为表达式(3.3.1)中的大能量尺度 P 通常与量子退火机器的模拟性质相关,并且与量子芯片局部元件上可控编程的最大能量物理限制有关。然而,可以采取多种混合量子-经典策略来克服这一限制。

例如,我们观察到,通过常量±Δ人为地调整夏普比率值(并根据所选的规定添加桶,例如表 3.1),本质上相当于迫使无约束问题的基态解选出大致期望数量的资产。因此,尽管没有解决相同的问题,我们可以想象一种解算器,它可以解决类似约束的问题,将量子退火过程封装在一个经典循环中,检查最优解中选定的资产数量 m(Δ),并且当Δ = 0 时,根据 m 大于或小于 M 来增加或减少资产的单独期望值,并再次运行,直到 m(Δ) = M 且 Δ = Δ^⋆。尽管在这种情况下这是对原始问题的一种近似,但这种混合方案在量子辅助解算器中并不少见[285],且预期的运行轮次应按二分查找的方式与 log 2 成比例增长,这为解决时间复杂度引入了一个常数因子,应该能够保持可管理。也可以提出其他混合方法来应对约束,例如在预处理过程中通过样本持久性来固定一些资产选择[154]。

根据前述论点,在我们的基准案例研究中,我们集中精力运行无约束问题,设置 Δ = 0。表 3.3 提供了基准实例集的特征[296]。对于给定大小的问题,该表报告了在 30 个实例中,无约束投资组合优化问题的最优投资组合中资产的中位数(括号中为最小值和最大值)。

问题 资产数量
大小 在最优投资组合中
N (无约束问题)
42 16 (−7,+6)
48 17 (−6,+5)
54 19 (−7,+12)
60 23 (−13,+15)

表 3.3:基准实例集特征。

3.3.5 建立量子加速

目标是解决在 D-Wave 2000Q 量子退火器编程能力极限下的代表性投资组合实例。D-Wave 2000Q 拥有 2,048 个物理量子比特;然而,由于 D-Wave 2000Q 的Chimera图的连接性有限,我们最多可以在完全连接的图上嵌入 64 个逻辑二进制变量。实际上,我们将自己限制为最多使用 60 个逻辑量子比特,这意味着我们基准测试的最大搜索空间约为 60!(30!)² ≃ 10¹⁷,如果M = N∕2。这个限制决定了实例集的配置,实例集由 30 个随机生成的实例组成,N = {42*,48,54,*60}个资产。

如第二章所述,一个常用的衡量非确定性迭代启发式方法与量子退火性能的标准是解决时间(TTS)[250]。后者定义为在给定概率(置信水平)α ∈ (0*,*1)下,找到基态所需的量子退火器独立运行次数的期望值。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file355.jpg

其中t[run]是单次运行的运行时间——对于正向退火是τ(见第 3.2.1 节),对于反向退火是 2τ + ρ(见第 3.2.2 节)——而p是该单次实验中找到目标函数最优解的概率。

图 3.4 显示了 GA、正向量子退火求解器(QA)和反向量子退火求解器(QA)对于使用映射方案 A 和 D 编码的无约束投资组合优化问题的 TTS 结果[296]。图中,标记表示中位数值,误差条表示在 30 实例集上的第 30 和第 70 百分位数。所有 TTS 都已测量,但不包括运行初始化初始假设𝒮的贪婪下降所需的时间,也不包括操作量子退火器的开销时间。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file356.jpg

图 3.4:解决时间(99%置信水平):GA、正向和反向量子退火。使用映射方案 A 和 D 对无约束投资组合优化问题进行编码。

GA 也可以通过贪婪搜索启发式方法初始化,这也减少了 GA 找到全局最小值所需的 TTS。实验研究表明,最佳结果出现在最小可能的退火时间和暂停时间(1 微秒)下[296]。在中位数情况下,应用反向量子退火相比正向量子退火或经典基准,能观察到一到三个数量级的加速。

很可能,N = 54 时反向量子退火 TTS 的非单调行为并非具有根本意义,而是由于我们实例集的有限、小规模噪声所致。尽管实例集的规模较小使得很难对量子退火与问题规模之间的扩展性做出明确结论,但似乎反向量子退火在N = 54 个资产的投资组合中显示出与遗传算法类似的扩展性——如虚线回归线所示。对于N = 60 个资产的极限情况,表现较差的扩展性可能是由于此时物理量子比特链条过长,且更容易断裂。值得注意的是,出于同样的原因,N = 60 也是正向退火的一个非常困难的情况。与正向退火相比,反向退火显示出显著更好的扩展性。当正向退火中的参数β为 0.3 时,反向退火中的β为 0.1。

离散投资组合优化是一个 NP 难度问题,可以通过量子退火器使用混合量子-经典反向退火技术来解决,量子加速比可达到几个数量级(忽略测量和系统重置的计算开销)。尽管目前还为时过早,无法确定量子退火是否能成为一种广泛应用的投资组合优化工具,但有迹象表明,随着技术和理论的进步,它可能会成为一个可行的选择。

总结

在这一章中,我们应用量子退火解决离散投资组合优化问题。我们从二次无约束二进制优化的原理开始,研究了几个 NP 难度优化问题及其 QUBO 表述。

然后,我们引入了量子退火协议的概念,并指定了两种此类协议:正向退火和反向退火。我们还指定了经典基准:遗传算法,一种理想适用于二进制变量操作的进化搜索启发式方法。

一旦我们拥有所有必要的构建模块,我们将一个样本离散投资组合优化问题转化为 QUBO,并在 D-Wave 2000Q 量子退火器上尝试解决它的实例。我们收集了足够的统计数据,涵盖了各种问题规模,以便将正向和反向量子退火的表现与经典基准进行比较。在 TTS 方面,我们特别对反向量子退火协议取得的令人鼓舞的结果表示满意。

在下一章,我们将学习如何将量子退火应用于构建一个强健分类器的问题。所提的解决方案——量子提升——是一种混合量子-经典分类器(量子训练,经典运行),其性能与标准的经典模型相当,且有时能够超越它们。

加入我们书籍的 Discord 空间

加入我们的 Discord 社区,与志同道合的人一起学习,和超过 2000 名成员共同成长,网址:packt.link/quantum

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file1.png

第四章:量子提升

在本章中,我们考虑经典提升元算法的量子版本——这是一类机器学习算法,能够将弱分类器转化为强分类器。经典的提升包括两个主要操作:i)对弱分类器进行自适应(迭代)训练,从而提高它们的个体性能,ii)在将弱学习器组合成一个强学习器时,找到一组最优的权重配置。

自适应学习包括对训练数据集中的样本进行迭代重新加权,迫使模型通过赋予难以分类的样本更高的权重来提高其性能。这些权重在每次算法迭代时都会进行调整。可以说,最著名和最成功的这种算法示例就是流行的自适应提升(AdaBoost)模型。该模型最早由 Freund 和 Schapire 于 1997 年提出[107],他们的工作在 2003 年获得了著名的 Gödel 奖。

AdaBoost 的主要原理是基分类器(弱学习器)按顺序训练,每个基分类器都使用加权形式的数据集进行训练:与每个样本相关的加权系数取决于前一个分类器的性能。被某个基分类器误分类的样本,在用来训练下一个基分类器时会被赋予更大的权重。一旦所有基分类器都训练完成,它们的预测结果通过某种加权多数投票方案结合起来[37]。因此,AdaBoost 可以被看作是一个通用框架,允许多种实现方式,具有不同程度的复杂性,而不是一个狭义定义的算法。

与 AdaBoost 不同,提升方法通过为个体弱学习器找到一组最优权重(弱学习器按常规方式训练)来实现,这种方法易于实现,并依赖于标准的优化程序。然而,当引入额外约束条件时,这一任务变成了一个复杂的组合问题。当权重只能取二进制值时,该问题自然可以表述为一个 QUBO 问题。

量子退火在这里发挥着作用,正如我们在第三章中所看到的那样。对于足够数量的弱分类器,搜索空间会变得巨大,经典算法(如各种进化搜索启发式方法)可能需要相当长的时间才能找到最优的权重配置(或者至少找到一个好的近似解)。这是量子退火展示其优势的理想场景,包括实现物质量子加速的可能性。

量子提升是一种基于 QUBO 的技术,通过构造二进制分类器的最优线性组合,将单个弱学习器组合成一个强分类器。它是透明的、易于解释的,并且抗过拟合。

4.1 量子退火与机器学习

量子提升是我们在本书中将要考虑的第一个 QML 算法。这也是最能发挥量子退火自然优势的算法。

4.1.1 QBoost 算法的一般原理

我们先从量子提升(QBoost)算法的一般原理开始,再探讨一个具体的与金融相关的应用。在 QBoost 的公式中,我们将使用以下定义和符号:

对象 定义
x[τ] = (x1*,x2,…,x*N) N个变量(特征)的向量
y[τ] = ±1 二进制标签,表示 x[τ]是否对应类别 0(−1)或类别 1(+1)
{x[τ],y[τ]}[τ=1,…,M] 训练事件集
ci = ±https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file357.jpg 弱分类器i在事件τ上的值
q := (q[1],q[2],…,q[N]) 与每个弱分类器相关联的二进制(0 或 1)权重的向量

表 4.1:QBoost 算法符号

我们首先指定样本τ的分类误差,该误差由平方误差给出:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file358.jpg

最小化的总成本函数是所有样本的平方误差之和:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file359.jpg

请注意,y[τ]²不依赖于 q,因此对L的最小化没有影响。为了防止过拟合,添加一个惩罚项λ > 0,因此最小化的目标函数为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file360.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file361.jpg

备注: 添加一个由系数λ控制的惩罚项类似于 LASSO 回归方法[6],其使用L[1]惩罚项,在机器学习中非常常见。岭回归[243]使用L[2]惩罚项,也可以使用,并且也会导致一个 QUBO 问题。

4.1.2 从 QUBO 到 Ising

如在第 3.1.1 章中所述,我们现在执行从 QUBO 到 Ising 的转换,使用二进制决策变量 q := (q[1],…,q[N]) ∈{0*,1}^N 到自旋变量 s := (s[1],…,s*[N]) ∈{−1*,*+1}^N 的转换:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file362.jpg

因此,量子退火器上待解决的 Ising 问题可以表示为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file363.jpg

由于这三个术语

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file364.jpg

不依赖于 s,它们可以从成本函数中移除。替换 λ = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file365.jpgλ 后,得到最终的 Ising 问题

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file366.jpg

量子退火尝试解决的问题是最小化 ℋ 并返回最小化的基态自旋配置(s[i]^g)[i=1,…,N]。然后,强分类器被构建为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file367.jpg

对于我们希望分类的每一个新事件 x [218]。

4.2 QBoost 在金融领域的应用

量子退火在机器学习(QAML)领域已经成功应用于广泛的金融和非金融用例。与传统的经典机器学习模型(如基于二叉决策树的极端梯度提升(XGBoost)和深度神经网络(DNN)分类器)相比,QAML 在处理相对较小的数据集时表现出明显的性能优势。QAML 的应用案例来自多个不同领域,如高能物理(希格斯玻色子的探测[218])和计算生物学(转录因子结合的分类和排名[186])。在金融领域,QAML 的最明显应用是信用评分和欺诈检测,以及通过大量弱二进制(买/卖)交易信号构建强交易信号。

在本节中,我们分析了 QBoost 在更常见的二元分类问题上的表现——预测信用卡客户违约。我们还提供了经典基准(梯度提升和前馈神经网络分类器),并从不同角度分析了 QBoost 的表现。选择的数据集相对较大,包含数万样本,应该能够帮助标准经典分类器避免过拟合,并展示它们的最佳性能。

已有研究表明[218],QBoost 算法具有抗过拟合的能力,因为它通过显式地线性化相关性(因此在较小数据集上的表现优于经典基准)。该模型的另一个有用特点是它具有可解释性,每个弱分类器都对应一个特定的特征或特征组合(或它们的函数),而强分类器则是这些特征的简单线性组合。这与“黑箱”机器学习判别方法(如使用梯度提升或深度神经网络)相比,具有显著优势。对于面向零售客户的金融产品,这一点尤为重要。

4.2.1 信用卡违约

信用卡客户违约(DCCC)数据集可以从 UCI 机器学习库获得 [307, 308]。该数据集包含 30,000 个样本,进行二分类:客户违约(类 1)和客户未违约(类 0)。共有 23 个特征(F1-F23),这些特征至少具有一定的预测能力,可以用于分类决策:

  • F1:给定信用额度(新台币):包括个人消费者信用和其家庭(附加)信用。

  • F2:性别(1 = 男;2 = 女)。

  • F3:教育程度(1 = 研究生;2 = 大学;3 = 高中;4 = 其他)。

  • F4:婚姻状况(1 = 已婚;2 = 单身;3 = 其他)。

  • F5:年龄(岁)。

  • F6-F11:过去支付历史。F6 – 上个月的还款状态,F7 – 两个月前的还款状态,依此类推。还款状态的测量标准为:−1 = 按时还款;1 = 延迟一个月还款;2 = 延迟两个月还款;;8 = 延迟八个月还款;9 = 延迟九个月及以上还款。

  • F12-F17:账单金额(新台币)。F12 – 上个月的账单金额,F13 – 两个月前的账单金额,依此类推。

  • F18-F23:上一期付款金额(新台币)。F18 – 上个月支付的金额,F19 – 两个月前支付的金额,依此类推。

弱分类器的构建方式如下:每个特征单独作为输入,用于逻辑回归分类器,目的是做出二分类预测:−1∕N表示类别 0(无违约),+1∕N表示类别 1(有违约),其中N = 23 表示弱分类器的总数(数据集中的特征数量)。需要注意的是,这不是唯一可能的方法。通过某些(可能是非线性的)特征组合来构建弱分类器是完全可行的。每当我们清楚地了解哪些特征组合能产生更有意义和洞察力的结果时,就应该采用这种方法。然而,在这个特定的例子中,我们的目的是阐明 QBoost 算法的基本原理,因此我们并不假设拥有足够的专业知识来构建更好的衍生特征。

我们使用了来自scikit-learn包的sklearn.linear_model.LogisticRegression [230] 作为弱分类器。数据集按照 70:30 的比例被划分为训练集和测试集,并借助 sklearn.model_selection.train_test_split 模块完成。根据 QBoost 算法的要求,类标签被编码为−1 表示类别 0(无违约),+1 表示类别 1(有违约)。

构建弱分类器数据集时使用了以下LogisticRegression模型配置(其他所有参数均设置为默认值):

  • penalty = ‘l2’

  • C = 1.0

  • solver = ‘lbfgs’

  • max_iter = 1000

因此,我们有一个训练数据集(21,000 个样本)和一个测试数据集(9,000 个样本),每个数据集都包含 23 个弱分类器的预测(取值{−123, +123})和类标签(取值{−1, +1})。如果强分类器的预测由弱分类器的预测和(简单多数投票方法)给出,那么其值将位于[−1*,*1]范围内,只有当所有弱分类器完全一致时,才会得到−1 或+1 的值。

QBoost 通过找到最优配置的弱分类器来改进这一方法,使得多数投票仅在部分可用的弱分类器上执行。换句话说,对所有弱分类器执行的多数投票只是 QBoost 的一种特殊情况(即其中一种可能的配置)。因此,有必要将 QBoost 的性能与更先进的经典机器学习模型(如梯度提升和神经网络)进行比较。我们将在第 4.3 节提供这种比较。

4.2.2 QUBO 分类结果

DCCC 数据集中的每个特征都唯一地映射到相应的(弱)逻辑回归分类器,并与二进制决策变量(q[i])[i=1,…,23]相关联。这些决策变量在 QUBO/Ising 形式的优化问题中由逻辑量子比特/自旋变量表示。

非零决策变量(权重)的数量取决于我们希望施加的正则化程度。表 4.2 展示了作为训练数据集惩罚λ的函数,权重的最优配置。考虑到我们例子中的弱分类器数量相对较少,可以通过穷举搜索找到最优配置。正如预期的那样,惩罚λ值越大,非零权重的数量越小。

λ 非零权重
500 {q[1],q[6],q[7],q[8],q[9],q[10],q[11]}
600 {q[6],q[7],q[8],q[9],q[10],q[11]}
700 {q[6],q[7],q[10],q[11]}
800 {q[6],q[10],q[11]}
900 {q[6],q[11]}
1000 {q[6]}

表 4.2:不同惩罚λ值下 QUBO 权重* q*的最优配置。最优配置列出了所有非零权重。

给定一组权重配置,我们可以按照(4.1.2)构建强分类器。然后,我们可以比较获得的强分类器在训练(样本内)和测试(样本外)数据集上的表现。选择的性能指标是准确率精确度召回率。分类器的性能也可以借助混淆矩阵来可视化。以下是它们的定义。

  • 准确率是正确预测的观察结果与总观察结果的比例。准确率是评估类别大小大致相同且重要性相当时的一个良好指标。然而,在我们的例子中,它是一个不太理想的指标:类别 0 样本(无违约)远比类别 1 样本(违约)多,但类别 1 样本的相对重要性要高得多。

  • 精确度是正确预测的正类观察结果与总预测正类观察结果的比例。高精确度意味着低假阳性率。在信用卡违约的背景下,如果错误的违约预测代价高昂,这个指标是我们希望最大化的。

  • 召回率是正确预测的正类观察结果与所有正类观察结果的比例。在信用卡违约的背景下,这个指标显示了有多少实际违约被分类器预测出来。从风险管理的角度来看,我们希望最大化这一指标。

  • 混淆矩阵是二分类器的一个 2 × 2 矩阵,其元素是分类器预测的真实正例(TP)、真实负例(TN)、假正例(FP)和假负例(FN)的计数,如图 4.1 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file368.jpg

图 4.1:二分类器的混淆矩阵。

准确率、精确度和召回率的定义如下:

准确率 := https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file369.jpg,
精确度 := https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file370.jpg,
召回率 := https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file371.jpg.

图 4.2 显示了强 QBoost 分类器的样本内和样本外混淆矩阵,假设类别 1(违约)为正类,类别 0(无违约)为负类。惩罚参数设置为 λ = 10³,从而强制执行强正则化。

样本内和样本外的结果非常接近,正如从一个强正则化的分类器所期望的那样。表 4.3 总结了结果。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file372.jpg

图 4.2:QBoost 分类器的混淆矩阵(DCCC 数据集)。

准确率 精确度 召回率
样本内 0.82 0.69 0.33
样本外 0.83 0.71 0.33

表 4.3:QBoost 分类器在 DCCC 数据集上训练和测试后的准确率、精确度和召回率。

4.3 经典基准

经典基准测试是量子算法测试中的一个重要组成部分。小规模(甚至是风格化的)问题非常适合这个任务。让我们看看 QBoost 模型与标准经典机器学习分类器(神经网络和梯度提升)相比的表现。

4.3.1 人工神经网络

人工神经网络(ANN)是由互联的 激活 单元(或 人工神经元)组成的网络,其中每个激活单元执行三项主要功能(图 4.3):

  • 输入信号的求和(x[i])[i=1,…,N],来自所有上游单元,并与相应的权重(w[i])[i=1,…,N] 相乘;

  • 聚合输入的非线性变换;

  • 将结果发送到其连接的下游单元。

有时,激活单元还执行二值化(或更一般地,数字化)输出任务——通常,这是作为分类器训练的 ANN 输出层中的激活单元的任务。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file373.jpg

图 4.3:人工神经元(感知器)的示意图。

在最简单的形式下,ANN 组织为激活单元的层次结构:输入层、输出层以及一个或多个隐藏层,如图 4.4 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file374.jpg

图 4.4:前馈人工神经网络的示意图。

图 4.3 中的激活单元被称为 感知器,由感知器层组成的人工神经网络(ANN)被称为多层感知器(MLP)。MLP 是 前馈 神经网络:信号从输入层沿一个方向传递到输出层。ANN 也可以以不同方式组织,信号在各层之间来回传递,我们将在下一章探讨其中一个模型。然而,在构建分类器时,简单的前馈架构在实践中效果很好。

人工神经网络架构的实际方法基于 Cybenko 获得的基本结果[75]。该结果表明,任意的决策区域可以通过仅包含一个隐藏层和任何连续的 sigmoid 非线性激活函数的连续前馈神经网络进行任意逼近。Hornik、Stinchcombe 和 White[141]进一步将这一结果推广到了更广泛的激活函数范围。研究表明,具有单个隐藏层并且隐藏层激活函数平滑的多层前馈网络能够以任意精度逼近任何任意函数及其导数。事实上,这些网络甚至可以逼近那些在经典意义上不可微的函数,而只具有广义导数[224]。

4.3.2 训练人工神经网络

训练人工神经网络的过程是找到一组网络参数(权重和偏置)的最佳配置,使得新的未见输入能以期望的方式转化。网络是在所谓的训练数据集上进行训练的。训练数据集中的样本可以是有标签的(每个样本都被分配一个类标签,可能是数值的,也可能是分类的)。在这种情况下,我们可以执行监督学习,其中网络的任务是学习特征与类标签之间的映射——在监督学习模式下训练的人工神经网络变成了分类器。当样本没有标签时,我们可以将网络训练为回归器。虽然作为分类器训练的人工神经网络似乎是最明显的实际决策工具,但回归器在各种定量金融领域也有着广泛的应用,例如用于学习利率曲线的自然动态和变化[169]。

然而,我们希望在这里重点讨论有标签的数据集,因为我们的目标是考虑 QBoost 分类器的经典对照。训练前馈人工神经网络的标准方法是通过梯度下降的反向传播误差[113]。我们简要解释这种方法的主要思想。

起点是指定一些合适的代价函数,以指示我们与正确分类的距离。为了不失一般性,假设我们使用一个包含M个样本的训练数据集,其中每个样本是一个N维特征向量和一个二进制类标签的组合:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file375.jpg

令 (ŷ^j)[j=1,…,M] 为人工神经网络根据某个网络权重配置 w = (w[1],…,w[K]) 分配给相应训练样本的类标签。然后,我们可以定义代价函数为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file376.jpg

其中g(yj*,ŷ*j(w))是样本j的估计误差。指定误差函数的方法有很多种,最常见的是平方误差。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file377.jpg

给定代价函数L(⋅),我们可以计算其敏感度(导数)∂L(w)∕∂w[k],对于每个k = 1*,…,K*,即对于网络权重的敏感度。然后我们可以通过在与对应梯度相反的方向上更新权重,从而减少估计误差:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file378.jpg

其中系数η称为学习率,它可以是常数或动态的。我们接着按照(4.3.2)、(4.3.2)和(4.3.2)给出的步骤进行迭代,直到估计误差降到预定阈值以下或达到最大迭代次数。学习率通常初始设置为较大的值,然后随着迭代次数的增加呈指数衰减。

梯度可以通过数值方法(例如,使用有限差分法)或解析法计算,后者显然更为可取。最常用的非线性激活函数及其梯度列在表 4.4 中,相关图形展示在图 4.5 中:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file379.jpg

表 4.4: 激活函数。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file380.jpg

图 4.5: 激活函数。

备注: Sigmoid 激活函数,如逻辑 Sigmoid 和双曲正切,是浅层神经网络(只有少数隐藏层)的首选激活函数。在这种情况下,可以利用 Sigmoid 函数的平滑性来实现对我们试图学习的函数的最佳近似。然而,对于具有大量隐藏层的深层神经网络,我们面临梯度消失的问题——当x → ±∞时,σ(x)和 tanh(x)的梯度变为零。同时,ReLU 对于所有x > 0 总是具有非零梯度,这使得它成为深层神经网络中首选的激活函数,特别是当可以为了非零梯度而牺牲激活函数的平滑性时。

最后,过拟合问题可以通过向(4.3.2)中添加正则化惩罚项来解决,例如以下的L[2]惩罚项,它能抑制与强非线性相关的大权重:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file381.jpg

其中参数λ控制正则化的程度。

4.3.3 决策树与梯度提升

决策树分类方法基于通过可用特征划分数据集的概念,以最大化信息增益,定义为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file382.jpg

其中,D 是父节点的数据集,(d[j])[j=1,…,M] 是父节点被划分成的子节点的数据集,N 是父节点中的样本数,(N[j])[j=1,…,M] 是子节点中的样本数,I 是选择的不纯度度量。后者表示同一节点中来自不同类别的样本的存在:如果节点只包含某一类的样本,则为零;如果节点包含来自所有类别的样本,则为最大。因此,信息增益的最大化通过最小化子节点的不纯度来实现。

图 4.6 提供了基于二元(“雨天/非雨天”)和连续(“风速”)特征的决策树的示意图。决策树算法从根节点开始,在图中显示为阴影框。基于根特征划分数据集会产生最大的 信息增益。划分导致了分支(图中以箭头表示,从父节点指向子节点)和叶子(图中以白色框表示)的生成。终端叶子(类)以虚线框表示。划分持续进行,直到无法再创建更多分支或达到最大允许深度为止。通过施加剪枝(限制树的最大深度)来避免构建过深的树是一个好习惯,以避免过拟合。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file383.jpg

图 4.6:决策树的示意图。

最常用的不纯度度量是基尼不纯度。设 (p[i]^l)[i=1,…,C] 为节点 l 中属于类 i 的样本比例。那么不纯度度量定义为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file384.jpg

决策树可以视为弱学习器,可以通过提升变成强学习器。将弱分类器组合成一个强分类器的最流行方法之一是梯度提升。梯度提升的主要原理如下[185]。

目标是通过迭代过程改进弱分类器,改进的度量是最小化估计误差(例如,由(4.3.2)给出的平方误差)。如前所述,假设我们处理的是二分类问题(4.3.2)。进一步假设在第k次迭代中,弱学习器为样本 x^j 返回估计值ŷk。为了改进分类结果,算法应该添加一些估计器h[k],使得对于给定的样本 x^j,我们有

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file385.jpg

其中y^j 是样本 x^j 的正确类别标签。换句话说,任务是将新的估计器h[k]拟合到残差y^j −ŷk,j = 1*,…,M*。我们还注意到,估计器h[k]与平方误差(4.3.2)相对于ŷ[k]的负梯度成正比:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file386.jpg

因此,梯度提升将提升与梯度下降算法结合起来。

4.3.4 与标准经典分类器的基准比较

经典的基准选择是 MLP 分类器(sklearn.neural_network.MLPClassifier)和梯度提升分类器(sklearn.ensemble.GradientBoostingClassifier)。表 4.5 列出了经过弱优化的模型参数:我们没有寻找绝对最优的模型参数集,而是尝试了少数几种配置。可以将其看作是一种非常粗略的网格搜索方法,产生了一个可行的模型参数配置,但不一定是最优的。所有其他模型参数都设置为默认值。

梯度提升分类器 MLP 分类器
loss = ‘deviance’ hidden_layer_sizes = (20)
learning_rate = 0.1 activation = ‘tanh’
n_estimators = 1000 solver = ‘adam’
criterion = ‘friedman_mse’ alpha = 0.1
max_depth = 3 max_iter = 5000
alpha = 0.01

表 4.5:经典基准模型参数。

图 4.7 显示了经典基准模型的外部样本混淆矩阵,表 4.6 提供了 QBoost 和经典分类器的外部样本结果的直接对比。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file387.jpg

图 4.7:梯度提升和 MLP 分类器的混淆矩阵(DCCC 数据集,外部样本结果)。

准确度 精度 召回率
梯度提升 0.83 0.69 0.35
MLP 0.83 0.69 0.35
QBoost 0.83 0.71 0.33

表 4.6:QBoost、梯度提升和 MLP 分类器在 DCCC 数据集上的外部样本准确度、精度和召回率。

QBoost 在样本外的表现与梯度提升和多层感知器(MLP)分类器相似。样本内和样本外的 QBoost 性能对比证明了 QBoost 能够施加强大的正则化并避免过拟合。与此同时,QBoost 提供了对强分类器所依赖的特征的完全透明性。我们还可以为任何给定的正则化程度获得明确的最优特征配置。传统的机器学习模型则不同,可能需要广泛分析敏感性和特征重要性,才能揭示其“黑盒”机制。

量子提升可以应用于金融优化问题,特别是在强调透明性、可解释性和鲁棒性的场景中。

总结

在本章中,我们学习了如何应用量子退火将多个弱分类器组合成一个强分类器。我们从量子提升的基本原理及其对应的 QUBO 公式开始。

我们接着演示了如何将 QBoost 算法应用于解决实际的金融问题,即预测信用卡客户违约的情况。所选的数据集既足够大又足够复杂,能够提供有意义的挑战,同时结果易于理解和解释。

与对应的经典模型进行客观对比是非常重要的。为此,我们介绍了几种基于前馈神经网络和决策树概念的经典分类器。我们使用准确率、精确度和召回率等指标,将 QBoost 与 MLP 和梯度提升模型进行了基准测试。

在下一章中,我们将学习量子退火如何帮助训练强大的生成式机器学习模型。

加入我们书籍的 Discord 空间

加入我们的 Discord 社区,与志同道合的人一起学习,和 2000 多名成员共同成长:packt.link/quantum

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file1.png

第五章:量子玻尔兹曼机

正如我们在第三章和第四章中看到的,量子退火可以用来解决难度较大的优化问题。然而,量子退火的应用范围远不止于此。在本章中,我们将讨论两个不同但相关的应用案例,这些应用超出了优化问题的解决:采样和训练深度神经网络。具体来说,我们将重点介绍量子玻尔兹曼机(QBM)——一种生成模型,是经典限制玻尔兹曼机(RBM)和深度玻尔兹曼机(DBM)的直接量子退火对应物——以及深度玻尔兹曼机(DBM)——一种由多层潜在变量组成的深度神经网络,层与层之间有连接,但层内单元之间没有连接。

我们首先提供经典 RBM 的详细描述,包括相应的训练算法。由于 RBM 在随机二进制激活单元上操作,因此可以建立 RBM 图与嵌入到量子芯片上的 QUBO 图之间的对应关系。这为使用量子退火进行玻尔兹曼采样(RBM 和 DBM 训练过程中的关键阶段)提供了主要动力。

DBM 可以作为生成模型和判别模型进行训练。在这两种情况下,由于 DBM 可以通过堆叠 RBM 层来构建,因此高效的玻尔兹曼采样是训练过程中的关键元素。量子退火可以集成到混合量子经典训练过程中,具有提高速度和准确度的潜力。量子加速是预期量子优势中特别有吸引力的元素,因为它不仅可以在 RBM 训练阶段实现,还可以在生成新样本的过程中实现。

5.1 从图论到玻尔兹曼机

我们在此提供一个简短的图论自包含回顾,以介绍玻尔兹曼机(或能量模型),它们可以视为特定类型的连接图或网络。

是一组顶点(点或节点)和连接顶点的边。有向图 是一种包含有序顶点对的图,而无向图 是一种包含无序顶点对的图。

我们考虑一个图 𝒢 = (𝒱*,*ℰ),其中𝒱表示有限个顶点,ℰ表示无向边。对于给定的顶点 v ∈𝒱,其邻域被定义为与它通过某条边相连的所有顶点的集合,或者

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file388.jpg

最后, 𝒞是𝒱的一个子集,满足𝒞中的所有顶点通过ℰ中的某条边成对相连。

对于每个顶点 v ∈𝒱,我们将关联一个随机变量 X[v],它的取值来自某个空间 𝒳。向量 X ∈𝒳^(|𝒱|) 被称为马尔可夫随机场,如果

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file389.jpg

以下定理最初由哈默斯利和克利福德[125](另见[167,定理 4.2])证明,提供了一种在图上以方便的形式表达马尔可夫随机场法则的方法。马尔可夫性质在此处至关重要,因为动态(例如,从隐藏层到可见层的信号传递,在 RBM 网络中)应仅依赖于当前状态,而不依赖于系统所经过的整个路径。

定理 8(哈默斯利-克利福德定理) A 严格正分布仅当且仅当它在无向图上进行因式分解时,才满足马尔可夫性质。

换句话说,定理表明,如果其分布可以表示为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file390.jpg

对于一个函数集{ψ[C]}[C∈𝒞],这些函数被称为所有团体C ∈𝒞上的潜力函数,其中Z是一个归一化常数,确保概率的积分为 1。在这里,x[C]自然对应于向量 x 在团体C上的元素。分解通常是在所谓的最大团体上进行的,即那些如果添加任何节点就不再是团体的团体。如果X的分布严格为正,那么{ψ[C]}[C∈𝒞]也是正的,因此(5.1)可以写为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file391.jpg

对于所有 x ∈𝒳^(|𝒱|)。该函数

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file392.jpg

该函数称为能量函数。由于它们在统计物理学中的应用,马尔可夫随机场的严格正分布,形式为(5.1),也被称为玻尔兹曼分布或吉布斯分布。

基于能量的模型是生成模型,通过对观察到的和潜在变量的每种配置应用兼容性度量(标量能量)来发现数据依赖性。推理的目标是寻找潜在变量的值,在给定观察变量值的情况下,使得能量最小化。基于能量的模型具有许多有用的属性(简洁性、稳定性、灵活性、可组合性)——这使得它们成为学习复杂多变量概率分布的首选模型。

5.2 限制玻尔兹曼机

5.2.1 RBM 作为一种基于能量的模型

RBM 对应于这种图的特殊结构,称为二分图,其中顶点集 𝒱 可以被拆分成两个组,分别是可见顶点 𝒱[V] 和隐藏顶点 𝒱[H],使得边集 ℰ 仅由形式为 {v,h}∈𝒱[V] ×𝒱[H] 的元素组成。图 5.1 提供了实现二分图结构的 RBM 的示意图。这特别意味着,团只能是大小为一(所有单点节点)或二(所有 (v,h) 对)在 𝒱[V] ×𝒱[H] 中。为了简化,我们将 v 表示为 𝒳^(|𝒱[V] |) 的一个元素,h 表示为 𝒳^(|𝒱[H]|) 的一个元素,并将随机变量 X 与顶点对应。以下引理给出了 RBM 的能量函数的一般形式(5.1)。

引理 6(RBM 能量引理). 在限制玻尔兹曼机中,能量函数的形式为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file393.jpg

对于任何 v := (v[1],…,v[N]) ∈𝒳^(|𝒱[V] |), h := (h[1],…,h[M]) ∈𝒳^(|𝒱[H]|). 这里,N 是可见顶点的数量,M 是隐藏顶点的数量。

证明。 根据哈默斯利-克利福德定理,对于任何 v ∈𝒳^(|𝒱[V] |),h ∈𝒳^(|𝒱[H]|),我们有以下分解式:

ℙ(v*,*h) = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file394.jpg∏ [C∈𝒞]ψC ∈ C)
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file395.jpg∏ [{{v}:v∈𝒱[V] }]ψ{v}∏ [{{h}:h∈𝒱[H]}]ψ{h}∏ [{{v,h}∈𝒱[V] ×𝒱[H]}]ψ{v,h}
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file396.jpgexphttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file397.jpg,

在所有单点集(大小为一的团)和二点集(大小为二的团)上,其中项 −E(v*,*h) 表示

E(v*,*h) = log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file398.jpg
= log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file399.jpg
+ log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file400.jpg
+ log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file401.jpg
= ∑ [{{v}:v∈𝒱[V] }]log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file402.jpg
+ ∑ [{{h}:h∈𝒱[H]}]log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file403.jpg
+ ∑ [{{v,h}∈𝒱[V] ×𝒱[H]}]log https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file404.jpg
= −∑ [i=1]^NE v −∑ [j=1]^ME h −∑ [i=1]^N ∑ [j=1]^ME v,h*,*

这就完成了引理的证明。□

RBM 的标准示例是当随机变量服从伯努利分布时,即 𝒳 = {0*,*1}^(|𝒱|)。在这种情况下,它们的能量为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file405.jpg

对于某些参数 a[i],b[j],w[ij],i = 1*,…,N*,j = 1*,…,M*。特别地,对于给定的 v[i],我们可以使用贝叶斯公式表示:

ℙ(v[i] = 1|v[v[i]]*,*h) = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file406.jpg
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file407.jpg.

其中我们表示 v[v[i]] 为 𝒱∖{v[i]} 中所有节点的状态。现在,使用 RBM 能量引理,我们可以利用(5.2.1)将来自特定节点 v 的能量单独提取出来,如下所示:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file408.jpg

其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file409.jpg

将此代入(5.2.1)后得到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file410.jpg

因为 Φv = 0,其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file411.jpg

是 Sigmoid 函数。

类似地,我们可以使用 RBM 能量引理将给定隐藏节点 h[j] 上的能量贡献单独提取出来:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file412.jpg

其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file413.jpg

将此代入(5.2.1)后得到

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file414.jpg

因为再次有 Φh = 0\。

5.2.2 RBM 网络架构

如上所示,RBM 是一个浅层的两层神经网络,操作在随机二进制激活单元上。该网络形成一个二分图,将随机二进制输入(可见单元)与随机二进制特征检测器(隐藏单元)连接,且同一层内的单元之间没有连接,如图 5.1 所示 [102]。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file415.jpg

图 5.1:具有可见层单元(白色)和隐藏层单元(深色)形成二分图的 RBM 的示意图。

只有网络的可见层暴露给训练数据集,输入 v := (v[1],…,v[N]) 流经网络(前向传播)到达隐藏层,在此它们被聚合并添加到隐藏层偏置 b := (b[1],…,b[M])。隐藏层的 Sigmoid 激活函数(5.2.1)将聚合的输入转换为概率。然后每个隐藏单元以随机方式“触发”,并输出一个 {0*,*1} 的伯努利随机变量,其相关概率为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file416.jpg

来自隐藏层的输出 h := (h[1],…,h[M]) 随后反向传递(反向传播)到可见层,在那里它们被聚合并加到可见层的偏置 a := (a[1],…,a[N])。与隐藏层类似,可见层的 sigmoid 激活函数首先将聚合的输入转换为概率,然后转化为伯努利随机变量:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file417.jpg

因此,每个单元最多传递一个比特的信息。这对于隐藏单元尤为重要,因为这个特性实现了信息瓶颈结构,作为一种强正则化器[134]。如果网络被组织并训练成自编码器,网络的隐藏层可以学习数据集的低维概率表示。

5.2.3 样本编码

图 5.2 展示了输入信号的二进制表示,信号通过可见层进入网络。可见层中激活单元的数量由我们需要编码的特征数和其二进制表示的所需精度决定。例如,如果我们的样本由 m 个连续特征组成,并且每个特征被编码为 n 位二进制数,则可见层中的激活单元总数为 m × n

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file418.jpg

图 5.2:连续变量的示意二进制编码。

5.2.4 博尔兹曼分布

网络通过尝试从训练数据集(可见单元值)重建输入,来学习可见和隐藏激活单元配置的概率分布 ℙ(v*,*h) —— 即博尔兹曼分布 —— 通过找到网络权重和偏置的最佳集:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file419.jpg

其中能量函数为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file420.jpg

这里,Z 是配分函数:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file421.jpg

然而,我们通常感兴趣的是,如果我们希望生成与原始训练数据集具有相同统计性质的新样本,则学习可见层配置的概率分布,或者如果我们希望构建一个深度神经网络,其中 RBM 层执行特征提取和降维功能,则学习隐藏层配置的概率分布。可见(隐藏)状态的概率是通过对所有可能的隐藏(可见)向量求和得到的:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file422.jpg

最常用的 RBM 训练算法 k-step Contrastive Divergence 是由 Hinton 提出的 [134,133]。该算法旨在最大化训练向量的对数概率,即找到一组网络权重和偏置,使得“能量”函数 E 对训练数据集中的样本最小化(能量值越小,配置的概率越大)。k-步 CD 算法在第 5.3.2 节中有完整说明,感兴趣的读者还可以通过 Fischer 和 Igel 的工作 [103] 获得有关 RBM 训练的精彩介绍。

5.2.5 伯努利 RBM 的扩展

我们上述讨论的标准伯努利 RBM 设置将可见层 v 限制为伯努利分布。事实上,只要哈默斯利-克利福德定理成立,我们可以考虑任何分布或任何形式的能量函数。例如,[62,178] 中曾表明,隐藏层的伯努利分布与可见层的高斯分布是与如下形式的能量函数兼容的:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file423.jpg

对于某些参数 a[i]、σ[i]、b[j]、w[ij],i = 1*,…,N*,j = 1*,…,M*。在这种情况下,对于任何 h[j],条件概率 ℙ(h[j] = 1|v) 保持 sigmoid 形式,并且可见层的条件分布为高斯分布,如下所示:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file424.jpg

我们考虑的 RBM 不考虑时间序列,即具有时间依赖性的概率结构。通过扩大相应的图,特别是添加一个具有有向连接的条件层到经典的隐藏层和可见层,Taylor [280] 表示可以考虑这种依赖性。

RBM(受限玻尔兹曼机)是一种由二分图表示的神经网络。其强大之处在于操作随机二进制激活单元。它是一种生成模型,通过其权重和偏置编码学习到的概率分布,然后生成与原始数据集中的样本在统计上无法区分的新样本。

如果它被组织为具有瓶颈信息结构的自编码器,RBM 能够学习数据集的低维表示。这一特性表明,RBM 可以作为机器学习管道中的特征提取层,用于某些监督和无监督学习问题。

5.3 训练和运行 RBM

构建神经网络意味着指定网络架构和训练算法。在前一节中已经描述了 RBM 的架构,现在我们概述训练流程。

5.3.1 使用玻尔兹曼采样训练 RBM

RBM 训练的目标是估计模型参数(权重和偏置)的最优向量 𝜃,使得 ℙ𝜃 = ℙdata。对于给定的训练样本 v := (v[1],…,v[N]),RBM 旨在最大化对数似然函数,即

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file425.jpg

其中,对于任何 v,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file426.jpg

标准优化方法,如 [133] 所提出的,是一种标准的梯度上升方法,即从初始猜测 𝜃⁰ 开始,我们按以下方式更新:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file427.jpg

直到我们达到足够好的收敛。为了计算它,首先需要计算联合概率 ℙ(v[i],h[j]),这通常通过玻尔兹曼(吉布斯)采样完成 [3],因为我们确切知道条件分布。

5.3.2 对比散度算法

在训练 RBM 时,可以使用玻尔兹曼采样,但这通常是非常昂贵的。为了提高效率,提出了一种更高效的训练算法——k-步对比散度(CD)算法,参考了 [134]。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file428.jpg

k 的选择平衡了准确性和速度。对于许多实际应用,k = 1 是一个最佳选择,尽管在这种情况下,期望值可能会有偏差。然而,这种偏差往往是很小的 [53]。网络通过更新权重和偏置来训练,这些更新增加了训练向量的对数概率,更新公式如下:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file429.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file430.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file431.jpg

其中 ⟨⋅⟩ 表示在下标所指定的分布下的期望,η 是选择的学习率。期望 ⟨⋅⟩[data] 可以直接从训练数据集计算,而获得无偏样本 ⟨⋅⟩[model] 则需要在模型的玻尔兹曼分布中进行交替采样一段较长时间(这是为了实现热平衡状态),并且从某个随机初始化的状态开始。然而,k 步骤的 CD 方法可以用来近似 ⟨⋅⟩[model],通过另一个更易计算的期望,如算法 2 所示。

5.3.3 合成样本的生成

一旦网络完全训练好,就可以用来从学习到的分布中生成新的样本。例如,RBM 可以作为一个市场生成器,生成新的市场情景,这些新样本来自于网络权重和偏置中编码的市场风险因素的多元分布。

第一步是生成一个随机输入:每个可见单元都被初始化为一个随机生成的二进制变量。第二步是在可见层和隐藏层之间进行大量的前向和后向传播,直到系统达到热平衡状态:即初始的随机向量被转换为从学习到的分布中抽取的样本。达到热平衡状态所需的周期数取决于具体问题,是网络架构和网络参数(权重和偏置)的函数。在某些情况下,生成独立样本需要进行 10³ − 10⁴次前向和后向传播[173]。最后一步是从可见层读取输出,这将给我们一个比特串,编码了来自目标分布的样本。

图 5.3 展示了从两个股票指数的每日回报分布中抽取的样本的 QQ 图:德国 DAX 和巴西 BOVESPA。回想一下,分位数-分位数(或 QQ)图是通过将两个分位数集相互对照,绘制成的散点图。如果这两个集来自同一分布,所有点应该接近对角线。数据集包含 536 个样本– 从 2009 年 1 月 5 日到 2011 年 2 月 22 日之间观察到的每日指数回报(UCI 机器学习库[10,9])。"Normal"分布将每日回报建模为正态分布,其均值和方差与历史数据集中的匹配。"RBM"分布是 RBM 生成的样本数据集,理想情况下应具有与原始历史数据集完全相同的统计特性。如果从两个分布中抽取的样本具有相同的分位数,QQ 图中的所有点都将位于对角线处,我们可以得出结论,这两个分布是相同的。图 5.3 显示,来自"Data"和"RBM"分布的样本确实符合这一点(具有相当好的准确性),而两者在与拟合的正态分布相比时,显示出更重的尾部。

图 5.3 中显示的结果是通过在每日回报数据集上训练的 RBM 得到的。每个来自训练数据集的回报都被转换为一个 12 位二进制数。二进制数的每一位被当作一个独立的二进制特征处理(每个索引有 12 个特征;总共有 24 个特征)– 这要求在 RBM 网络的可见层中放置 24 个激活单元。隐藏单元的数量设置为 16。因此,网络作为一个强正则化的自编码器进行训练。生成的回报(以二进制格式)随后被转换回它们的连续表示。该模型是来自开源scikit-learn包的 Bernoulli RBM(sklearn.neural_network.BernoulliRBM)[230],其参数设置如下:

  • n_components = 16 – 隐藏激活单元的数量

  • learning_rate = 0.0005

  • batch_size = 10 – 训练小批量的大小

  • n_iter = 40000 – 迭代次数

合成数据生成方法可以表述为算法 3。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file432.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file433.png

图 5.3:生成的和历史回报的 QQ 图。a)-c) DAX. d)-f) BOVESPA。RBM 学习了股票指数回报的重尾经验分布。

Kondratyev 和 Schwarz [173] 提出了基于 RBM 的市场生成器,并研究了其在日常外汇对数回报数据集上的属性。四个货币对的对数回报时间序列涵盖了 20 年的时间间隔(1999-2019),这使得 RBM 能够学习多变量分布的依赖结构,并成功重建线性和秩相关性以及联合尾部行为。此外,还表明,RBM 可以用于执行条件采样(例如,从低波动/高波动状态),并通过调整热化参数来实现所需的自相关程度。RBM 基于的合成数据生成器的其他有效应用包括数据匿名化、对抗过拟合和异常值检测,正如 Kondratyev、Schwarz 和 Horvath [174] 所展示的那样。

除了在随机二进制激活单元上操作外,RBM 还通过自编码器架构和使用随机梯度上升法进行训练,从而增强了对过拟合的抵抗力。这使得 RBM 能够从相对较小的数据集中学习复杂的多变量概率分布,同时避免了过拟合。

5.4 量子退火与玻尔兹曼采样

将量子退火应用于玻尔兹曼采样基于 RBM 能量函数(见 5.2.4)与量子退火中的哈密顿量之间的直接对应关系。回顾第二章,量子退火基于绝热演化的原则,从初态 t = 0 开始,由哈密顿量ℋ[0]定义,到最终状态 t = T 结束,由哈密顿量ℋ[F]定义,系统在时间 t ∈ [0, T]时的哈密顿量为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file434.jpg

其中 r(t) 从 1 递减到 0,随着 t 从 0 到 T 变化。理想的绝热演化场景设想系统始终保持在ℋ(t)的基态:如果系统从ℋ[0]的基态开始,且演化过程足够缓慢以满足量子绝热定理的条件(见第二章),那么系统最终将达到ℋ[F]的基态。

实际上,现有的量子退火硬件并没有严格满足量子绝热定理的条件。量子退火器在约 15mK 的非常低温下工作[90],但仍然存在一些残余的热噪声。同时,量子比特之间也会有一些串扰,物理量子比特的链条代表逻辑量子比特时,这些链条可能会被破坏。串扰是指某个或多个量子比特的期望操作不小心影响到其他一个或多个量子比特。在某些情况下,串扰是计算错误的主要来源。这对量子退火器解决优化问题提出了严重的挑战,尤其是当主要目标是找到精确的基态时。但是,如果我们想将量子退火器作为采样器使用,一定量的残余热噪声和电磁噪声是可以接受的。

5.4.1 玻尔兹曼采样

量子退火器作为采样引擎的基础是中心提议[4],即激发态的分布可以被建模为玻尔兹曼分布:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file435.jpg

其中 β 是某个参数(可以视为有效的倒数温度),Z 是配分函数:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file436.jpg

如果我们将二进制向量 x 定义为可见节点向量 v 和隐藏节点向量 h 的连接:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file437.jpg

然后,通过比较 5.2.4 和 5.4.1,我们可以建立能量函数 E 与哈密顿量ℋ[F]之间的直接对应关系。因此,我们可以提出一种替代方法来计算期望值 ⟨⋅⟩[model],该方法按照以下算法[4]进行:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file438.jpg

使用量子退火进行玻尔兹曼采样有两个主要的动机,如算法 4 所述。首先,它绕过了运行对比散度算法(算法 2)的需要,该算法仅提供对期望值⟨⋅⟩[model]的近似值(尽管这些近似可以非常准确)。其次,从玻尔兹曼分布生成新样本所需的退火时间约为∼1 微秒,与图的大小无关。在经典的 RBM 中,情况并非如此,通常需要进行数千次的前向和反向传播,才能读取到网络权重和偏置中编码的玻尔兹曼分布的独立新样本[173]。对于大的 RBM 图,在标准硬件上可能需要花费数十毫秒。因此,我们可以从准确性和加速两个方面来探索量子退火为玻尔兹曼采样带来的潜在量子优势。

5.4.2 映射

在量子退火器上执行玻尔兹曼采样的第一步是将 RBM 映射到量子退火硬件图上。我们从为 RBM 能量函数E写出以下形式的表达式开始:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file439.jpg

这里,Q是一个(N + M) × (N + M)矩阵,其元素是 RBM 的权重和偏置:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file440.jpg

量子退火器操作的是自旋变量{−1*,*+1},而不是二进制变量{0, 1}。二进制变量向量 x 可以通过以下方式转换为自旋变量向量 s:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file441.jpg

然后我们得到 RBM 能量的以下表达式:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file442.jpg

其中,对于 i = 1, …, N 和 j = N + 1, …, N + M

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file443.jpg

并且 (s[i])[i=1,…,N] 是对应可见节点的自旋变量,而 (s[j])[j=N+1,…,N+M] 是对应隐藏节点的自旋变量。

我们可以忽略 RBM 能量表达式中的常数项 (5.4.2),因为相同的因子将在 ℙ(v*,*h) 的分子和分母中出现。因此,我们得到:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file444.jpg

为了使用量子力学描述自旋来表达伊辛哈密顿量,我们用相应的保利算符替换自旋变量:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file445.jpg

其中 σ[z]^i 是表示伊辛量子自旋的常用保利矩阵。初始哈密顿量为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file446.jpg

随时间变化的哈密顿量 (5.4) 形式为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file447.jpg
5.4.3 硬件嵌入和参数优化

在现有量子退火器的标准编程实践中,每个自旋变量 s[i] 理想情况下应分配给一个特定的芯片元素,即超导量子通量比特,模型为量子二能级系统,可以表示量子哈密顿量。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file448.jpg

虽然每个量子比特支持 g[i] 项的编程,但 J[ij] 参数可以通过电感元件以能量方式实现,这些元件旨在表示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file449.jpg

仅当量子比特 ij 之间存在所需的电路时才能实现,否则它们在处理器的空间布局中不能制造得太远,以避免工程上的问题 [296]。换句话说,除非 (i,j) ∈ G,否则 J[ij] = 0,其中 G 是特定的量子退火图(例如,在 D-Wave 量子退火器的情况下,ChimeraPegasus 图)。

如果所有物理量子比特都已互相连接,则将最终的哈密顿量 (5.4.2) 嵌入到量子芯片上是很简单的。遗憾的是,实际情况并非如此。现有的量子退火器的量子比特连接性非常有限。例如,在 Chimera (Pegasus) 图中,一个物理量子比特最多与六个(十五个)其他物理量子比特连接。

为了绕过这一限制,标准的做法是采用次要嵌入编译技术来处理完全连接的图。通过这一过程,我们得到另一个伊辛模型形式,其中量子比特按顺序排列成 1D 链(形成代表自旋变量的逻辑量子比特),并交错于量子退火器图上:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file450.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file451.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file452.jpg

在 (5.4.3)中,我们显式地分离出逻辑量子变量的编码:经典二进制变量s[i]与N[c]个伊辛自旋σ[z]^(ic)相关联,通过耦合强度J[F] 直接发生铁磁耦合,形成一个有序的 1D 链子图G。如果在计算基下测量,每个自旋的磁化强度值应足够强,以便能够相关联(⟨σ[z]^(ic)⟩ = ⟨σ[z]^(i(c+1))⟩)。

在 (5.4.3)和 (5.4.3)中,我们通过扩展的变量集对伊辛哈密顿量 (5.4.2)进行编码:局部场g[i]均匀分布在属于逻辑链i的所有量子比特上,每个耦合器J[ij]仅在一对特定的量子比特之间激活(σ[z](ic[i]⋆)[z](jc[j]⋆)),该对量子比特由邻接检查函数δ[ij]^G(c[i],c[j])指定,只有当(c[i] = c[i]^⋆)且(c[j] = c[j]^⋆)时,函数值为 1,否则为 0。

在这个特定的嵌入方案下,我们可以将注意力集中在实验性地寻找参数β的最优值上(见 5.4.2),这一点只能通过实验来完成。由于最终的哈密顿量是在量子退火器上使用无量纲系数编程的,因此参数β不能用常规形式 1∕kT 来表示,其中k是玻尔兹曼常数,T是有效温度。相反,它应该被视为一个经验参数,依赖于网络架构、嵌入方案以及量子退火器的物理特性(例如工作温度、退火时间、超导流量量子比特系统的能量尺度等)。

估算β的实验方法包括以下五个步骤 [4]:

  1. 构建一个 RBM。

  2. 将 RBM 映射到假设特定β值的最终哈密顿量(算法 4-第 1 步)。

  3. 运行量子退火(算法 4-第 2 步)。

  4. 使用量子样本计算模型期望值(算法 4-第 3 步)。

  5. 将结果期望值与“正确”的基准值进行比较(例如,使用经典 CD 算法获得的值)。

这个过程会针对不同的β值进行重复。然后,可以使用给定 RBM 架构的最佳拟合的β值。如在[4]中所述,即使对于β的最优设置,模型期望值的估计仍然会有一定误差。然而,与对比散度算法中玻尔兹曼采样相关的噪声相比,这可能足以估计 5.3.2 中的梯度,5.3.2 中的梯度,以及 5.3.2 中的梯度。

5.4.4 生成模型

到目前为止,我们考虑的玻尔兹曼采样的主要应用是在提供无偏估计模型期望值上,正如算法 4 中所指定的那样。一旦通过量子退火完成充分训练,RBM 就可以以传统的经典方式,用于从已学习的概率分布中生成新的合成样本。在这种情况下,量子退火仅作为混合量子-经典训练协议中的一个子程序使用。

然而,完全可以将量子退火器本身作为生成器使用。量子退火器不仅仅协助训练经典的 RBM,它还可以根据最终哈密顿量(5.4.2)编码的分布输出连续样本的二进制表示。量子变分自编码器[162]是另一个 QBM 的例子,它可以通过最大化明确定义的代价函数来端到端地训练:量子变分下界近似对数似然。

玻尔兹曼采样是 RBM 训练和新样本生成的关键元素。通过用量子采样替代经典的玻尔兹曼采样,量子退火可以提供数量级的加速。

5.5 深度玻尔兹曼机

深度玻尔兹曼机(DBM)可以由多个 RBM 构成,其中第一个 RBM 的隐藏层成为第二个 RBM 的可见层,依此类推,如图 5.4 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file453.jpg

图 5.4:DBM 的示意图。

DBM 可以逐层训练,每次训练一个 RBM。这将生成一个强大的生成模型,能够学习复杂的多变量分布和依赖结构。然而,DBM 的生成训练可以作为构建判别模型的第一步,如果训练数据集的样本有标签。在这种情况下,所有通过 CD 或量子玻尔兹曼采样算法获得的 DBM 权重和偏置,都会被视为相应前馈神经网络权重和偏置的初始值。判别模型将包括原始 DBM 的所有层,并增加一个额外的输出层,用于分类标签的分配。通过标准的误差反向传播算法,可以对判别模型进行微调。

5.5.1 使用量子退火训练 DBM

DBM 的生成训练可以看作是判别模型的预训练。图 5.5 提供了混合量子-经典训练过程的示意图。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file454.jpg

图 5.5:DBM 的生成训练与判别训练。

在图 5.5 所示的 DBM 训练方案中,只有步骤 1 依赖于量子退火。步骤 2 和步骤 3 完全是经典的。步骤 3 是可选的:没有它,我们就拥有一个标准的机器学习“管道”,其中一个或多个 RBM(步骤 1)通过构建数据集样本的低维表示来执行“特征提取”,从而帮助判别模型(步骤 2)实现更好的分类结果。

5.5.2 一个 DBM 管道示例

管道方法可以使用 UCI 机器学习库中的流行数据集“国王+车 vs. 国王+兵”来说明[262, 263]。任务是分类残局,其中黑色兵即将升变,而白方(国王+车)即将走子。可能的结果是“白方可以赢”(类 1)和“白方不能赢”(类 0)。棋盘由 36 个类别属性描述,可以编码为 38 个二进制变量。数据集包含 3196 个样本(在数据集的所有案例中,白方可以赢 52%)。

scikit-learn包提供了构建 DBM 管道经典部分所需的所有组件。可以借助sklearn.pipeline.make_pipeline构建管道本身。DBM 是由两个 RBM 构建的,这些 RBM 是通过sklearn.neural_network.BernoulliRBM实现的。RBM #1 在可见层有 38 个节点,在隐藏层有 30 个节点;RBM #2 在可见层有 30 个节点,在隐藏层有 20 个节点。确切的管道配置如下(所有其他参数设置为默认值):

RBM #1 RBM #2 MLP 分类器
n_components = 30 n_components = 20 hidden_layer_sizes = (20)
learning_rate = 0.00025 learning_rate = 0.00025 activation = ‘tanh’
batch_size = 10 batch_size = 10 solver = ‘adam’
n_iter = 100000 n_iter = 100000 alpha = 0.1
max_iter = 5000

表 5.1:用于“国王+车 vs. 国王+兵”分类问题的 DBM 管道配置。

因此,两个 RBM 都被训练为自编码器:DBM 将每个 38 特征的样本转换为其 20 特征的低维表示。这些新的“提取”特征,理想情况下,应该比原始特征具有更高的预测能力,前提是两个 RBM 都学到了数据集的主要特征和依赖结构,并剔除了噪声或不太重要的特征。判别器是sklearn.neural_network.MLPClassifier,其单一隐藏层中有 20 个 tanh 激活单元。

在这个设置下,DBM 在以下的样本外分类结果(数据集按 70:30 比例分为训练集和测试集,使用sklearn.model_selection.train_test_split)中取得了以下成绩:

  • 分类准确率:95.2%

这与例如集成学习分类器如随机森林(sklearn.ensemble.RandomForestClassifier)相比具有优势。设置 1000 个估计器和最大深度为 5 的随机森林分类器在样本外分类结果上取得了以下成绩:

  • 分类准确率:94.9%

DBM 的架构使其可以作为生成模型或判别模型进行训练。在这两种情况下,玻尔兹曼采样都可以在提高其性能方面发挥重要作用。

摘要

在本章中,我们学习了基于能量的模型——一种强大的生成模型的特殊类型。我们学习了如何构建、训练和运行 RBM,以生成与原始训练数据集统计上无法区分的合成样本。

我们熟悉了玻尔兹曼采样和对比散度算法。玻尔兹曼采样可以在 NISQ 时代的量子退火机上高效执行,这可能提高模型的质量,并在生成新样本时实现数量级的加速。

我们学习了如何将单个 RBM 结合起来构建 DBM。量子退火可以有效地应用于 DBM 的预训练,然后将其微调为深度前馈神经网络分类器。

最后,我们探索了使用 RBM 和 DBM 作为机器学习管道中第一个模型进行去噪和特征提取的可能性。

在下一章中,我们将转向门模型量子计算。我们将从经典二进制数字(bit)和经典逻辑门的概念开始,然后介绍它们的量子对应物:量子二进制数字(qubit)和单量子比特/多量子比特量子逻辑门及量子电路。

加入我们书籍的 Discord 空间

加入我们的 Discord 社区,结识志同道合的人,并与超过 2000 名成员一起学习: packt.link/quantum

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file1.png

第二部分:门模型量子计算

第六章:量子比特和量子逻辑门

计算可以广义地定义为一种将一个记忆状态转换为另一个记忆状态的过程。换句话说,计算是一个将信息转换的函数[281]。在经典数字计算的情况下,基本的记忆单元是二进制数字(比特)信息。对比特信息执行操作的函数被称为逻辑门。逻辑门是布尔函数,它们可以组合成电路,执行加法、乘法以及更复杂的操作。在逻辑门中,输出比特的数量不必与输入比特的数量相同。

计算可能看起来是一个抽象的数学概念,但它总是需要某种物理系统来执行。这个物理系统是什么并不重要:台球、电子开关、晶体管或任何其他物体——计算是与底层物质无关的。然而,始终是某种物理过程以受控的方式改变系统的状态。

经典数字计算要求物理实现两个不同的确定性状态(通常表示为 0 和 1),并且需要一组执行受控转换的逻辑门。在接下来的章节中,我们将看到经典数字计算如何实现,所需的基础操作集是什么,以及如何将经典计算的逻辑扩展到更一般的量子计算逻辑,而经典计算仅是量子计算的一个特例。

6.1 二进制数字(比特)与逻辑门

本节中,我们将快速回顾经典逻辑门及其普适性,以便稍后与量子门进行对比。

6.1.1 逻辑门

逻辑门是布尔函数的实现,它是在一个或多个二进制输入上执行的逻辑操作,产生一个单一的二进制输出。逻辑门通过其真值表表示。真值表为每个输入变量提供一列,并且有一列最终显示该表表示的逻辑操作的所有可能结果。真值表的每一行包含输入变量的一个可能配置(一个比特或比特串),以及对于这些值的操作结果。

图表 6.1、6.2、6.3 和 6.4 是与门、或门、与非门(非与门)和异或门(排他或门)逻辑门的示意电路图及其对应的真值表。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file455.jpg

图 6.1: 与门电路图和真值表。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file456.jpg

图 6.2: 或门电路图和真值表。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file457.jpg

图 6.3: 与非门电路图和真值表。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file458.jpg

图 6.4:XOR 门的图示和真值表。

6.1.2 NAND 作为通用逻辑门

逻辑门可以组合成电路,其中一个门的输出作为另一个门的输入。这使得我们能够 i) 实现比基本布尔函数更复杂的运算符,ii) 仅使用少量易于构建的逻辑门来实现所有必要的布尔函数。例如,所有布尔函数都可以仅使用 NAND 门和扇出操作来构建。这使得 NAND 成为经典计算中的 通用 门。图 6.5 通过展示将四个基本逻辑门(NOT、AND、OR、XOR)分解为仅由 NAND 门组成的电路来说明这一点。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file459.jpg

图 6.5:逻辑门分解为 NAND 门和扇出操作的示例。

6.1.3 利用 NAND 门构建加法运算符

图 6.6 展示了如何将 NAND 门和 XOR 门结合成一个实现基本加法运算符的电路。正如我们所知道的,XOR 门本身可以通过组合 NAND 门来构建。加法运算符接受三个 1 位二进制数作为输入,并输出两个 1 位二进制数,这可以作为一个 2 位二进制数(2-bit bitstring)进行读取。这个 2 位二进制数可以转换为它的整数表示——一个介于 0 到 3 之间的整数,如真值表(表 6.1)所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file460.jpg

图 6.6:加法运算符:输入是三个 1 位二进制数,输出是一个 2 位二进制数。

输入 1 输入 2 输入 3 输出 1 输出 2 二进制 整数
0 0 0 0 0 00 0
0 0 1 0 1 01 1
0 1 0 0 1 01 1
1 0 0 0 1 01 1
0 1 1 1 0 10 2
1 0 1 1 0 10 2
1 1 0 1 0 10 2
1 1 1 1 1 11 3

表 6.1:加法运算符真值表。

计算是将一种内存状态转换为另一种内存状态的过程。执行这种转换的函数被称为逻辑门。逻辑门由它们的真值表完全定义。一个通用逻辑门是指从它可以构建所有其他布尔函数的逻辑门。我们只需要找到一个通用门的高效物理实现,就可以执行任意复杂度的计算。

6.2 经典比特和逻辑门的物理实现

到目前为止,我们已经从计算机科学理论的角度定义了比特和经典逻辑门。接下来,我们将概述实现这些操作的最有效硬件技术。

6.2.1 NAND 门的实现

NAND 门(与扇出操作符一起)是经典数字计算中的通用门。因此,只需找到 NAND 布尔函数的一个实用物理实现,就足以构建一个通用计算机。图 6.7 展示了使用不同技术(从电气开关到半导体)实现 NAND 门的几种可能方式。

继电器逻辑: 开关被解释为位,0 = 开,1 = 闭。当 A 和 B 开关都闭合时,电磁铁会打开 C 开关。如果 A 和 B 中的任意一个或两个开关都为开,则电路断开,电磁铁无法打开 C 开关。

电阻-晶体管(RT)逻辑: 电压被解释为位,0 = 0 伏,1 = 3 伏。当 A 和 B 两根导线都为+3 伏时,两个晶体管导通,C 线降至零伏。如果 A 和 B 的输入之一或两者都为零伏,则相应的晶体管不导通,输出 C 保持在+3 伏。

互补金属氧化物半导体(CMOS)逻辑: 与 RT 逻辑类似,电压被解释为位,0 = 0 伏,1 = 3 伏。当输入为 1(+3 伏)时,PMOS 晶体管导通;当输入为 0(零伏)时,PMOS 晶体管关闭。NMOS 与 PMOS 的逻辑相反。PMOS 电路位于电压源与输出之间,NMOS 电路位于输出与地之间。

如果 A 和 B 输入都为高电平,则两个 NMOS 晶体管都会导通,两个 PMOS 晶体管都不会导通,输出端 C 与地之间将形成导电通路,从而使输出变为低电平。如果 A 和 B 输入都为低电平,则两个 NMOS 晶体管都不会导通,而两个 PMOS 晶体管都会导通,输出端与电压源之间将形成导电通路,使输出变为高电平。如果 A 或 B 输入之一为低电平,则一个 NMOS 晶体管不会导通,一个 PMOS 晶体管会导通,输出端与电压源之间将形成导电通路,使输出变为高电平。因此,该电路实现了 NAND 门,因为只有在两个输入都为高电平时,输出才会为低电平。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file461.jpg

图 6.7:NAND 门的物理实现。

6.2.2 RAM 存储单元的实现

随机存取存储器(RAM)用于存储 CPU 当前使用的指令和数据。它被称为易失性存储器,因为当计算机关闭时,它的内容会被清除。RAM 可能由数十亿个基本的存储单元组成,每个存储单元能够存储一个位的信息。

现在我们知道如何构建一个通用逻辑门,我们可以尝试设计一个电路,来实现我们需要构建 RAM 的基本存储单元。例如,图 6.8 展示了如何利用四个 NAND 逻辑门构建存储单元。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file462.jpg

图 6.8:通过 NAND 门构建基本存储单元。

D E Q Q
0 1 0 1
1 1 1 0
0 0 Q Q
1 0 Q Q

表 6.2:存储单元真值表。

图 6.8 中的电路有两个输入端口,D(数据)和 E(使能),以及两个输出端口,Q 和 Q(非 Q)。存储单元电路的真值表(表 6.2)解释了它的工作原理:

  • 当使能输入 E 设为 1 时,输出 Q 可以设置为数据输入 D。

  • 当使能输入 E 设为 0 时,输出 Q 无法改变——它会保持原值。

这些是使电路能够作为存储单元的关键特性。

计算是平台无关的。任何可以存在于两个离散、稳定状态之间,并且能够在它们之间进行受控转变的物理系统,都可以用来实现门模型的数字计算。同时,有些实现方式比其他方式更高效(更快、更便宜、更可靠)。

这些经典逻辑门提供了一个自然的框架,用于理解它们的量子化形式,接下来我们将对其进行探讨。

6.3 量子二进制数字(量子比特)和量子逻辑门

量子比特和量子逻辑门是量子计算中对应于经典比特和逻辑门的概念。虽然它们共享一些共同特征,但量子特性带来了许多具体的性质,这正是本节讨论的内容。

6.3.1 根据量子力学定律进行计算

经典逻辑门作用于比特,执行布尔函数,构成了数字经典计算的基础。正如我们所见,经典比特的物理实现有很多种方式——一个具有两个不同、稳定状态并且能够在它们之间进行受控转变的系统。从量子力学的角度看,我们能如何描述这样的系统呢?

正如我们从第一章所知,任何这样的系统可能存在于状态的叠加态中,且量子比特的状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file463.jpg 可以通过以下表达式来描述:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file464.jpg

其中αβ是满足条件的复数

| https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file465.jpg | |
| — | — | — | — | — | — |

系数 αβ概率振幅。任何对状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file466.jpg测量 都会以概率 |α|² 得到 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file467.jpg,以概率 |β|² 得到 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file468.jpg。测量过程将量子系统与环境耦合,导致叠加态坍缩。测量后,系统处于已测量状态,之后对相同基的进一步测量将始终得到相同的结果。

由于量子比特状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file469.jpg 由两个满足 (6.3.1) 的复概率振幅描述,我们可以说量子比特的状态是二维复向量空间中的单位向量。换句话说,状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file470.jpg 可以写作向量

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file471.jpg

这意味着基态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file472.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file473.jpg 被表示为标准正交基向量

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file474.jpg

标准正交基 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file475.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file476.jpg 并不是唯一可选的基向量。来自复二维向量空间的任何一对 线性无关 单位向量 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file477.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file478.jpg 都可以作为基:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file479.jpg

例如,我们可以使用由 {https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file480.jpg,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file481.jpg} 定义的 Hadamard 基

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file482.jpg

基是由测量过程或量子计算机的物理实现决定的 [80]。

明确选择基底非常重要。例如,向量

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file483.jpg

在标准正交基(计算基)下测量时,结果 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file484.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file485.jpg 以相同的概率 12 得出。在 Hadamard 基下测量时,结果是 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file486.jpg,其概率为 1\。

两量子比特系统的状态可以由四维复向量空间中的单位向量表示。在这种情况下,标准正交基由四个正交单位向量组成

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file487.jpg

系统状态由四个概率振幅来描述:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file488.jpg

其中 α,β,γ,δ ∈ℂ,且 |α|² + |β|² + |γ|² + |δ|² = 1。两个量子比特状态的基向量 (6.3.1) 是单个量子比特基向量的 张量积

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file489.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file490.jpg

通常,n 量子比特系统可以存在于 2^n 个基态的任意叠加中,并且需要 2^n 个概率振幅来完全指定。

计算是记忆状态的转换。量子比特状态通过应用量子逻辑门进行转换。量子逻辑门是单位线性算符,由单位矩阵表示。量子逻辑门作用于特定量子状态的方式是将表示该门的单位矩阵与表示该状态的向量相乘。结果是新的量子状态。

6.3.2 量子比特

将量子比特的状态可视化为单位球上的一个点是很方便的,这个球体被命名为 Bloch 球,得名于物理学家费利克斯·布洛赫。Bloch 球上的每一个点都可以通过两个角度 𝜃 ∈ [0*,π*] 和 ϕ ∈ [0*,2π*] 来唯一指定,如图 6.3.2 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file492.jpg

图 6.9:Bloch 球上的量子态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file491.jpg

通过映射

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file493.jpg

我们得到量子比特状态的标准表示:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file494.jpg

量子比特状态的转换可以通过从 Bloch 球上的一个点转移到另一个点来可视化。因此,执行此转换的单位矩阵(量子逻辑门)可以看作是一个旋转算符,我们可以将 旋转 视为门操作的同义词,将 旋转角度 视为门的参数。

6.3.3 单量子比特量子逻辑门

与经典计算不同,经典计算中我们只能定义在单个位上操作的两个逻辑门(恒等门和非门),而量子计算中有无限多种单量子比特逻辑门:任何单位 2 × 2 矩阵(旋转)都是一个量子逻辑门。某些逻辑门比其他门更为重要(或更容易实现)。下面我们将详细描述其中一些,首先是恒等门 I 和保利矩阵 X、Y 和 Z。I 门的作用显而易见——它保持量子比特的状态不变;保利矩阵分别绕xyz轴进行π弧度的旋转:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file495.jpg

我们可以通过简单的代数运算轻松验证 X 门翻转位的功能,以及 Z 门翻转相位的功能:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file496.jpg

这些操作可以通过以下量子门的图形表示来进行可视化:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file497.jpg

图 6.10:X 和 Z 门的图形表示。

这里,水平线表示量子寄存器,而框表示量子门。量子寄存器和量子门一起构成了量子电路的图形表示——量子电路是一系列量子门,通过它们转换量子状态,从而实现量子计算。量子电路的读取顺序是从左到右:量子电路的左端展示了初始量子状态,右端展示了最终状态。通常,量子寄存器上的最后一个操作符是测量操作符。测量后(在计算基中),量子比特被转化为经典比特,其值是一个已知的二进制数。

由于 X 门会翻转量子比特的状态,它也被称为非门。同样,翻转量子比特状态相位的 Z 门被称为相位门

我们可以将经典计算中的非门与量子计算中的非门进行直接类比,但也有些量子门执行的是经典计算中不存在的操作。一个例子是https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file498.jpg门(由第 1.2.1 节中引入的矩阵 M 表示)。在经典计算中,我们没有一个函数,应用两次后能反转位的状态。但在量子计算中,这样的函数是存在的:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file499.jpg

我们知道,量子计算的主要动力之一来自于量子比特(qubit)能够处于基态叠加态的能力。但是,我们如何将一个初始化为 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file500.jpg(或 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file501.jpg)的量子比特放入状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file502.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file503.jpg 的叠加态中呢?答案是哈达玛门(Hadamard gate),H,它在作用于状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file506.jpg 或状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file507.jpg 时,会创建一个等概率的叠加态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file504.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file505.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file508.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file509.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file510.jpg

图 6.11:哈达玛 H 门的图形表示。

有趣的是,哈达玛 H 门是它自己的逆门,因此第二次应用哈达玛门会逆转第一次的操作(从数学上讲,H² = I,或 H = H^(-1)):

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file511.jpg

图 6.12:哈达玛 H 门的两次应用。

其他一些有用的单量子比特门是 相位移 门,其中相位变化为 π∕2π∕4,而不是 Z(相位)门中的 π

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file512.jpg

最后,需要提到的是 可调 的单量子比特门,它们通过任意角度 𝜃 将量子比特状态绕特定轴旋转。对于任何给定的门 G,定义为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file513.jpg

使用第一章中的引理,我们可以立即计算出 R[X]、R[Y] 和 R[Z]:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file514.jpg

可调门在参数化量子电路(PQC)中起着非常重要的作用,我们将在本书接下来的章节中讨论这一点。

6.3.4 两量子比特量子逻辑门

类似于由单位 2 × 2 矩阵指定的单量子比特门,我们可以构造任意数量的多量子比特门。n 量子比特门将由 2^n × 2^n 的单位矩阵表示。由于多量子比特门可以同时作用于多个量子比特,它们可以用来 纠缠 量子比特——即让它们的状态相互依赖。我们还可以创建条件运算符,其中只有当控制量子比特处于状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file515.jpg 时,才会对目标量子比特应用操作。这种门被称为 受控 门,以下我们将讨论一些受控门。

受控门在量子电路中通常通过一条直线连接两个量子寄存器来表示。一个量子寄存器表示控制量子比特,并通过连接量子寄存器的线的末端处的点来表示。另一个量子寄存器表示目标量子比特:所需的条件算符作用于这个寄存器。图 6.13 通过展示一个受控 Y (CY) 门来说明这一点。在这里,q[1] 是表示控制量子比特的量子寄存器,q[2] 是表示目标量子比特的量子寄存器,施加于目标量子比特的算符是 Y。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file516.jpg

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file517.jpg

图 6.13:CY 门。

受控非门,通常表示为 CNOT 或 CX,是另一个两量子比特受控门的例子。它的作用是当控制量子比特处于状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file518.jpg 时,应用保利 X 门到目标量子比特,其单位矩阵为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file519.jpg

该门在量子电路中通常通过在目标量子比特寄存器上放置一个 XOR 逻辑符号(圈中的加号)来表示,因为它的真值表(针对目标量子比特)与 XOR 逻辑门的真值表一致。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file520.jpg

图 6.14:CX (CNOT) 门。

q[1] q[2] q′[1] q′[2]
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0

表 6.3:CX (CNOT) 门的真值表。

换个角度看,注意到实际上我们有以下等式

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file521.jpg

对于任意 q[1],q[2] ∈{0*,*1},其中 ⊕ 表示模 2 加法。

CZ 门是对目标量子比特应用的保利 Z (相位翻转) 操作,前提是控制量子比特处于状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file522.jpg,其单位矩阵为:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file523.jpg

有趣的是,对于 CZ 门,实际上目标量子比特和控制量子比特的顺序并不重要——结果是一样的:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file524.jpg

图 6.15:CZ (CPHASE) 门。

SWAP 门交换两个量子比特的状态。https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file525.jpg 门是一个通用门,因为任何多量子比特门都可以仅由 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file526.jpg 门和单量子比特门构造而成。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file527.jpg

很多时候,从一组通用门中选择所有其他门可以构建的门集,是由用于执行量子计算的物理系统的特性决定的。https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file528.jpg是利用交换相互作用的系统中的本地门[221]。相关的门如 iSWAP 和https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file529.jpg是具有类似伊辛相互作用的系统中的自然门[244]:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file530.jpg

一个可调节的双量子比特门的例子是 XY 门,它是通过某个角度𝜃https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file531.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file532.jpg态之间的旋转:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file533.jpg

请注意,XY(π) = iSWAP,XY(π∕2) = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file534.jpg。与 CZ 门一起,iSWAP 门在量子电路的构建中起着重要作用,因为任何双量子比特门都可以用最多三个 CZ 门或三个 iSWAP 门表示[2]。

6.3.5 Toffoli 门

经典的 Toffoli 门由 Tommaso Toffoli 发明[284],是一个三位逻辑门,在经典计算中是通用的。在量子计算中,它是一个三量子比特的受控受控非门(CCNOT),由以下量子电路表示,其中量子比特 C 是目标量子比特,量子比特 A 和 B 是控制量子比特:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file535.jpg

图 6.16: Toffoli (CCNOT) 门。

经典的 Toffoli 门由以下真值表给出:

A B C A′ B′ C′
0 0 0 0 0 0
1 0 0 1 0 0
0 1 0 0 1 0
1 1 0 1 1 1
0 0 1 0 0 1
1 0 1 1 0 1
0 1 1 0 1 1
1 1 1 1 1 0

表 6.4: Toffoli 门的真值表。

量子 Toffoli 门由单位矩阵表示:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file536.jpg

从 Toffoli 门的真值表可以看出,它也实现了 AND 门和 NAND 门。当 C = 0 时,它可以视为 AND 门:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file537.jpg

当 C = 1 时,它可以视为 NAND 门:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file538.jpg

Toffoli 门可以分解为由 CNOT 和单量子比特门组成的量子电路:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file539.jpg

图 6.17:Toffoli(CCNOT)门的分解。门符号后面的“†”上标,如 T^†,表示伴随算子(参见第 1.1.1 节)。

Toffoli 电路能够实现 NAND 门,而 NAND 门在经典计算中是通用的,这证明了量子计算可以执行所有经典计算机可以执行的操作。换句话说,量子计算机可以模拟经典计算机。同时,我们也见过一些量子操作,它们在经典计算中没有类似的对应操作。在最一般的情况下,模拟一个n量子比特的量子系统需要存储 2^n 的概率振幅——对于n大于几百的情况,这几乎是不可能的任务,因为在可见宇宙中没有足够的物质来实现这样的经典存储器。因此,量子计算比经典计算更加通用。作为一个概念,计算实际上就是量子计算,经典计算只是量子计算的一个特例 [32]。

量子计算提供了比经典计算更广泛的逻辑门。

Toffoli 门证明了量子计算机可以执行所有经典计算机可以实现的操作。同时,尝试在经典计算机上模拟量子计算将立即面临内存问题。

如前所述,量子门对应于酉矩阵,酉矩阵具有可逆的特性。由于量子电路本质上是经典的,并且是这些矩阵的张量积,因此它们可以轻松地被逆转,从而引出了可逆计算的概念,我们将在下一节中重点讨论。

6.4 可逆计算

Toffoli 门的重要性不仅仅在于其通用性。它是一个通用的可逆逻辑门,这意味着它可以作为可逆计算的基础。在这里,我们应注意,所有由酉矩阵表示的量子逻辑门都是可逆的。那么,可逆计算是什么意思呢?

可逆计算是一种计算模型,其中计算过程是时间可逆的。这也意味着在计算过程中没有信息丢失,我们始终可以重建初始状态。由于信息丢失与热量产生之间存在深刻的物理联系,因此物理实现可逆计算具有巨大的重要性。

根据兰道尔提出的原理 [183],为了使一个计算过程在物理上可逆,它也必须是逻辑上可逆的。从根本上讲,这是因为计算行为只能通过某个物理系统执行,并且受到热力学物理法则的制约。

信息的丧失导致信息熵的增加。类似地,热力学熵的增加会导致热量的产生。在这两种情况下,我们都在从更有序的状态转向更无序的状态,这是一个不可逆的过程。

这一点可以通过统计力学和信息理论中熵的定义来说明。统计力学中的熵定义为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file540.jpg

其中 k[B] 是玻尔兹曼常数,p[i] 是来自平衡集(宏观热力学状态)的微观状态 i 的概率,而信息理论中的熵定义为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file541.jpg

其中 p[i] 是从消息空间中获取的消息 i 的概率。

特定微观状态的高概率和特定消息的高概率表示具有低熵的高度有序系统。当微观状态/消息均匀分布时,熵最大化(信息最小化)。

任何概率分布都可以通过某种热力学系统近似得非常精确 [219]。如果 h 是每个粒子的位数信息,那么对于 N 个粒子,在 自然信息单位(1 位 = log(2) 纳特)下测量的熵由以下公式给出

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file542.jpg

在能量单位中,每丢失一位信息会产生 k[B]T log(2) 的热量。这里,T 是热源的温度(以开尔文为单位)。例如,如果我们取 T = 300K(约 27 摄氏度),那么擦除一位信息所需的最小能量是 2.87 zJ(zeptojoule)。

从实际角度来看,这意味着每个 逻辑不可逆 操作(例如 NAND 或 XOR 门)都必须伴随相应的熵增加和热量产生。随着计算过程的能效变得越来越重要,发展可逆计算的努力也在增加,因为如果不使用可逆计算原理,基于经典物理法则的传统技术可能很难在当前能效水平上取得更大进展 [106]。

与经典计算不同,所有量子计算操作都是可逆的(除了测量)。这意味着量子优势不仅可能体现在量子加速和量子电路的表达能力上,还可能体现在实现更高的能效上。

到目前为止,我们已经看到了前向和反向(可逆)量子操作。然而,根本上区分量子计算和经典计算的是纠缠的概念。

6.5 纠缠

量子计算的关键方面是纠缠,它使得量子态能够编码比其单独组成部分之和更多的信息。我们在这里详细解释这一点,并为二量子比特系统提供示例。

6.5.1 量子纠缠及其重要性

一个n量子比特系统可以存在于 2^n 个基态的任意叠加中:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file543.jpg

with

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file544.jpg

如果这样的状态可以表示为单独量子比特态的张量积,则这些量子比特态不是纠缠的。例如,可以很容易地验证

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file545.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file546.jpg
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file547.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file548.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file549.jpg,

以便量子态不是纠缠态(仅为叠加态)。一个纠缠态不能表示为单独量子比特态的张量积。

例如,二量子比特态

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file550.jpg

不允许张量积分解。即,对于任意a,b,c,d ∈ℂ,使得 |a|² + |b|² = |c|² + |d|² = 1,我们有

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file551.jpg

我们注意到,描述(6.5.1)左侧的状态需要 2^n 个概率振幅,而描述右侧的状态只需要 2n个概率振幅。完全描述一个系统状态所需的概率振幅的数量与该系统能够存储的信息量直接相关。纠缠使我们能够编码比单独的独立量子比特更多的信息。可以说,量子机械系统状态中编码的大多数信息是以量子比特状态之间的相关性形式非局部存储的。这种信息的非局部性是量子计算与经典计算的主要区别特征之一,并且对于许多应用至关重要。

如果我们测量纠缠的量子比特,会发生什么?在(6.5.1)中,两个量子比特处于相等的叠加态,即,如果我们测量第一个量子比特,我们将以 1/2 的概率得到 0 和 1。如果我们测量第二个量子比特,我们也会以相等的概率得到 0 和 1。然而,如果我们在第一个量子比特已经被测量之后再测量第二个量子比特,情况则完全不同。在这种情况下,第二个量子比特的状态完全由第一个量子比特的测量行为决定,不再存在任何不确定性:如果第一个量子比特被测量为 0,第二个量子比特也处于状态 0;如果第一个量子比特被测量为 1,第二个量子比特也处于状态 1。换句话说,测量一个量子比特会坍缩叠加态,并立即影响另一个量子比特。

6.5.2 使用双量子比特门纠缠量子比特状态

量子比特状态可以通过双量子比特门来纠缠。由(6.5.1)给出的双量子比特状态被称为四个最大纠缠贝尔态之一。它可以从未纠缠状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file552.jpg 构造出来:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file553.jpg

通过应用由 H 门和 CNOT 门组成的贝尔电路

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file554.jpg

图 6.18:贝尔电路。

在未纠缠的状态上运行该电路,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file555.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file556.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file557.jpg,将生成其他三个贝尔态:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file558.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file559.jpg
https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file560.jpg

其他双量子比特门也可以实现纠缠。根据硬件实现的不同,可能是 SWAP 门、CPHASE 门或其他固定的双量子比特门,或者是可调的双量子比特门,如 XY(𝜃)。

纠缠使我们能够将大部分信息存储在量子比特状态之间的相关性中,而不是存储在单个量子比特的状态中。

纠缠是量子电路表现力的主要来源之一,它支撑着我们寻找量子优势的努力。

我们看到,纠缠是量子计算的一个独特特征。现在我们来看它如何在分析经典逻辑门分解的量子等价物时发挥作用,这些内容在第 6.1 节中进行了研究。

6.6 量子门分解

最广泛使用的 NISQ 计算技术是困陷离子和超导量子比特。在这两种情况下,单量子比特门比双量子比特门快得多(快一个数量级)。此外,单量子比特门的保真度要高得多[46,164]。这意味着我们可以将单量子比特门视为计算上不昂贵的,且不必过于担心它们的数量。同时,我们必须在使用双量子比特门时保持节俭:在两个等效电路中,具有更少双量子比特门的电路通常表现得更好。因此,我们应当意识到任何特定系统的本地双量子比特门——那些可以通过标准硬件控制技术自然实现的门。更复杂的门可以分解为本地门的子电路,但更好的解决方案是指定能够利用本地门并绕过非本地双量子比特门的算法。例如,Rigetti 的 Aspen 系统[275]基于超导量子比特,拥有两个本地双量子比特门 CZ 和 XY——基于这些门而非例如 SWAP 门来构建电路会实现更好的性能。

然而,使一个算法硬件依赖并不总是可行或理想的。而且由于本地门的选择不可避免地有限,因此记住几个基本的分解是有用的。以下关系可以通过直接计算验证,并在量子电路构建中发挥重要作用:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file561.jpg

图 6.19:CZ 门分解为 CX 和 Hadamard 门。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file562.jpg

图 6.20:CX 门分解为 CZ 和 Hadamard 门。

鉴于 NISQ 设备的连接性有限(大多数量子比特的最近邻连接),SWAP 门(交换量子比特的状态)特别有用,并且使用可用的本地门高效实现它非常重要。SWAP 门可以通过一个由三个 CX 门组成的子电路表示:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file563.jpg

图 6.21:SWAP 门分解为三个 CX 门。

考虑到图 6.20 中 CX 和 CZ 门的关系,SWAP 门也可以分解为一个包含三个 CZ 门和一些单量子比特 Hadamard 门的子电路:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file564.jpg

图 6.22:SWAP 门分解为三个 CZ 门和六个 Hadamard 门。

另外,SWAP 门也可以通过三个 iSWAP 门来实现:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file566.jpg

图 6.23:SWAP 门分解为三个 iSWAP 门(iSWAP = XY(π))和三个https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file565.jpg门。

通过直接计算,很容易验证图 6.23 右侧的电路执行以下变换:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file567.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file568.jpg

系数 exphttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file569.jpg是一个全局相位,可以忽略。我们之所以这样做,是因为全局相位是不可观察的:对状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file570.jpg和 exp(iϕ)https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file571.jpg进行测量时,无论ϕ的值为何,结果(即相同的状态和相同的概率)都是相同的。换句话说,仅由全局相位不同的两个状态表示的是相同的物理系统。

最后,我们提到 CNOT 门的 iSWAP 表示。为此,我们需要两个 iSWAP 门和若干一量子比特门,如图 6.24 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file572.jpg

图 6.24:CNOT 门分解为两个 iSWAP 门(iSWAP = XY(π))和多个一量子比特旋转门。

当控制量子比特处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file573.jpg时,CNOT 门将对目标量子比特应用 NOT 门,同时保持控制量子比特的状态不变。这正是当我们将图 6.24 右侧所示电路应用于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file574.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file575.jpg时所观察到的效果:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file576.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file577.jpg

此处,累积的不可观察全局相位为 exphttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file578.jpg

将非原生的两量子比特门分解为由原生的两量子比特门和高保真度的一量子比特门组成的子电路,使我们能够构建硬件无关的量子算法。

模仿经典逻辑门的设置,我们现在研究量子比特和量子逻辑门如何有效(物理上)实现。

6.7 量子比特和量子门的物理实现

现在,量子比特和量子门的理论框架已经确立,理解如何从硬件角度实现这些概念非常重要。

6.7.1 DiVincenzo 标准

构建量子计算硬件的现代方法标志着 2000 年 DiVincenzo 提出的一系列量子计算物理实现要求[87]。这些要求现在被称为“DiVincenzo 标准”,具体如下:

1. 一个可扩展的物理系统,具有良好表征的量子比特。 量子比特的“良好表征”意味着以下内容:

2. 能够将系统的状态初始化为简单的基准 状态,例如全零状态。 这一要求源于在计算开始之前,明确需要将量子寄存器初始化为已知值。另一个动机是,量子错误校正需要持续提供处于低熵状态的量子比特(https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file581.jpg 状态)。持续提供 0 而非仅仅是初始的 0,这一需求是一个非平凡的问题,可能会排除一些潜在有前景的量子比特实现方式。

3. 长时间的相关去相干时间,远远长于门操作时间。 去相干可以被视为量子系统向环境丧失信息的过程。与环境的耦合导致系统与环境之间的纠缠,并且量子信息向周围转移。因此,系统的动力学不再是单一的,计算变得不可逆(尽管整个系统与环境的结合体依然是单一演化的)。这意味着量子计算机表现得像一台经典机器。因此,保持足够长时间的相干性至关重要,以确保这一计算方式的独特量子特性有机会发挥作用。术语“相关的”强调了一个实现量子比特的物理系统可能具有许多不同自由度的去相干时间,但其中许多对系统作为量子比特的功能可能无关紧要。

4. 一组通用的量子门。 在所有物理实现中,只有特定类型的哈密顿量可以被开关。在大多数情况下,我们只能进行两体(两量子比特)相互作用。这对基于多量子比特单元变换的量子计算提出了问题。幸运的是,这些可以始终通过一系列一量子比特和两量子比特门重新表达,而两量子比特门可以只有一种类型,这种类型是某个特定实现的“原生”门(例如 CNOT、CPHASE 或 XY)。

5. 量子比特特定的测量能力。 这是量子计算过程中高效运行的直接要求:计算结果必须能够读取,而这需要能够测量特定的量子比特。

有许多可能的量子计算机实现方式可以满足 DiVincenzo 标准。量子计算机的基本构建模块——量子比特——可以由电子、光子、困缚离子、中性原子、超导电路等构成,以上仅是其中一些可能性。从本质上讲,任何能够在两个不同状态之间存在叠加,并且可以进行受控转变的量子力学系统,都可以作为量子比特的物理实现。这可以是电子的自旋(“上”、“下”)或光子的偏振(“垂直”、“水平”)。在本节中,我们将首先考虑如何通过超导量子比特来满足 DiVincenzo 标准。

6.7.2 超导量子比特

由微小超导电路构成的量子比特是数字量子计算原则可扩展物理实现的有力候选者。在普通导体中,电荷载体是单个电子。电子是自旋-https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file582.jpg 基本粒子(费米子),满足泡利原理:两个费米子不能同时占据相同的状态。在超导电路中,基本的电荷载体是电子对(称为库珀对),它们是玻色子(库珀对的总自旋是整数),可以占据相同的量子能级。这个效应被称为玻色-爱因斯坦凝聚。凝聚态波函数使得设计和测量宏观量子效应成为可能。超导电路的参数可以通过设置组成它们的电学元件的经典值来设计,例如调整电容和电感。

这为我们提供了一个具体的思路,说明如何构建具有所需量子特性的宏观量子比特。首先,我们来看看图 6.25 中示意的量子谐振子(QHO)系统。在解释其物理方面之前,让我们先来看一下它的数学依据。

从经典到量子谐振子

考虑一个简单的谐振子,即一个放置在光滑无摩擦表面上的弹簧,一侧连接着一个不可动的物体,另一侧连接着一个可移动的物体(比如一个重物)。在平衡状态下,静止位置时没有任何运动。在施加某种力量后,比如通过拉动(或推)可移动物体,弹簧开始由于其恢复力F[R]而振荡。胡克定律指出,这个力与伸长量成正比,即

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file583.jpg

x(0) = x[0] ∈ℝ 开始,其中 x(t) 表示弹簧在时间 t 的位置,k 是弹簧常数。牛顿第二定律也指出:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file584.jpg

对于 t ≥ 0,其中 a(t) 表示时间 t 时的加速度,m 是弹簧的质量。由于 a(t) = (t),将两个方程结合,可以得到,对于每个 t ≥ 0,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file585.jpg

x(0) = x[0] 开始,这是简单振子的运动方程。它是一个简单的一维二阶线性常微分方程,可以通过以下方式简单求解:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file586.jpg

其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file587.jpg

分别是振子的自然频率和速度。三角函数操作显示(6.7.2)可以等效地写成:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file588.jpg

其中

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file589.jpg

现在回忆起,势能 𝔙 是当振子被拉伸或压缩时储存的能量,即(考虑 x = 0 作为平衡状态),

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file590.jpg

系统的总能量是动能和势能的和:

𝔈total = 𝔈kinetic + 𝔙(x(t))
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file591.jpgv(t)² + https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file592.jpgx(t)²*.*

使用显式解(6.7.2),并且 ω := https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file593.jpg,我们得到:

𝔈total = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file594.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file595.jpg² + https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file596.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file597.jpgα cos(ωtφ)https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file598.jpg²
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file599.jpgsin(ωtφ)² + https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file600.jpgcos(ωtφ
= https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file601.jpg = https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file602.jpg.

在这个经典情形中,我们看到系统的总能量可以取一系列连续值。量子对应物则截然不同,我们将在下文看到它实际上是量子化的(这就是“量子”理论的由来),正如 1913 年玻尔最初提出的,之后由 1926 年的薛定谔和海森堡详细阐述。现在回顾一下描述系统随时间演化的时间相关的薛定谔方程的通式:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file603.jpg

其中 ℋ 表示系统的哈密顿量。由于后者(表示系统的能量)是动能和势能之和,我们有

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file604.jpg

其中 m 是粒子的质量,ℏ 是普朗克常数,𝔙 是表示环境的势能,p 是动量算符:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file605.jpg

将此哈密顿量代入 (6.7.2) 可得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file606.jpg

由于势能 𝔙 不依赖于时间,通过变量分离,设Ψ(x,t) = ψ(x)u(t),得

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file607.jpg

或者

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file608.jpg

由于两边依赖于不同的变量,它们必须等于一个常数,设为 E,因此我们得到常微分方程

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file609.jpg

以及本征值方程

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file610.jpg

第一个方程立即得到解,且标准化为 u(0) = 1,

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file611.jpg

本征值方程 (6.7.2) 可以通过谱方法求解。例如,可以证明(有关详细信息,请参见 [258,第 3.1 节])该算符 ℋ 在此处具有有限的谱,(本征值,本征函数) 集合为 {(E[n][n])}[n≥0],具体为

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file612.jpg

对于每个 n ≥ 0,x ∈ℝ,其中 H[n] 表示第 n 个物理学家的 Hermite 多项式

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file613.jpg

QHO 的物理表示

QHO 的示意图见图 6.25。在此系统中,能量在电容器 C 中的电能和电感器 L 中的磁能之间振荡。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file614.jpg

图 6.25:量子谐振子(QHO)。

该系统的哈密顿量与描述粒子在一维二次势能中的哈密顿量相同 [177]。上述本征值问题的解(参见 (6.7.2)) 给出了本征态的无限级数 (https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file615.jpg)[n≥0],其对应的本征能量 (E[n])[n≥0] 是等间隔的,如从 (6.7.2) 中所示:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file616.jpg

其中共振频率,ω[r],由汤普森公式给出 [283]。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file617.jpg

我们的首要任务是定义一个仅包含两个能量状态的计算子空间,![

因此,我们需要向系统中加入非谐性(或非线性)。我们要求本征态之间的跃迁频率 ω[01],即 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file620.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file621.jpg 之间的跃迁频率,及 ω[12],即 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file622.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file623.jpg 之间的跃迁频率,要足够不同,以便能够单独寻址。所需的非线性可以通过用约瑟夫森结模块 J 替代电感 L 来引入,如图 6.7.2 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file626.jpg

图 6.26:作为量子非谐振荡器(QAO)实现的量子比特。两个最低能量本征态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file624.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file625.jpg 形成量子比特的计算空间。

约瑟夫森结是将超导电路转变为量子比特的关键元素。约瑟夫森效应(库珀对的量子隧穿)的描述超出了本书的范围,但有兴趣的读者可以通过费曼的《物理学讲义》 [101]进一步学习。

在电路中引入约瑟夫森模块后(约瑟夫森结的电路符号为“X”),势能不再呈现抛物线形状(作为超导相的函数),而是采取余弦型形式,这使得能量谱变得非等距。现在,我们可以将两个最低能量本征态识别为量子比特的计算子空间 [177, 204]。

一个具有两个约瑟夫森结在每个臂上的超导回路对所包围的磁通非常敏感 [119]。接下来,我们将为约瑟夫森结子电路使用更紧凑的符号:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file627.jpg

图 6.27:约瑟夫森结模块子电路。

备注: 也可能通过使用三个最低能量本征态来形成计算子空间:https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file628.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file629.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file630.jpg。在这种情况下,我们将拥有一个物理实现的qutrit,其叠加态矢量,https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file631.jpg,可以表示为三个正交归一基态的线性组合:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file632.jpg

其中,α,β,γ ∈ℂ是概率幅度,满足|α|² + |β|² + |γ|² = 1。Qutrits 增加了单个元素中编码信息的量,启用了减少读取错误的技术[200],并且降低了将三量子比特门分解为基本二量子比特组件的成本[132]。

控制与测量超导量子比特

满足第一个 DiVincenzo 要求(良定义的量子比特)后,我们必须展示如何控制超导量子比特,如何将它们耦合以构建可扩展系统,并且如何进行测量。我们从超导量子比特态的控制和测量开始。

共振器(或馈线)与超导量子比特之间的电容耦合使得微波控制成为可能,从而实现单量子比特旋转以及某些双量子比特门[177]。图 6.28 展示了超导量子比特与微波源耦合的示意图(也称为量子比特驱动)。量子比特通过微波辐射脉冲进行控制。控制参数包括频率、相位和脉冲持续时间。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file633.jpg

图 6.28:量子比特与馈线的电容耦合。

图 6.29 展示了一个量子比特,它与微波共振器(非线性)通过电容耦合,且其频率会受到量子比特状态的影响[254]。这种频率偏移被用于通过色散读出方法读取量子比特状态。当向共振器发送微波脉冲时,反射(或透射)信号的相位传递了量子比特状态的信息。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file634.jpg

图 6.29:特征为带有约瑟夫森结的非线性共振器的量子比特读出电路。

与超导量子比特的纠缠

为了实现多量子比特门(因此也实现纠缠),量子比特必须连接在一起。超导量子比特的连接通过电容耦合实现——可以是直接连接,或者通过耦合器帮助连接,如图 6.30 所示,其中通过线性共振器实现电容耦合[177]。

固定频率超导量子比特通常具有更长的相干时间,并且对磁通噪声的敏感性较低。为这些量子比特开发的两比特门是交叉共振门 CR。在通过线性谐振器耦合的两个固定频率超导量子比特的示意电路图中(图 6.30),当量子比特 1 以量子比特 2 的频率驱动时,就实现了 CR 门。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file635.jpg

图 6.30:通过耦合器(线性谐振器)进行的电容耦合。量子比特 1 和量子比特 2 分别是频率为 ω[1] 和 ω[2] 的固定频率量子比特。

CR(𝜃) 门的单位矩阵表示如下 [240]:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file636.jpg

其中有效旋转角度 𝜃 是量子比特、耦合器和驱动微波脉冲的物理特性的函数。

由于形式的原因 (6.7.2),CR(𝜃) 门也可以表示为 ZX(𝜃) 门。这也告诉我们如何利用交叉共振门结合仅有的单量子比特门生成 CNOT 门(最多带有全局相位 exp(−iπ∕4)):

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file637.jpg

图 6.31:CNOT 门分解为 ZX、R[X] 和 R[Z] 门。

6.7.3 光子量子比特

在撰写本文时,尚不清楚哪种量子比特构建技术将成为行业标准(如果有的话)。我们面临着许多激动人心的实验和技术突破。超导量子比特显然满足 DiVincenzo 标准,但也有许多其他有趣的解决方案,处于不同的开发阶段。

其中一种可能性是将量子比特编码在光子中。单光子几乎不受噪声影响,并且可以轻松操控以实现单量子比特门。量子比特可以通过多个光子的自由度进行编码:时间、路径和偏振。可以使用 双折射波片 实现单量子比特门,而偏振与路径编码之间的转换可以通过 偏振分束器 实现 [225],其中 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file638.jpghttps://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file639.jpg 分别表示光子在上路径或下路径中(见图 6.33)。

正如我们所知,为了纠缠量子比特,我们需要找到适合的物理实现来实现两量子比特门。让我们看看使用光子量子比特实现 CNOT 门的可能性。首先,我们注意到 CNOT 门可以通过 CPHASE 门来表达,而 CPHASE 门可以自然地在光子硬件上实现:

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file640.jpg

图 6.32:CNOT 门分解为 CPHASE 和 H 门。

当控制量子比特处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file641.jpg时,两个 H 门互相抵消,而当其处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file642.jpg时,门的组合则充当一个 NOT 门。

图 6.33 展示了 CNOT 门的可能光子实现的示意图[225]。用于编码目标量子比特的两条路径在一个 50%反射的光束分 splitter(BS)处混合,后者执行 Hadamard 操作。如果不施加相位偏移,第二个光束分 splitter(第二个 Hadamard 门)通过将目标量子比特返回到其初始状态来取消第一个操作。这是经典干涉的一个例子。如果施加了π相位偏移,目标量子比特则被翻转。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file643.jpg

图 6.33:CNOT 门的光子实现。

当控制量子比特处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file644.jpg时,不施加π相位偏移,而当控制量子比特处于状态https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file645.jpg时,则施加该相位偏移。当控制量子比特处于https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file646.jpg路径时,CNOT 门必须实现此相位偏移,否则不需要。

尽管 CNOT 门的提出实现原理上简单,但要找到一种具有足够强光学非线性的材料来实现条件相位偏移仍然是一个困难的实际问题[225]。然而,借助单光子源、单光子探测器和由光束分 splitter 组成的线性光学电路,仍然可以实现 CNOT 门,正如 Knill、Laflamme 和 Milburn 提出的那样[165]。第一个集成光子 CNOT 门用于极化编码量子比特的实验在[74]中得到了展示。

6.7.4 受限离子量子比特

另一种有前景的大规模量子计算机构建方法是基于受限离子技术[68]。离子(失去一个电子的带正电原子)被在电磁场势能中,从而固定了它们在空间中的位置。量子芯片被冷却并放置在真空腔内。离子本身通过激光束被冷却,激光束通过快速的吸收-发射光子过程使其几乎静止(离子发射的光子频率略高于吸收的光子频率,从而失去动能)。

最广泛使用的技术是图 6.34 所示的线性阱。第 i 个量子比特的两种状态可以与相应离子的内部状态对应:基态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file647.jpg[i] 和激发态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file648.jpg[i]。被困离子并不完全静止,而是可以围绕其平衡位置振荡。图 6.34 描述了 N 个离子被限制在一个线性阱中,并与不同的激光束以驻波配置相互作用 [67]。

沿 xyz 轴的运动约束可以通过具有频率 ω[x] ≪ ω[y] 和 ω[z] 的谐波势能来描述。此外,正电荷离子之间的库仑排斥提供了沿 x 轴离子运动的耦合。沿 x 轴的集体运动(激发),如果存在,表现为一种准粒子,称为声子。我们将沿 x 方向移动的 N 个离子的质心(CM)模式的状态表示为 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file649.jpg(无声子)或 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file650.jpg(一个声子)。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file651.jpg

图 6.34:线性离子阱的示意图。

通过以正确的频率施加激光束,可以仅激发单个离子或质心(CM)模式。单个离子的寻址(从而实现一量子比特门)是直接的。让我们看看如何实现所需的多量子比特门,以创建纠缠。

以下协议实现了由 Cirac 和 Zoller 提出的两量子比特门[68]。首先,我们注意到激发态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file652.jpg[i] 不是唯一的,取决于施加到离子 i 上的激光束的偏振。如果我们有两种可能的偏振,分别记为 q = 0 和 q = 1,那么对应的激发态分别记为 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file653.jpg[i] 和 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file654.jpg[i]。计算基为 {https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file655.jpg[i],https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file656.jpg[i]}。该协议如下:

  1. 对第 i 个离子施加偏振 q = 0 的π 激光脉冲以激发该离子。π 激光脉冲的意义是施加一个持续时间为 π∕ω 的激光脉冲,其中 ω 是困束离子系统的特征频率。

  2. 将激光引导到第 j 个离子,并在偏振 q = 1 的情况下开启激光,持续时间为 2π 脉冲。

  3. 将激光引导回第 i 个离子,并在偏振 q = 0 的情况下开启激光,持续时间为 π 脉冲时间。

该过程的效果是仅当两个离子最初都被激发时,才会改变状态的符号,如表 6.5 所示。

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file657.jpg

表 6.5:使用困束离子量子比特的两量子比特门(CPHASE)。

我们注意到,在该过程后,CM 模态的状态恢复到初始状态 https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file658.jpg(没有声子)。该协议实现了 CPHASE 二量子比特门。

基于囚禁离子的量子比特具有比超导量子比特更长的相干时间(量子态存活的时间)和更高的保真度(门操作的准确性)。但另一方面,超导量子比特享有数量级更短的门时间。

类似于经典比特的许多可能物理实现,量子计算技术也有许多竞争者。目前尚无法确定哪种技术将成为最终的赢家,或者是否多种技术会通过各自占据不同的市场领域而共同存在。

现在我们拥有了所有的工具,包括理论工具和物理工具,可以真正开始构建量子电路。在下一节中,我们将讨论量子硬件和量子模拟器,这些工具可以帮助我们实现这一目标。

6.8 量子硬件与模拟器

当前的量子计算技术在量子比特保真度和相干时间方面展现了令人印象深刻的表现:

  • 由超导电路构成的量子比特(相干时间:∼ 10µs) [164]

    单量子比特门 二量子比特门
    门时间: ∼ 10^(−2)µs 门时间: ∼ 10(−2)-10(−1)µs
    保真度: 99.9% 保真度: 99.7%

    表 6.6:超导量子比特。

  • 由囚禁离子构成的量子比特(相干时间:> 10⁷µs) [46]

    单量子比特门 二量子比特门
    门时间: ∼ 1-10µs 门时间: ∼ 10µs
    保真度: 99.9999% 保真度: 99.9%

    表 6.7:囚禁离子量子比特。

更为重要的是,技术进步的步伐依然非常快速。麻省理工学院研究人员最近对超导量子比特进行的实验 [277] 展示了显著降低二量子比特门错误的可能性,使得 CZ 和 iSWAP 门的二量子比特门保真度接近 99.9%。有趣的是,这一二量子比特门保真度的提高是通过引入可调耦合器实现的(图 6.30 示意图展示了通过耦合器实现的二量子比特交互)。为了消除产生错误的量子比特-量子比特交互,耦合器的高能级被用来抵消有问题的交互。如图 6.7.2 所示,通常会忽略这些高能级,尽管它们对系统的贡献不可忽视。更好的耦合器控制和设计是根据需要定制量子比特-量子比特交互的关键。

这是实现错误修正的一个重要步骤:可以通过增加额外的量子比特来提高量子计算的鲁棒性。量子比特的错误可以通过增加冗余来主动解决。然而,为了让硬件冗余具备实用性,需要更高的量子比特保真度。不同的错误修正协议需要不同的保真度阈值,而 99.9%的双量子比特门保真度是一个不错的起点。

然而,我们距离足够容错的量子计算机还有数年之遥。这就是为什么实验量子模拟器是有用的(甚至是必要的)——量子模拟器是根据量子计算逻辑操作的经典计算机。除了内存需求过高外,没有任何障碍阻止经典数字计算机根据量子计算的规律进行操作。一个n量子比特量子系统的状态可以作为 2^n 个概率幅度存储在经典内存中。这使得大多数经典计算机无法在超过 35-40 个量子比特上执行量子计算操作。但在最多 25-30 个量子寄存器上运行量子计算程序是完全可行的。

尽管量子模拟器只能在相对较少的量子比特上运行,但它们是理想的量子计算机,不会受到任何类型的量子硬件缺陷的影响。这使得它们在测试量子算法的原理和小规模版本时具有不可或缺的价值。它们可以用于概念验证,并帮助在实际量子硬件仍然噪声较大且不易获取的情况下开发新思想。

有许多开源量子模拟器(甚至是专门的量子计算编程语言)。在本书中,我们使用Qiskit  [238]研究各种量子算法的性能——这是一个开源的 Python 包,以直观且用户友好的方式实现量子计算的逻辑。Qiskit 的流行还归功于一本编写精良且富有教育意义的教科书,里面有许多深思熟虑的示例,使学习量子计算原理变得十分愉快。Qiskit包和教科书可在以下网站获得:

https://qiskit.org/

https://qiskit.org/textbook/preface.html

量子编程领域正在快速发展,多个编程语言或软件开发工具包现在正在竞争。量子指令集,如QuilcQASMOpenQASMBlackbird,使我们能够将高级算法转换为在量子计算机上运行的物理指令。它们被用于量子软件开发工具包(QSDKs)中,表示量子电路。在本文写作时,最重要的 QSDK 包括:

  • Ocean(D-Wave)

  • Forest(Rigetti)

  • Qiskit(IBM)

  • Cirq(Google)

  • Quantum Development Kit(Microsoft)

  • Braket SDK(Amazon)

  • ProjectQ(苏黎世联邦理工学院)

  • Strawberry Fields(Xanadu)

与这些 QSDK 并行,量子编程语言也已开发出来,包括命令式类型(逐步指令)如QCLQMASMSilq,以及函数式类型如QML量子λ演算QFCQPLQ

我们观察到,量子计算硬件在过去几年里发展速度异常迅猛,取得了多个技术突破。此外,量子软件开发方面的进展有助于放宽构建容错量子计算机所需的物理量子比特的要求。

总结

在本章中,我们介绍并对比了经典计算和量子计算的基本元素。我们从基本的存储单元(比特)概念开始,并讨论了变换存储状态的功能(逻辑门)。我们还提供了逻辑门和存储单元可能的物理实现示例——这突显了经典计算和量子计算的根本二元性:计算是与底层材料无关的,但它的实际实现需要存在适当的物理系统。

接着,我们介绍了量子比特的概念及其规范的数学表示。借助 Bloch 球的可视化,量子比特可以自然地表示为旋转操作符,从而直观地表现单量子比特量子门。

随后,我们研究了两比特门及其矩阵表示。我们学习了如何将单量子比特门和多量子比特门组合成量子电路——一个好的例子是贝尔电路,它从完全不纠缠的初始态创建了两个量子比特的最大纠缠态。我们还涉及了可逆计算和前沿量子硬件的重要话题。

在下一章,我们将介绍一种特定类型的量子电路——所谓的参数化量子电路,它为应用提供了极大的灵活性。我们还将探讨各种数据编码方案——将经典数据集中的样本映射到相应的量子态。

加入我们书籍的 Discord 空间

加入我们的 Discord 社区,结识志同道合的人,并与超过 2000 名成员一起学习,网址:packt.link/quantum

https://github.com/OpenDocCN/freelearn-quant-zh/raw/master/docs/qml-opti-fin/img/file1.png

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐