Nobisuke
Dekisugi
RAG
Privacy policy
2021/03/14 03:09
6
こんにちは、量子機械学習をやって量子コンピュータの最先端に立ちたいですよね。今回はmid-circuit measurement and qubit reuseという手法を使って量子機械学習を効率化する方法を確認します&blueqatの新機能を使って量子ビットの削減をしてみたいと思います。
略称MCMRは回路の途中で特定の量子ビットだけの測定を行い、その量子ビットの測定後にリセットをするという手法です。特定の量子ビットの測定をしてに初期化することによって、量子ビット数に対しての状態ベクトル単体よりも複雑な量子状態のサンプルをとることができます。
今回は例にとって3量子ビットの回路を2量子ビットに削減してみます。下記のような構造を見てみます。
|0> --*-----
|
|0> --U--*--
|
|0> -----U--
一番上の量子ビットと一番下の量子ビットを見てみます。一番上の量子ビットを測定した後に一番下の量子ビットを初期化して初めても回路は同じになります。一番下の回路をひっくり返して、MCMRを使って書き直すと、下記のようにすることができます。
|0> --*-- U--
| |
|0> --U----*--
Mid-circuit measurement and qubit reuse MCMRでは、このように順番を工夫し、量子ビットの測定と初期化を行うことで少ない量子ビットで複雑な計算をすることができます。現在実機では、米国のハネウェルマシンとIBMマシンに実装されています。
仕組みを理解するために状態ベクトルの推移を見てみます。2量子ビットの回路を確認してみましょう。
|0> --H--*--
|
|0> -----X--
これは量子もつれ回路です。状態ベクトルは、
Copy from blueqat import Circuit Circuit().h[0].cx[0,1].run()
array([0.70710678+0.j, 0. +0.j, 0. +0.j, 0.70710678+0.j])
rxxを使うと一度でかけます。
|0> ---*----
|
|0> ---RXX--
Copy from blueqat import Circuit import math Circuit().rxx(-math.pi/2)[0,1].run()
array([0.70710678+0.j , 0. +0.j ,
0. +0.j , 0. +0.70710678j])
このように、のもつれ状態となりました。この状態で0番目の量子ビットだけを測定してみますと、
|0> ---*----測定
|
|0> ---RXX---------
もし、が測定されたら、が確定し、となります。その際の状態ベクトルは、
Copy import numpy as np vec00 = np.array([1, 0, 0, 0])
もし、が測定されたら、が確定し、となります。
Copy vec11 = np.array([0, 0, 0, 1])
となります。ここで、0番目の量子ビットをに初期化すると、は、となります。
Copy vec01 = np.array([0, 1, 0, 0])
つまり、状態ベクトルは、測定された量子ビットの測定結果によって状態ベクトルが分岐することになり、それぞれ別の量子状態へと初期化されます。
|0> ---*---- |0>--
|
|0> ---RXX--------
最終的に上記の回路を再度測定すると、最初にが出たときは、そのまま二回目の測定では、がでるため、のサンプルが得られます。
Copy Circuit(2).m[:].run(shots=100, initial=vec00)
Counter({'00': 100})
また、最初にが出たときには、二回目以降の測定では、がでるため、のサンプルが得られます。blueqatでは、0番目の量子ビットの値が右側になっています。
Copy Circuit(2).m[:].run(shots=100, initial=vec01)
Counter({'10': 100})
最初の測定の結果によってその後のサンプリングに関しても結果が変わり、何度ももつれを利用することによって、途中測定とリセットを繰り返すたびに量子状態の状態ベクトルが分岐していくことになります。
これらを量子機械学習へ応用するには、これらの再利用を量子機械学習の畳み込みなどにも対応させることができます。例えば、画像認識などでのQCNNなどの畳み込み回路があったとします。
|0> --*--
|
|0> --U--*--
|
|0> --*--U----
|
|0> --U--
これは、の回路がに畳み込まれ、がに畳み込まれ、再度がに畳み込まれます。4量子ビット回路に見えますが、MCMRを利用して、
|0>--U------------*--
| |
|0>--*-- |0>--*--U----
|
|0>------------U--
4量子ビットを3量子ビットへと減らすことができました。MPS回路を利用するとさらに軽量化をすることができます。このように量子機械学習においては時間発展のようにもつれを利用する部分が限られたMPSやTTN/MERAといった量子状態の近似をとる量子回路においてはMCMRを効率的に利用することによってHoneywellやIBM実機での効率的な量子機械学習の利用が可能になります。以上です。
© 2024, blueqat Inc. All rights reserved