1. Ana sayfa
  2. İçerik planı
  3. Kuantum fonksiyonları · PennyLane
PennyLane · differentiable QP ve hibrit QML

Kuantum fonksiyonları — parametrik model, maliyet ve gradyan hattı

PennyLane’i yalnızca “kapıları sırayla uygula” düşüncesiyle okumak, platformun asıl gücünü gizler. Bu kütüphane öncelikle differentiable quantum programming ve hibrit kuantum–klasik makine öğrenmesi için tasarlanmıştır: kuantum tarafı, klasik optimizasyonun ve otomatik türevin içine gömülebilen parametrik bir ileri geçiş olarak yazılır. Bu sayfadaki “kuantum fonksiyonu”, @qml.qnode ile sarılmış Python gövdesidir; odak eğitilebilir ağırlıklar, maliyet minimizasyonu, gradyan akışı ve Torch / JAX / TensorFlow ekosistemleriyle köprüdür — donanım yönlendirme veya transpiler ayrıntıları burada merkezde değildir.

  • Model: parametrik devre · şablon katmanları · gözlemlenebilir maliyet
  • Eğitim: gradyan tabanlı güncelleme · hibrit döngü · arayüz otograd’ı
  • Köprü: interface="torch" · JAX · TensorFlow

Differentiable QP ve Hibrit QML Platformu Olarak PennyLane

Klasik “kuantum devre programlama” anlatımında merkezde genelde talimat listesi, kayıt düzeni ve donanıma haritalama durur. PennyLane’de bu katmanlar vardır; fakat birinci sınıf hedef, kuantum çağrısını klasik hesap grafiğine bağlamak ve parametre uzayında yinelemeli iyileştirme yapmaktır. Bu yüzden kuantum fonksiyonu, devre çizicisi değil; ileri geçiş (forward) tanımıdır: girdi özellikleri veya açılar, eğitilebilir ağırlıklar ve gözlemlenebilir beklentiler birlikte maliyet fonksiyonuna beslenir.

Neden “fonksiyon” dili?

Makine öğrenmesinde model, veriden maliyete giden tanımlı bir fonksiyondur. PennyLane aynı kelimeyi bilinçli taşır: kuantum kısım da türevlenebilir (veya örneklemeyle düzgün tahmin edilebilir) bir blok olarak davranmalıdır ki PyTorch optimizasyonu veya JAX dönüşümleri anlamlı kalsın. Transpiler ayrıntıları ve donanım bağlantı haritaları, bu perspektiften yürütüm kalitesi ve gürültü modeli katmanına kayar; öğrenme dinamiğinin merkezinde değildir.

Bu sayfanın sınırı Burada kuantum fonksiyonunun eğitim ve gradyan rolü anlatılır. QNode’un çağrılabilir sınır sözleşmesi için QNode mimarisi, cihaz seçimi ve gürültü için cihaz sistemi sayfalarına dönün; çift anlatımı bilinçli olarak ayırdık.

Kuantum Fonksiyonunun Kimliği: Optimize Edilebilir Kuantum Model

Bir kuantum fonksiyonu gövdesinde, öğrenilecek büyüklükler genelde rotasyon açıları, katman tekrarları veya gömme (embedding) vektörlerinin parçaları olarak girer. Bunlar klasik optimizasyon dilinde ağırlık veya hiperparametre gibi davranır; fark, ileri geçişin bir simülatör veya donanım üzerinden expval, probs veya örnekleme çıktıları üretmesidir. Amaç, bu çıktıları bir maliyet ile skalarlaştırıp gradiyan tabanlı veya örnekleme tabanlı yöntemlerle küçültmektir.

Varyasyonel öğrenme ve maliyet minimizasyonu

VQE, QAOA veya kuantum sinir ağı (QNN) eğitimi aynı iskelette buluşur: parametre vektörü θ, kuantum ileri geçiş f(θ), gözlemlenebilir beklentiler ⟨Oᵢ⟩(θ), klasik tarafında birleştirici L(θ). PennyLane’de L çoğu zaman doğrudan QNode çıktılarından veya bunların Torch tensörlerinden kurulur. Optimizasyon dinamiği (öğrenme oranı, yerel minimumlar, plato) klasik derin öğrenme ile aynı sezgisel çerçevede düşünülür; kuantum taraf ekstra gürültü ve örnek maliyeti getirir.

QNode Gövdesi ve Kayıtlanabilir Akış

Kuantum fonksiyonu, QNode ile sarıldığında gövde kayıt modunda yorumlanır: Python kontrol akışı ile birlikte tensör işlemleri, kapı çağrıları ve şablonlar soyut bir iş listesine dönüşür. Eğitim perspektifinden kritik olan, gövdenin parametreleri tensör grafiğine bağlayabilmesi ve dönüş satırının maliyetin türevlenebilir parçası olmasıdır. Kablo sırası ve tensör boyutları hata ayıklamada önemlidir; bunlar kablo yönetimi başlığında toplanır.

Dinamik grafikler ve eğitim

Python if / döngüleriyle şekil değiştiren modeller, eğitim sırasında farklı kayıtlar üretebilir. Bu, klasik “sabit devre + job” düzeninden ayrışır; PennyLane tarafında kuantum betikleri ve yürütüm politikaları ile ele alınır. Basit varyasyonel modellerde gövde genelde sabit şablondur; derin hibrit mimarilerde ise kuantum blok, klasik ağın ara temsilini besler.

Şablonlar, Katmanlar ve Kuantum Sinir Ağı Düşüncesi

qml.templates ailesi, tekrarlayan varyasyonel yapıları katman olarak paketler: örneğin gömme ardından dolaştırıcı bloklar. Bu, PyTorch’taki nn.Module yığınına benzer bir tasarım dilidir; fark, katmanın ünite evrimi ve ölçülebilir okumasıyla tanımlı olmasıdır. QNN düşüncesi, birden çok kuantum katmanının klasik ön/son işlemlerle çevrelendiği hibrit bir eğitim boru hattı olarak anlaşılmalıdır.

Şablon seçimi ve ifade gücü

Hangi şablonun seçileceği, ansatz ailesi ve donanım dostu derinlik arasındaki takastır; burada donanım routing tablosu değil, gradyan ölçeği ve örnek sayısı ön plandadır. Derin katmanlar bazen bariz klasik benzetmelere rağmen kuantum eğimini yumuşatır veya vanishing gradient benzeri zorluklar doğurur; pratikte mimari arama ve düzenlileştirme (regularization) klasik MLOps ile aynı masada durur.

Maliyet Yüzeyi ve Eğitim Hattı

Eğitim hattı tipik olarak şu döngüyü tekrarlar: veri (veya sabit Hamiltonyen gömme vektörü) → kuantum ileri geçiş → skalar veya vektör maliyet → ters yönde gradyan sinyali → optimizasyon adımı. PennyLane’de maliyet, çoğu zaman QNode çıktısının Torch/JAX/TF üzerinde yazılmış basit bir cebirsel birleşimidir. Örneklemeli maliyetlerde gradyanın anlamı yönteme bağlıdır; bu yüzden diff_method ve shots seçimleri eğitim stabilitesini doğrudan etkiler (ayrıntı ölçüm süreci ve yürütüm akışı sayfalarında).

Toplu iş (batch) ve genelleme

Kuantum veri setleri küçük olduğunda bile, Torch tarafında toplu tensörler üzerinden döngü kurmak yaygındır. PennyLane’in yayın (broadcast) kuralları, aynı QNode’u birden çok girdi satırına genişleterek klasik mini-batch kültürüyle hizalanmanıza yardım eder; maliyet ise toplu ortalama veya ağırlıklı toplam olarak tanımlanır.

Gradyan Akışı, Otomatik Türev ve diff_method

Differentiable quantum programming’in kalbi, kuantum bloktan klasik maliyete uzanan gradiyan akışıdır. Simülatörde backprop benzeri yollar, durum grafiğini otograd ile birleştirir; donanımda veya örneklemeli rejimde ise parameter-shift gibi yöntemler ek değerlendirmelerle tahmin üretir. QNode, bu yöntemi seçilen arayüz ve cihazla tutarlı kılar; siz maliyeti yazar, otograd motoru (Torch, JAX, TF) veya PennyLane’in kendi NumPy yolu gradyanı taşır.

Autograd entegrasyonu

Autograd entegrasyonu, kuantum çıktısının üzerinde klasik türev zincirinin devam edebilmesi demektir: örneğin Torch’ta requires_grad=True tensörler, JAX’ta jax.grad veya dönüşüm tabanlı jax.jit ile sarılmış eğitim fonksiyonları, TensorFlow’da GradientTape. PennyLane’in rolü, bu zincirde kuantum alt grafiğin türevini tanımlı ve sayısal olarak kararlı biçimde sağlamaktır.

Hibrit Klasik–Kuantum İş Akışı

Hibrit iş akışı, tek bir QNode çağrısından ibaret değildir: klasik ön işleme (özellik çıkarımı), kuantum blok, klasik son işleme (logit, kayıp) ve optimizasyon adımı bir boru hattı oluşturur. Varyasyonel kuantum eigensolver tarzı problemlerde Hamiltonyen terimleri klasik olarak toplanır; kuantum devre yalnızca beklenti tahmini sağlar. QNN tarafında ise klasik katmanlar ile kuantum katmanlar sırayla veya paralel dallanmış biçimde birleşebilir.

Odak Bu sayfa, hibrit akışın programlama modelini vurgular. IBM kuyruğu, oturum API’si veya donanım transpilasyonu gibi konular Qiskit birimlerinde anlatılır; burada merkezde differentiable workflows ve parameter optimization vardır.

PyTorch, JAX ve TensorFlow ile Hibrit ML Köprüleri

PennyLane’in interface bağımsız değişkeni, kuantum fonksiyonunun hangi otograd evrenine bağlanacağını seçer. PyTorch ekosisteminde, optimizasyon rutinleri (torch.optim), modüler modeller ve GPU üzerinde tensör işlemleri doğal şekilde devreye girer. JAX tarafında, jit, vmap ve fonksiyonel optimizasyon (Optax vb.) ile yüksek performanslı eğitim hatları kurulabilir. TensorFlow kullanıcıları ise GradientTape ve Keras benzeri bileşenlerle aynı deseni izler.

Pratik seçim ölçütleri

Araştırma prototiplerinde Torch hızlı döngü sunar; büyük toplu JAX türevleri ve derleme (JIT) ile ölçeklenebilir. Seçim, ekibin alıştığı ML yığınına ve kuantum simülatörünün bellek profiline bağlıdır. Resmî arayüz rehberleri için PennyLane belgelerindeki Torch, JAX ve TensorFlow girişlerine bakın.

Kod: Torch ve JAX Eğitim İskeletleri

Aşağıdaki örnekler yürütücü sürümünden bağımsız eğitim hattı iskeleti gösterir: Torch’ta otograd ve optimizasyon adımı; JAX’ta saf fonksiyonel maliyet ve jax.grad. Gerçek projelerde veri yükleyici, erken durdurma ve günlükleme eklenir.

train_torch_qnode.py Python
import torch
import pennylane as qml

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

@qml.qnode(dev, interface="torch", diff_method="backprop")
def quantum_model(weights):
    # Tek katmanlı varyasyonel iskelet: ağırlıklar tensör grafiğine bağlı kalır.
    qml.BasicEntanglerLayers(weights, wires=range(n_wires))
    return qml.expval(qml.PauliZ(0))

# (1, n_wires) şeklinde başlangıç ağırlıkları; öğrenilebilir tensör.
weights = torch.tensor([[0.3, 0.6]], requires_grad=True)
opt = torch.optim.Adam([weights], lr=0.15)

for step in range(40):
    opt.zero_grad(set_to_none=True)
    loss = quantum_model(weights)  # skalar maliyet örneği
    loss.backward()
    opt.step()
pennylane · torch Hibrit gradyan · simülatör backprop UTF-8 · LF
train_jax_qnode.py Python
import jax
import jax.numpy as jnp
import pennylane as qml
from jax import grad

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

@qml.qnode(dev, interface="jax", diff_method="backprop")
def quantum_model(weights):
    qml.BasicEntanglerLayers(weights, wires=range(n_wires))
    return qml.expval(qml.PauliZ(0))

def loss_fn(w):
    return quantum_model(w)

w = jnp.array([[0.3, 0.6]])
g = grad(loss_fn)(w)  # kuantum + JAX türev zinciri
pennylane · jax Fonksiyonel gradyan iskeleti UTF-8 · LF

Şablon ayrıntıları ve ağırlık şekilleri için PennyLane şablon kataloğuna bakın; kayıt içeriğinin nasıl oluştuğu için devre kaydı ve tape sistemi sayfalarına geçin.

İleride ve Yan Sayfalarda Ne Var?

Bu sayfa kuantum fonksiyonunu eğitim ve hibrit ML gözlüğünden okur. Aşağıdaki bağlantılar aynı birimde tamamlayıcı başlıklardır; Qiskit tarafında düşük seviye devre ve backend anlatımı ayrı ağaçta tutulmuştur.

Özet Kuantum fonksiyonu, PennyLane’de parametrik kuantum modelin ileri geçişidir; QNode ile sarıldığında klasik otograd ve optimizasyon hatlarına bağlanır. Odak; varyasyonel öğrenme, maliyet minimizasyonu, gradyan akışı ve Torch / JAX / TF köprüleridir — transpiler ve donanım haritalaması bu sayfanın konusu dışındadır.