7. Máquina de Boltzmann Restringida (RBM)

Esta guía te enseñará a entrenar y usar Máquinas de Boltzmann Restringidas para extracción de características latentes en datos de crédito hipotecario.

Objetivo del Módulo

El módulo de RBM te permite:

  • Entrenar RBM desde cero

  • 🧠 Extraer características latentes no lineales

  • 📊 Visualizar pesos y activaciones

  • 📈 Monitorear convergencia durante entrenamiento

  • 💾 Guardar modelos entrenados

  • 🔄 Usar features en modelos supervisados

¿Qué es una RBM?

Definición

Una Máquina de Boltzmann Restringida es un modelo generativo no supervisado que:

  • Aprende representaciones latentes de los datos

  • Usa una arquitectura de dos capas (visible + oculta)

  • Se entrena con Contrastive Divergence (CD-k)

  • Extrae características útiles para modelos supervisados

Arquitectura

Capa Oculta (h)
○ ○ ○ ○ ○ ○ ○ ○ ○ ○  (100 unidades)
↕ ↕ ↕ ↕ ↕ ↕ ↕ ↕ ↕ ↕
● ● ● ● ● ● ● ● ● ●  (n_features unidades)
Capa Visible (v)

Características:

  • Sin conexiones dentro de cada capa (restricción)

  • Conexiones completas entre capas

  • Pesos bidireccionales W

  • Sesgos a (visible) y b (oculto)

Función de Energía

\[E(v,h) = -\sum_i a_i v_i - \sum_j b_j h_j - \sum_{i,j} v_i W_{ij} h_j\]

Donde:

  • \(v_i\) son las unidades visibles

  • \(h_j\) son las unidades ocultas

  • \(W_{ij}\) son los pesos de conexión

  • \(a_i, b_j\) son los sesgos

Acceso al Módulo

En el sidebar, click en:

🤖 Modelado → ⚡ Máquina de Boltzmann (RBM)

Configuración de Hiperparámetros

Parámetros Principales

1. Número de Unidades Ocultas

Unidades ocultas: [100]
Rango: 50 - 500

¿Qué significa?

El número de características latentes que la RBM aprenderá.

Recomendaciones:

  • 50-100: Datasets pequeños (<5K registros)

  • 100-200: Datasets medianos (5K-20K)

  • 200-500: Datasets grandes (>20K)

Truco

Comienza con 100 y ajusta según resultados.

2. Learning Rate (Tasa de Aprendizaje)

Learning rate: [0.01]
Rango: 0.001 - 0.1

¿Qué significa?

Qué tan rápido el modelo aprende de los datos.

Recomendaciones:

  • 0.001-0.005: Aprendizaje lento pero estable

  • 0.01: Valor por defecto balanceado

  • 0.05-0.1: Aprendizaje rápido pero inestable

Advertencia

Learning rate muy alto puede causar divergencia.

3. Número de Épocas

Épocas: [100]
Rango: 50 - 500

¿Qué significa?

Cuántas veces el modelo ve todo el dataset.

Recomendaciones:

  • 50-100: Pruebas rápidas

  • 100-200: Entrenamiento estándar

  • 200-500: Entrenamiento exhaustivo

4. Batch Size

Batch size: [64]
Rango: 32 - 256

¿Qué significa?

Cuántos ejemplos se procesan simultáneamente.

Recomendaciones:

  • 32-64: Datasets pequeños, más estable

  • 64-128: Valor estándar

  • 128-256: Datasets grandes, más rápido

5. Pasos de Contrastive Divergence (k)

CD-k steps: [1]
Rango: 1 - 10

¿Qué significa?

Cuántos pasos de Gibbs sampling se ejecutan.

Recomendaciones:

  • k=1: Más rápido, suficiente para mayoría de casos

  • k=5: Más preciso pero más lento

  • k=10: Solo para investigación

Proceso de Entrenamiento

Paso 1: Preparar Datos

[⚙️ Preparar Datos para RBM]

✓ Normalización aplicada (StandardScaler)
✓ Variables seleccionadas: 15
✓ Registros de entrenamiento: 8,000
✓ Registros de validación: 2,000

Paso 2: Configurar Hiperparámetros

Configuración:
• Unidades ocultas: 100
• Learning rate: 0.01
• Épocas: 100
• Batch size: 64
• CD-k: 1

Paso 3: Entrenar RBM

[🎯 Entrenar RBM]

Época 1/100: Loss = 125.3
Época 10/100: Loss = 89.2
Época 20/100: Loss = 67.5
Época 30/100: Loss = 54.8
...
Época 100/100: Loss = 23.1

✓ Entrenamiento completado
Tiempo total: 2m 15s

Monitoreo del Entrenamiento

Curva de Aprendizaje

Gráfico que muestra la evolución del error:

Loss vs Épocas

150 ┤
    │ ●
100 ┤  ●●
    │    ●●●
 50 ┤       ●●●●●●●●●●●●●●●
    │
  0 └─────────────────────────
    0    25    50    75   100
         Épocas

Interpretación:

  • Descenso rápido inicial: Aprendizaje efectivo

  • Estabilización: Convergencia alcanzada

  • Oscilaciones: Posible learning rate alto

Reconstrucción de Datos

Compara datos originales vs reconstruidos:

Error de Reconstrucción:

Media: 0.023
Mediana: 0.019
Máximo: 0.145

Calidad: Excelente ✓

Visualización de Pesos

Matriz de Pesos

[🎨 Visualizar Matriz de Pesos]

Heatmap 15x100
• Filas: Features de entrada
• Columnas: Unidades ocultas
• Color: Magnitud del peso

Interpretación:

  • Pesos altos (rojo): Conexión fuerte

  • Pesos bajos (azul): Conexión débil

  • Patrones: Grupos de features relacionadas

Filtros Aprendidos

Visualiza qué aprende cada unidad oculta:

Unidad Oculta 1:
Detecta: Alto salario + Bajo DTI

Unidad Oculta 2:
Detecta: Buen puntaje + Alta capacidad residual

Unidad Oculta 3:
Detecta: Patrimonio alto + Múltiples propiedades

Extracción de Características

Transformar Datos

[🔄 Extraer Features con RBM]

Datos originales: 10,000 × 15
Features RBM: 10,000 × 100

✓ Transformación completada

Uso de Features:

Las 100 características latentes pueden usarse como entrada para:

  • Modelos supervisados (Random Forest, XGBoost, etc.)

  • Clustering mejorado

  • Reducción de dimensionalidad

Análisis de Activaciones

Estadísticas de Activaciones:

Media: 0.45
Desv. Est.: 0.28
Sparsity: 35% (unidades inactivas)

Distribución: Balanceada ✓

Casos de Uso

Caso 1: Pre-entrenamiento para Deep Learning

Objetivo: Inicializar pesos de red neuronal profunda.

Pasos:

  1. Entrenar RBM en datos no etiquetados

  2. Usar pesos como inicialización

  3. Fine-tuning con backpropagation

  4. Mejor convergencia y generalización

Caso 2: Feature Engineering Automático

Objetivo: Crear features no lineales automáticamente.

Pasos:

  1. Entrenar RBM con 200 unidades ocultas

  2. Extraer activaciones como nuevas features

  3. Combinar con features originales

  4. Entrenar Random Forest

  5. Mejora de 3-5% en precisión

Caso 3: Detección de Anomalías

Objetivo: Identificar solicitudes atípicas.

Pasos:

  1. Entrenar RBM en datos normales

  2. Calcular error de reconstrucción

  3. Umbral: error > percentil 95

  4. Marcar como anomalías

Caso 4: Reducción de Dimensionalidad

Objetivo: Reducir de 47 a 20 features.

Pasos:

  1. Entrenar RBM con 20 unidades ocultas

  2. Extraer activaciones

  3. Usar en lugar de features originales

  4. Mantener 90% de información

Tips y Mejores Prácticas

Selección de Hiperparámetros

Haz:

  • Comienza con valores por defecto

  • Usa validación cruzada

  • Monitorea curva de aprendizaje

  • Ajusta learning rate si no converge

Evita:

  • Learning rate muy alto (>0.1)

  • Demasiadas unidades ocultas (overfitting)

  • Muy pocas épocas (<50)

  • Ignorar normalización de datos

Optimización del Entrenamiento

Para acelerar:

  • Aumenta batch size (128-256)

  • Reduce épocas inicialmente

  • Usa CD-1 en lugar de CD-5

  • Entrena en GPU si disponible

Para mejorar calidad:

  • Aumenta épocas (200-300)

  • Reduce learning rate (0.005)

  • Usa CD-5 o CD-10

  • Aumenta unidades ocultas

Interpretación de Resultados

Señales de buen entrenamiento:

  • Loss decrece consistentemente

  • Error de reconstrucción < 0.05

  • Activaciones balanceadas (30-70%)

  • Pesos no explotan ni desaparecen

Señales de problemas:

  • Loss oscila o aumenta

  • Error de reconstrucción > 0.1

  • Todas las unidades activas/inactivas

  • Pesos muy grandes (>10) o muy pequeños (<0.01)

Guardar y Cargar Modelos

Guardar Modelo

[💾 Guardar Modelo RBM]

Guardado:
✓ Pesos W
✓ Sesgos a, b
✓ Hiperparámetros
✓ Scaler

Archivo: rbm_model_20240115.pkl

Cargar Modelo

[📂 Cargar Modelo RBM]

Selecciona archivo: rbm_model_20240115.pkl

✓ Modelo cargado
✓ Listo para transformar datos

Troubleshooting

Problema 1: Loss no decrece

Síntomas:

Época 1: Loss = 125.3
Época 50: Loss = 124.8
Época 100: Loss = 124.5

Causas posibles:

  • Learning rate muy bajo

  • Datos no normalizados

  • Inicialización pobre

Soluciones:

  1. Aumenta learning rate a 0.05

  2. Verifica normalización (media=0, std=1)

  3. Reinicia con nueva semilla aleatoria

Problema 2: Loss explota

Síntomas:

Época 1: Loss = 125.3
Época 5: Loss = 450.2
Época 10: Loss = NaN

Causas posibles:

  • Learning rate muy alto

  • Gradientes explotan

  • Datos con outliers extremos

Soluciones:

  1. Reduce learning rate a 0.001

  2. Usa gradient clipping

  3. Elimina outliers extremos

Problema 3: Overfitting

Síntomas:

Train loss: 15.2
Val loss: 45.8

Soluciones:

  1. Reduce unidades ocultas

  2. Agrega regularización L2

  3. Usa dropout

  4. Aumenta datos de entrenamiento

Problema 4: Entrenamiento muy lento

Soluciones:

  1. Aumenta batch size a 128

  2. Reduce épocas a 50

  3. Usa CD-1 en lugar de CD-5

  4. Reduce número de features

Comparación con Otros Métodos

Método

Velocidad

Calidad

Interpretabilidad

RBM

Media

Alta

Media

PCA

Rápida

Media

Alta

Autoencoder

Lenta

Muy Alta

Baja

t-SNE

Muy Lenta

Alta

Baja

Próximos Pasos

Con tu RBM entrenada:

  1. Usar features: 8. Modelos Supervisados

  2. Predecir riesgo: 9. Predicción de Riesgo

  3. Aprender más: 11. Sistema RAG Educativo

¡RBM entrenada exitosamente! ⚡