Neural Network Training Labs
Laboratorio 12 · Central · 13 / 31

🔀 Fusión de sensores

Fusión de sensores

Objetivo

Fusionar acelerómetro y giroscopio de smartphones para reconocer actividades.

Dataset real

Señales inerciales reales de 30 participantes.

Fundamento matemático

f=[f_acc(x_acc); f_gyro(x_gyro)]; y=head(f).

Protocolo experimental

  1. Descargar y verificar la procedencia.
  2. Conservar o crear una partición reproducible.
  3. Ajustar transformaciones únicamente con train.
  4. Seleccionar modelo e hiperparámetros usando validation.
  5. Evaluar test una sola vez tras congelar la decisión.
  6. Comparar con la línea base: Acelerómetro solo, giroscopio solo y regresión logística.
  7. Guardar configuración, entorno, métricas, predicciones, gráficos y modelo.

Ejecución

python labs/12_multimodal_fusion/train.py --quick
python labs/12_multimodal_fusion/train.py --config improved

Preparar únicamente el dataset:

python -m neural_labs.cli dataset --lab 12_multimodal_fusion

Inferencia y exportación:

neural-labs predict --lab 12_multimodal_fusion --run latest --input sample.json
neural-labs export --lab 12_multimodal_fusion --run latest --format onnx --verify

Métricas

accuracy, balanced_accuracy, macro_f1.

Archivos

Ejercicios

Material formativo v3

Comandos profesionales

neural-labs quality --lab 12_multimodal_fusion --quick
neural-labs benchmark --lab 12_multimodal_fusion --quick --split-seed 42 --training-seeds 41 42 43
neural-labs leaderboard

Sellado del experimento

La partición se controla con split_seed; la inicialización y el entrenamiento con training_seed. El conjunto test se abre solamente después de seleccionar el checkpoint mediante validación y escribir experiment.lock.json.

🧠 Teoría

Teoría — Fusión de sensores

Propósito

Fusionar acelerómetro y giroscopio de smartphones para reconocer actividades.

Idea central

Este laboratorio estudia fusión de ramas de sensores usando uci_har, un dataset público real procedente de UCI. La intuición es que cada sensor aporta una vista parcial y complementaria del mismo fenómeno físico: el acelerómetro captura la aceleración lineal (útil para distinguir estar de pie de caminar), mientras que el giroscopio mide la velocidad angular (útil para detectar giros y cambios de orientación). Ninguna modalidad basta por sí sola para separar todas las actividades, pero combinadas reducen la ambigüedad.

La fusión tardía (late fusion) que se practica aquí procesa cada modalidad con su propia rama (una red que aprende una representación específica del sensor) y luego concatena esas representaciones antes de la cabeza de clasificación. La alternativa de fusión temprana (early fusion) concatenaría las señales crudas desde el inicio. La fusión tardía suele ser más robusta cuando las modalidades tienen escalas, ruidos y estructuras temporales distintas, porque permite que cada rama normalice y abstraiga su señal antes de mezclarlas. El aprendizaje de estas representaciones intermedias es el mecanismo central del deep learning aplicado a datos heterogéneos.

El laboratorio también invita a comparar frente a líneas base de una sola modalidad y frente a un modelo lineal. Esto responde la pregunta de si la fusión realmente agrega valor o si una sola rama ya resuelve la tarea. Medir la ganancia marginal de cada sensor es tan importante como alcanzar buena exactitud global.

Fundamento matemático

La entrada se divide en dos vistas de la misma ventana temporal: x_acc (canales del acelerómetro) y x_gyro (canales del giroscopio). Cada rama aplica una función parametrizada que produce un vector de características (embedding):

h_acc = f_acc(x_acc; θ_acc), h_gyro = f_gyro(x_gyro; θ_gyro)

La fusión concatena ambas representaciones y la cabeza produce los logits de las K actividades:

f = [h_acc ; h_gyro], z = head(f; θ_head), ŷ = softmax(z)

donde la probabilidad de la clase k es ŷ_k = e^{z_k} / Σⱼ e^{z_j}. El entrenamiento minimiza la entropía cruzada sobre N ejemplos:

ℒ(θ) = −(1/N) Σᵢ Σₖ y_{i,k} · log ŷ_{i,k}

con y_{i,k} la codificación one-hot de la etiqueta verdadera. La actualización de todos los parámetros θ = {θ_acc, θ_gyro, θ_head} sigue el descenso de gradiente estocástico:

θ ← θ − η · ∇_θ ℒ

El gradiente ∇_θ ℒ se propaga por retropropagación a través de la cabeza y luego se reparte por las dos ramas. Aquí aparece la clave de la fusión: el error retrocede por ambos caminos simultáneamente, de modo que cada rama recibe una señal de aprendizaje condicionada por lo que la otra ya aporta. Por eso el modelo puede aprender a que el giroscopio se especialice en los patrones que el acelerómetro no discrimina bien. La formulación conecta cuatro elementos: representación de entrada (las dos vistas), función del modelo (ramas + cabeza), función de pérdida (entropía cruzada) y regla de actualización (SGD con ∇). El notebook muestra las dimensiones de los tensores y conserva la misma implementación que el script de terminal.

Protocolo científico

Riesgos de interpretación

Señales inerciales reales de 30 participantes.

El dataset refleja su proceso de recolección y no representa automáticamente otros períodos, países o poblaciones. Una asociación predictiva no demuestra causalidad.

Pregunta crítica

¿Qué modalidad explica cada actividad?

🔗 Referencias

Las referencias apuntan a las obras; no se reproduce su contenido, la redacción es original.

🔬 Experimentos

Plan de experimentos — Fusión de sensores

Hipótesis principal

Fusionar acelerómetro y giroscopio de smartphones para reconocer actividades. La hipótesis debe aceptarse o rechazarse comparando el modelo con Acelerómetro solo, giroscopio solo y regresión logística y no solo observando que la pérdida disminuye.

Experimento mínimo

  1. Ejecutar baseline.yaml con tres semillas.
  2. Ejecutar improved.yaml con las mismas semillas.
  3. Mantener fija la partición de datos dentro de cada semilla.
  4. Elegir la variante con validation.
  5. Comparar la variante elegida contra la línea base en test.
  6. Revisar intervalos de confianza, errores y costo computacional.

Experimento específico

Ablacionar acelerómetro y giroscopio.

Variables controladas

Tabla que debe completarse

Variante Semilla Métrica validation Métrica test Tiempo Parámetros Observación
baseline 41
baseline 42
baseline 43
improved 41
improved 42
improved 43

Criterio de conclusión

La conclusión debe declarar magnitud de la mejora, incertidumbre, costo adicional, errores relevantes y condiciones bajo las cuales el resultado podría no repetirse.

📝 Evaluación

Evaluación — Fusión de sensores

Evidencias obligatorias

Preguntas

  1. Explique con sus palabras: f=[f_acc(x_acc); f_gyro(x_gyro)]; y=head(f).
  2. ¿Qué información del dataset solo puede utilizarse durante entrenamiento?
  3. ¿Por qué la línea base Acelerómetro solo, giroscopio solo y regresión logística es una comparación razonable?
  4. ¿Qué modalidad explica cada actividad?
  5. ¿Qué cambiaría antes de usar este modelo fuera del laboratorio?

Rúbrica

Criterio Insuficiente Adecuado Excelente Peso
Integridad de datos mezcla particiones separación correcta auditoría, hashes y justificación 20%
Implementación no ejecuta entrena y evalúa código claro, reusable y probado 20%
Diseño experimental resultado aislado comparación controlada multi-semilla e incertidumbre 20%
Análisis repite métricas interpreta errores identifica sesgos, límites y costo 25%
Comunicación incompleta reporte entendible model card y conclusiones verificables 15%

La aprobación exige al menos 70% y cero errores críticos de fuga de datos.