机器之心编辑部报道

谷歌重磅发布TensorFlow Quantum:首个用于训练量子ML模型的框架

继官宣「量子优越性」之后,昨日,谷歌发布了在量子计算领域的又一重要研究:TensorFlow Quantum,这是首个用于训练量子 ML 模型的框架。

去年 10 月,谷歌宣布首次实现「量子优越性」,用一台 54 量子比特的量子计算机实现了传统架构计算机无法完成的任务。谷歌称,在世界第一超算需要计算 1 万年的实验中,量子计算机只用了 3 分 20 秒。这被视为量子计算领域的里程碑事件,并登上了《自然》杂志 150 周年版的封面

之后,亚马逊也宣布推出提供量子计算访问的新型云服务 Amazon Braket,并搭建了「AWS 量子计算中心」实验室;本月,霍尼韦尔也公开宣布,将在未来三个月内发布全球最强大的量子计算。从这些迹象来看,量子计算似乎正在一步步走向现实。

今天,谷歌宣布与滑铁卢大学、大众汽车公司联合推出 TensorFlow Quantum (以下简称 TFQ),这是一个可快速搭建量子 ML 模型的开源库。TFQ 将提供把量子计算和机器学习研究相融合所必需的工具,以控制、建模自然或人工的量子系统,比如 50 到 100 个量子比特的嘈杂中型量子(NISQ)处理器。

3 月 6 日,研究团队在预印本平台 arXiv 上提交了论文,对这一基于 Python 语言的新框架进行了详细解释,论文作者共有 20 多位,来自谷歌研究院、滑铁卢大学量子计算研究所、NASA 的 Quantum AI 实验室、大众汽车和神秘的谷歌 X 部门。

论文地址:https://arxiv.org/abs/2003.02989

一直以来,经典的 ML 模型对科研攻关工作多有助力,比如癌症检测、预测地震和余震、预测极端天气和检测系外行星等。而新的量子 ML 模型的诞生,将有助于医学、材料、传感、通信领域取得更多突破。

TFQ 将 Criq 和 TensorFlow 相融合,提供了与现有 TensorFlow API 兼容的量子计算原语(primitives)和高性能量子电路仿真器,为判别式和生成式量子-经典模型的设计和实现提供了高级抽象。

什么是量子 ML 模型?

一个量子模型能够基于量子的本质来表示以及泛化数据。然而,要理解量子模型,首先需要明确两个概念——量子数据和量子-经典混合模型(hybrid quantum-classical model)。

量子数据具有叠加和纠缠的特性,使得其联合概率分布依赖大量经典算力资源来表示和存储。量子数据可以在量子处理器、传感器、网络中产生和模拟,包括化合物模拟、量子控制、量子通信网络、量子方法等。

技术上来说,由 NISQ 处理器生成的量子数据有个关键的特性:充满噪声而且在测量前纠缠。然而,将量子机器学习应用到有噪声、纠缠的量子数据中可能会最大化提取有用的经典信息。受到这些技术的启发,TFQ 库提供了开发用于解纠缠和泛化修正量子数据的模型工具。这无疑为提升现有量子算法性能,或发现新的量子算法提供了机会。

第二个需要引入的概念是量子经典混合模型。由于近来的量子处理器还相对较小,充满噪声,量子模型不能仅依赖量子处理器——NISQ 处理器需要和经典处理器配合,才能变得高效。

TFQ 包含了量子计算所需的基本结构(如量子比特、门、电路……),用户指定的量子计算可在模拟的环境以及真实的硬件上执行。Cirq 还包含大量的构件,用以帮助用户为 NISQ 处理器设计高效的算法,使得量子-经典混合算法的实现能在量子电路模拟器上运行,最终在量子处理器上运行。

目前,谷歌已将 TFQ 及各种经典深度学习算法用于实现量子神经网络,包括各种量子过程。谷歌在论文中提供了这些量子应用的概览,每个示例都可以通过 Colab 在浏览器中运行,感兴趣的读者可查阅原论文。

TFQ 如何运行?

TFQ 允许研究人员在单个计算图中将量子数据集、量子模型和经典控制参数以张量的形式创建。量子测量的结果导致了经典概率事件,该结果通过 TensorFlow Ops 实现。使用标准 Keras 函数可以完成训练。

为了了解如何利用量子数据,有人可能考虑使用量子神经网络对量子态进行监督式分类。正如经典 ML 一样,量子 ML 的主要挑战也在于「噪声数据」的分类。为了构建和训练量子 ML 模型,研究人员可以执行以下操作:

  1. 准备量子数据集:量子数据作为张量(多维数组)来加载。每个量子数据张量被指定为 Cirp 库中编写的量子电路,它可以生成动态的量子数据。张量又在量子计算机上通过 TensorFlow 执行,以生成量子数据集;

  2. 评估量子神经网络模型:研究人员可以使用 Cirq 库建立量子神经网络的原型,然后将它嵌入到 TensorFlow 计算图中。研究人员可以基于量子数据结构从几个大类中选择参数化量子模型,其目的在于实现量子化处理,以提取隐藏在典型量子纠缠态中的信息。从本质上来讲,量子模型理清输入的量子数据,使隐藏信息在经典关联中进行编码,从而使它们适用于本地测量和经典后处理;

  3. 样本或平均值:量子态的测量中需要以样本的形式从经典随机变量中提取经典信息,并且经典变量中数值的分布通常取决于量子态自身和测量到的可观察量。由于很多变分算法取决于测量的平均值或者说期望值,TFQ 对包括步骤(1)和(2)等执行步骤提供了求平均值的方法;

  4. 评估经典神经网络模型:经典信息被提取之后,它的格式适合更进一步的经典后处理。由于提取的信息依然在测量期望值之间的经典关联中解码,研究人员可以使用经典深度神经网络对这些关联进行蒸馏处理;

  5. 评估代价函数:在得到经典后处理结果之后,研究人员对代价函数进行评估。需要注意的是,如果量子数据被标记,则评估过程基于模型执行分类任务的准确度;如果任务是无监督式的,则基于其他标准;

  6. 评估梯度和更新参数:在评估代价函数之后,pipeline 中的自由参数应本着降低成本的方向进行更新,其中最常见的方法是通过梯度下降来执行更新。

对 TFQ 中量子数据的混合经典判断模型进行推理和训练,对所涉及的计算步骤进行高阶抽象概述。

TFQ 的关键功能就是能够同时训练以及执行多个量子电路。能够在计算机集群间并行化计算,能够多核计算机上模拟体量相对较大的量子电路,从而实现目标。同时,团队还发布了 qasim,一种高性能开源的量子电路模拟器,该模拟器特别针对多核 Intel 处理器进行优化。

qasim 项目地址:https://github.com/quantumlib/qsim

机器学习从业者:跟我们有什么关系?

既然这次谷歌推出的是一个量子版 TensorFlow,机器学习领域的从业者不免疑惑:这个库和我们有什么关系?它能帮我们更加有效地优化机器学习模型吗?

关于这一点,有人在 reddit 评论区给出了自己的看法:

这个库看起来针对的是那些想要开发、理解量子计算算法的研究者。虽然这个库只是用经典计算机模拟量子计算机,但其目的是让人们验证自己的想法或理论。考虑到量子计算可以轻易解决一些经典难题(如因式分解),还有哪些问题可以轻易解决依然有待探讨。

利用量子计算模型可能很容易解决类似于机器学习优化问题的问题。像 TFQ 这种库可以让人们更加快速地研究这一问题,因为实现模拟量子计算机的底层细节的大量工作已经完成。这个库特别适用于那些不一定普遍适用,但在现实应用中非常有效的想法,如单纯形法。

在构建量子计算机的过程中,理解其优势和局限性非常重要,这样我们就可以知道哪些方向是实用的,哪些方面在设计的时候需要被优先考虑(比如,如果我们在量子计算机中需要的是更多的「Y」,那么探索如何塞入更多的「X」就没有意义了)。

此外,也有人引用了理论计算机科学家、量子计算专家 Scott Aaronson 的看法:

显然,量子计算在工业、国防等领域都有很大的应用潜力。主要问题在于,我们不知道如何从量子计算机中得到那些应用所需的加速。我们认为,使用 Grover 算法的变体,量子计算机通常能够解决一些优化和机器学习问题,将计算步骤减少到经典计算所需步骤的平方根。这很重要,但并不代表用量子模拟就能实现指数级加速,也不意味着颠覆性变革或破解公共秘钥加密。最有可能的是,量子计算机只能在特殊情况下实现指数级加速,而且目前还没有人知道这些特殊情况在现实世界中有多么重要。这是一个正在研究的问题——可能会有进一步的理论突破,也有可能我们一直都无法理解量子计算机在这类问题中的潜力,直到我们创造出可以用来测量的实际设备。

还有评论者提到,阅读谷歌给出的教程也有利于理解这一问题:https://github.com/tensorflow/quantum/blob/master/docs/tutorials/mnist.ipynb

在官方博客的最后,谷歌指出,TFQ 现在主要面向在经典电路模拟器上执行量子电路。在未来,TFQ 将能够在 Cirq 支持的实际量子处理器上执行量子电路,包括谷歌自己的处理器 Sycamore。

参考链接:

https://ai.googleblog.com/2020/03/announcing-tensorflow-quantum-open.html

https://www.reddit.com/r/MachineLearning/comments/ffu9z4/n_tensorflow_quantum_is_published/

https://venturebeat.com/2020/03/09/google-launches-tensorflow-quantum-a-machine-learning-framework-for-training-quantum-models/

入门TensorFlowTensorFlow Quantum谷歌
相关数据
梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

量子计算技术

量子计算结合了过去半个世纪以来两个最大的技术变革:信息技术和量子力学。如果我们使用量子力学的规则替换二进制逻辑来计算,某些难以攻克的计算任务将得到解决。追求通用量子计算机的一个重要目标是确定当前经典计算机无法承载的最小复杂度的计算任务。该交叉点被称为「量子霸权」边界,是在通向更强大和有用的计算技术的关键一步。

推荐文章
暂无评论
暂无评论~