我在 TensorFlow Quantum 上的体验
2020 年 11 月 27 日

来自伦斯勒理工学院的 Owen Lockwood 的客座文章

量子力学曾经是一个非常有争议的理论。早期的反对者,如阿尔伯特·爱因斯坦,曾著名的说:“上帝不掷骰子”(指的是量子测量的概率性),对此尼尔斯·玻尔回答说:“爱因斯坦,不要告诉上帝该怎么做”。然而,所有人都同意,引用约翰·惠勒的话说,“如果你对量子力学完全不困惑,你就没有理解它”。随着我们对量子力学的理解不断加深,它不仅导致了许多重要的物理发现,而且还催生了量子计算领域。量子计算是一种不同于经典计算的计算范式。它依赖并利用量子力学的原理来实现对经典计算机的加速(在某些情况下为超多项式加速)。

在这篇文章中,我将讨论我在作为量子机器学习 (QML) 的初级研究人员时遇到的挑战,以及 TensowFlow Quantum (TFQ) 和 Cirq 如何帮助我和其他研究人员探索量子计算和 QML 领域。我之前使用过 TensorFlow,这使得我顺利过渡到使用 TensorFlow Quantum。TFQ 被证明对我的工作至关重要,最终我利用 TFQ 完成的工作最终在我的第一篇关于量子强化学习的 出版物 中达到顶峰,该出版物发表在第 16 届 AIIDE 会议 上。我希望这篇文章能够帮助和激励其他研究人员,无论是新手还是专家,利用 TFQ 来帮助推动 QML 领域的发展。

QML 背景

QML 与传统的机器学习神经网络/深度学习方法具有重要的相似性和差异。这两种方法都可以看作是使用构成更大模型的“堆叠层”变换。在这两种情况下,数据都用于告知模型参数的更新,通常是为了最小化某个损失函数(通常但不总是通过基于梯度的算法)。它们的差异在于 QML 模型可以利用量子力学的强大功能,而深度神经网络则不能。TFQ 提供技术的 QML 的一种重要类型称为变分量子电路 (QVC)。QVC 也称为量子神经网络 (QNN)。

QVC 可以用下图来可视化(来自 TFQ 白皮书)。该图从左到右阅读,用水平线表示量子位。在 QVC 中,有三个重要且不同的部分:编码电路、变分电路和测量算子。编码电路要么接收自然量子数据(即非参数化量子电路),要么将经典数据转换为量子数据。该电路连接到变分电路,该电路由其可学习参数定义。电路的参数化部分是学习过程中更新的部分。QVC 的最后部分是测量算子。为了从 QVC 中提取信息,必须应用某种类型的量子测量(例如泡利 X、Y 或 Z 基测量)。利用从这些测量中提取的信息,可以在经典计算机上计算损失函数(和梯度)并更新参数。这些梯度可以用与传统神经网络相同的优化器进行优化,例如 AdamRMSProp。QVC 可以与传统的神经网络结合使用(如图所示),因为量子电路是可微分的,因此可以通过它反向传播梯度。

TensorFlow image

然而,围绕 QVC 的直观模型和数学框架与传统神经网络有一些重要的区别,而这些区别正是量子加速的潜力所在。量子计算和 QML 可以利用量子现象,例如叠加和纠缠。叠加源于波函数是多个状态的线性组合,并使量子位能够同时表示两个不同的状态(以概率方式)。对这些叠加进行操作的能力,即同时对多个状态进行操作的能力,是量子计算能力的关键。纠缠 是一种复杂的现象,它通过多量子位门诱导。对这些概念以及量子计算有一个基本的理解是 QML 的重要第一步。有很多很棒的资源可供学习,例如 Preskill 的量子计算课程de Wolf 的讲义

目前,对真实量子硬件的访问有限,因此许多量子计算研究人员在量子计算机模拟上进行工作。近期的和目前的量子设备拥有数十到数百个量子比特(量子位),例如 谷歌 Sycamore 处理器。由于其尺寸和噪声,这种硬件通常被称为 噪声中等规模量子 (NISQ) 技术。TFQ 和 Cirq 是为这些近期的 NISQ 设备而构建的。这些设备远小于一些最著名的量子算法在当前纠错技术下实现量子加速所需的规模;例如,Shor 算法 需要数千个量子位,而 量子近似优化算法 (QAOA) 可能至少需要 420 个量子位 才能实现量子优势。然而,NISQ 设备仍然具有实现量子加速的巨大潜力(正如谷歌在 53 个量子位 上所证明的那样)。

我使用 TFQ 的工作

TFQ 于今年(2020 年)3 月中旬发布,我很快就开始使用它。大约在那个时候,我开始了对 QML 的研究,特别是用于 强化学习 (RL) 的 QML。尽管量子电路模拟器的可访问性取得了巨大进步,但 QML 仍然是一个难以进入的领域。不仅从数学和物理角度来看存在困难,而且实现的投入时间也可能相当可观。从头开始编写 QVC 代码并对其进行适当测试和调试(更不用说优化)所需的时间是一个挑战,特别是对于那些来自经典机器学习领域的人来说。花费大量时间构建一个可能无法正常工作的实验,这是一个很大的风险——尤其是对于有截止日期的本科生来说!幸运的是,我不必冒这个风险。随着 TFQ 的发布,我可以立即开始实现我的想法。实际上,如果 TFQ 没有发布,我永远不会做这项工作。受 先前工作 的启发,我们在将 QML 应用于 RL 任务方面进行了扩展。

在我们的工作中,我们证明了在当代 RL 算法(特别是 DQNDDQN)中使用 QVC 来代替神经网络的潜力。我们还展示了使用多种类型 QVC 模型的潜力,使用带有密集层或 量子池化层 (分别表示为混合和纯) 的 QVC 来将量子位的数量缩减到正确的输出空间。

TensorFlow Graph

QVC 的表示能力也得到了展示;使用具有约 50 个参数的 QVC,我们能够实现与具有数量级更多参数的神经网络相当的性能。请参阅图表,以比较在规范的 CartPole 环境(在推车上平衡一根杆子)上获得的奖励,左侧图表包括所有神经网络,右侧图表仅显示最大的神经网络。NN 前面的数字表示参数空间的大小。

我们正在继续研究 QML 应用于 RL,并且有更多的手稿正在投稿。这项工作的延续已被 2020 年 NeurIPS 研讨会“预注册实验:机器学习研究的替代出版模式”接受。

建议使用 TFQ

无论您的背景如何,TFQ 都是任何对 QML 研究感兴趣的人的绝佳工具。在科学界,过于常见的“发表或灭亡”的心态会导致 抑制创新工作,并阻碍智力冒险,尤其是对于需要大量实现工作的实验来说。TFQ 不仅可以帮助加快您可能进行的任何实验,而且还可以轻松实现否则永远不会被测试的想法。实现是新奇有趣想法的常见障碍,由于将想法转变为现实的困难,太多项目从未走出想法阶段,而 TFQ 使其变得容易。

对于初学者来说,TFQ 使人们能够在没有大量编码投入的情况下首次涉足该领域,并能够进行大量的学习。能够尝试和使用 QVC,而无需从头开始构建,是一个不可思议的工具。对于拥有 TensorFlow 经验的经典 ML 研究人员来说,TFQ 使他们能够轻松过渡并在小型或 大型规模 上使用 QML 进行实验。TFQ 的 API 及其提供的模块(例如 Keras 风格的层和微分器)与 TF 共享设计原则,它们的相似性使编程过渡更加容易。对于已经身处 QML 领域的 исследователи,TFQ 当然可以提供帮助。

为了开始使用 TFQ,熟悉量子计算的基础知识非常重要,可以通过上面提到的参考资料或其他许多优秀的资源来学习。另一个经常被忽视的重要步骤是阅读 TFQ 的白皮书。白皮书对 QML 初学者来说易于理解,是 QML 及 TFQ 基础和高级用法的宝贵介绍。同样重要的是要动手实践 TFQ。尝试不同的操作,进行实验;这是扩展对软件、理论和数学理解的好方法。阅读其他当代论文以及引用 TFQ 的论文是沉浸在该领域当前研究的绝佳方式。

下一篇文章
My experience with TensorFlow Quantum

Owen Lockwood (伦斯勒理工学院)撰写的一篇客座文章 量子力学曾经是一个非常有争议的理论。早期反对者如阿尔伯特·爱因斯坦曾对量子力学说过一句名言:“上帝不掷骰子”(指的是量子测量的概率性),对此尼尔斯·玻尔回应道:“爱因斯坦,别告诉上帝该怎么做”。然而,所有人都同意,引用 J…