Skip to main content
IBM Quantum Platform

ZneOptions

class ZneOptions(amplifier=Unset, noise_factors=Unset, extrapolator=Unset, extrapolated_noise_factors=Unset)

GitHub

ベース: object

ゼロノイズ外挿の緩和オプション。 これは V2 Estimatorでのみ使用される。

どの V2 推定量も、それぞれ希望する期待値推定値と誤差を報告する evsstds というデータフィールドを返すことが保証されている。 ランタイム・エスティメーターでZNEオプションを有効にすると、追加データが返される。

特に、入力 pub が観測可能な配列形状 obs_shape とパラメータ値形状 par_shape を持ち、対応する pub の形状 shape=np.broadcast_shapes(obs_shape, par_shape) を持つとする。 その場合、対応するパブの結果には、さらに以下が含まれることになる:

  1. pub_result.data.evs_extrapolated と pub_result.data.stds_extrapolated、

    (*shape, num_extrapolators, num_evaluation_points) num_extrapolators は のリストの長さ、 は のリストの長さである。 options.resilience.zne.extrapolators num_evaluation_points options.resilience.extrapolated_noise_factors これらの値は、指定されたすべてのノイズ外挿値におけるすべての外挿器の評価を提供する。

  2. pub_result.data.evs_noise_factors pub_result.data.stds_noise_factors ensemble_stds_noise_factors (*shape, num_noise_factors) num_noise_factors の長さである。 options.resilience.zne.noise_factors これらの値は、各ノイズ増幅において、ツワーリングで平均化された生の期待値である。 ツワーリングがない場合、 *stds* の両アレイは等しくなる。そうでない場合、 stds_noise_factors はツワーリングサンプルに対する広がりから導かれるのに対し、 ensemble_stds_noise_factors はショットノイズのみで、ドリフトはないと仮定する。

テクニカルノート:複数の基底項を持つ単一の観測値では、 同じ期待値で複数の外挿法が使われていることがわかるかもしれない。例えば、 XX は線形に外挿されるが、 XY は観測値で指数関数的に外挿される {"XX": 0.5, "XY": 0.5}。 これをヘテロジニアス・フィットと呼ぼう。 (2)のデータは、個々の異なる項ごとに最良の適合を選択することによって、異種適合から評価されるのに対し、(1)のデータは、提供された外挿子ごとに1つずつ、強制的に同種の適合から評価される。 この点で微妙な区別が必要な場合は、多項観測値に加えて単項観測値を使用することをお勧めします。

参考文献

  1. Z. Cai, NISQ応用のための多重指数誤差外挿と誤差緩和技術の組み合わせ, npj Quantum Inf 7, 80 (2021)

属性

パラメーター

  • amplifier (UnsetType | Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea'])
  • noise_factors (UnsetType | Sequence[float])
  • extrapolator (UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback'] | ~collections.abc.Sequence[~typing.Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback']])
  • extrapolated_noise_factors (UnsetType | Sequence[float])

amplifier

タイプ: UnsetType | Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea']

デフォルト値: Unset

ノイズを増幅するためにどの技術を使うか。

以下のいずれか

  • "gate_folding"(デフォルト)は、ノイズを増幅するために2量子ビットのゲートフォールディングを使用する。 ノイズ

    ゲートの一部だけを増幅する必要がある場合、これらのゲートはランダムに選ばれる。

  • "gate_folding_front "は2量子ビットのゲートフォールディングを使ってノイズを増幅する。 ノイズ

    ゲートの一部だけを増幅する必要がある場合、これらのゲートはトポロジー的に順序付けられたDAG回路の前面から選択される。

  • "gate_folding_back "は2量子ビットのゲートフォールディングを使ってノイズを増幅する。 ノイズ

    ゲートの一部だけを増幅する必要がある場合、これらのゲートはトポロジー的に順序付けられたDAG回路の後ろから選択される。

  • "pea "は確率的エラー増幅と呼ばれるテクニックを使用している。

    (PEA )でノイズを増幅する。 このオプションを選択すると、オプションで有効になっているかどうかにかかわらず、ゲートトワリングが常に使用される。 このテクニックでは、ISA回路内の絡み合うゲートの各ユニークなレイヤーの渦巻きノイズモデルを事前に学習する。 LayerNoiseLearningOptions を参照してください。 回路が完成すると、各ノイズ係数で回路が実行され、学習されたノイズモデルに比例した1量子ビットノイズを確率的に注入することで、回路の各エンタングル層が増幅される。

extrapolated_noise_factors

タイプ: UnsetType | Sequence[float]

デフォルト値: Unset

外挿モデルの適合度を評価するためのノイズ係数。

設定されていない場合、デフォルト値は [0, *noise_factors]. になります。 stds_extrapolatedこのオプションは、実行やモデルの推定には一切影響を与えません。これは、s extrapolator が評価され、およびという evs_extrapolated データフィールドに返される点を決定するだけです。

extrapolator

タイプ: UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback'] | Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback']]

デフォルト値: Unset

ノイズをゼロに外挿するために試す外挿器(複数可)。

使用可能なオプションは、以下のとおりです。

  • "exponential"…これは、指数関数的な減衰関数を用いてデータに適合させるものです

    f(x;A,τ)=Aex/τf(x; A, \tau) = A e^{-x/\tau} と定義される。ここで、 A=f(0;A,τ)A = f(0; A, \tau) はノイズがゼロ時の値( x=0x=0 )であり、 τ>0\tau>0 は正の速度である。

  • "double_exponential"これは、Ref. 1秒.

  • "polynomial_degree_(1 <= k <= 7)"、これは次のように定義される多項式関数を使用する

    f(x;c0,c1,,ck)=i=0,kcixif(x; c_0, c_1, \ldots, c_k) = \sum_{i=0, k} c_i x^i.

  • "linear"これは "polynomial_degree_1" と等価である。

  • "fallback"これは、ノイズが最も少ないデータに対応する生データを単純に返す

    1(通常は)外挿を行わずに、その係数を使用する。

外挿された値(evs_extrapolated および stds_extrapolated)は、提供された外挿器の順序に従ってソートされます。 複数の外挿器が指定された場合、結果のデータで報告される stds および evs は、最初の成功した外挿器を指します。ここで外挿器の成功は経験則的に判定されます。

デフォルト: ("exponential", "linear")

noise_factors

タイプ: UnsetType | Sequence[float]

デフォルト値: Unset

ノイズ増幅に使用するノイズ係数。

デフォルト: (1, 3, 5)

タイプ

ノイズ要因


方法

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。