Redes Neuronales Cuánticas
De los fundamentos de la mecánica cuántica a las QNNs: qubits, superposición, entrelazamiento, circuitos parametrizados (VQC), barren plateaus, modelos híbridos clásico-cuánticos, QCNN, quantum kernels, y el estado del arte en hardware y aplicaciones de Quantum Machine Learning.
¿Qué es la computación cuántica?
La computación cuántica es un paradigma de computación que aprovecha fenómenos de la mecánica cuántica — superposición, entrelazamiento e interferencia — para procesar información de formas fundamentalmente imposibles para un ordenador clásico.
¿Qué son las Redes Neuronales Cuánticas?
Una Red Neuronal Cuántica (QNN) es un modelo de aprendizaje automático que se ejecuta (total o parcialmente) en un procesador cuántico. Utiliza circuitos cuánticos parametrizados como el equivalente cuántico de las capas de una red neuronal clásica.
🔑 Componentes clave de una QNN
| Componente | Red clásica | Red cuántica (QNN) |
|---|---|---|
| Unidad básica | Neurona (pesos + bias + activación) | Qubit (estado cuántico en \(\mathbb{C}^2\)) |
| Capa | Capa densa, conv, recurrente | Capa de puertas cuánticas parametrizadas |
| Parámetros | Pesos \(W\), biases \(b\) | Ángulos de rotación \(\theta_i\) |
| Transformación | \(f(Wx + b)\) | \(U(\theta)|x\rangle\) (unitaria) |
| Salida | Valores continuos | Valores esperados de observables \(\langle O \rangle\) |
| Entrenamiento | Backpropagation + SGD | Parameter-shift rule + optimizador clásico |
| No linealidad | ReLU, sigmoid, softmax | Medición colapsa el estado (intrínsecamente no lineal) |
Schuld, M. & Petruccione, F. (2021). "Machine Learning with Quantum Computers". Springer.
Computación clásica vs cuántica
| Propiedad | Computación clásica | Computación cuántica |
|---|---|---|
| Unidad de información | Bit: 0 o 1 | Qubit: \(\alpha|0\rangle + \beta|1\rangle\), \(|\alpha|^2 + |\beta|^2 = 1\) |
| Operaciones | Puertas lógicas: AND, OR, NOT | Puertas cuánticas unitarias: H, X, CNOT, RY |
| Paralelismo | Secuencial (o multi-core) | Superposición: \(n\) qubits → \(2^n\) amplitudes |
| Reversibilidad | Generalmente irreversible | Siempre reversible (excepto medición) |
| Ruido | Bits robustos, error muy bajo | Qubits frágiles: decoherencia, errores de puerta |
| Estado del arte | Billones de transistores, madurez industrial | ~1000 qubits ruidosos (era NISQ) |
| Ventaja | General-purpose, maduro | Problemas específicos: factorización, simulación molecular, optimización |
Preskill, J. (2018). "Quantum Computing in the NISQ era and beyond". Quantum 2, 79.
Historia de las redes neuronales cuánticas
- 1982 — Feynman: propone que solo un ordenador cuántico puede simular eficientemente sistemas cuánticos.
- 1994 — Algoritmo de Shor: factorización en tiempo polinomial cuántico → amenaza a RSA.
- 1996 — Algoritmo de Grover: búsqueda en base de datos no ordenada en \(O(\sqrt{N})\) vs \(O(N)\).
- 2014 — VQE (Variational Quantum Eigensolver): primer algoritmo variacional cuántico práctico para química.
- 2018 — Explosión de QML: Farhi & Neven proponen QNNs para clasificación; Mitarai et al. QCL; Havlíček et al. quantum feature maps; Schuld et al. quantum kernels.
- 2019 — Supremacía cuántica: Google Sycamore (53 qubits) resuelve un problema en 200s que tardaría 10,000 años en un supercomputador clásico.
- 2020+ — Frameworks: PennyLane (Xanadu), TensorFlow Quantum (Google), Qiskit Machine Learning (IBM).
- 2023+ — Corrección de errores: Google demuestra que más qubits = menos errores (below threshold). IBM Condor (1121 qubits).
¿Para qué sirven las QNNs?
Las redes neuronales cuánticas no pretenden reemplazar a las redes clásicas en todas las tareas. Su potencial está en problemas donde la estructura cuántica del espacio de Hilbert ofrece ventaja expresiva o computacional.
🤔 ¿Cuándo tiene sentido usar QNNs?
- Datos intrínsecamente cuánticos: tomografía de estados, control cuántico → ventaja clara.
- Problemas con estructura cuántica: simulación molecular, materiales → ventaja esperada.
- Datos clásicos + alta dimensionalidad: kernel methods cuánticos en espacios de Hilbert exponenciales → ventaja posible pero no probada.
- Datos clásicos + datasets grandes: las redes clásicas probablemente ganan. Las QNNs actuales están limitadas a ~30 qubits y datasets pequeños.
Taxonomía de enfoques de QML
El qubit: la unidad fundamental
Un qubit (quantum bit) es la unidad básica de información cuántica. A diferencia del bit clásico (0 o 1), un qubit puede existir en una superposición de ambos estados:
Donde \(\alpha, \beta \in \mathbb{C}\) son amplitudes de probabilidad que satisfacen la normalización:
🔮 Interpretación física
- \(|0\rangle\) y \(|1\rangle\) son los estados base (computational basis).
- \(|\alpha|^2\) = probabilidad de medir \(|0\rangle\); \(|\beta|^2\) = probabilidad de medir \(|1\rangle\).
- Al medir, el qubit colapsa a \(|0\rangle\) o \(|1\rangle\). La superposición se destruye.
- Las amplitudes son números complejos: \(\alpha = r_\alpha e^{i\phi_\alpha}\). La fase relativa entre \(\alpha\) y \(\beta\) es crucial para la interferencia.
La esfera de Bloch
Todo estado de un qubit puede representarse como un punto en la esfera de Bloch, una esfera unitaria en 3D:
• \(|0\rangle\) = polo norte (θ=0) · \(|1\rangle\) = polo sur (θ=π)
• \(|+\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\) = ecuador (50/50 probabilidad)
• \(|-\rangle = \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle)\) = ecuador opuesto (también 50/50, pero fase diferente)
• \(|+\rangle\) y \(|-\rangle\) dan la misma distribución de medida en la base Z, pero son estados completamente distintos.
Puertas cuánticas
Las puertas cuánticas son operaciones unitarias que transforman el estado de los qubits. Son el equivalente de las puertas lógicas clásicas, pero siempre reversibles (toda puerta \(U\) tiene inversa \(U^\dagger\)).
Puertas de un qubit
| Puerta | Matriz | Efecto | En Bloch |
|---|---|---|---|
| X (NOT) | \(\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}\) | \(|0\rangle \leftrightarrow |1\rangle\) | Rotación π alrededor de X |
| Z | \(\begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}\) | Cambia la fase de \(|1\rangle\) | Rotación π alrededor de Z |
| H (Hadamard) | \(\frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\) | \(|0\rangle \to |+\rangle\), \(|1\rangle \to |-\rangle\) | Crea superposición |
| RY(θ) | \(\begin{pmatrix} \cos\frac{\theta}{2} & -\sin\frac{\theta}{2} \\ \sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{pmatrix}\) | Rotación θ alrededor de Y | Parametrizada: clave en QNNs |
| RZ(φ) | \(\begin{pmatrix} e^{-i\phi/2} & 0 \\ 0 & e^{i\phi/2} \end{pmatrix}\) | Rotación φ alrededor de Z | Parametrizada: codifica fase |
Puertas de dos qubits
| Puerta | Efecto | Importancia |
|---|---|---|
| CNOT (CX) | Si el control es \(|1\rangle\), aplica X al target. \(|10\rangle \to |11\rangle\) | Crea entrelazamiento. Fundamental en todos los circuitos cuánticos. |
| CZ | Si ambos son \(|1\rangle\), aplica fase -1. \(|11\rangle \to -|11\rangle\) | Entrelazamiento por fase. Popular en hardware superconductor. |
| SWAP | Intercambia el estado de dos qubits. | Necesaria cuando qubits no están conectados físicamente. |
Ejemplo de circuito cuántico
Superposición en detalle
La superposición permite a un qubit estar en una combinación lineal de \(|0\rangle\) y \(|1\rangle\). Para \(n\) qubits, el estado general es:
📊 Escala exponencial
| Qubits | Estados base | Amplitudes (complejas) | Equivalencia clásica |
|---|---|---|---|
| 1 | 2 | 2 números complejos | Trivial |
| 10 | 1,024 | 1,024 complejos | Vector pequeño |
| 20 | ~1 millón | ~1M complejos | ~16 MB RAM |
| 30 | ~1,000 millones | ~1B complejos | ~16 GB RAM |
| 50 | ~1015 | ~1015 complejos | ~16 PB RAM ⚠️ |
| 300 | ~1090 | ~1090 complejos | Más que átomos en el universo |
💡 Esto es la raíz de la potencia cuántica: con solo 300 qubits, el espacio de estados es más grande que el número de átomos en el universo observable. Pero ojo: no podemos leer todas esas amplitudes — al medir solo obtenemos un resultado. El arte está en manipular las amplitudes para que la respuesta correcta sea probable.
🔮 Widget: Explorador de estado de un qubit
Ajusta los ángulos \(\theta\) y \(\phi\) para ver cómo cambia el estado del qubit.
Entrelazamiento cuántico
El entrelazamiento es el fenómeno más "extraño" de la mecánica cuántica y el recurso más poderoso de la computación cuántica. Dos qubits están entrelazados cuando su estado no puede describirse como el producto de estados individuales.
Si mides el primer qubit y obtienes \(|0\rangle\), el segundo instantáneamente
colapsa a \(|0\rangle\). Si obtienes \(|1\rangle\), el segundo es \(|1\rangle\).
Siempre están correlacionados, sin importar la distancia entre ellos.
⚠️ No se puede usar para enviar información más rápido que la luz — la medición
da un resultado aleatorio. Pero sí es un recurso computacional: permite correlaciones
que ningún sistema clásico puede reproducir.
🔗 ¿Por qué importa el entrelazamiento en QNNs?
- Expresividad: los circuitos con entrelazamiento pueden representar funciones que los circuitos sin él no pueden (análogo a tener capas profundas vs una sola capa).
- Correlaciones: las puertas CNOT/CZ crean entrelazamiento entre qubits, permitiendo capturar correlaciones entre features del input.
- Ventaja cuántica: se cree que el entrelazamiento es necesario (no suficiente) para obtener ventaja cuántica computacional.
Horodecki, R. et al. (2009). "Quantum entanglement". Rev. Mod. Phys. 81, 865.
Medición cuántica
La medición es el proceso por el cual extraemos información clásica de un estado cuántico. Es fundamentalmente probabilístico e irreversible.
Donde \(O\) es un observable (típicamente una puerta Pauli Z). El valor esperado de Z para un qubit en estado \(\alpha|0\rangle + \beta|1\rangle\) es: \(\langle Z \rangle = |\alpha|^2 - |\beta|^2 \in [-1, 1]\). Esto es la "predicción" de la QNN, análogo a la salida de una red clásica.
¿Cómo se fabrican los qubits?
Notación de Dirac (bra-ket)
La notación de Dirac es el lenguaje estándar de la mecánica cuántica. Es compacta y elegante para expresar estados, operadores y productos internos.
| Notación | Nombre | Objeto matemático | Ejemplo |
|---|---|---|---|
| \(|\psi\rangle\) | Ket | Vector columna en \(\mathbb{C}^n\) | \(|0\rangle = \begin{pmatrix} 1 \\ 0 \end{pmatrix}\) |
| \(\langle\psi|\) | Bra | Vector fila (conjugado transpuesto) | \(\langle 0| = \begin{pmatrix} 1 & 0 \end{pmatrix}\) |
| \(\langle\phi|\psi\rangle\) | Braket | Producto interno (escalar) | \(\langle 0|1\rangle = 0\) (ortogonales) |
| \(|\phi\rangle\langle\psi|\) | Outer product | Operador (matriz) | \(|0\rangle\langle 0| = \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}\) |
| \(\langle\psi|A|\psi\rangle\) | Valor esperado | Escalar real (para A hermítico) | \(\langle\psi|Z|\psi\rangle = |\alpha|^2 - |\beta|^2\) |
Para 2 qubits: \(\{|00\rangle, |01\rangle, |10\rangle, |11\rangle\}\) — 4 estados base. Para 3 qubits: 8 estados base. Para \(n\) qubits: \(2^n\) estados base.
Espacios de Hilbert
Los estados cuánticos viven en un espacio de Hilbert \(\mathcal{H}\): un espacio vectorial complejo con producto interno, completo bajo la norma inducida.
📐 Propiedades del espacio de Hilbert cuántico
- 1 qubit: \(\mathcal{H} = \mathbb{C}^2\) — espacio bidimensional complejo.
- \(n\) qubits: \(\mathcal{H} = (\mathbb{C}^2)^{\otimes n} = \mathbb{C}^{2^n}\) — dimensión exponencial.
- Producto interno: \(\langle\phi|\psi\rangle = \sum_i \phi_i^* \psi_i\) (conjugado complejo).
- Normalización: todos los estados cuánticos tienen \(\langle\psi|\psi\rangle = 1\).
- Ortogonalidad: \(\langle 0|1\rangle = 0\). Los estados base son ortonormales.
Transformaciones unitarias
Toda evolución cuántica (excepto la medición) es una transformación unitaria: una operación que preserva la norma del estado.
| Propiedad | Transformación unitaria | Transformación clásica (red neuronal) |
|---|---|---|
| Reversibilidad | Siempre reversible: \(U^{-1} = U^\dagger\) | Generalmente irreversible (ReLU pierde información) |
| Preservación de norma | Sí: \(\langle\psi'|\psi'\rangle = \langle\psi|\psi\rangle = 1\) | No necesariamente |
| Linealidad | Siempre lineal | No lineal (activaciones) |
| Determinismo | Determinista (hasta la medición) | Determinista |
| Composición | \(U_{total} = U_L \cdots U_2 U_1\) (producto de matrices) | \(f = f_L \circ \cdots \circ f_2 \circ f_1\) |
⚡ Puertas cuánticas como unitarios
Cada puerta cuántica es una matriz unitaria. Un circuito cuántico completo es el producto matricial de todas sus puertas:
Donde cada \(U_i(\theta_i)\) es una puerta parametrizada (como \(R_Y(\theta_i)\)). El circuito completo es una gran matriz unitaria de dimensión \(2^n \times 2^n\).
Producto tensorial
El producto tensorial \(\otimes\) combina los espacios de Hilbert de qubits individuales en el espacio del sistema completo.
| Estado | Decimal | Vector | ¿Separable? |
|---|---|---|---|
| \(|00\rangle\) | 0 | \((1,0,0,0)^T\) | Sí: \(|0\rangle \otimes |0\rangle\) |
| \(|01\rangle\) | 1 | \((0,1,0,0)^T\) | Sí: \(|0\rangle \otimes |1\rangle\) |
| \(|10\rangle\) | 2 | \((0,0,1,0)^T\) | Sí: \(|1\rangle \otimes |0\rangle\) |
| \(|11\rangle\) | 3 | \((0,0,0,1)^T\) | Sí: \(|1\rangle \otimes |1\rangle\) |
| \(\frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)\) | — | \(\frac{1}{\sqrt{2}}(1,0,0,1)^T\) | No: entrelazado (Bell) |
Un estado separable puede escribirse como \(|\psi\rangle = |a\rangle \otimes |b\rangle\). Un estado entrelazado no admite esta descomposición.
Matrices de densidad
La matriz de densidad \(\rho\) es una representación más general del estado cuántico que permite describir estados mixtos (mezclas estadísticas de estados puros, como los que resultan del ruido).
| Propiedad | Estado puro | Estado mixto |
|---|---|---|
| Pureza \(\text{Tr}(\rho^2)\) | = 1 | < 1 |
| Entropía de von Neumann | 0 | > 0 |
| Representación en Bloch | Superficie de la esfera | Interior de la esfera |
| Causa | Estado cuántico perfecto | Ruido, decoherencia, trazado parcial |
Operadores de Pauli
Los operadores de Pauli son la base de las operaciones cuánticas y las mediciones. Toda puerta de un qubit puede descomponerse en Paulis.
| Operador | Matriz | Efecto en Bloch | Autovalores | Uso en QNN |
|---|---|---|---|---|
| I (identidad) | \(\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\) | No hacer nada | +1, +1 | Estado base del circuito |
| X (Pauli-X) | \(\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}\) | Rotación π alrededor de X | +1, −1 | Bit-flip, NOT cuántico |
| Y (Pauli-Y) | \(\begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}\) | Rotación π alrededor de Y | +1, −1 | Bit-flip + phase-flip |
| Z (Pauli-Z) | \(\begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}\) | Rotación π alrededor de Z | +1, −1 | Observable de medición más común |
📏 Las Pauli como generadores de rotaciones
Las puertas parametrizadas de las QNNs son rotaciones generadas por Pauli:
Esto conecta directamente con la parameter-shift rule para calcular gradientes: como los generadores son Pauli (autovalores ±1), el gradiente tiene una fórmula exacta cerrada.
Parameter-shift rule: gradientes en QNNs
En redes clásicas usamos backpropagation para calcular gradientes. En QNNs, no podemos hacer backprop porque el estado cuántico no es directamente accesible. En su lugar, usamos la parameter-shift rule:
Donde \(s = \pi/2\) para puertas con generador Pauli. En la práctica:
Ejecutamos el circuito dos veces (con θ+π/2 y θ−π/2) para obtener el gradiente exacto de cada parámetro. No es una aproximación numérica.
⚖️ Comparación: gradientes clásicos vs cuánticos
| Aspecto | Backpropagation (clásico) | Parameter-shift rule (cuántico) |
|---|---|---|
| Mecanismo | Chain rule, propagación hacia atrás | Evaluación del circuito con parámetros desplazados |
| Coste por parámetro | O(1) (eficiente, una pasada) | 2 ejecuciones del circuito por parámetro |
| Coste total | O(L) para L capas | O(P) para P parámetros (2P ejecuciones) |
| Exactitud | Exacto (analítico) | Exacto en teoría, ruidoso en hardware real |
| Requisitos | Acceso al grafo computacional | Solo acceso a la salida del circuito |
Mitarai, K. et al. (2018). "Quantum circuit learning". Phys. Rev. A 98, 032309.
Schuld, M. et al. (2019). "Evaluating analytic gradients on quantum hardware". Phys. Rev. A 99, 032331.
📐 Widget: Calculadora de gradiente (parameter-shift)
Simula el cálculo de gradiente para una rotación \(R_Y(\theta)\) sobre \(|0\rangle\), midiendo \(\langle Z \rangle\).
Circuitos cuánticos parametrizados (PQC)
Un Parameterized Quantum Circuit (PQC) o Variational Quantum Circuit (VQC) es un circuito cuántico cuyos ángulos de rotación son parámetros entrenables, ajustados por un optimizador clásico. Es el corazón de toda QNN.
Feature maps: codificación de datos clásicos
El feature map (o encoding) transforma datos clásicos \(x \in \mathbb{R}^n\) en estados cuánticos \(|\phi(x)\rangle\). La elección del encoding es crucial y afecta directamente a la expresividad del modelo.
| Encoding | Método | Circuito | Ventajas / Desventajas |
|---|---|---|---|
| Angle encoding | \(x_i \to R_Y(x_i)|0\rangle\) | 1 puerta por feature, 1 qubit por feature | ✅ Simple · ❌ Necesita \(n\) qubits para \(n\) features |
| Amplitude encoding | \(x \to \sum_i x_i|i\rangle\) | Codifica \(2^n\) features en \(n\) qubits | ✅ Exponencialmente compacto · ❌ Circuito de preparación costoso |
| IQP encoding | \(H^{\otimes n} \cdot U_Z(x) \cdot H^{\otimes n}\) | Hadamard + rotaciones Z con interacciones | ✅ Mapea a espacio de kernel exponencial · ❌ Más profundo |
| Data re-uploading | Repetir encoding en cada capa | \(W(\theta_L)S(x) \cdots W(\theta_1)S(x)\) | ✅ Mayor expresividad · ❌ Circuito más largo |
Pérez-Salinas, A. et al. (2020). "Data re-uploading for a universal quantum classifier". Quantum 4, 226.
Diseño del ansatz
El ansatz es la arquitectura del circuito variacional: la secuencia de puertas parametrizadas y entrelazamiento que forma las "capas" de la QNN. Es el equivalente cuántico de elegir la arquitectura de una red neuronal.
Kandala et al. (2017)
Barren plateaus: el gran desafío
Los barren plateaus son el mayor problema teórico de las QNNs. Son regiones del paisaje de pérdida donde los gradientes se desvanecen exponencialmente con el número de qubits — análogo al vanishing gradient en redes clásicas profundas, pero mucho peor.
Para circuitos aleatorios suficientemente profundos con \(n\) qubits, la varianza del gradiente decrece exponencialmente. Con 20 qubits, el gradiente típico es \(\sim 10^{-6}\). Con 50, \(\sim 10^{-15}\). El entrenamiento se vuelve imposible.
🛡️ Estrategias contra barren plateaus
| Estrategia | Idea | Efecto |
|---|---|---|
| Circuitos poco profundos | Limitar la profundidad del ansatz | Gradientes mayores, pero menor expresividad |
| Inicialización local | Iniciar \(\theta \approx 0\) (identidad) | Evita la región de plateau en la inicialización |
| Entrelazamiento controlado | No entrelazar todo con todo | La conectividad local previene plateaus |
| Layer-wise training | Entrenar capa por capa | Análogo a greedy pre-training en DL clásico |
| Cost function local | Usar observables que actúan en pocos qubits | Los observables globales causan plateaus |
| Quantum natural gradient | Usar la métrica de Fubini-Study | Mejor dirección de descenso, pero costoso |
McClean, J. R. et al. (2018). "Barren plateaus in quantum neural network training landscapes". Nature Communications 9, 4812.
🏔️ Widget: Visualizador de barren plateaus
Observa cómo la varianza del gradiente decae exponencialmente con el número de qubits.
Expresividad y ventaja cuántica
La expresividad de un circuito cuántico mide qué fracción del espacio de estados unitarios puede alcanzar al variar sus parámetros. La ventaja cuántica en ML se refiere a si una QNN puede resolver un problema más eficientemente que cualquier modelo clásico.
🧪 Estado actual del debate sobre ventaja cuántica en ML
- Ventaja demostrada (teórica): existen funciones y distribuciones que las QNNs pueden representar eficientemente y que cualquier red clásica necesitaría tamaño exponencial. Pero estos problemas son artificiales.
- Ventaja práctica: no demostrada para problemas reales con datos clásicos. Las redes clásicas modernas son extremadamente potentes y escalables.
- Datos cuánticos: aquí la ventaja es más clara. Las QNNs procesan datos cuánticos naturalmente; un modelo clásico necesitaría reconstruir el estado cuántico primero.
- Kernel advantage: Huang et al. (2021) demostraron ventaja cuántica con quantum kernels para un problema de clasificación diseñado — pero requería datos con estructura cuántica.
Huang, H.-Y. et al. (2021). "Power of data in quantum machine learning". Nature Communications 12, 2631.
Schuld, M. (2021). "Supervised quantum machine learning models are kernel methods". arXiv:2101.11020.
Funciones de coste en VQC
La función de coste de una QNN combina la salida cuántica (valores esperados) con métricas de pérdida clásicas.
| Tarea | Salida cuántica | Función de coste |
|---|---|---|
| Clasificación binaria | \(\hat{y} = \langle Z_0 \rangle \in [-1, 1]\) | Hinge loss, MSE con labels ±1, o cross-entropy tras sigmoid |
| Clasificación multiclase | \(\hat{y}_k = \langle Z_k \rangle\) para \(k\) qubits | Softmax + cross-entropy sobre los valores esperados |
| Regresión | \(\hat{y} = \langle O \rangle\) (escalado al rango de \(y\)) | MSE: \(\frac{1}{N}\sum_i (y_i - \hat{y}_i)^2\) |
| VQE (química) | \(E(\theta) = \langle\psi(\theta)|H|\psi(\theta)\rangle\) | Minimizar la energía (el hamiltoniano molecular) |
| QAOA (optimización) | \(\langle C \rangle\) (hamiltoniano de coste) | Maximizar la función objetivo combinatoria |
Modelos híbridos clásico-cuánticos
En la era NISQ, los modelos prácticos son híbridos: combinan capas clásicas (redes neuronales) con capas cuánticas (circuitos parametrizados). El procesamiento pesado lo hace la parte clásica; la parte cuántica aporta expresividad en espacios de alta dimensión.
⚙️ Ventajas del enfoque híbrido
- Reducción de dimensionalidad: capas clásicas reducen las features a \(n\) valores (uno por qubit), evitando el cuello de botella del encoding.
- End-to-end differentiable: frameworks como PennyLane permiten backprop a través de capas clásicas + parameter-shift en capas cuánticas.
- NISQ-friendly: circuitos cuánticos cortos (pocos qubits, poca profundidad) combinados con procesamiento clásico potente.
- Transfer learning cuántico: usar un modelo clásico pre-entrenado (ResNet, etc.) y reemplazar la última capa por un circuito cuántico.
QCNN — Quantum Convolutional Neural Network
La QCNN (Cong et al., 2019) adapta la estructura de las CNN clásicas al dominio cuántico. Usa capas convolucionales cuánticas (puertas de 2 qubits locales) seguidas de pooling cuántico (medir y descartar qubits).
- Estructura jerárquica → no sufre barren plateaus (gradientes no se desvanecen exponencialmente).
- Número de parámetros escala como \(O(\log n)\) con \(n\) qubits.
- Especialmente útil para clasificar fases cuánticas de la materia.
Cong, I. et al. (2019). "Quantum Convolutional Neural Networks". Nature Physics 15, 1273.
Quantum Transfer Learning
Quantum Transfer Learning (Mari et al., 2020) combina un modelo clásico pre-entrenado con una capa cuántica de fine-tuning:
Mari, A. et al. (2020). "Transfer learning in hybrid classical-quantum neural networks". Quantum 4, 340.
Implementación: QNN con PennyLane + PyTorch
PennyLane (Xanadu) es el framework más popular para QML. Se integra nativamente con PyTorch y TensorFlow, permitiendo crear modelos híbridos end-to-end differentiable.
import pennylane as qml
import torch
import torch.nn as nn
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
# ─── 1. Configurar dispositivo cuántico ───
n_qubits = 4
n_layers = 3
dev = qml.device("default.qubit", wires=n_qubits)
# ─── 2. Definir el circuito cuántico ───
@qml.qnode(dev, interface="torch", diff_method="parameter-shift")
def quantum_circuit(inputs, weights):
"""Circuito cuántico parametrizado con data re-uploading."""
for layer in range(n_layers):
# Encoding: codificar datos en rotaciones
for i in range(n_qubits):
qml.RY(inputs[i], wires=i)
# Ansatz: rotaciones parametrizadas
for i in range(n_qubits):
qml.RY(weights[layer, i, 0], wires=i)
qml.RZ(weights[layer, i, 1], wires=i)
# Entrelazamiento: CNOT en cadena
for i in range(n_qubits - 1):
qml.CNOT(wires=[i, i + 1])
qml.CNOT(wires=[n_qubits - 1, 0]) # Circular
# Medición: valor esperado de Pauli-Z en qubit 0
return qml.expval(qml.PauliZ(0))
# ─── 3. Modelo híbrido PyTorch ───
class HybridQNN(nn.Module):
def __init__(self):
super().__init__()
# Pesos cuánticos: (n_layers, n_qubits, 2 rotaciones)
weight_shapes = {"weights": (n_layers, n_qubits, 2)}
self.q_layer = qml.qnn.TorchLayer(quantum_circuit, weight_shapes)
# Post-procesamiento clásico
self.classical = nn.Sequential(
nn.Linear(1, 2), # 1 valor esperado → 2 clases
nn.Softmax(dim=-1)
)
def forward(self, x):
# x: (batch_size, 4)
q_out = self.q_layer(x).unsqueeze(-1) # (batch, 1)
return self.classical(q_out)
# ─── 4. Datos: Iris (solo 2 clases) ───
iris = load_iris()
X = iris.data[iris.target < 2] # Solo clases 0 y 1
y = iris.target[iris.target < 2]
scaler = MinMaxScaler(feature_range=(0, np.pi))
X = scaler.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
X_train = torch.FloatTensor(X_train)
y_train = torch.LongTensor(y_train)
X_test = torch.FloatTensor(X_test)
y_test = torch.LongTensor(y_test)
# ─── 5. Entrenamiento ───
model = HybridQNN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
loss_fn = nn.CrossEntropyLoss()
for epoch in range(50):
optimizer.zero_grad()
y_pred = model(X_train)
loss = loss_fn(y_pred, y_train)
loss.backward() # Backprop clásico + parameter-shift cuántico
optimizer.step()
if (epoch + 1) % 10 == 0:
acc = (y_pred.argmax(dim=1) == y_train).float().mean()
print(f"Epoch {epoch+1}: loss={loss.item():.4f}, acc={acc:.3f}")
# ─── 6. Evaluación ───
with torch.no_grad():
y_pred_test = model(X_test)
test_acc = (y_pred_test.argmax(dim=1) == y_test).float().mean()
print(f"\nTest accuracy: {test_acc:.3f}")
import tensorflow as tf
import tensorflow_quantum as tfq
import cirq
import sympy
import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
# ─── 1. Definir qubits ───
n_qubits = 4
qubits = cirq.GridQubit.rect(1, n_qubits)
# ─── 2. Crear circuito parametrizado ───
def create_qnn_circuit(n_layers=3):
"""Crear circuito VQC con Cirq."""
params = sympy.symbols(f'theta0:{n_layers * n_qubits * 2}')
circuit = cirq.Circuit()
idx = 0
for layer in range(n_layers):
# Rotaciones parametrizadas
for i, qubit in enumerate(qubits):
circuit.append(cirq.ry(params[idx]).on(qubit))
idx += 1
circuit.append(cirq.rz(params[idx]).on(qubit))
idx += 1
# Entrelazamiento CNOT en cadena
for i in range(n_qubits - 1):
circuit.append(cirq.CNOT(qubits[i], qubits[i + 1]))
return circuit, list(params)
# ─── 3. Encoding de datos en circuito ───
def encode_data(X):
"""Codificar datos clásicos en circuitos cuánticos."""
circuits = []
for x in X:
circuit = cirq.Circuit()
for i, qubit in enumerate(qubits):
circuit.append(cirq.ry(float(x[i])).on(qubit))
circuits.append(circuit)
return tfq.convert_to_tensor(circuits)
# ─── 4. Construir modelo ───
vqc, params = create_qnn_circuit(n_layers=3)
readout_op = cirq.Z(qubits[0]) # Medir qubit 0
model = tf.keras.Sequential([
tf.keras.layers.Input(shape=(), dtype=tf.string),
tfq.layers.PQC(vqc, readout_op),
tf.keras.layers.Dense(2, activation='softmax')
])
model.compile(
optimizer=tf.keras.optimizers.Adam(0.01),
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
# ─── 5. Datos ───
iris = load_iris()
X = iris.data[iris.target < 2]
y = iris.target[iris.target < 2]
scaler = MinMaxScaler(feature_range=(0, np.pi))
X_scaled = scaler.fit_transform(X)
X_circuits = encode_data(X_scaled)
# ─── 6. Entrenamiento ───
model.fit(X_circuits, y, epochs=50, batch_size=16, validation_split=0.3)
Quantum Kernels
Los quantum kernels son una alternativa a los VQC que no usa parámetros entrenables en el circuito. En su lugar, usan el circuito como un feature map para calcular un kernel en el espacio de Hilbert.
El kernel cuántico mide la similitud entre dos datos en el espacio de Hilbert.
Se calcula ejecutando el circuito de encoding con \(x_i\), luego el inverso con \(x_j\),
y midiendo la probabilidad de obtener \(|0\rangle^{\otimes n}\).
Este kernel se usa con SVM clásica (no hay entrenamiento cuántico).
El coste es calcular la matriz de kernel \(K_{ij} = k(x_i, x_j)\):
\(O(N^2)\) ejecuciones del circuito para \(N\) datos.
| Aspecto | VQC (variacional) | Quantum Kernel |
|---|---|---|
| Parámetros entrenables | Sí (ángulos θ) | No (solo el encoding) |
| Optimización | Gradiente cuántico iterativo | SVM clásica (resolución directa) |
| Barren plateaus | Sí, es un problema | No aplica (sin gradientes cuánticos) |
| Escalabilidad | Escala con P parámetros | Escala con N² datos (kernel matrix) |
| Equivalencia teórica | Schuld (2021) demostró que toda QNN supervisada es equivalente a un quantum kernel method. | |
Havlíček, V. et al. (2019). "Supervised learning with quantum-enhanced feature spaces". Nature 567, 209.
Entrenamiento con ruido (noise-aware)
Los procesadores cuánticos reales son ruidosos. Las QNNs deben ser robustas al ruido o el rendimiento se degrada significativamente.
| Tipo de ruido | Descripción | Modelo matemático |
|---|---|---|
| Depolarizing | El qubit se reemplaza por el estado mixto máximo con probabilidad \(p\) | \(\rho \to (1-p)\rho + \frac{p}{3}(X\rho X + Y\rho Y + Z\rho Z)\) |
| Bit-flip | \(|0\rangle \leftrightarrow |1\rangle\) con probabilidad \(p\) | \(\rho \to (1-p)\rho + p \cdot X\rho X\) |
| Phase-flip | La fase del qubit se invierte con probabilidad \(p\) | \(\rho \to (1-p)\rho + p \cdot Z\rho Z\) |
| Amplitude damping | El qubit decae de \(|1\rangle\) a \(|0\rangle\) (pérdida de energía) | Kraus operators con parámetro \(\gamma\) |
🛡️ Técnicas de mitigación de errores
- Zero-noise extrapolation (ZNE): ejecutar el circuito con ruido amplificado y extrapolar al caso sin ruido.
- Probabilistic error cancellation (PEC): deshacer el efecto del ruido mediante combinaciones lineales de circuitos.
- Noise-aware training: entrenar el VQC con el modelo de ruido del hardware real, para que los parámetros compensen el ruido.
- Quantum Error Correction (QEC): codificar un qubit lógico en múltiples qubits físicos. Necesita ~1000 qubits físicos por qubit lógico.
Frameworks de Quantum Machine Learning
pennylane.ai
qiskit.org
tensorflow.org/quantum
quantumai.google/cirq
aws.amazon.com/braket
strawberryfields.ai
| Framework | Backend DL | Hardware real | Ideal para |
|---|---|---|---|
| PennyLane | PyTorch, TF, JAX | IBM, IonQ, Rigetti, AWS | QML research, modelos híbridos |
| Qiskit ML | PyTorch (limitado) | IBM Quantum | Química, acceso IBM hardware |
| TF Quantum | TensorFlow | Google (limitado) | Integración con Keras pipeline |
| Cirq | — | Circuitos de bajo nivel, investigación |
Hardware cuántico: estado del arte
| Compañía | Procesador | Qubits | Tecnología | Hito |
|---|---|---|---|---|
| IBM | Condor / Heron | 1121 / 133 | Superconductor | Mayor chip cuántico. Roadmap a 100K+ qubits (2033). |
| Sycamore / Willow | 53 / 105 | Superconductor | Supremacía cuántica (2019). Error correction below threshold (2024). | |
| IonQ | Forte Enterprise | 36 (algorithmic) | Iones atrapados | Mayor fidelidad comercial (~99.6%). Conectividad total. |
| Quantinuum | H2 | 56 | Iones atrapados | Quantum volume récord. Fusión Honeywell + Cambridge QC. |
| Xanadu | Borealis | 216 modos | Fotónico | Ventaja cuántica en boson sampling (2022). |
| Atom Computing | — | 1225 | Átomos neutros | Mayor número de qubits individuales (2023). |
| Microsoft | Majorana 1 | 8 (topológicos) | Topológico | Primer chip topológico funcional (2025). |
- 2024-2026: era NISQ tardía. 100-1000 qubits ruidosos. QML experimental.
- 2027-2030: primeros procesadores con corrección de errores parcial. ~10-100 qubits lógicos.
- 2030+: era fault-tolerant. Miles de qubits lógicos. QML potencialmente útil para problemas reales.
Aplicaciones reales y experimentos
El Variational Quantum Eigensolver (VQE) es la aplicación más madura de QML. Calcula la energía del estado fundamental de moléculas preparando un ansatz cuántico y minimizando \(\langle\psi(\theta)|H|\psi(\theta)\rangle\):
- H₂: calculada exactamente con 2 qubits (2014, Peruzzo et al.).
- LiH, BeH₂: calculadas en hardware real IBM (2017, Kandala et al.).
- Moléculas más grandes: requieren decenas-cientos de qubits → todavía fuera del alcance práctico del hardware NISQ.
Peruzzo, A. et al. (2014). "A variational eigenvalue solver on a photonic quantum processor". Nature Communications 5, 4213.
El Quantum Approximate Optimization Algorithm (QAOA) aborda problemas de optimización combinatoria (MaxCut, TSP, scheduling) codificándolos en hamiltonianos:
- \(H_C\): hamiltoniano de coste (codifica el problema).
- \(H_M\): hamiltoniano mixer (explora soluciones).
- \(P\): profundidad del circuito (más P = mejor aproximación).
Farhi, E. et al. (2014). "A Quantum Approximate Optimization Algorithm". arXiv:1411.4028.
Las QCNNs han demostrado eficacia para clasificar fases de la materia a partir de estados cuánticos — una tarea donde las QNNs tienen ventaja intrínseca porque los datos ya son cuánticos:
- Detectar transiciones de fase topológicas.
- Clasificar fases con simetría protegida (SPT).
- La QCNN logra generalización perfecta con pocos datos de entrenamiento.
Cong, I. et al. (2019). "Quantum Convolutional Neural Networks". Nature Physics 15, 1273.
- Monte Carlo cuántico: aceleración cuadrática (\(\sqrt{N}\) vs \(N\)) para pricing de derivados y análisis de riesgo.
- Optimización de portfolios: QAOA para selección de activos con restricciones.
- Detección de fraude: quantum kernels para clasificación en alta dimensión.
- Empresas activas: JPMorgan (Qiskit), Goldman Sachs (AWS Braket), BBVA (IBM Q).
Orus, R. et al. (2019). "Quantum computing for finance: Overview and prospects". Reviews in Physics 4, 100028.
QNN vs Red neuronal clásica: resumen
| Aspecto | Red neuronal clásica | QNN / VQC |
|---|---|---|
| Madurez | Décadas de investigación, escala industrial | ~7 años de QML moderno, experimental |
| Escalabilidad | Billones de parámetros (GPT-4, Gemini) | ~100 parámetros, ~30 qubits prácticos |
| Hardware | GPUs/TPUs abundantes, baratos | QPUs escasos, ruidosos, caros |
| Expresividad | Aproximador universal (probado) | Aproximador universal (probado teóricamente) |
| Entrenamiento | Backprop eficiente O(L) | Parameter-shift: 2P ejecuciones + ruido |
| Datos grandes | Excelente (batch, GPU, distribuido) | Cuello de botella en encoding |
| Datos cuánticos | Necesita reconstrucción clásica | Procesamiento nativo |
| Ventaja demostrada | Innumerables aplicaciones reales | Solo para problemas con estructura cuántica |
🧩 Widget: ¿Debería usar una QNN?
Evalúa si una QNN podría ser beneficiosa para tu problema.
Retos abiertos y futuro
| Reto | Descripción | Estado actual |
|---|---|---|
| Barren plateaus | Gradientes se desvanecen exponencialmente con el número de qubits | Mitigación parcial con diseño de ansatz, inicialización, cost functions locales |
| Ruido y decoherencia | Los qubits pierden su estado cuántico en microsegundos | Error mitigation funciona, error correction en desarrollo |
| Ventaja cuántica práctica | No demostrada para problemas de ML con datos clásicos | Ventaja teórica demostrada, práctica esquiva |
| Data encoding bottleneck | Cargar datos clásicos en estados cuánticos es costoso | QRAM propuesta pero no construida; data re-uploading como workaround |
| Escalabilidad | Simuladores clásicos: ~30 qubits. Hardware: ruidoso. | Mejoras constantes. IBM roadmap: 100K qubits (2033) |
| Interpretabilidad | ¿Qué aprende un circuito cuántico? | Conexión con kernels ayuda. Visualización limitada. |
Papers y recursos fundamentales
📚 Lecturas esenciales
- Libro: Schuld, M. & Petruccione, F. (2021). "Machine Learning with Quantum Computers". Springer. Link
- Libro: Nielsen, M.A. & Chuang, I.L. (2000). "Quantum Computation and Quantum Information". Cambridge. El libro de referencia
- Review: Bharti, K. et al. (2022). "Noisy intermediate-scale quantum algorithms". Reviews of Modern Physics 94, 015004
- VQC: Cerezo, M. et al. (2021). "Variational quantum algorithms". Nature Reviews Physics 3, 625
- QNN: Farhi, E. & Neven, H. (2018). "Classification with Quantum Neural Networks". arXiv:1802.06002
- Quantum kernels: Havlíček, V. et al. (2019). "Supervised learning with quantum-enhanced feature spaces". Nature 567, 209
- Barren plateaus: McClean, J.R. et al. (2018). "Barren plateaus in quantum neural network training landscapes". Nature Comms 9, 4812
- Data re-uploading: Pérez-Salinas, A. et al. (2020). "Data re-uploading for a universal quantum classifier". Quantum 4, 226
- QCNN: Cong, I. et al. (2019). "Quantum Convolutional Neural Networks". Nature Physics 15, 1273
- Transfer learning: Mari, A. et al. (2020). "Transfer learning in hybrid classical-quantum neural networks". Quantum 4, 340
- Ventaja cuántica en ML: Huang, H.-Y. et al. (2021). "Power of data in quantum machine learning". Nature Comms 12, 2631
- NISQ era: Preskill, J. (2018). "Quantum Computing in the NISQ era and beyond". Quantum 2, 79
- Supremacía cuántica: Arute, F. et al. (2019). "Quantum supremacy using a programmable superconducting processor". Nature 574, 505
🎓 Recursos de aprendizaje
- Qiskit Textbook: learning.quantum.ibm.com — Curso completo interactivo de IBM.
- PennyLane Demos: pennylane.ai/qml/demos — Tutoriales con código ejecutable.
- Quantum Machine Learning (edX): Curso de la Universidad de Toronto por Peter Wittek.
- Xanadu Quantum Codebook: codebook.xanadu.ai — Curso interactivo de computación cuántica.