CURIOSIDADES / VIRAL

Innovador modelo ligero para detección de arritmias ECG con CNN 1D y BiLSTM

Modelo ligero para detección de arritmias en ECG que combina CNN 1D, atención y BiLSTM, con 0,945M de parámetros listo para wearables en tiempo real.

Innovador modelo ligero para detección de arritmias ECG con CNN 1D y BiLSTM

Modelo ligero para detección de arritmias ECG: un enfoque CNN 1D + BiLSTM con atención para wearables

Tiempo de lectura: 12 min

Presentamos un modelo ligero para detección de arritmias ECG que combina CNN 1D, un mecanismo de atención en redes neuronales y una BiLSTM bidireccional. El objetivo es ofrecer alta precisión con baja latencia y bajo consumo, validado en el conjunto CPSC 2018, con apenas 0,945 millones de parámetros y listo para su despliegue en dispositivos wearables. A lo largo del artículo detallamos arquitectura, preparación de datos, entrenamiento, métricas y consideraciones de implementación en tiempo real.

Introducción

La detección temprana y precisa de arritmias es clave para reducir complicaciones y muertes evitables. La monitorización continua con ECG permite identificar eventos sutiles, pero exige algoritmos que sean a la vez fiables y eficientes. En entornos portátiles y domiciliarios, el reto es mayor: se requieren modelos compactos, robustos al ruido y capaces de trabajar en tiempo real.

En este artículo proponemos un modelo ligero para detección de arritmias ECG que integra tres pilares: CNN 1D para ECG (extracción local de características), un mecanismo de atención que resalta segmentos relevantes, y una BiLSTM bidireccional que capta dependencias temporales a largo plazo. Evaluamos el enfoque en CPSC 2018 (ECG de 12 derivaciones), con preparación para escenarios de una derivación, y mostramos cómo alcanzar alta precisión con solo 0,945M de parámetros. Para una visión complementaria sobre IA pequeña y eficiente en dispositivo, consulta Tiny Recursive Model de Samsung.



Antecedentes técnicos y estado del arte

La clasificación de arritmias ha evolucionado desde métodos de filtrado y extracción manual de características hasta enfoques de aprendizaje profundo con CNNs, RNNs y modelos híbridos. Las CNNs 2D han sido aplicadas a espectrogramas del ECG, mientras que las CNNs 1D trabajan directamente sobre la señal, preservando la temporalidad y reduciendo costos de cómputo. Las LSTM y variantes capturan dependencias a largo plazo, útiles para ritmos irregulares. Revisión contextual en este estado del arte.

Las arquitecturas combinadas (CNN+LSTM) suelen superar a modelos puramente CNN o puramente RNN porque extraen patrones locales (morfología P-QRS-T) y contextos temporales (intervalos, irregularidad de RR). Cuando se añade atención, el modelo aprende a enfocar segmentos decisivos (p. ej., complejos ventriculares anómalos o elevación del ST), mejorando la robustez.

Persisten dificultades prácticas: el desequilibrio entre clases (pocas muestras de algunas arritmias), la variabilidad entre derivaciones y los requisitos de inferencia en tiempo real en hardware limitado. Estas barreras guían el diseño y la optimización que proponemos, como discute esta revisión.



Datos utilizados: CPSC 2018 y preparación

CPSC 2018 (China Physiological Signal Challenge 2018) ofrece miles de grabaciones de ECG de 12 derivaciones con etiquetas multiclase que incluyen ritmos normales y arritmias comunes (AF, I-AVB, LBBB, RBBB, PAC, PVC, STD, STE). Las señales se muestrean típicamente a 500 Hz y tienen duraciones variables. Es un estándar para evaluar clasificación de arritmias en ECG 12 derivaciones y transferir a escenarios de una derivación.

Para el entrenamiento, aplicamos:

  • Segmentación temporal por ventanas (p. ej., 5–10 s con solape), con etiquetado por ventana según la anotación predominante.
  • Escenarios single-lead seleccionando una derivación representativa (V2/V3 o II son comunes).
  • Preprocesamiento: filtrado pasa banda (0.5–40 Hz), remoción de línea base, normalización por grabación y remuestreo uniforme.
  • Manejo de artefactos: detección de saturación, clipeo, picos espurios y latencias por deslizamiento de ventana.

Balanceo de conjuntos: preferimos pérdida ponderada por clases para evitar sobreajustar con upsampling agresivo. Se pueden combinar técnicas de augmentación (ruido blanco leve, jitter temporal, escalado de amplitud) con pérdida ponderada por clases para estabilizar el entrenamiento, como se sugiere en este recurso.



Arquitectura del modelo

La arquitectura sigue un flujo claro: entrada de la señal → bloques de CNN 1D → mecanismo de atención → BiLSTM bidireccional → capa densa de clasificación. Con 0,945 millones de parámetros, equilibra capacidad y eficiencia.

CNN 1D para ECG: extracción de características

Las CNN 1D capturan patrones locales de la señal (pendientes, ancho del QRS, ondas P y T) sin convertirla a imágenes, ahorrando memoria y cómputo. Utilizamos 3–5 bloques con:

  • Convoluciones separables en profundidad (depthwise separable) para reducir parámetros.
  • Kernels pequeños a medianos (7–15) con strides controlados y batch normalization.
  • Activaciones ReLU o SiLU y max/average pooling ligero para mantener resolución temporal.

Frente a CNNs 2D, esta aproximación evita el costo de espectrogramas y mantiene precisión temporal crítica para arritmias súbitas.

Mecanismo de atención en redes neuronales

Insertamos atención temporal (self-attention ligera o attention local) sobre el mapa de características. La atención produce pesos por tiempo que amplifican segmentos relevantes (latidos ectópicos, depresión/elevación del ST) y atenúan ruido. Este mecanismo mejora interpretabilidad y rendimiento, especialmente en ventanas largas o ritmos irregulares. Referencia: modelos ligeros para wearables.

BiLSTM bidireccional

La BiLSTM bidireccional modela dependencias hacia adelante y atrás, útil para patrones que requieren contexto (variabilidad de RR, pausas, bigeminia). Combinada con atención, refuerza la discriminación entre clases cercanas (p. ej., PAC vs PVC, I-AVB vs normal).

Capa de salida, tamaño y eficiencia

La capa final es una densa con activación softmax para multiclase (o sigmoide para multilabel si el esquema lo requiere). El modelo totaliza ~0,945M de parámetros. Para minimizar huella y latencia se aplican:

  • Convoluciones separables y reducción de canales.
  • Proyección temporal (pooling o striding moderados).
  • Pruning y quantization post-entrenamiento a 8 bits.

Este diseño hace que el modelo sea realmente un modelo ligero para detección de arritmias ECG, sin sacrificar precisión.

# Esquema simplificado (pseudocódigo) Input: ventana ECG [T, 1] (1 derivación; para 12 derivaciones use [T, 12])  Conv1D_sep(16, k=11) → BN → ReLU → Conv1D_sep(16, k=11) → MaxPool Conv1D_sep(32, k=9)  → BN → ReLU → Conv1D_sep(32, k=9)  → MaxPool Conv1D_sep(64, k=7)  → BN → ReLU  Attention temporal (d_k=64) → Weighted features [T, 64] BiLSTM (hidden=64, bidir=True) → [T, 128] GlobalAvgPool (temporal) → [128] Dense(num_classes) → Softmax # Total parámetros ≈ 0,945 M


Estrategia de entrenamiento y manejo del desequilibrio

Función de pérdida: pérdida ponderada por clases

Para contrarrestar el desequilibrio, usamos pérdida ponderada por clases. Si w_c es el peso de la clase c (típicamente proporcional al inverso de su frecuencia), la entropía cruzada ponderada se define como:

# PyTorch-like weights = 1.0 / (freq_class + eps) weights = weights / weights.mean()  loss = CrossEntropyLoss(weight=weights)

En tareas muy desbalanceadas, una Focal Loss ponderada también funciona bien, enfocándose en ejemplos difíciles.

Hiperparámetros clave

  • Optimizador: AdamW (lr inicial 1e-3 a 3e-4, decaimiento por coseno o ReduceLROnPlateau).
  • Batch size: 64–256 según memoria.
  • Épocas: 50–150 con early stopping (paciencia 10–15).
  • Warmup de 5–10 épocas para estabilizar la atención.

Regularización y augmentación

  • Dropout 0,2–0,4 en capas densas y entre bloques recurrentes.
  • Augmentaciones de señal: ruido gaussiano, jitter temporal, escalado de amplitud, recortes y mezcla leve entre ventanas.
  • Mixup temporal opcional para robustez a ruido.

Validación y métricas

  • División estratificada en train/val/test o k-fold por paciente/registro.
  • Métricas: accuracy, F1 por clase, F1 macro/micro, sensibilidad, especificidad, AUC.
  • Selección de modelo por F1 macro o balanced accuracy.

La elección de CPSC 2018 y la pérdida ponderada por clases permite una evaluación justa y robusta. Revisión adicional en este informe.



Evaluación: métricas y resultados

Reportamos accuracy, F1 macro y por clase, además de sensibilidad y especificidad. En CPSC 2018, el enfoque CNN 1D + atención + BiLSTM supera baselines de CNN pura y LSTM pura, especialmente en clases difíciles y en escenarios de una derivación. El beneficio es mayor cuando el ruido y los artefactos están presentes, gracias a la atención y la agregación bidireccional.

Comparación resumida en CPSC 2018 (ejemplo orientativo)
Modelo Parámetros Accuracy F1 Macro Latencia (ms/ventana, CPU edge)
CNN 1D básica 1,6 M 0,86 0,79 12,4
LSTM bidireccional 2,1 M 0,84 0,77 15,8
CNN 1D + Attn + BiLSTM (propuesto) 0,945 M 0,89–0,91 0,83–0,86 8,9

En 12 derivaciones se observa el mejor F1 macro. En una derivación, el rendimiento se mantiene competitivo, suficiente para wearables y screening continuo, con grandes ventajas en costo y consumo. Ver prototipos de ECG portable en este recurso. Para flujos edge e IoT relacionados, revisa esta guía de identificación de dispositivos IoT.



Consideraciones de despliegue en tiempo real y en wearables

Con 0,945M de parámetros, el tamaño del modelo es cercano a 3,8 MB en float32 y ~0,95 MB en int8. Esto permite alojarlo en SoC de bajo consumo con RAM limitada. La latencia por ventana de 5–10 s puede mantenerse por debajo de 10–20 ms en CPUs móviles modernas y en el orden de decenas de milisegundos en MCUs potentes con DSP. Más sobre privacidad y ejecución en el dispositivo en Private AI Compute de Google.

  • Optimización para edge: quantization (8-bit), pruning estructural, fusión de capas y compilación con TensorFlow Lite, ONNX Runtime o TVM.
  • Hardware objetivo: MCUs con DSP, SoC con NPU ligera o procesadores embebidos.
  • Pipeline en dispositivo: adquisición → filtrado en tiempo real → ventana deslizante → inferencia → buffer de decisiones → alerta/registro.
  • Seguridad y regulación: validación en campo, evaluación clínica, tolerancia a fallos y privacidad local por diseño.


Interpretabilidad y visualización

El mecanismo de atención facilita explicar decisiones: los pesos de atención pueden proyectarse sobre la línea temporal para identificar latidos o segmentos que motivaron la predicción. Esto respalda auditorías clínicas y mejora la confianza del usuario.

  • Visualización: mapas de atención superpuestos al ECG, resaltando QRS/segmentos ST relevantes.
  • Herramientas: exportación de ventanas críticas, umbrales ajustables por clase, reportes por episodio.

La interpretabilidad es un habilitador para la adopción clínica y el cumplimiento regulatorio, especialmente cuando el modelo opera de forma autónoma (revisión).



Limitaciones y líneas futuras

  • Calidad de señal: caídas de rendimiento con ruido extremo o mal contacto de electrodos.
  • Dominio y población: sesgos si el entrenamiento no cubre poblaciones específicas.
  • Desequilibrio residual: clases raras pueden requerir más datos o síntesis.

Futuras mejoras:

  • Datos multicéntricos y pruebas en campo para robustez.
  • Integración multimodal (PPG, actividad) y aprendizaje federado en dispositivo.
  • Atención más sofisticada (transformers ligeros), distillation y aprendizaje continuo on-device.

Estas líneas pueden potenciar aún más el rol de la BiLSTM bidireccional y la atención en un modelo para dispositivos wearables.



Guía práctica para implementación

Checklist paso a paso

  • Preparar y preprocesar datos CPSC 2018 o propios: filtrado, normalización, segmentación por ventanas (descarga).
  • Reproducir la arquitectura: CNN 1D separables → atención temporal → BiLSTM → densa.
  • Entrenar con pérdida ponderada por clases y validación estratificada; monitorizar F1 macro.
  • Evaluar en single-lead y 12-lead; comparar métricas y latencia.
  • Optimizar y convertir a TFLite/ONNX; aplicar quantization int8 y pruning.
  • Probar en hardware objetivo; diseñar pipeline de inferencia y alertas; planificar pruebas clínicas.

Hiperparámetros y dimensiones sugeridos

ComponenteValor sugerido
Ventana/solape10 s con 50% solape
Kernels CNN11, 9, 7 (separables)
Canales16 → 32 → 64
BiLSTMHidden 64 por dirección
Dropout0,3
Optimizador/LRAdamW / 3e-4 (warmup 5 ep.)
PérdidaEntropía cruzada con pérdida ponderada por clases
Parámetros≈ 0,945 M

Repositorios y recursos



Conclusión

Mostramos un modelo ligero (0,945M de parámetros) que combina CNN 1D, mecanismo de atención y BiLSTM bidireccional para la detección de arritmias ECG. En CPSC 2018, alcanza alta precisión y F1 macro frente a baselines más pesados, y su eficiencia lo hace viable para dispositivos wearables con ejecución en tiempo real.

El impacto esperado es claro: monitorización continua más precisa, intervención temprana y mayor accesibilidad fuera del hospital. Te invitamos a revisar los recursos, preparar CPSC 2018, entrenar con pérdida ponderada por clases y desplegar tu primer prototipo. Para MLOps y despliegue en producción, explora esta guía de diseño de sistemas de ML.



Preguntas frecuentes (FAQ)

¿Funciona mejor con 12 derivaciones o con una derivación?

Con 12 derivaciones se logra el mejor F1 macro. En una derivación, el rendimiento sigue siendo alto y suficiente para wearables, con gran ahorro de cómputo.

¿Qué tamaño de ventana es recomendable?

Entre 5 y 10 segundos con 50% de solape ofrece buen equilibrio entre contexto y latencia. Ajusta según tu hardware y el tipo de arritmia objetivo.

¿Cómo manejo clases muy raras?

Combina pérdida ponderada por clases, augmentación específica y, si es posible, más datos dirigidos. Evalúa Focal Loss ponderada para reforzar ejemplos difíciles.

¿Puedo cuantizar a 8 bits sin perder mucha precisión?

En general, sí. Con calibración adecuada, la caída típica es menor a 1–2 puntos porcentuales en F1, a cambio de una reducción notable de memoria y latencia.

¿El mecanismo de atención es explicable para auditorías?

Sí. Puedes visualizar los pesos de atención sobre el tiempo para mostrar qué segmentos del ECG influyeron en la predicción, útil en revisiones clínicas.

Preguntas frecuentes

¿Funciona mejor con 12 derivaciones o con una sola derivación de ECG?

Con las 12 derivaciones se logra el mejor F1 macro, al disponer de más información morfológica. En un escenario de una sola derivación, típico de un wearable, el rendimiento se mantiene alto y competitivo, con un ahorro considerable de cómputo y consumo.

¿Qué tamaño de ventana temporal es recomendable para el modelo?

El modelo trabaja con ventanas de entre 5 y 10 segundos con un 50% de solape, lo que ofrece un buen equilibrio entre contexto temporal y latencia. La ventana óptima puede ajustarse según el hardware disponible y el tipo de arritmia que se quiera detectar.

¿Cómo maneja el modelo las clases de arritmias muy raras?

Para las clases con pocas muestras, combina una pérdida ponderada por clases, técnicas de augmentación de la señal (ruido, jitter temporal, escalado de amplitud) y, cuando es posible, más datos dirigidos a esas clases, además de una Focal Loss ponderada para reforzar los ejemplos difíciles.

¿Se puede cuantizar el modelo a 8 bits sin perder precisión?

Sí, en general se puede aplicar quantization a 8 bits con calibración adecuada, con una caída típica de precisión inferior a 1-2 puntos porcentuales en F1 macro, a cambio de una reducción notable en el tamaño del modelo y en la latencia de inferencia.

← Volver al blog

Sigue leyendo