TensorFlow Quantum 模拟发现量子机器学习的优势

文 / Hsin-Yuan Huang,Google/加州理工学院;Michael Broughton,Google;Jarrod R. McClean,Google;Masoud Mohseni,Google

机器学习是由数据驱动的科学。大数据研究和工业机器学习均依赖于大量且高质量的数据源,数据往往 越多越好。机器学习算法依托训练数据较传统算法在很多方面有着更为出色的表现,如:识别照片、理解人类语言,甚至是曾由量子计算机主导的任务(例如在新药研发当中预测新型分子的性质,设计更优质的催化剂、电池或 OLED 等领域)。如果脱离数据,这些机器学习算法相比传统算法的优势将荡然无存。

现有的机器学习模型是为传统计算机设计的,而量子计算机则需要能够实现更高性能的 量子机器学习算法,特别是在对诸如分子、催化剂或高温超导体等量子力学系统进行建模时。量子世界中叠加着无数种状态,它们不断演变而又相互干扰。传统计算机在处理此类任务时往往力不从心,可以预见的是,量子计算机更擅长处理具有量子特性的机器学习问题。人们同时希望这种 量子优势(使用量子计算机取代传统计算机这一优势)能够延伸到诸如计算机视觉或自然语言处理等传统领域的机器学习问题当中。

对于因没有数据而难以解决的一些问题,传统计算机通过从现实(例如物理实验)中收集数据并基于这些数据进行学习即可将其解决。但是,使用量子计算机则可以解决更广泛的问题。如果我们设想可以使用量子计算机来模拟现实,那么量子计算机采用从现实收集的数据就不具备更进一步的计算能力。

要了解量子计算机在机器学习问题方面的优势,我们会想到以下主要问题:

  1. 如果数据带有量子特性(例如来自研发新型材料的实验),那么量子模型在预测方面的表现是否始终优于传统模型?
  2. 针对传统或量子特征的给定数据集进行建模时,我们能否评估量子计算机,判断其何时更具优势?
  3. 是否有可能找到或构建在量子模型中比在传统模型中更具优势的数据集?

最近的一篇论文中,我们开发了一个数学框架来比较量子模型和传统模型(包括神经网络、基于树的模型等)来探究量子建模能够精确预测的潜在优势。无论数据是来自传统领域(MNIST、产品评论等)还是来自量子实验(化学反应、量子传感器等),此框架均适用。

传统观点可能认为,源自量子实验的数据以传统方法难以再现,因此使用这种数据所带来的是量子方面的潜在优势。但是,我们证实了情况并非总是如此。拥有足够的数据就可以学习任意函数,这对于机器学习专家而言可能不足为奇。事实证明,这同样适用于学习具有量子特性的函数。通过从现实的物理实验(例如研制新型催化剂、超导体或药物)中收集数据,传统机器学习模型可以实现某种程度超越训练集的泛化。这使得数据驱动的传统(机器学习)算法能够解决使用不基于数据训练的传统算法难以解决的问题(我们的论文对此观点进行了严格论证)。

我们提供了一种定量方式,用于针对量子特性的数据集,确定进行准确预测所需的样本量。或许有些出人意料,有时传统模型和量子模型所需的样本量之间并无太大差异。这种方式还提供了一种建设性的方式,可以帮助生成某些传统模型难以学习的数据集。

上图展示了在不同训练数据量 (N) 下,与一系列常见传统模型中的最佳模型相比,使用量子模型有着经事实论证的预测优势。相比经测试最佳的传统机器学习,我们引入的映射量子核函数具有显著优势。

我们继续使用此框架来生成的数据集测试(模型),所有传统机器学习方法均失败,但量子方法不会。上图提供了一个此类数据集的示例。这些研究在迄今最大的基于量子门的量子机器学习模拟 (Gate-based Quantum Machine Learning Simulations) 中得到了实证验证,模拟由 TensorFlow Quantum 实现,后者是一个用于量子机器学习的开源库。要在较大规模的量子系统上进行这项工作,需要极高的计算能力。使用 TensorFlow 和 TensorFlow Quantum 编写的量子电路模拟(约 300 TeraFLOP/秒)与分析代码(约 800 TeraFLOP/秒)相结合,可以轻松获得高达 1.1 PetaFLOP/秒的吞吐量,这种性能水平在量子计算和机器学习的交叉领域非常罕见(尽管这对于已经达到 exaflop 性能水平的传统机器学习而言已有先例)。

在为 TensorFlow Quantum 中的量子机器学习研究准备分布式工作负载 (distributed workloads) 时,基础设置和架构与常规 TensorFlow 应非常相似。在 TensorFlow 中处理分布式计算的一种方式是使用 tf.distribute 模块,用户可以使用该模块在多机工作负载下配置设备布局和机器配置。在这项工作中,使用 tf.distribute 在由 Kubernetes 管理的约 30 台 Google Cloud 计算机(有些包含 GPU)之间分配工作负载。开发的主要阶段包括:

  1. 使用 TensorFlow 和 TensorFlow Quantum 开发单节点功能原型。
  2. 编入最少量的代码更改,以在手动配置的双节点环境中使用 MultiWorkerMirroredStrategy
  3. 使用第 2 步中的功能代码创建 Docker 镜像,并将其上传到 Google Container Registry
  4. 使用 Google Kubernetes Engine,遵循 此处 提供的生态系统模板启动一个 Job。

TensorFlow Quantum 提供的教程展示了 第 1 步 的变体,您可以创建传统神经网络无法使用的(模拟)数据集。

写在最后

我们希望本文所概述的框架和工具能够帮助 TensorFlow 社区探索量子计算机所需的,用来做出准确预测的数据集雏形。

如果您想开始研究量子机器学习,请参阅 TensorFlow Quantum 网站 中提供的初学者教程。如果您是量子机器学习研究员,则可以阅读我们 撰写的探讨数据在量子机器学习中重要性的论文,以了解更多详细信息。

我们对于社区能够使用 TensorFlow Quantum 进行哪些其他类型的大型量子机器学习实验非常期待。只有越来越多人加入研究,量子计算机的机器学习才能更早发挥出更多其潜在的能力

原文:Characterizing quantum advantage in machine learning by understanding the power of data
中文:TensorFlow 公众号