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ϕinoisy,Xϕiexact}
  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ϕiexact=f(Xϕinoisy,α)可以选择多种模型,本文采用的线性模型,即 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ϕinoisy,α)=α1Xϕinoisy+α2损失函数选择为均方误差。
  4. 用得到的模型去矫正原电路中的测量噪声。

生成用于测试的量子态

这一部分主要的疑问是:

  1. 为什么选择Clifford gate组成的电路生成制备数据集的量子态?
  2. 如何在QAOA、phase estimation中运用该种方法?因为该两种电路并不全是由Clifford gates构成的。

对于第一个问题,读文章时,我通过知乎外网一篇文章了解,展开内容较多,这里仅部分摘要(部分也没有看懂)

对于第二个问题,文中采用了马尔可夫链蒙特卡罗算法(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=P1n
其中的元素称为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进行采样我不是很清楚。

蒙特卡罗方法

这是一种重复生成随机数字来估计固定参数的方法。
最早的蒙特卡罗方法是用于处理一些难以计算的积分问题,例如计算下图的积分面积
图1 待求解面积

我们可以通过选取一个矩形区域(或任意一个方便计算且包含该图形的形状),在该区域内随机均匀采样,最后统计坐落在待积分面积中和总随机采样数的比例,则可推断出待求面积。

马尔可夫链

主要有三个要素:

  1. 状态空间(类似于数字电路中的状态转换表)
  2. 无记忆性:下一个状态仅与当前状态有关
  3. 转移矩阵:可以将当前状态与下一个状态的关系用用一个矩阵表示

该方法可以预测问题的最终稳态情况,稳态情况极为转移矩阵特征值=1对应的特征向量,但在现实中很难找到该模型。

MCMC方法

  1. MCMC方法要选择一个随机参数。模型会继续产生随机值(这是蒙特卡罗的一部分),但要根据一些规则来确定什么是一个好的参数值。
  2. 对于一对参数值,通过计算每个值能解释数据的可能性,将有可能计算哪个参数值更好。如果一个随机生成的参数比上一个参数更好,则将根据好的程度确定一定概率,并将其添加到参数值链中(这是马尔可夫链的一部分)。

以QAOA电路为例

QAOA电路示例

如上图所示,该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 SHCNOT门表示出来),而 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)=ed2/σ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ϕiexact)e(XexactX0)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ϕiexact=ϕiXϕi得到模型训练集中的 y y y,其中 X X X为投影测量对应的observable。

在量子计算机上,测量得到带噪声的输入 X ϕ i e x a c t X_{\phi_i}^{exact} Xϕiexact作为模型训练集中的 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=(1p)mϕiϕi+(1(1p)m)I/d其中 d d d为Hilbert空间的维度, 0 ≤ p ≤ 1 0\leq p\leq1 0p1

故在含噪声的量子电路中,我们最后得到的数据为:
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)=(1p)mXψexact+(1(1p)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=a1Xψ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=(1p)m1,a2=d(1p)m(1(1p)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ϕiexact(a1Xϕinoise+a2)2)

这一部分实现应该较为简单,现有的api太多了。

矫正量子噪声

如图3所示,在得到合适的参数后,将实际量子电路中测量得到的结构,放入我们训练出来的模型中,则可得到我们预期的无噪声结果。
完整流程示意

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

猜你喜欢

转载自blog.csdn.net/qq_43550173/article/details/120957777