Tech Blog

勉強したことをまとめます。

Quantum Circuit Learning

はじめに

 論文「Quantum Circuit Learning」内の計算をまとめる。

密度演算子の導出

 1量子ビットの状態 |0\rangleを考え、演算子

{\displaystyle
\begin{equation}
R^Y\left(\theta\right)=
\begin{pmatrix}
\cos{\dfrac{\theta}{2}}&-\sin{\dfrac{\theta}{2}} \\
\sin{\dfrac{\theta}{2}}&\cos{\dfrac{\theta}{2}}
\end{pmatrix}
\end{equation}
}

を作用させる。


R^Y\left(\theta\right)|0\rangle=\cos{\dfrac{\theta}{2}}|0\rangle+\sin{\dfrac{\theta}{2}}|1\rangle\tag{1}

ここで、密度演算子


\rho_1=R^Y\left(\theta\right)|0\rangle\langle0|R^{Y\dagger}\left(\theta\right)

を定義すると

{\displaystyle
\begin{eqnarray}
\rho_1
&=&
\left(\cos{\dfrac{\theta}{2}}|0\rangle+\sin{\dfrac{\theta}{2}}|1\rangle\right)\left(\cos{\dfrac{\theta}{2}}\langle0|+\sin{\dfrac{\theta}{2}}\langle1|\right)\\
&=&
\begin{pmatrix}
\cos^2{\dfrac{\theta}{2}}& \dfrac{1}{2}\sin{\theta} \\
\dfrac{1}{2}\sin{\theta}&\sin^2{\dfrac{\theta}{2}}
\end{pmatrix} \tag{2}
\end{eqnarray}
}


と計算される。いま、-\dfrac{\pi}{2}\leq\theta\leq\dfrac{\pi}{2}とすれば


\begin{aligned}
\cos^2{\dfrac{\theta}{2}}&=\dfrac{1+\cos{\theta}}{2} \\
&=\dfrac{1+\sqrt{1-\sin^2{\theta}}}{2}
\end{aligned}

となる。従って、\sin{\theta}=xと置くと


\begin{aligned}
\rho_1
&=
\dfrac{1}{2}\begin{pmatrix}
1+\sqrt{1-x^2}&x \\
x&1-\sqrt{1-x^2}
\end{pmatrix}\\
&=\dfrac{1}{2}\left(I+xX+\sqrt{1-x^2}Z \right)
\end{aligned}

を得る。ここで


\begin{aligned}
X&=
\begin{pmatrix}
0&1 \\
1&0
\end{pmatrix} \\
Z&=
\begin{pmatrix}
1&0 \\
0&-1
\end{pmatrix} \\
\end{aligned}

である。

 次に、N量子ビットの状態


|\psi\rangle=|0\cdots0\rangle

を考える。これに演算子


\begin{aligned}
\prod_{n=1}^{N}R^{Y}_n(\sin^{-1}{x})
\end{aligned}

を作用させると、上と同じ計算を各ビットについて繰り返すことにより、次の密度演算子を得る。


\begin{aligned}
\rho_{N}(x)=\dfrac{1}{2^N}\prod_{n=1}^{N}\left(I+xX_n+\sqrt{1-x^2}Z_n \right)
\end{aligned}\tag{3}

ここで、X_n,Z_nの添字nは、n番目のビットに作用することを意味する。

密度演算子を用いた期待値計算

 式(1)をもう一度書く。


|\psi_1\rangle=R^Y\left(\theta\right)|0\rangle=\cos{\dfrac{\theta}{2}}|0\rangle+\sin{\dfrac{\theta}{2}}|1\rangle\tag{4}

|\psi_1\rangleを使うと密度演算子\rho_1は以下のように書ける。


\rho_1=|\psi_1\rangle\langle\psi_1|

ここで次の量を計算する。


\begin{eqnarray}
\mathrm{tr}\left(\rho_1 X_1\right)&=&\mathrm{tr}\left(|\psi_1\rangle\langle\psi_1|X_1\right) \\
&=&
\sum_{n=0}^1\langle n|\psi_1\rangle\langle\psi_1|X_1|n\rangle \\
&=&
\sum_{n=0}^1\langle\psi_1|X_1|n\rangle\langle n|\psi_1\rangle \\
&=&
\langle\psi_1|X_1|\psi_1\rangle
\end{eqnarray}


すなわち、\mathrm{tr}\left(\rho_1 X_1\right)を計算することは、状態|\psi_1\rangleを用いてXの期待値を計算することに等しい。\rho_1として、式(2)を用いれば

{\displaystyle
\begin{eqnarray}
\rho_1 X_1
&=&
\begin{pmatrix}
\cos^2{\dfrac{\theta}{2}}& \dfrac{1}{2}\sin{\theta} \\
\dfrac{1}{2}\sin{\theta}&\sin^2{\dfrac{\theta}{2}}
\end{pmatrix}
\begin{pmatrix}
0&1 \\
1&0
\end{pmatrix} \\
&=&
\begin{pmatrix}
\dfrac{1}{2}\sin{\theta} & \cos^2{\dfrac{\theta}{2}} \\
\sin^2{\dfrac{\theta}{2}} &\dfrac{1}{2}\sin{\theta}
\end{pmatrix}
\end{eqnarray}
}

と計算でき、従って


\begin{equation}
\mathrm{tr}\left(\rho_1 X_1\right)=\sin\theta=x
\end{equation}

を得る。すなわち


\begin{equation}
\langle\psi_1|X_1|\psi_1\rangle=x
\end{equation}

である。この結果を用いれば、N量子ビットの場合の密度演算子(3)を用いた次式を計算できる。


\begin{eqnarray}
\mathrm{tr}\left(\rho_N X_1\cdots X_N\right)
&=&
\mathrm{tr}\bigl(|\psi_1\rangle\langle\psi_1| X_1\otimes|\psi_2\rangle\langle\psi_2|X_2\otimes\cdots\otimes |\psi_N\rangle\langle\psi_N|X_N\bigr) \\
&=&
\langle\psi_1|X_1|\psi_1\rangle\otimes\cdots\otimes\langle\psi_N|X_N|\psi_N\rangle\\
&=&x^N 
\end{eqnarray}

上にも書いた通り添字番号はビットの位置を表すだけなので、期待値\langle\psi_n|X_n|\psi_n\rangleの結果はどれもxである。

高次元特徴空間への振幅エンコーディング

 ここまでは論文内の定式化を見てきた。本論文では密度演算子を中心に据えて定式化をしているので何をしているのか少し分かり難い。ここでは密度演算子に移る前の式(4)に戻って考えてみる。
 式(4)は1量子ビットの場合の式である。これを2量子ビットの場合に拡張する。

\begin{eqnarray} |\psi_1\rangle\otimes|\psi_2\rangle=\bigl(\cos{\dfrac{\theta}{2}}|0\rangle+\sin{\dfrac{\theta}{2}}|1\rangle\bigr)\otimes\bigl(\cos{\dfrac{\theta}{2}}|0\rangle+\sin{\dfrac{\theta}{2}}|1\rangle\bigr) \end{eqnarray}

これを展開すると

\begin{eqnarray} |\psi_1\psi_2\rangle=\cos^2{\dfrac{\theta}{2}}|00\rangle+\dfrac{1}{2}\sin\theta|01\rangle+\dfrac{1}{2}\sin\theta|10\rangle+\sin^2{\dfrac{\theta}{2}}|11\rangle \end{eqnarray}

を得る(簡単のため直積の記号は省略した)。いま、\sin\theta=xであるから

\begin{eqnarray} |\psi_1\psi_2\rangle=\dfrac{1+\sqrt{1-x^2}}{2}|00\rangle+\dfrac{1}{2}x|01\rangle+\dfrac{1}{2}x|10\rangle+\dfrac{1-\sqrt{1-x^2}}{2}|11\rangle \end{eqnarray}

となる。状態|00\rangle|11\rangleの振幅にはx非線形項が、状態|01\rangle|10\rangleの振幅にはxの線形項が埋め込まれていることが分かる。つまり、以下の手順を踏むことで-1\leq x\leq 1を満たす実数xを2量子状態の振幅に埋め込む(エンコーディングする)ことができる。

  1. |00\rangleを用意する。
  2. 各ビットにR^{Y}(\sin^{-1}{x})を作用させる。

言い換えると、回転ゲートR^{Y}(\sin^{-1}{x})を用いた量子回路により、xを4(=22)次元の特徴空間に射影したことになる。この空間の中にはx非線形項も存在する。上の手順は容易にN個の量子ビットの場合に拡張することができる。

  1. |0\cdots0\rangleを用意する。
  2. 各ビットにR^{Y}(\sin^{-1}{x})を作用させる。

この場合は特徴空間の次元は2^Nになる。Nを十分大きく取れるとき(例えば100や1000)、特徴空間の次元は膨大な数になる。ところで、機械学習におけるカーネル法では、ガウス関数がよく使われていた。ガウス関数を使うことが無限次元の特徴空間を考えることに等しいからであった。このことと考え合わせると、量子ビットの数が十分大きいとき、上の回転ゲートを用いた振幅エンコーディングは、ガウスカーネルと同じ効果を入力値に与えていることが分かる。

多次元入力への拡張

 ここまでは1次元の入力xを扱ってきた。ここでは多次元入力 x=\{x_1,x_2,\cdots,x_D\}を考える。量子ビットの総数をNx_dを埋め込む量子ビット数をn_dとすると

\begin{equation} \sum_{d=1}^D n_d=N \end{equation}

が成り立つ(下図参照)。

f:id:seiya_kumada:20210704145334p:plain
図1
このとき、多次元ベクトルを埋め込んだ密度演算子は次式になる。

\begin{equation} \rho_N(x)=\dfrac{1}{2^N}\prod_{d=1}^D\left( \prod_{i=1}^{n_d} \left[ I+x_dX_i+\sqrt{1-x_d^2}\;Z_i \right] \right) \end{equation}

厳密な微分値の計算

 機械学習において勾配降下法を行うとき微分値の計算が必要になる。上で導入した量子回路を用いると微分値を厳密に計算できることを示す。簡単のため、1量子ビットの場合を考える。最初に初期状態|0\rangleがある。R^{Y}(\theta)を施すことで入力xを振幅エンコーディングした状態 |\psi\rangleを作る。

\begin{equation} |\psi\rangle=R^Y(\theta)|0\rangle \end{equation}

ただし、\sin{\theta}=xである。この状態にユニタリ行列U(\phi)=\exp{\left(-i\phi P/2\right)}を施し(Pはパウリ行列、\phiは実数値)、状態|\bar{\psi}\rangleを作る。

\begin{equation} |\bar{\psi}\rangle=U(\phi)|\psi\rangle \end{equation}

最適化すべき物理量を表す演算子Bとして、|\bar{\psi}\rangleを用いた期待値を計算する。

\begin{eqnarray} \langle B(\phi)\rangle&=&\mathrm{tr}\bigl(B |\bar{\psi}\rangle \langle\bar{\psi}\rangle \bigr) \\ &=&\mathrm{tr}\bigl(B U(\phi)|\psi\rangle\langle\psi|U^{\dagger}(\phi) \bigr) \\ &=&\mathrm{tr}\bigl(B U(\phi)\rho_1 U^{\dagger}(\phi) \bigr) \end{eqnarray}

ここで、1量子ビットの場合の密度演算子\rho_1を導入した。さて、この式を\phi微分すると

\begin{equation} \dfrac{\partial \langle B(\phi)\rangle}{\partial\phi}=\dfrac{i}{2}\mathrm{tr}\bigl( BU(\phi)\;[\rho_1,P]\;U^{\dagger}(\phi) \bigr)\tag{5} \end{equation}

を得る。ここで

\begin{eqnarray} \dfrac{\partial U(\phi)}{\partial\phi}&=&-\dfrac{i}{2}U(\phi)P=-\dfrac{i}{2}PU(\phi) \\ \dfrac{\partial U^{\dagger}(\phi)}{\partial\phi}&=&\dfrac{i}{2}U^{\dagger}(\phi)P=\dfrac{i}{2}PU^{\dagger}(\phi) \end{eqnarray}

を用いた。Pはエルミート行列であり、また、[U(\phi),P]=0であることに注意する。 ところで


\begin{equation}
U(\phi)=\exp{\left(
-\dfrac{i\phi}{2}P
\right)}
=\cos{\dfrac{\phi}{2}}I-i\sin{\dfrac{\phi}{2}}P
\end{equation}

が成り立つので


\begin{eqnarray}
U\bigl(\dfrac{\pi}{2}\bigr)&=&\dfrac{1}{\sqrt{2}}(I-iP) \\
U\bigl(-\dfrac{\pi}{2}\bigr)&=&\dfrac{1}{\sqrt{2}}(I+iP)
\end{eqnarray}

である。これらを用いると


\begin{equation}
U\bigl(\dfrac{\pi}{2}\bigr)\rho_1U^{\dagger}\bigl(\dfrac{\pi}{2}\bigr)-U\bigl(-\dfrac{\pi}{2}\bigr)\rho_1U^{\dagger}\bigl(-\dfrac{\pi}{2}\bigr)=i[\rho_1,P]
\end{equation}

を得る。この式を(5)に代入すると

\begin{eqnarray} \dfrac{\partial \langle B(\phi)\rangle}{\partial\phi} &=& \dfrac{1}{2}\mathrm{tr}\bigl( BU(\phi)U(\dfrac{\pi}{2})\rho_1U^{\dagger}(\dfrac{\pi}{2}) U^{\dagger}(\phi) \bigr) -\dfrac{1}{2}\mathrm{tr}\bigl( BU(\phi)U(-\dfrac{\pi}{2})\rho_1U^{\dagger}(-\dfrac{\pi}{2}) U^{\dagger}(\phi) \bigr) \\ &=& \dfrac{1}{2}\mathrm{tr}\bigl( BU(\phi+\dfrac{\pi}{2})\rho_1U^{\dagger}(\phi+\dfrac{\pi}{2}) \bigr) -\dfrac{1}{2}\mathrm{tr}\bigl( BU(\phi-\dfrac{\pi}{2})\rho_1U^{\dagger}(\phi-\dfrac{\pi}{2})\bigr)\\ &=& \dfrac{1}{2}\left(\langle B(\phi+\dfrac{\pi}{2})\rangle-\langle B(\phi-\dfrac{\pi}{2})\rangle\right) \end{eqnarray}

となる。すなわち、\phiによる微分は、\phi\pi/2だけ前後にシフトして物理量Bの期待値を測定することにより計算することができる。

まとめ

 少し古い論文であるが、自分の勉強のため式変形をフォローした。本論文の主張は以下である。

  • 回転ゲートを用いた量子回路により、入力値を量子状態に振幅エンコーディングできる。入力値の線形項と非線形項が導入される。
  • 振幅エンコーディングすることは、高次元特徴空間に射影することと等価である。
  • パラメータによる微分を厳密に計算することができる。

量子状態を利用した高次元特徴空間への射影により、古典的な機械学習よりも精度が良くなるという主張は、最近の研究によると、通用しなくなっているそうである。