RNN para texto
Objetivo
Clasificar sentimiento en reseñas reales usando embeddings y recurrencia.
Dataset real
- Dataset:
imdb - Fuente: Hugging Face / Stanford
- Referencia: https://huggingface.co/datasets/stanfordnlp/imdb
- Licencia/condiciones: Consultar dataset card
- Uso: los datos se descargan desde la fuente; no hay ejemplos sintéticos ni archivos inventados.
Reseñas cinematográficas reales con partición oficial.
Fundamento matemático
h_t=tanh(W_x x_t + W_h h_{t-1}+b).
Protocolo experimental
- Descargar y verificar la procedencia.
- Conservar o crear una partición reproducible.
- Ajustar transformaciones únicamente con
train. - Seleccionar modelo e hiperparámetros usando
validation. - Evaluar
testuna sola vez tras congelar la decisión. - Comparar con la línea base: TF-IDF + regresión logística.
- Guardar configuración, entorno, métricas, predicciones, gráficos y modelo.
Ejecución
python labs/04_rnn_sequences/train.py --quick
python labs/04_rnn_sequences/train.py --config improved
Preparar únicamente el dataset:
python -m neural_labs.cli dataset --lab 04_rnn_sequences
Inferencia y exportación:
neural-labs predict --lab 04_rnn_sequences --run latest --input sample.json
neural-labs export --lab 04_rnn_sequences --run latest --format onnx --verify
Métricas
accuracy, balanced_accuracy, precision, recall, f1, roc_auc, pr_auc.
Archivos
notebook.ipynb: recorrido completo y ejecutable.notebook_student.ipynb: actividades evaluables sin soluciones.notebook_solution.ipynb: resolución docente y pruebas de referencia.train.py: interfaz de terminal que usa el mismo código del cuaderno.configs/baseline.yaml: configuración base.configs/improved.yaml: configuración ampliada.data/dataset.yaml: procedencia, licencia y política de partición.
Ejercicios
- Cambiar una decisión experimental y justificarla.
- Analizar errores por clase o segmento.
- Comparar costo, precisión y latencia.
- Documentar sesgos, limitaciones y usos no recomendados.
Material formativo v3
theory.md: fundamento, protocolo y riesgos de interpretación.experiments.md: hipótesis, variables controladas y tabla multi-semilla.assessment.md: preguntas y rúbrica de evaluación.lesson.yaml: resultados de aprendizaje, prerrequisitos y entregables.
Comandos profesionales
neural-labs quality --lab 04_rnn_sequences --quick
neural-labs benchmark --lab 04_rnn_sequences --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 — RNN para texto
Propósito
Clasificar sentimiento en reseñas reales usando embeddings y recurrencia.
Idea central
Este laboratorio estudia recurrencia sobre secuencias tokenizadas usando imdb, un dataset público real procedente de Hugging Face / Stanford.
El texto es una secuencia de longitud variable donde el orden importa: "no es buena" y "es buena, no" significan cosas distintas. Un MLP o una CNN de tamaño fijo no capturan bien esa dependencia temporal. La red recurrente (RNN) procesa la secuencia token a token manteniendo un estado oculto que resume todo lo visto hasta el momento, de modo que la predicción en cada paso depende del contexto acumulado. Es, en esencia, una memoria que se actualiza con cada palabra.
Dos piezas colaboran aquí. Primero, los embeddings: cada token del vocabulario se representa por un vector denso aprendible, de forma que palabras con uso similar acaban cerca en el espacio vectorial (la idea que popularizó word2vec). Segundo, la recurrencia, que integra esos vectores en el tiempo. El laboratorio clasifica el sentimiento de reseñas de cine reales y se contrasta contra un TF-IDF + regresión logística, que ignora el orden; la comparación revela cuándo la estructura secuencial realmente aporta.
Fundamento matemático
Una RNN recibe la secuencia de vectores de embedding x₁, x₂, …, x_T (uno por token) y mantiene un estado oculto hₜ que se recalcula en cada paso combinando la entrada actual con el estado anterior:
hₜ = tanh(Wₓ·xₜ + W_h·hₜ₋₁ + b)
La intuición es una recursión: hₜ es una síntesis comprimida de todo el prefijo x₁…xₜ. La matriz Wₓ decide cómo entra la nueva palabra, W_h decide cómo se transforma la memoria previa, y la tanh (con rango en (−1, 1)) mantiene el estado acotado e introduce la no linealidad. Un detalle esencial es que Wₓ, W_h y b se comparten en todos los pasos de tiempo: es el mismo conjunto de pesos aplicado en cada instante, análogo al peso compartido de las CNN pero a lo largo del eje temporal. Esto permite procesar secuencias de cualquier longitud con un número fijo de parámetros. Para clasificar sentimiento se usa el último estado h_T (o un agregado de todos), que pasa por una capa densa y una sigmoide para dar la probabilidad de reseña positiva.
El entrenamiento usa retropropagación en el tiempo (BPTT): se "desenrolla" la red en T copias y el gradiente fluye hacia atrás desde h_T hasta h₁. Aquí surge el problema fundamental de las RNN simples. Al aplicar la regla de la cadena a lo largo de T pasos, el gradiente respecto a estados lejanos contiene un producto de T factores del tipo W_h⊤ diag(tanh′). Si los valores propios dominantes de ese producto son menores que 1, el gradiente se desvanece exponencialmente (∝ λᵀ con λ < 1) y la red no aprende dependencias largas; si son mayores que 1, explota.
∂h_T/∂h₁ = Πₜ (∂hₜ/∂hₜ₋₁) → se contrae o crece exponencialmente con T
Este es exactamente el motivo por el que las reseñas se truncan y por el que existen arquitecturas con puertas (LSTM/GRU), tema del laboratorio siguiente. La explosión se mitiga en la práctica con recorte de gradiente (gradient clipping), que limita la norma del gradiente a un umbral antes de actualizar; el desvanecimiento, en cambio, exige cambiar la propia celda recurrente.
La formulación debe conectarse con cuatro elementos: representación de entrada, función del modelo, función de pérdida y regla de actualización. El notebook muestra las dimensiones de los tensores y conserva la misma implementación que el script de terminal.
Protocolo científico
- Ajustar transformaciones, vocabulario, normalización y selección de variables solo con
train. - Usar
validationpara arquitectura, hiperparámetros, checkpoint y umbrales. - Evaluar
testuna vez, después de congelar las decisiones. - Comparar contra TF-IDF + regresión logística.
- Reportar variación entre semillas e intervalos de confianza; una métrica puntual no expresa toda la incertidumbre.
Riesgos de interpretación
Reseñas cinematográficas reales con partición oficial.
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é información se pierde al truncar las reseñas?
🔗 Referencias
Las referencias apuntan a las obras; no se reproduce su contenido, la redacción es original.
- Goodfellow, Bengio & Courville — Deep Learning (MIT Press 2016), cap. 10 — redes recurrentes, BPTT y el problema del gradiente que se desvanece.
- Géron — Hands-On Machine Learning (3.ª ed., O'Reilly 2022), cap. 16 — procesamiento de lenguaje con RNN y embeddings.
- Prince — Understanding Deep Learning (MIT Press 2024), cap. 12 — modelado de secuencias y arquitecturas recurrentes.
- Elman (1990), Finding Structure in Time, Cognitive Science — RNN fundacional con estado oculto recurrente.
- Mikolov et al. (2013), Efficient Estimation of Word Representations in Vector Space (word2vec) — embeddings distribuidos de palabras.
- Fuente del dataset: https://huggingface.co/datasets/stanfordnlp/imdb
- Consulte
docs/experiment-protocol.md,docs/reproducibility.mdydocs/ethics-and-licenses.md.
🔬 Experimentos
Plan de experimentos — RNN para texto
Hipótesis principal
Clasificar sentimiento en reseñas reales usando embeddings y recurrencia. La hipótesis debe aceptarse o rechazarse comparando el modelo con TF-IDF + regresión logística y no solo observando que la pérdida disminuye.
Experimento mínimo
- Ejecutar
baseline.yamlcon tres semillas. - Ejecutar
improved.yamlcon las mismas semillas. - Mantener fija la partición de datos dentro de cada semilla.
- Elegir la variante con
validation. - Comparar la variante elegida contra la línea base en
test. - Revisar intervalos de confianza, errores y costo computacional.
Experimento específico
Comparar longitud máxima, embedding y regularización.
Variables controladas
- Dataset y política de partición.
- Semillas declaradas.
- Presupuesto de épocas y criterio de parada.
- Métrica de selección:
accuracyo la especificada en la configuración. - Hardware y versiones registradas en
environment.json.
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 — RNN para texto
Evidencias obligatorias
- Dataset preparado y auditoría sin solapamientos.
- Notebook ejecutado sin celdas omitidas.
- Línea base y modelo neuronal comparados.
- Resultados de al menos tres semillas o justificación del costo.
- Análisis de errores y limitaciones.
- Model card actualizada.
Preguntas
- Explique con sus palabras: h_t=tanh(W_x x_t + W_h h_{t-1}+b).
- ¿Qué información del dataset solo puede utilizarse durante entrenamiento?
- ¿Por qué la línea base TF-IDF + regresión logística es una comparación razonable?
- ¿Qué información se pierde al truncar las reseñas?
- ¿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.