可換生成回路によるBackpropagation
仮定
各ユニタリゲートの生成子同士が可換であること。($ \left[ G_j, G_k \right] = 0 )
各ユニタリゲートの生成子と、観測量$ Hが可換か、反可換であること。
( $ \left[ G_j, H \right] = 0 もしくは $ \lbrace G_j, H \rbrace = 0 )
パラメータ$ \theta_jが用意されている。($ j ∈ 自然数N)
元の量子回路の操作を$ U(\theta) とする
変換した後の量子回路に$ U_j(\theta_j)が含まれている。
期待値を求める関数を以下とする
$ C(\theta) = \langle\psi(\theta)| H |\psi(\theta)\rangle = \langle\psi_0|U^\dagger(\theta) H U(\theta)|\psi_0\rangle
パラメータ$ \theta_jの勾配を$ \frac{\partial C}{\partial \theta_j}とする
$ i\left[ G_j,H \right] を観測量$ O_jとする
ここで、
勾配を求める目的は、$ C を$ \theta_j について微分するので、
$ \frac{\partial C}{\partial \theta_j} = \langle\psi(\theta)| O_j |\psi(\theta)\rangle
/icons/hr.icon
手順
実機Backpropagation#68ab15070000000000465654参照。
/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/68ab1c1c5d456436c5373637.png
可換生成回路では、使用されているゲートの生成子が同一である場合、全て勾配が等しくなるという定理がある。
そのため、$ G_0,G_1や$ O_0,O_1など分けて考えず、まとめて$ G_j, O_jと表記して計算する。
$ G_j は、$ Rx(\theta) = e^{-i\frac{\theta}{2}X} のため、全て$ \frac{X}{2}である。
また、観測量$ Hは$ Z基底とする。
ここで、$ O_jは、
$ O_j = i \left[G_j,H\right] = i \left[\frac{X}{2},Z\right] = Y
ここで、
$ |\psi(\theta)\rangle = Rx\left(\frac{\pi}{2}\right) Rx\left(\pi\right) |0\rangle
$ = \left( \begin{matrix} \cos{\frac{\pi}{4}} & -i\sin{\frac{\pi}{4}} \\ -i\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}} & -i\sin{\frac{\pi}{4}} \\ -i\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} 1\\i \end{matrix} \right)
よって、
$ \frac{\partial C}{\partial\theta_j} = \langle\psi(\theta)| O_j |\psi(\theta)\rangle
$ = -\frac{1}{\sqrt{2}}\left( \begin{matrix} 1&-i \end{matrix} \right) $ Y $ -\frac{1}{\sqrt{2}}\left( \begin{matrix} 1\\i \end{matrix} \right)
$ = \frac{1}{2} \left( \begin{matrix} 1&-i \end{matrix} \right) $ \left( \begin{matrix} 0&-i\\i&0 \end{matrix} \right) $ \left( \begin{matrix} 1\\i \end{matrix} \right)
$ = 1
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
本来、勾配自体はパラメータごとに算出するので、qulacsなどでは$ [1.0,1.0] という出力が得られる。
/icons/hr.icon
実機の実装
どうしようね
観測量$ O_jは互いに可換であるため、これらを同時に対角化するユニタリ変換$ Dが存在する。(同時対角化の定理)
/icons/hr.icon
補足
$ Hゲートや$ CXゲートの存在について、$ |\psi(\theta)\rangleの計算・測定には必要だが、「$ Hとか$ CXの生成子は?」など勾配の計算上は気にしなくていい。パラメータが介入してないので。
/icons/hr.icon
関連
次のステップ:可換ブロック回路によるBackpropagation
可換生成子
実機Backpropagation
実機Backpropagation:並列回路編
実機Backpropagation:制御ゲート編