Quantum Machine Learning — Deep Dive¶
Tested with: Quanta SDK v0.8.1
What You'll Learn¶
Build quantum classifiers, use quantum kernels, and understand feature maps.
Prerequisites¶
QuantumClassifier — Variational Quantum Circuit¶
The QuantumClassifier uses a parameterized quantum circuit (PQC) trained with parameter-shift gradients:
from quanta.layer3.qml import QuantumClassifier
import numpy as np
# Simple binary classification
X = np.array([[0.1, 0.2], [0.8, 0.9], [0.2, 0.1], [0.9, 0.8]])
y = np.array([0, 1, 0, 1])
clf = QuantumClassifier(n_qubits=2, n_layers=2, seed=42)
result = clf.fit(X, y, epochs=20)
print(f"Accuracy: {result.accuracy:.0%}")
print(f"Parameters: {result.n_params}")
Feature Maps¶
Feature maps encode classical data into quantum states:
from quanta.layer3.qml import angle_encoding, zz_feature_map
from quanta.simulator.statevector import StateVectorSimulator
import numpy as np
x = np.array([0.5, 0.3])
# Angle encoding: x_i → RY(x_i)
sim_angle = StateVectorSimulator(2)
angle_encoding(sim_angle, x)
print(f"Angle encoding dim: {len(sim_angle.state)}")
# ZZ encoding: entangling feature map
sim_zz = StateVectorSimulator(2)
zz_feature_map(sim_zz, x)
print(f"ZZ encoding dim: {len(sim_zz.state)}")
Quantum Kernel¶
Compute quantum kernel matrices for kernel-based ML:
from quanta.layer3.qml import QuantumKernel
import numpy as np
X = np.array([[0.1, 0.2], [0.8, 0.9], [0.5, 0.5]])
kernel = QuantumKernel(n_qubits=2)
K = kernel.matrix(X)
print(f"Kernel matrix shape: {K.shape}") # (3, 3)
print(f"K[0,0] (self-similarity): {K[0,0]:.4f}") # ~1.0
print(f"K[0,1] (different points): {K[0,1]:.4f}") # < 1.0
Architecture¶
Classical Data → Feature Map → PQC (trainable) → Measurement → Prediction
[x₁, x₂] RY(x_i) RY(θ_i) + CX |ψ⟩→P(0) 0 or 1
- Feature Map: Encodes data into quantum state
- Ansatz (PQC): Trainable rotation + entangling layers
- Gradient: Parameter-shift rule (exact, quantum-native)
- Optimizer: Gradient descent with configurable learning rate
QML vs Classical ML¶
| Feature | Classical (sklearn) | Quanta QML |
|---|---|---|
| Feature space | d dimensions | 2^n dimensions |
| Kernel trick | Polynomial, RBF | Quantum kernel |
| Training | SGD, Adam | Parameter-shift |
| Expressibility | Fixed | Exponential |
| Current advantage | Large datasets | Small, structured data |
Try It Yourself¶
- Try
n_layers=4— does accuracy improve? - Compare
AngleFeatureMapvsZZFeatureMapfor the same data - Use
QuantumKernelwith 3 features and 3 qubits
What's Next¶
→ 07 — Error Correction: Protect your quantum computation