実機Backpropagation
基礎論理
1.観測量の導出
勾配$ \frac{∂C}{∂θ_j} は、観測量$ O_jの期待値として計算できることを利用。
$ \frac{∂C}{∂θ_j} = \langleψ(θ)| O_j |ψ(θ)\rangle
→ この$ O_j は、元の観測量$ H の交換子$ [G_j,H] と、$ \theta_jに対応するゲートの生成子$ G_jの交換子から計算される。 例えば、$ U_j(\theta_j) = Rx(\theta_j)である場合、
$ O_j = i \left[G_j,H\right] = i\left[X,Z\right]
シミュレータなら、$ |\psi(\theta)\rangleが分かるので、ここまでで計算できる。
2.回路の実行と測定
実機の場合、基底変換と、勾配計算のためビット値の変換が必要となる。 例えば、シンプルに$ \langle Z \rangle が知りたいときは、何も加工する必要がない。
そのまま測定して、$ |0\rangle の確率$ P(0) と、$ |1\rangle の確率$ P(1)から、平均値を求めれば期待値となる。 では、$ \langle Y \rangle などを求めたいときは、どうすればいいか?
それについて、基底変換を行うためのユニタリ変換$ D を回路に適用すれば良い。$ \langle Y \rangle を求めたいなら、Y基底変換に基づき、$ D = HS^{\dagger} である。 実機の場合は、この$ D を計算して、元の量子回路$ U(\theta) の最後に適用する。すなわち、量子回路$ DU(\theta)|\psi\rangleを構築する。
この新しい量子回路$ DU(\theta)|\psi\rangleを、$ Z基底で測定し、取得。
3.勾配の計算
この時、$ DU(\theta)|\psi\rangleは、同時対角化された全ての観測量$ O_jの固有値に対応する。
そのため、測定結果から各$ O_jの期待値を古典コンピュータで計算する。測定されたビット文字列の確率分布から、対応する固有値の重み付き平均を求めることで行う。
この期待値が、各パラメータ$ \theta_jの勾配$ \frac{\partial C}{\partial \theta_j}になる。
余談だが、$ Dはおそらく「Diagonalization (対角化)」の意味。
ポイント
測定したビット値$ b \in \lbrace0,1\rbrace について、$ (+1,-1) に写像する。よって、$ \lambda=(-1)^b 。この考え方は、期待値の項目を参照。 $ M ショット測定するとしたら、勾配$ \frac{\partial C}{\partial \theta_j} は平均をとって$ \hat{m} = \frac{1}{M} \sum_{k=0}^{M-1} \lambda_k
/icons/hr.icon
計算例 (シミュレータ)
仮定
$ |\psi\rangle = \left( \begin{matrix} 1\\0 \end{matrix} \right)
$ \theta_0=\pi
$ \theta_1=\frac{\pi}{2}
計算
以下のような回路を利用したいとする。
https://scrapbox.io/files/68ab1cb547a8c8ae1a01c8c4.png
$ G_0 は、$ Rx(\theta) = e^{-i\frac{\theta}{2}X} のため、$ \frac{X}{2}である。
$ G_1 は、$ Ry(\theta) = e^{-i\frac{\theta}{2}Y} のため、$ \frac{Y}{2}である。
また、今回の観測量$ Hは$ Z基底とする。
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ここで、$ O_0は、
$ O_0 = i \left[G_0,H\right] = i \left[\frac{X}{2},Z\right] = Y
$ O_1は、
$ O_1 = i[G_1,H] = i \left[\frac{Y}{2},Z\right] = -X
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
また、
$ |\psi(\theta)\rangle = Ry\left(\frac{\pi}{2}\right) Rx\left(\pi\right) |0\rangle
$ = \left( \begin{matrix} \cos{\frac{\pi}{4}} & -\sin{\frac{\pi}{4}} \\ \sin{\frac{\pi}{4}} & \cos{\frac{\pi}{4}} \end{matrix} \right)$ \left( \begin{matrix} \cos{\frac{\pi}{2}} & -i\sin{\frac{\pi}{2}} \\ -i\sin{\frac{\pi}{2}} & \cos{\frac{\pi}{2}} \end{matrix} \right)$ \left( \begin{matrix} 1\\0 \end{matrix} \right)
$ = \left( \begin{matrix} \cos{\frac{\pi}{4}} & -\sin{\frac{\pi}{4}} \\ \sin{\frac{\pi}{4}} & \cos{\frac{\pi}{4}} \end{matrix} \right)$ \left( \begin{matrix} 0\\-i \end{matrix} \right)
$ = \frac{1}{\sqrt{2}} \left( \begin{matrix} i\\-i \end{matrix} \right)
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
よって、
$ \frac{\partial C}{\partial\theta_0} = \langle\psi(\theta)| O_0 |\psi(\theta)\rangle
$ = \frac{1}{\sqrt{2}}\left( \begin{matrix} -i&i \end{matrix} \right) $ Y $ \frac{1}{\sqrt{2}}\left( \begin{matrix} i\\-i \end{matrix} \right)
$ = \frac{1}{2} \left( \begin{matrix} -i&i \end{matrix} \right) $ \left( \begin{matrix} 0&-i\\i&0 \end{matrix} \right) $ \left( \begin{matrix} i\\-i \end{matrix} \right)
$ = \frac{1}{2} \left( \begin{matrix} -i&i \end{matrix} \right) $ \left( \begin{matrix} -1\\-1 \end{matrix} \right)
$ = 0
$ \frac{\partial C}{\partial\theta_1} = \langle\psi(\theta)| O_1 |\psi(\theta)\rangle
$ = \frac{1}{\sqrt{2}}\left( \begin{matrix} -i&i \end{matrix} \right) $ -X $ \frac{1}{\sqrt{2}}\left( \begin{matrix} i\\-i \end{matrix} \right)
$ = -\frac{1}{2} \left( \begin{matrix} -i&i \end{matrix} \right) $ \left( \begin{matrix} 0&1\\1&0 \end{matrix} \right) $ \left( \begin{matrix} i\\-i \end{matrix} \right)
$ = -\frac{1}{2} \left( \begin{matrix} -i&i \end{matrix} \right) $ \left( \begin{matrix} -i\\i \end{matrix} \right)
$ = 1
/icons/hr.icon
計算例 (実機)
https://scrapbox.io/files/68ac545b3c9d61c0bfeee052.png
https://scrapbox.io/files/68ac547ea6b12d9e15225e00.png
これを例えば$ M=1024で測定すると、
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
$ \frac{\partial C}{\partial \theta_0}について
$ P(0) = 513
$ P(1) = 511
$ \frac{\partial C}{\partial \theta_0} = \frac{1}{1024} \sum_{k=0}^{1024} \lambda_k = 0.0019... \approx 0
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
$ \frac{\partial C}{\partial \theta_1}について
$ P(0) = 4
$ P(1) = 1020
$ \frac{\partial C}{\partial \theta_1} = \frac{1}{1024} \sum_{k=0}^{1023} \lambda_k = 0.9921... \approx -1
ただし、$ O_1=-Xだったので、マイナスをつけて
$ \frac{\partial C}{\partial \theta_1} \approx -1
/icons/hr.icon
関連