1. Ana sayfa
  2. İçerik planı
  3. Ölçüm azaltma · Qiskit
Qiskit · gürültü ve hata azaltma

Ölçüm azaltma — Atama matrisini kestirerek histogramı düzeltme

Bu sayfa klasik okuma kanalını veriden öğrenip ölçüm sonrası olasılıkları düzeltme akışını işler: kalibrasyon, tam birleşik veya tensörlü model, ters çözüm ve pozitiflik adımları. Aer’de ileri yönde aynı matrisin enjekte edilmesi okuma hatası dosyasında; üst bağlam hata azaltma girişindedir. Sıfır gürültü ekstrapolasyonu gibi diğer aileler ayrı başlıktadır.

  • Odak: kalibrasyon ve ters çözüm
  • Model: tam birleşik · tensör
  • Sınır: paket API sürüme bağlı

Kavram haritası ve sayfa sınırı

Ölçüm azaltma, ölçülen bit dizgilerinin klasik atama matrisiyle çarpıtıldığını varsayarak sonradan histogramı veya olasılık vektörünü düzeltmeye çalışır. Bu sayfa matrisin kestirimi ve uygulanması akışını işler. Okuma hatası dosyası Aer’ye ReadoutError olarak aynı matrisi ileri enjekte eder; burada ise genelde gerçek veya simüle cihazdan toplanan veriyle matris çıkarılır ve ters yönde uygulanır. Üst çerçeve hata azaltma girişinde özetlenir.

Ölçüm mantığı

Ölçüm talimatının devre içi anlamı ölçüm mantığı başlığında; kuantum postulatı ölçüm teorisi ile hizalanır. Azaltma, bu soyutlamanın klasik çıktı katmanına dokunur.

Simülasyon ve donanım

Kalibrasyon verisi Aer ile sentetik olarak üretilebilir veya kuyrukta toplanır; fakat matris kestirimi ve uygulama adımları aynıdır. Kuyruk maliyeti iş sistemi ile birlikte düşünülmelidir.

Mimari özet Kalibrasyon → atama matrisi A → ölçüm sonrası p_corr = f(A, p_raw); Aer ReadoutError ayrı dosya.

Atama matrisi ve notasyon

N kübit için tam model 2N × 2N boyutundadır; satır indeksi gerçek (ideal) ölçüm sonucunun tamsayı kodu, satır vektörü ise kayıtlı sonuçların koşullu dağılımıdır. Her satırın toplamı 1 olmalıdır. Bu düzen okuma hatası sayfasındaki Aer ReadoutError tanımıyla aynıdır; böylece ileri ve geri yön tutarlı düşünülebilir.

Histogramdan vektöre

Shot sonunda elde edilen sayımlar önce olasılık vektörüne normalize edilir; ardından matris çarpımı veya en küçük kareler adımı uygulanır. Bit dizgisi sırası (endian) tensör ürününde kritiktir; küçük bir tabloyla indeks eşlemesini sabitleyin.

Gözlemlenebilir

Pauli beklenen değeri gibi nicelikler, birden çok bit dizgisine yayılan lineer fonksiyonlar olarak yazılabilir; azaltma bazen ham histogram yerine bu lineer görüntü üzerinde uygulanır. Pauli çerçevesi referans içindir.

Kalibrasyon devreleri

Tam birleşik model için her hesaplama tabanı durumu için hazırlık ve ölçüm tekrarlanır; bu, 2N farklı hazırlık seti demektir. Tensörlü (çarpımsal) yaklaşımda her kübit için yalnızca |0⟩ ve |1⟩ hazırlıkları ölçülür ve küçük 2 × 2 matrisler kestirilir; ardından Kronecker çarpımı ile büyük matris üretilir — bu, kübitler arası okuma korelasyonunu ihmal eder fakat shot maliyetini dramatik biçimde düşürür.

Shot bütçesi

Her kalibrasyon hücresi kendi shot sayısını ister; toplam bütçe ana deneyle paylaşılır. Shot mantığı ve hata azaltma · maliyet bölümüyle birlikte planlanmalıdır.

Kalibrasyon zamanı

Matris zamanla değişir; uzun işlerde kalibrasyonu ana deneyden önce yakın zamanda almak veya ara yenileme yapmak gerekir. Kalibrasyon verileri okuması bu bağlamda anlamlıdır.

Ters çözüm ve pozitiflik

Düzeltme adımı genelde praw vektörü üzerinde A−1 (veya küçük gürültüde yaklaşık ters) uygulamaktır. Pratikte A kestirimi gürültülü olduğundan tam ters yerine yalınkare (pseudo-inverse) veya kısıtlı optimizasyon (örneğin negatif girdileri sıfıra projeksiyon) tercih edilir; aksi halde sonuç vektörü negatif bileşenler içerebilir ve olasılık yorumu bozulur.

Koşul sayısı

A satırları birbirine yakınsa ters büyük katsayılar üretir; bu da ham histogramdaki küçük dalgalanmaları aşırı büyütür. Kondisyon numarasını izlemek ve gerekirse düzenlileştirme eklemek uygundur.

Yeniden normalizasyon

Projeksiyon sonrası bileşenleri yeniden toplam 1 olacak şekilde ölçeklemek, raporlanabilir bir olasılık vektörü verir; bu adımın raporda açıkça belirtilmesi tekrarlanabilirlik için önerilir.

Tensörlü model ve ölçek

Tensörlü model, A = A1 ⊗ A0 ⊗ … biçiminde Kronecker ürünü varsayar; bu, çok kübitte tam 4N yerine yaklaşık 2N küçük kalibrasyon hücresiyle yetinmeyi sağlar. Bedeli, çok kübit okuma hattındaki ortak gürültüyü görmezden gelmektir; hata korelasyonu güçlü cihazlarda tam birleşik kestirim gerektirebilir.

Uygulama sırası

Kronecker çarpanlarının sırası ile histogram indeks sırası uyumlu olmalıdır; aksi halde sütunlar yanlış eşleşir. Küçük N üzerinde elle doğrulama şarttır.

Aer ile tutarlılık

Aynı matrisi ileri yönde Aer’de denemek için NoiseModel ve ReadoutError kullanılabilir; böylece kestirim ile simülasyon çapraz kontrol edilir.

Korelasyon ve kondisyon riskleri

Çoklayıcı veya demultiplexer hatları kübitler arası okuma hatalarını korelasyonlu yapabilir; tensörlü model bu etkiyi sıfırlar ve bazen yanlış güven verir. Tam birleşik model shot maliyeti dışında daha güvenilir olabilir; orta yol olarak blok tensörler (kübit grupları) kullanılabilir — uygulama detayı projeye özel kalır.

Doğrulama

Düzeltilmiş dağılımı bilinen bir hazırlık (örneğin |0…0⟩) üzerinde tekrar ölçerek sanity kontrolü yapın; sadakat veya toplam varyasyon mesafesi raporlanabilir.

Eski ve yeni API notu

IBM ekosisteminde ölçüm düzeltme araçları zaman içinde farklı paket ve sınıf adlarıyla sunulmuştur; üretim kodunda resmi dokümantasyon ve sabitlenmiş sürüm kullanın. Bu sayfa matematiksel iskeleti sabitler, bağlayıcı kod bağlantılarını sürüme bağlı bırakır.

Kod laboratuvarı

Örnekler çoğunlukla NumPy ile kalibrasyondan matris kestirimi ve düzeltmeyi gösterir; üçüncü kutu iki kübit için Kronecker yolu özetler.

mmit_fit_assignment.py Python
import numpy as np

rng = np.random.default_rng(0)
shots = 6000
p1_given0, p0_given1 = 0.07, 0.09
c0 = rng.multinomial(shots, [1 - p1_given0, p1_given0])
c1 = rng.multinomial(shots, [p0_given1, 1 - p0_given1])
A = np.vstack([c0 / shots, c1 / shots])
print("Kestirilen A:\n", A)
numpy Kalibrasyon sayımından satır kestirimi UTF-8 · LF
mmit_apply_inv_clip.py Python
import numpy as np

A = np.array([[0.93, 0.07], [0.06, 0.94]])
p_raw = np.array([0.58, 0.42])
p_tilde = np.linalg.inv(A) @ p_raw
p_corr = np.clip(p_tilde, 0, None)
p_corr = p_corr / p_corr.sum()
print("düzeltilmiş:", p_corr)
numpy inv + clip + yeniden normalize UTF-8 · LF
mmit_tensor_two_qubit.py Python
import numpy as np

A0 = np.array([[0.92, 0.08], [0.07, 0.93]])
A1 = np.array([[0.9, 0.1], [0.09, 0.91]])
A = np.kron(A1, A0)  # sıra: q1 ⊗ q0 — devrenizle hizalayın
p_raw = np.array([0.25, 0.25, 0.25, 0.25])
p_tilde = np.linalg.inv(A) @ p_raw
p_corr = np.clip(p_tilde, 0, None)
p_corr /= p_corr.sum()
print("şekil:", p_corr.shape, "toplam:", p_corr.sum())
numpy Kronecker tensör · toy UTF-8 · LF

İleri okuma ve özet

Ölçüm azaltma, atama matrisini veriden öğrenip histogramı düzeltme işidir; tensör varsayımı maliyet ve risk arasında bir denge sunar.

Özet Kalibrasyon → A → ters uygulama; tensör hızlı, birleşik daha genel; pozitiflik ve endian kontrolü şart.