文章链接
这篇文章乍一看内容挺少的,看下来感觉可以扩充很多知识点,展开学习可能需要花费更长的时间。
这篇文章介绍了 Clifford Data Regression(CDR) 方法,用于处理量子噪声,该文章将CDR运用在QAOA、phase estimation上,并与zero-noise extrapolation(ZNE)方法进行对比,最后发现在处理大规模量子电路的噪声问题上,CDR方法具有更好的效果。
这一部分主要的疑问是:
对于第一个问题,读文章时,我通过知乎和外网一篇文章了解,展开内容较多,这里仅部分摘要(部分也没有看懂)
对于第二个问题,文中采用了马尔可夫链蒙特卡罗算法(MCMC)采样,将QAOA中non-clifford gate改为 S n S^n Sn,因为对MCMC不了解,对具体实现过程不是很清楚。
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 线路具有以下特点:
而这中电路可以由仅由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:
A quantum computer performing only
- Clifford group operations,
- measurements of Pauli group operators,
- 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需要大量数学知识,计算过程也十分复杂。由于时间问题,目前仅作简单原理上的了解。
在文章中,这一部分主要在Appendix B中介绍,但也只是很简略的写了,对于具体如何利用MCMC进行采样我不是很清楚。
这是一种重复生成随机数字来估计固定参数的方法。
最早的蒙特卡罗方法是用于处理一些难以计算的积分问题,例如计算下图的积分面积
我们可以通过选取一个矩形区域(或任意一个方便计算且包含该图形的形状),在该区域内随机均匀采样,最后统计坐落在待积分面积中和总随机采样数的比例,则可推断出待求面积。
主要有三个要素:
该方法可以预测问题的最终稳态情况,稳态情况极为转移矩阵特征值=1对应的特征向量,但在现实中很难找到该模型。
如上图所示,该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。
具体做法为:
通过上述操作,采样得到一系列量子态,用于后面建立数据集、模型参数求解。
由第一步我们可以得到一系列量子态 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=⟨ϕi∣X∣ϕ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=(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=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=(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ϕiexact−(a1Xϕinoise+a2)2)
这一部分实现应该较为简单,现有的api太多了。
如图3所示,在得到合适的参数后,将实际量子电路中测量得到的结构,放入我们训练出来的模型中,则可得到我们预期的无噪声结果。
文章中也有提到,可以搭建一个线性含参量子电路,来做为一个矫正电路去掉噪声,这需要将将模型得到的参数转换到含参电路中去。