1. Ana sayfa
  2. Algoritmalar
  3. Varyasyonel optimizasyon ve QML
  4. VQC · PennyLane
Varyasyonel şema · PennyLane

Varyasyonel kuantum devresi — parametre · gözlem · klasik döngü

VQC (Variational Quantum Circuit / parametreli Ansatz), sürekli parametreler θ ile kuantum devresinde bir durum hazırlar; tipik maliyet bir gözlemlenebilirin beklenen değeri ⟨O⟩θ veya bundan türeyen bir skaler kayıptır. PennyLane’de qml.device, @qml.qnode ve otomatik türev, klasik optimizasyonla θ güncellemesini bağlar — tek şotta kapalı çözüm yerine örneklenen veya simüle edilen beklenen değer + gradyan benzeri adım düzeni.

  • Ansatz: rotasyon + dolaşım · küçük örnek
  • Maliyet: ⟨Z₀⟩ · eğitim amaçlı
  • Çekirdek: PennyLane default.qubit · QNode
  • Dış döngü: klasik optimizer (sayfa iskeletinde gösterilir)

Varyasyonel kuantum devresi (VQC) nedir?

Varyasyonel kuantum devresi (VQC), tek bir kapalı formülle çözülen sabit prosedür değildir; önceden seçilmiş bir Ansatz mimarisi üzerinde sürekli parametreler θ ile durum hazırlayıp, tanımlanan bir skaler maliyeti — çoğu zaman bir Pauli gözlemlenebilirinin beklenen değeri ⟨O⟩θ ya da bundan türeyen bir kayıp — klasik bir döngüde iyileştirmeyi hedefleyen hibrit çerçevedir. Parametreli ünite geçişleri ve beklenen değerin hesaplanması kuantum çekirdekte kalır; θ güncellemesi ise klasik optimizatöre bırakılır.

QAOA · Qiskit anlatımı maliyet–karıştırıcı düzeninin Hamiltonyen / İsing tarafına, QSVM · Qiskit ise çekirdek matrisi ve SVM boru hattına kilitlenir. Bu dosyada o kodlama hatları yerine, θ ile şekillenen küçük bir devrenin PennyLane akışında nasıl kurulduğu ve seçilen maliyet altında okunduğu öne çıkar — yani “Gram üret” veya “İsing enerjisini minimize et” özelinde değil, genel VQC iskeleti için.

Aynı iskelet kimya veya malzeme tarafında Hamiltonyen beklenen enerji (VQE), başka senaryolarda farklı kayıplarla genişler; bu sayfa özel bir molekül veya veri kümesi taşımadan, yalnızca iki kübitlik minimal örnekle mekaniği gösterir.

Bu sayfanın sınırı Tam bir üretim eğitim döngüsü veya donanım kalibrasyonu yerine PennyLane ile tutarlı bir minimal devre + çizim çıktısı + doğrulama şeması sunuyoruz.

Ansatz ve katman

Ansatz burada önceden seçilmiş bir kapı sırasıdır; aynı blok bir veya daha çok kez yinelendiğinde her yinelemeye genelde tur denir. Tek tur için sık görülen bir iskelet: her kübite parametre bağlı yerel dönüşüm (ör. RY), kübitleri birbirine bağlayan iki kübit kapısı (ör. CNOT), ardından yine yerel faz rotasyonu (ör. RZ). Bir karıştırıcı (entangling) adım olmadan çoğu kurulumda durumlar ürün durumunda kalır; ifade gücünü genişleten unsur çoğu zaman bu iki kübit bloktur. Tur sayısını artırmak durum uzayında daha zengin yollar açabilir; öte yandan devre derinliği ve ölçüm gürültüsü de büyüdüğünden “daha derin her zaman daha iyi” varsayımı burada tutulmaz.

PennyLane’de StronglyEntanglingLayers gibi şablonlar aynı fikri tek çağrıda toplar; bu sayfadaki örnek ise kapıları satır satır yazar — böylece qml.draw çıktısı ile aşağıdaki SVG şeması bire bir örtüşür. Parametre sayısı kübit sayısı ve tur sayısıyla birlikte büyür; düşük kübit ve az tur ile başlamak hem okunabilirlik hem de hata ayıklama için genelde en güvenilir başlangıçtır.

Maliyet ve gözlemlenebilir

Klasik optimizatörün minimize veya maksimize ettiği şey, tanım gereği tek bir skalerdir; kuantum tarafta bu skaler neredeyse daima seçilen gözlemlenebilir(ler)in θ’ya bağlı beklenen değerlerinden üretilir. Bu dosyadaki somut okuma ⟨Z₀⟩ olup PennyLane’de qml.expval(qml.PauliZ(0)) ile hesaplanır. Bir Hamiltonyen Pauli terimlerinin ağırlıklı toplamı olarak yazıldığında, beklenen enerji de aynı düzenle bu terimlerin beklenen değerlerinin toplamına indirgenir — yani QAOA’da alışıldığı maliyet Hamiltoneni ile beklenen-değer okuma çerçevesi aynıdır; burada ise problem kodlaması yoktur, tek terimle mekanik sade tutulur. QSVM tarafında maliyetle ilişkili skalerler çoğu zaman veriden gelen çekirdek benzerliği üzerinden kurulur; bu VQC örneğinde skaler doğrudan devre parametrelerinin belirlediği gözlem bekleneninden gelir.

Uygulamada maliyet çok terimli Pauli toplamları, ek klasik terimler veya başka kayıplarla birleşebilir; bu sayfa tek bir expval ile çizim ve otomatik türev izinin şeffaf kalmasını hedefler.

PennyLane boru hattı

Çalışma sırası şöyle düşünülebilir: qml.device(...) ile hangi arka uçta ve kaç kübit üzerinde işlem yapılacağı seçilir; wires kablo sayısını, cihaz adı ise simülatör mü donanım mı olduğunu belirler. Örneğimizdeki "default.qubit" tam kuantum durumunu sayısal olarak izleyen bir simülatördür ve gözlem beklenenleri bu ortamda tutarlı biçimde hesaplanır. @qml.qnode(dev) ile sıradan bir Python fonksiyonu QNode’a dönüşür: gövdede kuantum kapıları uygulanır, dönüş değeri ise qml.expval(...) gibi ölçüm veya dağılım okumalarından oluşur. Böylece maliyet klasik tarafta tek bir skaler olarak tanımlanabilir ve üzerine gradyan konabilir. Parametreler pennylane.numpy (yaygın kullanım import pennylane.numpy as pnp) ile tensör tutulduğunda, maliyetten θ’ya geriye yayılım zinciri kurulur; dışarıdaki klasik optimizatör bu gradyanı veya yalnızca maliyet değerini kullanarak güncelleme yapar. Bu sayfada tam optimizer döngüsü işlenmez; buna karşılık aşağıdaki örnekte QNode’un doğru bağlandığını görmek ve qml.draw çıktısıyla şemayı eşlemek boru hattı için yeterli bir doğrulamadır.

default.qubit üzerinde birçok kurulumda beklenen değerler analitik olarak üretilir; cihaza sonlu shots verildiğinde maliyet örneklenmiş ortalamaya döner ve hem değer hem de türev istatistiği farklılaşabilir. Üretim senaryolarında aynı soyutlama PyTorch veya TensorFlow ile köprülenebilir; burada yalnızca çekirdek PennyLane NumPy yolu kullanılır.

PennyLane kod örneği

İki kübit, tek tur: RYCNOTRZ; çıkış ⟨Z₀⟩. Parametreler sabit bir örnek vektörüdür; eğitim döngüsü yoktur — şema ve sayısal çıktı doğrulanır.

vqc_layer_pennylane.py Python
import pennylane as qml
from pennylane import numpy as pnp

dev = qml.device("default.qubit", wires=2)

@qml.qnode(dev)
def circuit(p):
    qml.RY(p[0], wires=0)
    qml.RY(p[1], wires=1)
    qml.CNOT(wires=[0, 1])
    qml.RZ(p[2], wires=0)
    qml.RZ(p[3], wires=1)
    return qml.expval(qml.PauliZ(0))

p = pnp.array([0.4, 0.5, 0.6, 0.7])
print(qml.draw(circuit)(p))
print("⟨Z₀⟩ ≈", float(circuit(p)))
pennylane default.qubit · RY · CNOT · RZ · expval(Z₀) UTF-8 · LF

Kod Analizi

İskeletin rolü

Yukarıdaki blok, parametre vektörünün devrede hangi kapılara bağlandığını gösterir; maliyet tek Pauli beklenen değeridir. Ansatz geometrisi için 2 · Ansatz ve katman; maliyet tanımı için 3 · Maliyet ve gözlemlenebilir; şemalar 7 · Aynı devre (iki temsil) ve 8 · Demo ve doğrulama ile birlikte okunur.

qml.device("default.qubit", wires=2)

İki kübitlik tam durum simülasyonu; eğitim için yaygın başlangıçtır. Donanım cihazı seçilirse gürültü ve bağlantı modeli eklenir — bu sayfa ideal ortamda kalır.

@qml.qnode(dev)

Fonksiyon bir QNode olur; parametreler diferansiyellenebilir tutulursa otomatik türev ile uyumludur (optimizer adımı gösterilmedi).

RY · CNOT · RZ sırası

Tek tur için tipik desen: yerel dönüşüm → dolaşım → yerel faz. Kapı sırası çizim çıktısıyla bire bir eşleşir.

qml.expval(qml.PauliZ(0))

Ölçüm dağılımından beklenen Z bileşeni; maliyet skaleri burada tek başına kullanılıyor.

qml.draw(circuit)(p)

Metin şema üretir; PennyLane sürümüne göre ince biçim farkları olabilir. Önemli olan kapı sırasının korunmasıdır.

Aynı devre (iki temsil)

Solda print(qml.draw(circuit)(p)) çıktısı; sağda aynı mantıksal sıranın şeması. Parametreler [0.4, 0.5, 0.6, 0.7] — çizimde yuvarlama iki ondalık gösterebilir.

terminal

qml.draw · iki kübit · örnek parametreler

0: ──RY(0.40)─╭●──RZ(0.60)─┤  <Z>
1: ──RY(0.50)─╰X──RZ(0.70)─┤     

RY · yerel CNOT · dolaşım RZ · faz

svg

Örnek Ansatz — kompakt şema

0 1 RY RY RZ RZ ⟨Z₀⟩ expval

mor · RY turuncu · CNOT indigo · RZ

Canlı devre paneli bu sayfada yok. Aşağıdaki terminal ve SVG (veya özet şema) tam referans görselidir; tarayıcıda simülatör veya örnek histogram çalışmaz. Canlı devre, moment turu ve örnek sayım şu an şu sayfalarda: Bell · Qiskit, GHZ · Qiskit, Bell · Cirq, QRNG · Qiskit, Süper yoğun kodlama, BB84, Teleportasyon, Bernstein–Vazirani ve Grover.
Ne öğreniyoruz? PennyLane çizimi ile elle çizilen şema aynı sırayı takip eder; <Z> terminalde gözlemin standard biçimidir.

Demo ve doğrulama

Aşağıdaki çerçeve, 7 · Aynı devre (iki temsil) sağ panelindeki SVG ile aynı çizimdir (gradient kimliği vqc-devre-g ile çakışma önlenir). Kod çıktısıyla uyum için kapı sırası sabittir.

VQC minimal Ansatz · 2 kübit · RY → CNOT → RZ · ⟨Z₀⟩ Bölüm 7 sağ panel ile aynı SVG
0 1 RY RY RZ RZ ⟨Z₀⟩ expval

Aşağıdaki okuma reçetesi bu sayfadaki PennyLane VQC minimal Ansatz’ına özeldir: editördeki circuit(p) içinde qml.RY(p[0], wires=0), qml.RY(p[1], wires=1), qml.CNOT(wires=[0, 1]), qml.RZ(p[2], wires=0), qml.RZ(p[3], wires=1) ve dönüşte qml.expval(qml.PauliZ(0)) sırasıyla şemaya işlenir — QSVM özellik haritası veya QAOA maliyet–karıştırıcı bloklarıyla karıştırılacak genel şema metni değildir.

Şemayı adım adım oku

  1. Soldaki mor RY kutuları her kübitte yerel dönüşümdür: üstteki θ0, alttaki θ1 parametresine bağlanır (p[0], p[1]). Terminal çıktısında RY(0.40) ve RY(0.50) olarak görünür; örnek vektör [0.4, 0.5, 0.6, 0.7] için iki ondalık yuvarlamayla örtüşür.

  2. Ortadaki turuncu CNOT (, kontrol üst kablo): kodda wires=[0, 1] ile sabit dolaşım; iki hattın durumunu iç içe geçirir. Bu olmadan çoğu kurulumda ürün durumlarında kalınır; VQC ifadesini genişleten blok burasıdır.

  3. İndigo RZ kutuları ikinci yerel katmandır; p[2] ve p[3] ile gelir (örnekte çizimde RZ(0.60), RZ(0.70)). Sıra sabittir: önce dolaşım, sonra faz tarafı — qml.draw çıktısıyla bire bir eşleşmesi için kasıtlıdır.

  4. Sağdaki kesik çerçeveli blok ⟨Z₀⟩ / expval okumasını temsil eder: fiziksel bir kapı eklenmez; QNode’un dönüş değeri olarak Pauli Z gözleminin beklenen değeri hesaplanır (default.qubit üzerinde tipik olarak analitik). Optimizer döngüsü bu skaleri maliyet sanır; burada yalnızca tek ileri geçiş gösterilir.

Doğrulama

Hedef: soldan sağa RY → CNOT → RZ → ⟨Z₀⟩ akışının VQC Ansatzı olarak okunması; turuncunun CNOT, yeşil kesik kutunun ise gözlem bekleneni olduğunun netleşmesi.

  • kapılar: RY + CNOT + RZ
  • örnek: 2 wires · p ∈ ℝ⁴ · örnek [0.4,…,0.7]
  • not: expval kapı değildir

Geniş çerçeve ve ikili gösterim

Yukarıdaki dört adım 7 · Aynı devre (iki temsil) içindeki kompakt SVG ile aynı mantıksal sırayı taşır; bu bölümdeki çerçeve yalnızca sunumu büyütür. Gradyan kimliği vqc-devre-g / vqc-dual-g sayfa içi SVG çakışmasını önlemek içindir.

Doğrulama

Hedef: geniş diyagramın 7 · Aynı devre (iki temsil) sağ paneli ile özdeş sırayı göstermesi; kesik çerçevenin ölçüm dağılımı yerine beklenen değer soyutlaması olduğunun anlaşılması.

  • yerleşim: yerel · dolaşım · faz · expval
  • cihaz: default.qubit · QNode
  • not: kutu ≠ fiziksel kapı

Pratik notlar ve sonraki adımlar

Bu dosyadaki örnek tek bir ileri geçiş ve çizim doğrulamasıyla biter; tam bir varyasyonel deneyde ise aynı QNode maliyet yüzeyinde tekrar örneklenir: her adımda skaler maliyet — çoğu zaman θ’ya göre bir gradyan da — hesaplanır, seçilen optimizasyon kuralı ile parametreler güncellenir. Pratikte adım büyüklüğü (öğrenme oranı veya satır araması), kütlenme veya düzenlendirme, yineleme üst sınırı ve durdurma ölçütleri (maliyette göreli iyileşme eşiği, gradyan normu, sabır sayacı) birlikte seçilir; başlangıç θ ve rastgele tohum da özellikle çok terimli maliyetlerde sonucu etkileyebilir.

pennylane.numpy ile gelen otomatik türev, gradyan tabanlı yöntemlere (örneğin projeksiyonlu gradyan inişi, Adam) doğrudan uyum sağlar; sonlu ölçüm gürültüsünde veya gradyanın güvenilmez olduğu rejimlerde türevsiz veya SPSA tarzı tahmini güncellemeler de kullanılır. Ansatz derinliği arttıkça bazı kurulumlarda kaybolan gradyan veya düz maliyet yüzeyi riski göz önünde bulundurulur — daha karmaşık mimari her zaman daha kolay optimize edilecek anlamına gelmez.

Simülatörde gözlenen yumuşak maliyet eğrisi, gerçek cihazda shots gürültüsü, kapı ve ölçüm hataları ile sapabilir; çalışma zamanında devreyi hedef topolojiye uyarlamak, kalibrasyon koşullarını okumak ve gerektiğinde sıfırlama örnekleme veya ekstrapolasyon gibi hata azaltma tekniklerini eklemek üretim düzeninin parçasıdır.

İlgili okuma Kombinatorik bir maliyeti Hamiltonyen dilinde kodlayıp varyasyonel olarak çözmek için Qiskit QAOA; gözetimli sınıflandırmada kuantum çekirdek ve klasik SVM birleşimi için QSVM. Her iki sayfa da bu PennyLane VQC minimal şemasından farklı bir problem ve boru hattı seçer; VQC iskeletinin başka uygulamalarda nasıl doldurulduğuna örnek oluşturur.