← Quantum Store · Rehberler · Dersler · Sözlük · Paketler · Öğrenme yolları · English

Kuantum makine öğrenmesi ve donanım kursu · Ders 1 / 5 · 10 dk

Veriyi kübitlere yüklemek: taban, açı ve genlik kodlama

Kuantum makine öğrenmesinin ilk adımı klasik veriyi bir kuantum durumuna çevirmektir. Üç temel kodlama yöntemini Qiskit’le dene ve her birinin bedelini öğren.

Taban kodlama

En basit yöntem bir sayıyı ikili yazıp her biti bir kübite koymaktır: 5 = 101 için q0 ve q2’ye X uygulanır. n kübit 0 ile 2ⁿ − 1 arasındaki bir sayıyı tutar. Kolaydır ama veri başına çok kübit harcar ve süperpozisyondan yararlanmaz.

Açı kodlama

Açı kodlamada her sayı bir kübitin dönme açısı olur: x değeri için ry(x) uygulanır ve kübitin 1 çıkma olasılığı sin²(x/2) olur. n özellikli bir veri noktası n kübit ister. Devre çok kısadır, bu yüzden bugünkü cihazlarda en çok kullanılan yöntemdir.

import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

features = [0.0, np.pi / 2, np.pi]          # üç özellik, üç kübit
qc = QuantumCircuit(3)
for i, x in enumerate(features):
    qc.ry(x, i)
sv = Statevector(qc)
print([round(float(sv.probabilities([i])[1]), 3) for i in range(3)])   # [0.0, 0.5, 1.0]

Genlik kodlama

Genlik kodlamada 2ⁿ sayı, n kübitin genlikleri olur: dört sayı iki kübite, bir milyon sayı yalnızca 20 kübite sığar. Vektör önce uzunluğu 1 olacak şekilde ölçeklenir. Bu üstel sıkıştırma çok çekici görünür, ama bedeli ağırdır: genel bir vektörü hazırlamak üstel sayıda kapı isteyebilir ve ölçüm de genliklerin hepsini geri vermez.

Bu “veri yükleme darboğazı”, büyük veri üzerinde kuantum avantajı vaat eden birçok algoritmanın pratikte neden zorlandığını açıklar.

import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

v = np.array([3, 4, 0, 0]) / 5              # uzunluğu 1 olan 4 sayı
amp = QuantumCircuit(2)
amp.prepare_state(v, [0, 1])
print(Statevector(amp).probabilities(decimals=2))   # [0.36 0.64 0.   0.  ]: 00 için 0,36, 01 için 0,64

Kendin dene

Bu devre taban kodlamadır: q0’daki X, 001 yani 1 sayısını yükler. q2’ye de bir X ekle: sonuç 101, yani 5 olur. Üç kübitle 0 ile 7 arasındaki her sayıyı yükleyebilirsin.

Tarayıcıda dene (kurulum yok)

Akılda kalsın

Kendini sına

Genlik kodlamada bir milyona yakın (2²⁰) sayı kaç kübite sığar?

Cevabı göster

20. n kübitin 2ⁿ genliği vardır; 2²⁰ ≈ bir milyon sayı 20 kübite sığar.

Varyasyonel sınıflandırıcı: devreyi bir sinir ağı gibi eğitmek →

Paylaş: X · LinkedIn