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.
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.
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: RY — CNOT — RZ; çıkış ⟨Z₀⟩. Parametreler sabit bir örnek vektörüdür; eğitim döngüsü yoktur — şema ve sayısal çıktı doğrulanır.
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)))
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.
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
Örnek Ansatz — kompakt şema
mor · RY turuncu · CNOT indigo · RZ
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.
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
-
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.
-
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.
-
İ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.
-
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.
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.
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.