Skip to main content
IBM Quantum Platform

ZneOptions

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

GitHub

베이스: object

제로 노이즈 외삽 완화 옵션. 이는 V2 견적서에서만 사용됩니다.

참고

모든 V2 추정기는 각각 원하는 예상값 추정치와 오류를 보고하는 evsstds 이라는 데이터 필드를 반환합니다. 런타임 추정기에서 ZNE 옵션을 활성화하면 추가 데이터가 반환됩니다.

특히, 입력 퍼브에 관찰 가능한 배열 모양 obs_shape 과 매개변수 값 모양 par_shape 이 있고 해당 퍼브 모양 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_extrapolatorsoptions.resilience.zne.extrapolators 목록의 길이이고 num_evaluation_pointsoptions.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_factorsoptions.resilience.zne.noise_factors 의 길이입니다. 이 값은 각 노이즈 증폭에 대한 원시 기대값(해당되는 경우 트월링 평균)을 제공하며, 이 값을 기반으로 자체 피팅 루틴을 만들 수 있습니다. 회전이 없는 경우 *stds* 배열은 모두 동일하며, 그렇지 않은 경우 stds_noise_factors 은 회전하는 샘플에 대한 확산에서 파생되는 반면 ensemble_stds_noise_factors 은 샷 노이즈만 있고 드리프트가 없는 것으로 가정합니다.

기술 참고: 여러 기저 조건이 있는 단일 관측값의 경우 동일한 기대값에 여러 가지 추정 방법이 사용될 수 있습니다(예: XX 은 선형 추정되지만 XY 은 지수 추정됩니다 {"XX": 0.5, "XY": 0.5}). 이를 이기종 적합성이라고 부르겠습니다. (2)의 데이터는 모든 개별 용어에 대해 가장 잘 맞는 것을 선택하여 이질적 맞춤에서 평가하는 반면, (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

노이즈 증폭에 어떤 기술을 사용할지 결정합니다.

다음 중 하나입니다.

  • "게이트_폴딩"(기본값)은 2쿼비트 게이트 폴딩을 사용하여 노이즈를 증폭합니다. 소음

    인자는 게이트의 하위 집합만 증폭해야 하며, 이 게이트는 무작위로 선택됩니다.

  • "게이트_폴딩_프론트"는 2쿼비트 게이트 폴딩을 사용하여 노이즈를 증폭합니다. 소음

    인자를 사용하려면 게이트의 하위 집합만 증폭해야 하며, 이 게이트는 위상적으로 정렬된 DAG 회로의 전면에서 선택됩니다.

  • "게이트_폴딩_백"은 2쿼비트 게이트 폴딩을 사용하여 노이즈를 증폭합니다. 소음

    인자를 사용하려면 게이트의 하위 집합만 증폭해야 하며, 이 게이트는 위상적으로 정렬된 DAG 회로의 뒷부분에서 선택됩니다.

  • "pea"는 확률적 오류 증폭이라는 기술을 사용합니다

    (PEA) 를 사용하여 노이즈를 증폭합니다. 이 옵션을 선택하면 옵션에서 게이트 회전이 활성화되어 있는지 여부에 관계없이 항상 게이트 회전이 사용됩니다. 이 기술에서는 ISA 회로에서 얽혀 있는 각 고유한 게이트 층의 꼬인 노이즈 모델을 미리 학습합니다 LayerNoiseLearningOptions 를 참조하세요. 완료되면 회로는 각 노이즈 팩터에서 실행되며, 회로의 모든 얽힘 층은 해당 학습된 노이즈 모델에 비례하는 단일 큐비트 노이즈를 확률적으로 주입하여 증폭됩니다.

extrapolated_noise_factors

유형: UnsetType | Sequence[float]

기본값: Unset

적합도 추정 모델을 평가할 노이즈 계수입니다.

이 옵션이 설정되지 않은 경우 기본값은 [0, *noise_factors].입니다. stds_extrapolated``extrapolator이 옵션은 실행이나 모델 적합에 어떠한 영향도 미치지 않으며, 단지 s가 평가되어 및 라는 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) 는 잡음이 0일 때의 값( x=0x=0 )이고, τ>0\tau>0 는 양의 비율이다.

  • "double_exponential"에서와 같이 두 지수의 합을 사용합니다. 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_extrapolatedstds_extrapolated)은 제공된 외삽기의 순서에 따라 정렬됩니다. 하나 이상의 외삽기가 지정된 경우, 결과 데이터에 보고된 stdsevs 값은 첫 번째 성공한 외삽기를 참조하며, 여기서 외삽기 성공 여부는 경험적으로 판단됩니다.

기본값: ("exponential", "linear").

noise_factors

유형: UnsetType | Sequence[float]

기본값: Unset

노이즈 증폭에 사용할 노이즈 인자.

기본값: (1, 3, 5).

유형

노이즈_팩터


메소드

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.