blueqatにおけるショットノイズの実装


今回はQiskit_Aquaにおけるレガシーであるスタティスチカルノイズを実装しました[1]。ブルーキャットにはステートベクトル出力が実装されています。実際の量子計算では有限の観測回数で解の存在確率分布を出力しなくてはなりません。ステートベクトル出力はその観測回数を無限大の極限に増大させた結果だと解釈可能です。それ故に、現実の計算ではなくとも、それらにおける存在確率分布の差分がそれらの不確定揺らぎとして出てきます。それがショットノイズです。これは十分な回数観測を行うならほぼ無視できるようになりますが、現実の計算では計算時間が長くならないように少ない回数に抑えます。


そのため、このノイズは実機での計算をシミュレートする強力なツールです。このノイズは、ハミルトニアンH=jcjHjH=\sum_jc_jH_j のj番目の要素の不確定性揺らぎをΔHj\Delta H_j 、とすると、


ΔHj=HjHj\Delta H_j=H_j-\langle H_j \rangle


となります。ここで、Hj\langle H_j \rangle はステートベクトルでとった期待値です。

ここから、ショットノイズは


S(H)=jcj2ΦΔHjΦ2S(H)=\sqrt{\sum_jc_j^2\langle \Phi \mid \Delta H_j \mid \Phi \rangle^2}


となります。今回、水素分子のエネルギーにおける基底状態のエネルギーを水素原子間距離を0.1から2.5(Å)まで0.1刻みで変化させてショット数=10,50,100,1000において計算しました。なお、ハミルトニアンとクラスターの深さは両方2として、クラスターにはUCCSDを使用し、最適化手法にはBFGS法を使用し、その計算反復回数は50回としました。


図1を見るに、原子間距離が1.5までは精度に大差ないですが、そこからは少し違いが出ます。それ以降はランダムでショット数に関係なく低精度の値がたまに出てきます。これは、水素分子におけるステートベクトルにはゼロではない物のわずかに存在確率を有する状態が多く存在し、これらがショット数を増やすと出てくる上にステートベクトルの値より大きくなるからであると考えられる。

図1 ショット数を10,50,100,1000にした場合におけるショットノイズがある場合の基底エネルギー準位。

図2 ショット数を10,50,100,1000にした場合におけるショットノイズがある場合の基底エネルギー準位における対数エラー。


今回、blueqatにおいてショットノイズを実装してわかったことがあります。blueqatはノイズ周りはほとんどバックエンドだよりで独自のノイズシミュレーションが全く実装されていないということです。ノイズのシミュレーションは量子計算のシミュレーションをするうえで避けては通れない過程です。実機における計算の回数は無料利用枠が設定されているか、従量課金制です。そのため、無料で実機の計算を再現する機能はあってほしいというのが本音です。ショットノイズだけでは実機におけるノイズを再現するには不十分であり、相互作用ノイズ、フリップ、位相シフトなど、細かく設定してノイズをシミュレーションする機能の実装をこの場を借りて求めます。


[1]Ibe, Y., Nakagawa, Y. O., Yamamoto, T., Mitarai, K., Gao, Q., & Kobayashi, T. (2020).

Hikaru Wakaura
個人研究者の若浦 光です。量子アルゴリズムの実装結果や論文の紹介などを載せていきます。 mail: hikaruwakaura@gmail.com
Comments
Hikaru Wakaura
個人研究者の若浦 光です。量子アルゴリズムの実装結果や論文の紹介などを載せていきます。 mail: hikaruwakaura@gmail.com
Related posts

blueqat Inc.

Shibuya Scramble Square 39F 2-24-12, Shibuya, Shibuya-ku, Tokyo
Contact: info@blueqat.com