继2019年10月谷歌在《Nature》上发布关于验证“量子优越性”论文之后,3月9日,谷歌再次就“量子”做出新的发布。
这次发布的是开源“量子版 TensorFlow”:TensorFlow Quantum(TFQ)。
Source:知乎[4]
在经典的感知机中,我们输入的是一个 0 、1 组成的向量,但如果是量子感知机的话,它输入的就是许多个 |φ> = c1 |0> +c2 | 1> 组成的向量,而这个向量的每个元素又都可能既是 0 又是 1 。
然而到现实中,由于目前的量子处理器仍然存在尽管很小但仍不容忽视的噪声,这使得几乎不可能单独用量子处理器来学习量子数据。
于是只能退而求其次,谷歌的NISQ处理器需要与传统的处理器进行协同才能有效地抑制噪声的影响。这种硬件的协同也同样造成算法上的协同,因此便有了量子-经典混合模型,其中模型的量子部分在量子处理器上进行处理,而经典部分则在经典处理器上进行处理。
图注:用于检测团簇状态CNN的结构
经典的神经网络往往具有平移不变性,而具有平移对称性的量子数据有很多种。这样的量子数据往往是簇态(cluster states)。量子-经典卷积神经网络混合分类器可以解决簇态时检测错误的问题,具体做法是将其看做有监督的分类任务,不过训练所使用的数据将由各种正确和不正确准备的簇态组成,每个都与它们的标签配对。
量子控制中的混合机器学习。为了充分利用神经网络的优化能力的同时,而不用考虑计算开销,有必要对各种神经网络表示和不同类型的量子控制动力学之间的联系进行更深的理解。
图注:用于学习量子控制分解的混合量子-经典神经网络模型的体系结构
为了达到这个目标,需要TFQ集成几个功能:
混合量子-经典网络模型;
批量量子电路模拟器;
基于量子期望的反向传播;
基于梯度和基于非梯度的快速经典优化器。
量子近似优化算法(简称QAOA)。QAOA最初是用来求解最大割问题, 目前的QAOA框架已寻找高阶哈密顿量和连续变量哈密顿量等类似问题。
3、怎么用?
TFQ可以让研究人员在单个计算图中将量子数据集、量子模型和经典控制参数构造为张量。当然与经典机器学习一样,量子机器学习的关键挑战也是对“噪音数据”进行分类。
图注:TFQ计算步骤的抽象概述。
但是,要构建和训练这样的模型,研究人员必须执行以下操作:
准备量子数据集,每个量子数据张量都指定为用Cirq编写的量子电路,该电路可实时生成量子数据。
评估量子神经网络模型,量子模型实质上是对输入的量子数据进行解纠缠,从而留下以经典相关性编码的隐藏信息,从而使其可用于本地测量( local measurements )和经典的后处理( classical post-processing)。
样本或期望值。量子态的测量从经典随机变量中以样本形式提取信息。来自随机变量的值的分布通常取决于量子态本身以及所测得的可观测值。由于许多变分算法都取决于测量的平均值,因此TFQ提供了对涉及步骤(1)和(2)的多个运行求期望值的方法。
评估经典神经网络模型。提取经典信息后,其格式适用于进一步的经典后处理,由于提取的信息可能仍会以测量的期望之间的经典相关性进行编码,因此经典深度神经网络能应用于提取此类相关性。
评估损失函数 。根据经典后处理的结果,评估损失函数。
评估梯度和更新参数。评估损失函数后,应沿预期可降低损失的方向更新自由参数这通常是通过梯度下降执行的。
从代码方面来看。基础的安装与调用与Python其他深度学习库没有什么区别。
例如安装:
pip install -q tensorflow-quantum
导入相关模块:
import tensorflow as tf import tensorflow_quantum as tfq import cirq import sympy import numpy as np # visualization tools %matplotlib inline import matplotlib.pyplot as plt from cirq.contrib.svg import SVGCircuit