Featured image of post GDMCTS-QAS: Graph based Dynamic Monte Carlo Tree Search for Quantum Architecture Search

GDMCTS-QAS: Graph based Dynamic Monte Carlo Tree Search for Quantum Architecture Search

一种基于图表示的动态蒙特卡洛树搜索的量子线路搜索架构

📝 备注

一句话概括本文核心:我们提出一个全新的量子线路自动搜索架构,用 DAG 图表示量子线路层,利用合理的方法大幅降低了搜索空间,并结合改良的 Monte Carlo Tree Search 方法,在同一个框架下测试了 VQE、QML、MaxCut 三种自动化设计量子线路任务,找到的线路比手工设计的线路更浅、更准、双比特门更少。 🎉🎉🎉

一、如何自动设计量子线路呢?

1. 手工设计量子线路的困境

假设你是一个计算机专业的硕士生,而你此前并没有量子力学和量子计算的知识基础(正是本人😭),而你的研究方向是量子计算和量子机器学习。有一天,你的导师突然问你:“能不能设计一个量子线路,用于解决 MNIST 手写数字二分类问题?” 此时你一脸懵逼,回答:“我不会啊!!我只会用传统 CNN !!”

因为传统 CNN 只需设计一系列的卷积层、池化层、全连接层和不同的激活函数即可,训练过程让它自己慢慢折腾即可。而量子线路你需要设定线路的深度是多少?不同层放量子门型又是什么?哪里放旋转门?哪里放纠缠门?头都大了😆,即使你是量子计算的专家,也不敢保证他们手工设计出来的量子线路稳定又有效。

手工设计通常依赖研究者的直觉:我觉得这里用 $Ry$,我觉得这里加 $CNOT$,我觉得堆 3 层 entanglement layer,我觉得这个 ansatz 应该有效。但问题是,不同任务需要的线路结构可能完全不同。比如 MNIST 二分类、量子化学基态能量估计、组合优化、量子态分类,它们对线路的要求不一样。一个在 MNIST 上有效的线路,不一定在别的任务上有效。

一个量子线路可以由很多因素决定:

  • 量子比特数
  • 量子门类型
  • 门的顺序
  • 门作用在哪些 qubit 上
  • 纠缠连接方式
  • 线路深度
  • 参数共享方式
  • 测量方式
  • 硬件拓扑约束

哪怕只考虑几个 qubit,可能的线路组合也非常多,组合数量会迅速爆炸,是指数级别增长的。所以,自动设计量子线路很有必要,靠人工设计量子线路不知要设计到猴年马月😓

2. 自动设计量子线路的步骤

自动化搜索量子线路的第一步,是把“设计线路”形式化成一个搜索问题

一个量子线路可以看成一串操作:

1
2
3
4
5
第 1 步:在 q0 上放 Ry 门
第 2 步:在 q1 上放 Rz 门
第 3 步:在 q0 和 q1 之间放 CNOT
第 4 步:在 q2 上放 Rx 门
……

也就是说,设计线路本质上是在不断回答几个问题:选什么量子门?放在哪些 qubit 上?放在第几层?要不要加纠缠?线路什么时候停止?

于是,量子线路搜索可以被看成:

1
2
3
4
5
6
7
8
9
从空线路开始
一步步添加量子门
形成候选量子线路
训练并评估性能
保留更好的线路

用一句话说:

自动化量子线路搜索,就是让算法在巨大的线路结构空间中,自动寻找高性能、低成本、硬件友好的量子线路。

1. 先定义搜索空间:算法能选什么?

自动化搜索不是凭空搜索。我们首先要告诉算法:你可以从哪些“积木”里搭线路。

这些积木通常包括:

1
2
3
4
5
6
单比特门:Rx, Ry, Rz, H
双比特门:CNOT, CZ, iSWAP
可训练参数门:Ry(θ), Rz(θ)
测量方式:测量 q0,或者测量多个 qubit
纠缠模式:线性、环形、全连接、硬件拓扑连接
线路深度限制:最多几层

比如一个简单搜索空间可以是:

1
2
3
4
Gate set = {Rx, Ry, Rz, CNOT}
最大深度 = 6
量子比特数 = 4
只允许相邻 qubit 使用 CNOT

这样搜索算法就不会乱来。它不会生成硬件上无法执行的线路,也不会无限制地堆门。

2. 再定义评价指标:什么叫“好线路”?

自动化搜索的关键不只是“找到能跑的线路”,而是要定义什么叫“好”。

对于 MNIST 二分类,最直接的目标是:分类准确率越高越好。但量子线路不能只看准确率。因为线路太深、双比特门太多,在真实量子硬件上很容易被噪声毁掉。

所以更合理的评价指标通常是多目标的:

1
2
3
4
5
6
7
准确率高
线路深度浅
双比特门数量少
参数数量少
符合硬件拓扑
训练稳定
噪声鲁棒性好

可以写成一个综合得分:

$$ Score = Accuracy - \lambda_1 \cdot Depth - \lambda_2 \cdot CNOTs - \lambda_3 \cdot Parameters $$

意思是:准确率越高,分数越高;线路越深、$CNOT$ 越多、参数越多,分数越低。这样搜索出来的线路不会只是“很准但很臃肿”,而是更接近真正可用的量子线路。

3. 核心流程:生成、训练、评估、更新

一个典型的自动化量子线路搜索流程可以写成这样:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
空线路
添加量子门
候选线路
训练参数θ
验证集评估
搜索算法决定下一步怎么走
输出最优线路

这里要注意一点:搜索线路结构训练线路参数 是两个层次的问题。

结构搜索回答的是:这个门该不该放?放在哪?线路长什么样?

参数训练回答的是:这个 $Ry(θ)$ 的 $θ$ 应该是多少?这个 $Rz(θ)$ 的 $θ$ 应该是多少?

所以完整流程其实是一个双层优化问题

内层优化线路参数,给定一个量子线路结构 $\mathcal{A}$,我们先训练它的参数:

$$ \theta^{*}(\mathcal{A}) = \arg\min_{\theta} \mathcal{L}_{\mathrm{train}}(\theta,\mathcal{A}) $$

意思是:如果线路结构已经固定,那么就像训练普通神经网络一样,优化其中的参数 $\theta$,让训练集 loss 尽可能小。

外层优化线路结构,给定一个量子线路结构 $\mathcal{A}$,先训练出最优参数 $\theta^{*}$,再训练结构:

$$ \mathcal{A}^{*} = \arg\min_{\mathcal{A}\in\Omega} \mathcal{L}_{\mathrm{val}} \left( \theta^{*}(\mathcal{A}), \mathcal{A} \right) $$

在验证集上评估它的效果,最后选择验证集表现最好的线路结构。

二、为什么不用传统蒙特卡洛树搜索?

三、我们的方法流程是什么样的?

四、我们设计的实验结果如何?

五、我们的方法有什么缺点?

六、量子线路搜索今后如何发展?