发布量子机器学习开源库:TensorFlow Quantum
文 / 产品主管 Alan Ho 和技术主管 Masoud Mohseni
Google Research
机器学习(Machine Learning)虽不能准确地模拟自然界中的系统,但却能学习系统的模式并预测系统的行为。在过去几年里,经典机器学习模型在应对高难度科学问题上展现出了强大的潜力,并已在用于癌症检测的图像处理、地震余震预测、极端天气模式预测以及新系外行星检测方面取得进步。“自然界并不像经典物理学描述的那样,真见鬼。要想模拟自然,最好是用量子力学。”
—— 物理学家理查德·费曼(Richard Feynman)
随着量子计算发展的最新进展,新的量子机器学习模型的开发可能会对全球最严峻的问题产生深远影响,从而在医药、材料、传感和通信领域取得突破。然而,我们至今仍缺乏研究工具,来发现有用的量子机器学习模型,即既可以处理量子数据又能在当今可用的量子计算机上执行的模型。
今天,我们宣布与滑铁卢大学、X 和大众汽车联合推出可快速建立量子机器学习模型原型的开源库——TensorFlow Quantum (TFQ)。TFQ 提供了必要的工具,可将量子计算和机器学习研究界聚集在一起,以控制和建模自然或人工量子系统,例如有噪声的中规模量子(Noisy Intermediate Scale Quantum,NISQ)处理器,具有约 50-100 量子位。
TFQ 将开源框架 Cirq 与 TensorFlow 集成在一起,通过提供与当前 TensorFlow API 兼容的量子计算原语 (Primitives) 以及高性能量子电路模拟器,为判别型和生成型量子-经典模型的设计和实现提供高层的抽象。
什么是量子机器学习模型?
量子模型能够用量子力学原点来表示和泛化数据。然而,要理解量子模型,必须明确两个概念:量子数据 和 量子-经典混合模型 (Hybrid Quantum-Classical Model)。
量子数据 具有叠加 (Superposition) 和纠缠 (entanglement) 特性,因此其联合概率分布可能需要指数量级的经典计算资源进行表示或存储。量子数据可以在量子处理器、传感器、网络上生成和模拟,如:化学物质模拟和量子物质模拟、量子控制、量子通信网络、量子计量等。
从技术上来看,很关键的一点是,由 NISQ 处理器生成的量子数据包含噪声,而且通常在测量之前就会发生纠缠。不过,若将量子机器学习应用于嘈杂并且发生纠缠的量子数据,这将能最大限度提取有用的经典信息。受这些技术的启发,TFQ 库提供了开发模型的原语,这些模型可用于解纠缠和泛化量子数据中的相关性,从而为改进现有量子算法或发现新的量子算法提供了机会。
要明确的第二个概念是 量子-经典混合模型。近期的量子处理器仍然很小且十分嘈杂,这使得量子模型无法仅依赖量子处理器,所以 NISQ 处理器需要与经典处理器协同工作才能更高效。TensorFlow 现已支持跨 CPU、GPU 和 TPU 的异构计算,因此可作为进行量子-经典混合算法实验的天然平台。
TFQ 包含指定量子计算所需的基本结构,例如量子比特、门、电路和测量算子。有了基本结构后,就可以在模拟环境或真实的硬件上执行用户指定的量子计算。Cirq 还包含大量机制,可帮助用户为编译器和调度程序等 NISQ 机器设计高效的算法,使得量子-经典混合算法能够在量子电路模拟器上运行,并最终在量子处理器上运行。
我们已将 TensorFlow Quantum 用于量子-经典混合卷积神经网络、量子控制机器学习、量子神经网络逐层学习、量子动力学学习和混合量子态的生成式建模,并学着通过经典循环神经网络学习量子神经网络。我们在 TFQ 白皮书中对这些量子应用进行了回顾,您可以从我们的研究代码库中获取相应代码,并通过 Colab 在浏览器中运行每个示例。
TFQ 的工作原理
研究人员可使用 TFQ 在单个计算图中以张量的形式构建量子数据集、量子模型和经典控制参数。导致经典概率事件的量子测量结果是通过 TensorFlow 算子实现的。您可以使用标准 Keras 函数完成训练。
为了直观地了解如何使用量子数据,我们提供了使用量子神经网络对量子状态进行监督式分类。正如经典机器学习一样,量子机器学习所面临的主要挑战也在于如何对“噪声数据”进行分类。要构建和训练此类模型,研究人员可以执行以下操作:
准备量子数据集 - 以张量(多维数组)形式加载量子数据。将每个量子数据张量指定为 Cirq 中写入的量子电路,以实时生成量子数据。随后 TensorFlow 会在量子计算机上执行张量,以生成量子数据集。 评估量子神经网络模型 - 研究人员可以使用 Cirq 建立量子神经网络的原型,然后将其嵌入到 TensorFlow 计算图中。随后根据对量子数据结构的了解,从几个大类中选择参数化量子模型。此模型用于执行量子处理,以提取隐藏在典型的纠缠态中的信息。换句话说,量子模型实质上是对输入的量子数据进行解纠缠,将隐藏的信息编码在经典的相关性中,从而使它们适用于本地测量和经典后处理。 样本或平均值 - 量子态测量能够以样本形式从经典随机变量中提取经典信息。来自随机变量中的值分布通常取决于量子态自身和测量到的可观察量。许多变分算法都取决于测量值的平均值(也称为期望值),因此 TFQ 针对包括步骤 (1) 和 (2) 在内的多次运行提供了平均值求取方法。 评估经典神经网络模型 - 经典信息一旦被提取,其格式便适用于进一步的经典后处理。提取的信息可能仍会在所测期望值之间的经典相关性中进行编码,因此研究人员可以使用经典深度神经网络提取此类相关性。 评估成本函数 - 在获得经典后处理的结果之后,研究人员可对成本函数进行评估。若量子数据带有标记,则评估过程可能会基于模型执行分类任务的准确度;对于非监督式任务,则将基于其他标准。 评估梯度和更新参数 - 评估成本函数之后,研究人员应朝着有望降低成本的方向来更新流水线上的自由参数。其中最常见的方法是通过梯度下降来执行。
上图针对 TFQ 中的量子数据展示了量子-经典混合判别模型的推理和训练端到端流水线,并对所涉及的计算步骤进行了高层抽象概述。要查看端到端示例的代码,请参阅“Hello Many-Worlds”示例、量子卷积神经网络教程和我们提供的指南
TensorFlow Quantum 的关键特性是能够同时训练并执行多个量子电路。这是因为 TensorFlow 能够在计算机集群间执行并行计算,并能在多核计算机上模拟体量相对较大的量子电路。
为实现后者,我们还宣布推出了 Qsim (github),这是一款全新的高性能开源量子电路模拟器,经证明能够在单个 Google Cloud 节点 (n1-ultramem-160) 上模拟门深 14、量子比特为 32 的量子电路,且用时不超过 111 秒(详情请参阅本论文)。该模拟器还专门针对多核 Intel 处理器进行了优化。
通过结合使用 TFQ,我们已在 Google Cloud 节点 (n2-highcpu-80) 上对门深 20、量子比特为 20 的量子电路进行了 100 万次电路模拟,用时不超过 60 分钟。如需了解更多信息,请参阅 TFQ 白皮书第 II E 节:使用 Qsim 进行量子电路模拟。
未来展望
TensorFlow Quantum 目前主要用于在经典量子电路模拟器上执行量子电路。放眼未来,TFQ 将能在 Cirq 支持的实际量子处理器(包括 Google 自有的处理器 Sycamore)上执行量子电路。
要了解有关 TFQ 的详情,请阅读我们的白皮书,并访问 TensorFlow Quantum 网站。我们相信,连接机器学习社区和量子社区将会带来全面而又令人兴奋的新发现,同时也有助于加快发现新的量子算法以解决世界上最棘手的问题。
致谢
本开源项目由 Google AI Quantum 团队领导,并由滑铁卢大学、Alphabet’s X 和大众汽车共同开发。在此特别感谢滑铁卢大学,该校学生在 Google AI Quantum 实验室进行了多个实习项目,为这款开源软件做出了重要贡献。
如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:
TensorFlow Quantum 网站
https://tensorflow.google.cn/quantumTFQ 白皮书
https://arxiv.org/abs/2003.02989癌症检测的图像处理
https://ai.googleblog.com/2018/10/applying-deep-learning-to-metastatic.html地震余震预测
https://www.blog.google/technology/ai/forecasting-earthquake-aftershock-locations-ai-assisted-science/极端天气模式预测
https://www.youtube.com/watch?v=p45kQklIsd4新系外行星检测
https://ai.googleblog.com/2018/03/open-sourcing-hunt-for-exoplanets.html量子计算发展的最新进展
https://ai.googleblog.com/2019/10/quantum-supremacy-using-programmable.html对全球最严峻的问题产生深远影响
https://www.youtube.com/watch?v=eh78EUTas34Cirq
https://ai.googleblog.com/2018/07/announcing-cirq-open-source-framework.htmlCirq Github
https://github.com/quantumlib/CirqTensorFlow
https://tensorflow.google.cn/化学物质模拟
https://ai.googleblog.com/2018/03/reformulating-chemistry-for-more.html量子物质
https://www.nature.com/articles/nphys4035量子控制
https://ai.googleblog.com/2019/10/improving-quantum-computation-with.html量子通信网络
https://arxiv.org/abs/1805.08654量子计算
https://www.nature.com/articles/s41534-019-0193-4研究代码库
https://github.com/tensorflow/quantum/tree/researchTensorFlow 算子
https://tensorflow.google.cn/guide/create_opHello Many-Worlds
https://tensorflow.google.cn/quantum/tutorials/hello_many_worlds量子卷积神经网络教程
https://tensorflow.google.cn/quantum/tutorials/qcnn指南
https://tensorflow.google.cn/quantum/overviewQSIM github
https://github.com/quantumlib/qsim量子电路模拟器
https://arxiv.org/abs/1807.10749本论文
https://arxiv.org/pdf/1910.11333.pdfSycamore
https://ai.googleblog.com/2019/10/quantum-supremacy-using-programmable.html