Quantum Machine Learning
Kuantum makine öğrenmesi (QML), parametreli kuantum devrelerini ve kuantum çekirdeklerini klasik optimize edicilerle eğitir. Nasıl çalıştığı ve günümüzdeki durumu.
Kuantum makine öğrenimi (QML), kuantum bilgisayarları makine öğrenimi görevlerinde kullanır. En yaygın yöntem, kapı açıları model ağırlıklarının işlevini gören parametreli kuantum devrelerini eğitmek veya çekirdek yöntemleri için benzerlikleri hesaplayan bir kuantum işlemci kullanmaktır. n kübitlik bir yazmaç, 2^n karmaşık genlikle tanımlanır; bu nedenle küçük bir devre bile çok büyük bir vektörü dönüştürür. Ancak ölçüm, rastgele tek bir bit dizisi döndürür ve modelin ihtiyaç duyduğu her nicelik, atış adı verilen çok sayıda tekrarlı çalıştırmayla tahmin edilmelidir. Alan, kuantum deneylerinden elde edilen verilere uygulanan klasik öğrenmeyi de kapsar; Jacob Biamonte, Seth Lloyd ve çalışma arkadaşları 2017'de yayımlanan Nature derlemesinde her iki yönü de inceledi.
Değişimsel Kuantum Devreleri#
Günümüzdeki donanımlarda kullanılan QML yöntemlerinin çoğu hibrittir. Klasik bir bilgisayar her girdiyi döndürme açıları olarak kodlar, kuantum işlemci döndürme ve dolaşıklık kapılarından oluşan parametreli bir devre çalıştırır ve ölçülen beklenen değerler, klasik bir optimizasyon algoritmasının en aza indirdiği klasik bir kayıp işlevine aktarılır; çoğunlukla basit gradyan inişi kullanılır. Bu modeller, klasik bir sinir ağının eğitilebilir katmanlarından esinlenerek kuantum sinir ağları olarak da adlandırılır. Aynı döngü, 2014'te moleküllerin temel durum enerjilerini tahmin etmek için tanıtılan değişimsel kuantum özçözücüyü (VQE) ve kuantum optimizasyonunun hedeflediği kombinatoryal problemler için değişimsel bir algoritma olan QAOA'yı da çalıştırır.
Geri yayılım, kuantum işlemcinin içini göremez; bu nedenle gradyanlar parametre kaydırma kuralıyla elde edilir: Bir döndürme kapısı için beklenen değerin tam türevi, açının +π/2 ve -π/2 kaydırıldığı çalıştırmaların farkının yarısına eşittir. NumPy ile iki kübitli bir sınıflandırıcıyı simüle etmek tüm döngüyü gösterir:
import numpy as np
rng = np.random.default_rng(0)
x = rng.uniform(-np.pi, np.pi, size=(100, 2)) # 100 points with 2 features each
y = np.sign(np.cos(x[:, 0] - 1.0) * np.cos(x[:, 1] + 0.5)) # XOR-like labels
def circuit(features, theta):
"""Simulate RY encoding, trainable RY rotations, and a CNOT on 2 qubits, then return <Z> of qubit 2."""
half = (features + theta) / 2 # RY(theta) after RY(x) is one rotation by x + theta
state = np.kron([np.cos(half[0]), np.sin(half[0])], [np.cos(half[1]), np.sin(half[1])])
state = state[[0, 1, 3, 2]] # CNOT flips qubit 2 when qubit 1 is |1>
return state @ np.diag([1, -1, 1, -1]) @ state
theta = np.zeros(2)
for _ in range(100):
errors = np.array([circuit(xi, theta) for xi in x]) - y
for i in range(2): # parameter-shift rule: an exact gradient from two extra circuit runs
shift = np.eye(2)[i] * np.pi / 2
slopes = np.array([(circuit(xi, theta + shift) - circuit(xi, theta - shift)) / 2 for xi in x])
theta[i] -= 0.5 * np.mean(errors * slopes)
accuracy = np.mean([np.sign(circuit(xi, theta)) == yi for xi, yi in zip(x, y)])
print(f"theta = {theta.round(2)}, accuracy = {accuracy:.2f}")theta = [-0.99 0.4 ], accuracy = 0.97 çıktısını verir: Devre, etiketleri oluşturan -1.0 ve 0.5'e yakın açı farklarını öğrenir ve noktaların %97'sini doğru sınıflandırır. CNOT, ikinci kübitin beklenen değerini kodlanmış iki kosinüsün çarpımına dönüştürür; CNOT olmasaydı bu kübit yalnızca ikinci özelliği görürdü. Donanımda her beklenen değer, binlerce atışın ortalaması olurdu. PennyLane, Qiskit Machine Learning ve TensorFlow Quantum, simülatörlerle ve gerçek kuantum işlemcilere erişimle aynı yapı taşlarını sunar.
Kuantum Çekirdekleri ve Hibrit Modeller#
Kuantum çekirdeği, sabit bir kodlama devresiyle iki girdiyi kuantum durumlarına eşler ve aralarındaki örtüşmeyi tahmin eder; bu örtüşme, klasik bir destek vektör makinesinde (SVM) benzerlik olarak kullanılır. IBM'den Vojtěch Havlíček ve çalışma arkadaşları, bunu 2019'da yayımlanan bir Nature makalesinde süperiletken bir işlemciyle gösterdi. Gerçek verilerde kullanılabilir kübit sayısından çok daha fazla özellik bulunduğundan, işleme hatları girdileri önce temel bileşen analizini (PCA) veya önceden eğitilmiş bir ağı kullanarak sıkıştırır. Xanadu'dan Andrea Mari ve çalışma arkadaşları, bu transfer öğrenimi biçimini 2020'de kullandı; önceden eğitilmiş bir ResNet-18 modelinden alınan özellikleri görüntü sınıflandırma için dört kübitli değişimsel bir devreye aktardı.
Kuantum Avantajının Güncel Durumu#
En belirgin avantaj kuantum verilerindedir. Caltech ve Google Quantum AI'dan Hsin-Yuan Huang ve çalışma arkadaşları 2022'de, Google'ın Sycamore işlemcisinde 40'a kadar süperiletken kübit ve 1.300 kuantum kapısı kullandı. Kuantum durumlarını saklayan ve kuantum bilgisayarda işleyen bir öğrenicinin, her kopyayı ayrı ayrı ölçen herhangi bir öğreniciden üstel ölçüde daha az deneyle bir kuantum sisteminin özelliklerini öğrenebileceğini gösterdiler.
Klasik verilerdeki hızlanmalar daha tartışmalıdır. İlk öneriler, doğrusal sistemler için geliştirilmiş ve seyrek, iyi koşullanmış, kuantum belleğinde saklanmış girdiler gerektiren 2009 tarihli HHL algoritmasına dayanıyordu. Ewin Tang ise 2018'de, kuantum öneri sistemleri için öne sürülen üstel hızlanmayı ortadan kaldıran, kuantumdan esinlenilmiş klasik bir algoritma buldu. Eğitim, Jarrod McClean ve çalışma arkadaşlarının 2018'de ortaya koyduğu verimsiz platolar sorunuyla karşılaşır: Rastgele başlatılmış birçok devrede gradyanlar kübit sayısıyla üstel olarak küçülür. Bu, gerekli atış sayısının da üstel olarak artmasına yol açan kaybolan gradyan sorununun kuantumdaki karşılığıdır. Günümüz işlemcileri, John Preskill'in 2018'de gürültülü orta ölçekli kuantum (NISQ) cihazlar olarak adlandırdığı ve kapı hatalarının devre derinliğini sınırladığı cihazlardır.
Veri yükleme de başka bir darboğazdır. Ultralytics YOLO26 için varsayılan giriş boyutundaki 640 x 640 RGB görüntü 1.228.800 değer içerir; bunlar genlik kodlamasıyla 21 kübite sığdırılabilir, ancak keyfi bir 21 kübitlik durumun hazırlanması 2²¹ ile büyüyen sayıda kapı gerektirir; bu da CPU tarafından pikselleri okumak için gereken işlem sayısına yakındır.










