QDR — Qiskit Data Reuploading¶
La primera librería pip-instalable y sklearn-compatible para clasificadores cuánticos con Data Re-Uploading, construida sobre Qiskit 2.x.
¿Qué es Data Re-Uploading?¶
El machine learning clásico codifica los datos una sola vez antes de procesarlos. Data Re-Uploading rompe esta suposición: las features de entrada se inyectan en cada capa del circuito cuántico, intercaladas con puertas de rotación entrenables.
Capa 1: [ Encode(x) → Train(θ) ]
Capa 2: [ Encode(x) → Train(θ) ] ← mismo x, nuevos θ
Capa N: [ Encode(x) → Train(θ) ]
↓
Medición → clasificación
Un solo qubit con suficientes capas puede aproximar cualquier función continua — el análogo cuántico del teorema de aproximación universal. Esto lo convierte en un modelo variacional excepcionalmente compacto para hardware NISQ.
Implementa la arquitectura de Pérez-Salinas et al. (2020), "Data re-uploading for a universal quantum classifier", Quantum, 4, 226.
Instalación¶
# Estándar
pip install qiskit-data-reuploading
# Con soporte para hardware IBM Quantum
pip install "qiskit-data-reuploading[hardware]"
Requisitos: Python ≥ 3.10 · Qiskit ≥ 2.0 · qiskit-machine-learning ≥ 0.9.0
Quick Start¶
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from qdr.models import DataReuploadingClassifier
X, y = load_iris(return_X_y=True)
X = MinMaxScaler().fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = DataReuploadingClassifier(
n_qubits=2,
n_layers=5,
encoding="rx_ry_rz",
entanglement="full",
optimizer="COBYLA",
max_iter=150,
)
model.fit(X_train, y_train)
print(f"Accuracy: {model.score(X_test, y_test):.4f}")
Lo que resuelve esta librería¶
Antes de QDR, no existía en el ecosistema Qiskit:
- Un
DataReuploadingClassifierinstalable vía pip con API sklearn-compatible - Soporte nativo de data re-uploading en
qiskit-machine-learning - Un feature map dedicado en
circuit.library - Benchmarks reproducibles (DR vs. MLP/SVM) sobre Qiskit 2.x con primitivas V2