Open1

密度行列冪(Density Matrix Exponential)

daitodaito

嶋田義皓著の「量子コンピューティング 基本アルゴリズムから量子機械学習まで」の「3.7 データ行列を扱う」の式計算が分かりづらいので,丁寧に追ってみる.

密度行列冪とは

量子機械学習を実行するためには,アルゴリズム以外にデータの取り扱いも大事.
機械学習で扱う行列(データ)は,その多くはスパース(行列の要素のほとんどが0のこと)ではない.行列Aの時間発展U = e^{iAt}を効率よく行う(量子ゲートに分解できる)手法として使われるのが密度行列冪(Density Matrix Exponential)という方法.U = e^{iAt}のままだと,Taylor展開してみたら分かる通り,Aの冪乗の和が続いていくので計算コストが高くなる.

手法

①行列Aを密度行列\rhoにエンコードする.
\rhoからその冪であるe^{i \rho t}e^{-i \rho t})を用意する.
e^{i \rho t}を作用させたいn量子ビットの量子状態を表す密度行列を\sigmaを用意する.
\rho\sigmaを短い時間tの間SWAP(交換)する.
⑤SWAPした結果として,時間発展U = e^{iAt}の近似が得られる.

このことを数式化したのが,

\begin{align*} e^{-i \rho t} \sigma e^{i \rho t} = \mathrm{Tr}_P( e^{-iSt} (\sigma \otimes \rho) e^{iSt}) \quad &(*) \end{align*}

ただし,

\begin{aligned} \rho &\coloneqq \sum_{i,j} \rho_{ij} \ket{i}\bra{j}. \\ \sigma &\coloneqq \sum_{k,l} \rho_{kl} \ket{k}\bra{l}. \end{aligned}

SWAPゲートは,

\begin{align*} S \coloneqq \sum_{i,j}^{n} \ket{i} \bra{j} \otimes \ket{j} \bra{i} \end{align*}

で定義される.

ここからの教科書の流れは(*)式が成り立つことの証明(もっと言うと,後述する式(1)と(2)が等しいことの証明)をやっている.では実際に追ってみる.

計算過程

分かりやすいようにレジスタPに密度行列\rho,レジスタQ\sigmaをエンコードする.

\begin{aligned} \rho &\coloneqq \sum_{i,j} \rho_{ij} \ket{i}_P\bra{j}_P. \\ \sigma &\coloneqq \sum_{k,l} \rho_{kl} \ket{k}_Q\bra{l}_Q. \end{aligned}

このとき,e^{-i \rho t} \sigma e^{i \rho t}という量をtの1次までのTaylor展開を行うと

\begin{align*} e^{-i \rho t} \sigma e^{i \rho t} &\approx (I - i \rho t + O(t^2)) \sigma (I + i \rho t + O(t^2)) \\ &\approx \sigma - i(\rho \sigma - \sigma \rho)t + O(t^2) \quad &(1) \\ &= \mathrm{Tr}_P( e^{-iSt} (\sigma \otimes \rho) e^{iSt}) \quad &(2) \end{align*}

式(2)が式(1)と等しいことを示す.S^2 = Iであることに気をつけると

\begin{align*} e^{-iSt} &= I - iSt - \frac{S^2}{2!} t^2 + i \frac{S^3}{3!}t^3 + \cdots \\ &= I(1 - \frac{1}{2!} t^2 + \cdots) -i S (t - \frac{1}{3!} t^3 + \cdots) \\ &= I \cos t -iS \sin t. \end{align*}

同様に

\begin{align*} e^{iSt} = I \cos t + iS \sin t. \end{align*}

これらを\rho \otimes \sigmaという状態に作用させると,

\begin{align*} e^{-iSt}( \rho \otimes \sigma) e^{iSt} &= (I \cos t -iS \sin t) ( \rho \otimes \sigma) (I \cos t + iS \sin t) \\ &= ( \rho \otimes \sigma) \cos^2 t + (S ( \rho \otimes \sigma )S) \sin^2 t \\ &- i(S ( \rho \otimes \sigma) - ( \rho \otimes \sigma) S) \cos t \sin t \end{align*}

ここで,第2項について,左右からSWAPゲートを作用させているので,

\begin{equation*} S ( \rho \otimes\sigma )S = \sigma \otimes \rho. \end{equation*}

が成り立つ.なぜならば,

\begin{align*} S ( \rho \otimes\sigma )S &= \sum_{i' j'} \ket{i'}_P \bra{j'}_P \otimes \ket{j'}_Q \bra{i'}_Q (\sum_{i,j,k,l} \rho_{ij}\sigma_{kl} \ket{i}_P \bra{j}_P \otimes \ket{k}_Q \bra{l}_Q )S \\ &= (\sum_{i' j'} \sum_{i,j,k,l} \rho_{ij}\sigma_{kl} \ket{i'}_P \color{red} \braket{j'|i}_P \color{black} \bra{j}_P \otimes \ket{j'}_Q \color{red} \braket{i' | k}_Q \color{black} \bra{l}_Q) S \\ &= (\sum_{i' j'} \sum_{i,j,k,l} \rho_{ij}\sigma_{kl} \color{red} \delta_{i, j'} \color{black} \ket{i'}_P \bra{j}_P \otimes \color{red} \delta_{i',k} \color{black} \ket{j'}_Q \bra{l}_Q ) S \\ &= (\sum_{i,j,k,l}\rho_{ij}\sigma_{kl} \ket{k}_P \bra{j}_P \otimes \ket{i}_Q \bra{l}_Q )S \quad &(4) \\ &= (\sum_{i,j,k,l}\rho_{ij}\sigma_{kl} \ket{k}_P \bra{j}_P \otimes \ket{i}_Q \bra{l}_Q) \sum_{i' j'} \ket{i'}_P \bra{j'}_P \otimes \ket{j'}_Q \bra{i'}_Q \\ &= \sum_{i,j,k,l} \sum_{i' j'}\rho_{ij}\sigma_{kl} \ket{k}_P \braket{j | i'}_P \bra{j'}_P \otimes \ket{i}_Q \braket{l | j'}_Q \bra{i'}_Q \\ &= \sum_{i,j,k,l} \sum_{i' j'}\rho_{ij}\sigma_{kl} \delta_{j,i'} \ket{k}_P \bra{j'}_P \otimes \delta_{l,j'} \ket{i}_Q \bra{i'}_Q \\ &= \sum_{i,j,k,l} \rho_{ij}\sigma_{kl} \ket{k}_P \bra{l}_P \otimes \ket{i}_Q \bra{j}_Q. \\ & = \sigma \otimes \rho. \end{align*}

したがって式(3)は,

\begin{equation*} e^{-iSt}( \rho \otimes \sigma) e^{iSt} = ( \rho \otimes \sigma) \cos^2 t + (\sigma \otimes \rho ) \sin^2 t - i(S ( \rho \otimes \sigma) - ( \rho \otimes \sigma) S) \cos t \sin t. \end{equation*}

となる.レジスタPに関する量子ビットの部分トレースをとる.
第1項は,

\begin{align*} \mathrm{Tr}_P( \rho \otimes \sigma) &= \sum_{m} \braket{m| \rho |m}_P \otimes \sigma \\ &= \sigma. \end{align*}

第2項も同様に

\begin{align*} \mathrm{Tr}_P ( \sigma \otimes \rho ) = \rho . \end{align*}

第3項は式(4)の計算結果を使うと,

\begin{align*} \mathrm{Tr}_P ( S ( \rho \otimes \sigma)) &= \mathrm{Tr}_P \left( S \sum_{i,j,k,l} \rho_{ij}\sigma_{kl} \ket{i}_P \bra{j}_P \otimes \ket{k}_Q \bra{l}_Q \right) \\ &=\mathrm{Tr}_P \left(\sum_{i,j,k,l}\rho_{ij}\sigma_{kl} \ket{k}_P \bra{j}_P \otimes \ket{i}_Q \bra{l}_Q \right) \\ &= \sum_{i,j,k,l}\rho_{ij}\sigma_{kl} \left(\sum_{m} \braket{m | k}_P \braket{j|m} \right)\otimes \ket{i}_Q \bra{l}_Q \\ &= \sum_{i,j,k,l} \rho_{ij}\sigma_{kl} \delta_{k,j} \ket{i}_Q \bra{l}_Q \\ &= \sum_{i,j,l} \rho_{ij}\sigma_{jl} \ket{i}_Q \bra{l}_Q \\ &= \rho\sigma. \end{align*}

第4項も同様に

\begin{align*} \mathrm{Tr}_P( (\rho \otimes \sigma) S ) = \sigma \rho. \end{align*}

以上より,tを1次の項まで微少量近似を行うと,

\begin{align*} \mathrm{Tr}_P (e^{-iSt}( \rho \otimes \sigma) e^{iSt}) &= \mathrm{Tr}_P\left(( \rho \otimes \sigma) \cos^2 t + (S ( \rho \otimes \sigma )S) \sin^2 t - i(S ( \rho \otimes \sigma) - ( \rho \otimes \sigma) S) \cos t \sin t \right) \\ &= \sigma \cos^2 t + \rho \sin^2 t - i (\rho\sigma - \sigma\rho)\cos t \sin t \\ &\approx \sigma - i (\rho\sigma - \sigma\rho)t + O(t^2) . \end{align*}

上式より式(1)と式(2)が等しいことは示せた.

まとめ

ある行列の時間発展をSWAPゲートを用いて近似するのが密度行列冪と呼ばれる手法.
e^{-iSt}が実装できればqiskit上でも実装できそうな気がするが,もう少しコーディングスキルを上げてから挑戦してみる.