量子计算|CDR(线性模型处理量子噪声处理方法)

文章链接
这篇文章乍一看内容挺少的,看下来感觉可以扩充很多知识点,展开学习可能需要花费更长的时间。
这篇文章介绍了 Clifford Data Regression(CDR) 方法,用于处理量子噪声,该文章将CDR运用在QAOA、phase estimation上,并与zero-noise extrapolation(ZNE)方法进行对比,最后发现在处理大规模量子电路的噪声问题上,CDR方法具有更好的效果。
CDR实现过程

  1. 用一个含大量Clifford gate的量子电路制备一系列量子态 S ψ = ∣ ? i ? S_{\psi}={|\phi_i?} Sψ?=∣?i??。
  2. 分别于量子计算机、经典计算机中测量得到训练数据集 T ψ = { X ? i n o i s y , X ? i e x a c t } T_\psi=\displaystyle \left\{X_{\phi_i}^{noisy}, X_{\phi_i}^{exact}\right\} Tψ?={X?i?noisy?,X?i?exact?}。
  3. 建立一个模型 X ? i e x a c t = f ( X ? i n o i s y , α ) X_{\phi_i}^{exact}=f(X_{\phi_i}^{noisy}, \alpha) X?i?exact?=f(X?i?noisy?,α)可以选择多种模型,本文采用的线性模型,即 f ( X ? i n o i s y , α ) = α 1 X ? i n o i s y + α 2 f(X_{\phi_i}^{noisy}, \alpha)=\alpha_1X_{\phi_i}^{noisy}+\alpha_2 f(X?i?noisy?,α)=α1?X?i?noisy?+α2?损失函数选择为均方误差。
  4. 用得到的模型去矫正原电路中的测量噪声。
生成用于测试的量子态 这一部分主要的疑问是:
  1. 为什么选择Clifford gate组成的电路生成制备数据集的量子态?
  2. 如何在QAOA、phase estimation中运用该种方法?因为该两种电路并不全是由Clifford gates构成的。
对于第一个问题,读文章时,我通过知乎和外网一篇文章了解,展开内容较多,这里仅部分摘要(部分也没有看懂)
【量子计算|CDR(线性模型处理量子噪声处理方法)】对于第二个问题,文中采用了马尔可夫链蒙特卡罗算法(MCMC)采样,将QAOA中non-clifford gate改为 S n S^n Sn,因为对MCMC不了解,对具体实现过程不是很清楚。
Clifford circuit和Clifford gate Pauli 矩阵: { I , X , Y , Z } \displaystyle \left\{ I,X,Y,Z\right\} {I,X,Y,Z}
乘上 ± 1 , ± i \pm1,\pm i ±1,±i则可得到一个群((single-qubit)Pauli 群): P 1 = { ± I , ± X , ± Y , ± Z , ± i I , ± i X , ± i Y , ± i Z } P_1=\displaystyle \left\{ \pm I,\pm X,\pm Y,\pm Z,\pm iI,\pm iX,\pm iY,\pm iZ \right\} P1?={±I,±X,±Y,±Z,±iI,±iX,±iY,±iZ}
对他们做张量积运算即可得到multi-qubit Pauli群: P n = P 1 ? n P_n=P_1^{\otimes n} Pn?=P1?n?
其中的元素称为Pauli string。
Clifford 线路,或称为stabilizer 线路具有以下特点:
  • Pauli string 经过演化后依然是 Pauli string。
  • n-qubit大小的Clifford可以被 2 n × 2 n 2n \times 2n 2n×2n大小的01矩阵以及 2 n 2n 2n大小的01相位向量组成
而这中电路可以由仅由Clifford gate组成,也就是由 { H , S , C N O T } \displaystyle \left\{ H,S,CNOT\right\} {H,S,CNOT}这三种门电路构成。
了解了Clifford circuit后,再通过Gottesman-Knill theorem则可知为何选择Clifford circuit。
Gottesman-Knill theorem 具体表述为:
Gottesman-Knill theorem:
A quantum computer performing only
  1. Clifford group operations,
  2. measurements of Pauli group operators,
  3. Clifford group operations with classical control conditioned on the >outcome of such measurements,
    can be efficiently simulated in polynomial complexity on a probabilistic >classical computer.
也就是说经典计算机可以有效地仿真Clifford gates组成的电路。
更多严谨的证明见这篇文章
用MCMC技术采样获得数据集 关于MCMC相关可以通过一篇博客了解。
真正理解MCMC需要大量数学知识,计算过程也十分复杂。由于时间问题,目前仅作简单原理上的了解。
在文章中,这一部分主要在Appendix B中介绍,但也只是很简略的写了,对于具体如何利用MCMC进行采样我不是很清楚。
蒙特卡罗方法 这是一种重复生成随机数字来估计固定参数的方法。
最早的蒙特卡罗方法是用于处理一些难以计算的积分问题,例如计算下图的积分面积
量子计算|CDR(线性模型处理量子噪声处理方法)
文章图片

我们可以通过选取一个矩形区域(或任意一个方便计算且包含该图形的形状),在该区域内随机均匀采样,最后统计坐落在待积分面积中和总随机采样数的比例,则可推断出待求面积。
马尔可夫链 主要有三个要素:
  1. 状态空间(类似于数字电路中的状态转换表)
  2. 无记忆性:下一个状态仅与当前状态有关
  3. 转移矩阵:可以将当前状态与下一个状态的关系用用一个矩阵表示
该方法可以预测问题的最终稳态情况,稳态情况极为转移矩阵特征值=1对应的特征向量,但在现实中很难找到该模型。
MCMC方法
  1. MCMC方法要选择一个随机参数。模型会继续产生随机值(这是蒙特卡罗的一部分),但要根据一些规则来确定什么是一个好的参数值。
  2. 对于一对参数值,通过计算每个值能解释数据的可能性,将有可能计算哪个参数值更好。如果一个随机生成的参数比上一个参数更好,则将根据好的程度确定一定概率,并将其添加到参数值链中(这是马尔可夫链的一部分)。
以QAOA电路为例 量子计算|CDR(线性模型处理量子噪声处理方法)
文章图片

如上图所示,该QAOA电路为4qubit大小, β 、 γ \beta 、\gamma β、γ均为参数。
其中的 P = R X ( π / 2 ) 、 S P=R_X(\pi/2)、S P=RX?(π/2)、S门都是Clifford gate( R X ( π / 2 ) R_X(\pi/2) RX?(π/2)可以用 S 、 H 、 C N O T S、H、CNOT S、H、CNOT门表示出来),而 R Z ( α ) R_Z(\alpha) RZ?(α)门均为non-Clifford gate,故我们处理的对象就是这些non-Clifford gate。
具体做法为:
  • 选取 n p n_p np?对 R Z ( α ) R_Z(\alpha) RZ?(α),对于每一对 R Z ( α ) R_Z(\alpha) RZ?(α)将其中一个替换为 S n S^n Sn,另一个不做任何处理。n的参数由 w ( n ) = e ? d 2 / σ 2 , d = ∣ ∣ R Z ( α ? S n ) ∣ ∣ w(n)=e^{-d^2/\sigma^2}, d=||R_Z(\alpha-S^n)|| w(n)=e?d2/σ2,d=∣∣RZ?(α?Sn)∣∣确定。
  • 利用Metropolis-Hastings rule以及相似度计算函数 L L L来判断接收还是拒绝该变换。 L ( X ? i e x a c t ) ∝ e ? ( X e x a c t ? X 0 ) 2 / X σ 2 L(X_{\phi_i}^{exact})\propto e^{-(X^{exact}-X_0)^2/X_\sigma^2} L(X?i?exact?)∝e?(Xexact?X0?)2/Xσ2?其中 X 0 = ? 2.1 , X σ = 0.05 X_0=-2.1,X_\sigma=0.05 X0?=?2.1,Xσ?=0.05。(不同的电路取不同的 L L L函数)
通过上述操作,采样得到一系列量子态,用于后面建立数据集、模型参数求解。
生成训练集 由第一步我们可以得到一系列量子态 S ψ = ∣ ? i ? S_{\psi}={|\phi_i?} Sψ?=∣?i??,分别在量子计算机和经典计算机上进行测量操作。
通过在经典计算机上通过 X ? i e x a c t = ? ? i ∣ X ∣ ? i ? X_{\phi_i}^{exact}=?\phi_i|X|\phi_i? X?i?exact?=??i?∣X∣?i??得到模型训练集中的 y y y,其中 X X X为投影测量对应的observable。
在量子计算机上,测量得到带噪声的输入 X ? i e x a c t X_{\phi_i}^{exact} X?i?exact?作为模型训练集中的 x x x。
建立模型 该步骤主要问题为:
  • 本文为什么选用线性模型?
Appendix A主要介绍线性模型的理论基础。
对于无噪声量子态 ∣ ? i ? |\phi_i? ∣?i??,因为噪声对其的作用,最终测量得到的量子态变为: ρ ? i = ( 1 ? p ) m ∣ ? i ? ? ? i ∣ + ( 1 ? ( 1 ? p ) m ) I / d \rho_{\phi_i}=(1-p)^m|\phi_i??\phi_i|+(1-(1-p)^m)I/d ρ?i??=(1?p)m∣?i????i?∣+(1?(1?p)m)I/d其中 d d d为Hilbert空间的维度, 0 ≤ p ≤ 1 0\leq p\leq1 0≤p≤1
故在含噪声的量子电路中,我们最后得到的数据为:
X ψ n o i s y = T r ( ρ ψ X ) = ( 1 ? p ) m X ψ e x a c t + ( 1 ? ( 1 ? p ) m ) T r ( X ) / d \begin{aligned} X_{\psi}^{noisy}&=Tr(\rho_\psi X)\\ &=(1-p)^m X_{\psi}^{exact}+(1-(1-p)^m)Tr(X)/d \end{aligned} Xψnoisy??=Tr(ρψ?X)=(1?p)mXψexact?+(1?(1?p)m)Tr(X)/d?
对其进行整理即可得: X ψ e x a c t = a 1 X ψ n o i s y + a 2 X_{\psi}^{exact}=a_1 X_{\psi}^{noisy}+a_2 Xψexact?=a1?Xψnoisy?+a2?
其中 a 1 = 1 ( 1 ? p ) m , a 2 = ? ( 1 ? ( 1 ? p ) m ) T r ( X ) d ( 1 ? p ) m a_1=\frac{1}{(1-p)^m},a_2=-\frac{(1-(1-p)^m)Tr(X)}{d(1-p)^m} a1?=(1?p)m1?,a2?=?d(1?p)m(1?(1?p)m)Tr(X)?
所以该文章选择线性模型作为训练模型,对于训练模型所用的损失函数,文章中选用了较为常见的均方误差作为损失函数: C = ∑ ( X ? i e x a c t ? ( a 1 X ? i n o i s e + a 2 ) 2 ) C=\sum(X_{\phi_i}^{exact}-(a_1 X_{\phi_i}^{noise}+a_2)^2) C=∑(X?i?exact??(a1?X?i?noise?+a2?)2)
这一部分实现应该较为简单,现有的api太多了。
矫正量子噪声 如图3所示,在得到合适的参数后,将实际量子电路中测量得到的结构,放入我们训练出来的模型中,则可得到我们预期的无噪声结果。
量子计算|CDR(线性模型处理量子噪声处理方法)
文章图片

文章中也有提到,可以搭建一个线性含参量子电路,来做为一个矫正电路去掉噪声,这需要将将模型得到的参数转换到含参电路中去。

    推荐阅读