Path: blob/main/notebooks/summer-school/2021/resources/lab-notebooks/lab-5-ja.ipynb
3855 views
このLabでは、機械学習で使われる一般的なパラメーター化された量子回路にノイズが与える影響について、量子プロセス・トモグラフィーを使って学びます。
Question 1
この量子回路を作ってください。
ショットノイズのみによる量子プロセス・トモグラフィー
ここでは、qasm_simulatorで量子プロセス・トモグラフィー回路をシミュレートします。
Question 2a
Qiskitのプロセストモグラフィー(QPT)回路の機能を使って、量子プロセスト・モグラフィーを行う回路とQASMシミュレーター(ショットノイズのみ)のシミュレーションを作ってください。QPT回路の機能は、
seed_simulator=3145,seed_transpiler=3145,shots=8192で実行してください。ヒント:必要となる機能、process_tomography_circuits、は上記でインポートされています。完成すると、合計で144の回路が
execute関数によってqasm_simulatorに与えられるはずです。len(qpt_circs)を使って作成された回路の数を確認できます。
Question 2b
プロセス・トモグラフィー・フィッターの最小二乗フィッティング法を使って、目標のユニタリー行列の忠実度(Fidelity)を決定してください。
ヒント: まず、上記のProcessTomographyFitter関数を使ってQuestion 2aの結果を処理し、ProcessTomographyFitter.fit(method='....')を使って、測定されたユニタリー演算を効果的に記述した"Choi Matrix"を抽出します。ここからは、量子情報モジュールのaverage_gate_fidelity関数を使って、結果が達成した忠実度を抽出します。
T1/T2ノイズモデルでの量子プロセス・トモグラフィー
一貫性を保つために、ゲートの持続時間とT1/T2時間を特徴付けるいくつかの値を設定しましょう:
Question 3
Qiskitの熱緩和エラーモデルを使って、上記で定義された量子ビット0〜3に対する値を使って、
u1,u2,u3,cx,measurement,resetのエラーを定義し、熱ノイズモデルを構築してください。ヒント:Qiskitチュートリアルのbuilding noise modelsが、特に、
u1,u2,u3,cx,reset,measurementのエラーに対して役立ちます。(これら全てを含めてください。)
Question 4.
ノイズモデルを使って、QPTの忠実度を出してください。ただし、エラー軽減の技術は使わないでください。再掲ですが、
execute関数にはseed_simulator=3145,seed_transpiler=3145,shots=8192を使ってください。ヒント:ここでのプロセスは、question 2a/bと大変良く似ていますが、question 3のノイズモデルを
execute関数に含める必要があります。
Question 5.
Qiskitにある
complete_meas_cal関数を使って、1つ前のquestionにおけるQTPの結果に対して適用してください。ともにexecute関数とseed_simulator=3145,seed_transpiler=3145,shots=8192を使ってください。また同様に、question 3のノイズモデルをexecute関数に含める必要があります。ヒント:Qiskitテキストブックにreadout error mitigationというとても良い章があります。特に、
complete_meas_cal関数をCompleteMeasureFitterとともに、キャリブレーション行列を作るための回路を望み通りに作成するために使いたいでしょう。そしてこれは、修正行列のmeas_filterを生成するために使えます。Question 4の結果に対してこの関数を適用します。
Exploratory Question 6.
CXの持続時間を変化させたノイズモデルを実行して、ゲートの忠実度がCXの持続時間にどのように依存するかをテストします(ただし、他の値はすべて固定します)。
(注:理想的には、前のレクチャーで説明したスケーリング技術を使って行いますが、バックエンドの使用が制限されるので、代わりにCX自体の持続時間を調整して効果を実証し ます。このゲートは完全なCXゲートではないので、ハードウェアでの実装方法とは異なります。)