Neural Network Training Labs
Laboratorio 14 · Central · 15 / 31

⚗️ Destilación de conocimiento

Destilación de conocimiento

Objetivo

Transferir conocimiento de una CNN profesora a una estudiante compacta.

Dataset real

Mismo test real para profesor, estudiante base y estudiante destilada.

Fundamento matemático

L=α CE(y,s)+(1-α)T² KL(softmax(t/T)||softmax(s/T)).

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: Estudiante entrenado solo con etiquetas.
  7. Guardar configuración, entorno, métricas, predicciones, gráficos y modelo.

Ejecución

python labs/14_knowledge_distillation/train.py --quick
python labs/14_knowledge_distillation/train.py --config improved

Preparar únicamente el dataset:

python -m neural_labs.cli dataset --lab 14_knowledge_distillation

Inferencia y exportación:

neural-labs predict --lab 14_knowledge_distillation --run latest --input sample.json
neural-labs export --lab 14_knowledge_distillation --run latest --format onnx --verify

Métricas

accuracy, macro_f1, parameters, latency_ms.

Archivos

Ejercicios

Material formativo v3

Comandos profesionales

neural-labs quality --lab 14_knowledge_distillation --quick
neural-labs benchmark --lab 14_knowledge_distillation --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 — Destilación de conocimiento

Propósito

Transferir conocimiento de una CNN profesora a una estudiante compacta.

Idea central

Este laboratorio estudia transferencia de conocimiento profesor-estudiante usando cifar10, un dataset público real procedente de Torchvision / University of Toronto. La observación de partida es que un modelo grande y preciso (el profesor) no solo predice la clase correcta: en su distribución de salida codifica cómo de parecidas considera a las clases entre sí. Por ejemplo, una imagen de gato puede recibir alta probabilidad en "gato", algo en "perro" y casi nada en "camión". Esas probabilidades relativas —las etiquetas blandas (soft labels)— son información rica que la etiqueta dura (solo "gato") descarta.

La destilación entrena a un modelo pequeño (el estudiante) para que imite esa distribución blanda del profesor, además de acertar la etiqueta verdadera. El estudiante recibe así una señal de aprendizaje mucho más informativa por ejemplo: en lugar de un único bit correcto/incorrecto, aprende la estructura de similitud que el profesor descubrió con más capacidad y más cómputo. El resultado es un modelo compacto que se acerca a la exactitud del grande con una fracción de los parámetros y la latencia, útil para desplegar en dispositivos con recursos limitados.

La temperatura T es la palanca central. Al dividir los logits por T antes del softmax se suavizan las probabilidades: con T alto, las diferencias entre clases se atenúan y emergen las señales pequeñas (esa pizca de "perro" en la imagen de gato) que de otro modo quedarían aplastadas cerca de cero. La pregunta crítica del laboratorio es qué temperatura equilibra mejor la señal dura (la etiqueta verdadera) con la señal blanda (el conocimiento del profesor).

Fundamento matemático

Sean z^t los logits del profesor y z^s los del estudiante para las K clases. El softmax con temperatura T produce distribuciones suavizadas:

p_k(z; T) = e^{z_k / T} / Σⱼ e^{z_j / T}

Con T = 1 se recupera el softmax normal; con T > 1 la distribución se aplana y revela las probabilidades pequeñas. La pérdida de destilación combina dos términos:

ℒ = α · CE(y, softmax(z^s)) + (1 − α) · T² · KL( softmax(z^t / T) ‖ softmax(z^s / T) )

El primer término es la entropía cruzada contra la etiqueta dura y (aprender lo correcto). El segundo es la divergencia de Kullback–Leibler entre la distribución blanda del profesor y la del estudiante, ambas a temperatura T (imitar al profesor). El coeficiente α ∈ [0,1] pondera cuánto pesa cada objetivo.

El factor T² tiene una justificación precisa. Los gradientes del término blando respecto a z^s escalan aproximadamente como 1/T² (porque tanto el softmax suavizado como su derivada introducen un factor 1/T). Multiplicar por T² reescala esos gradientes para que su magnitud sea comparable a la del término duro, de modo que al variar T no haya que reajustar α ni el learning rate. La divergencia KL entre profesor p y estudiante q es:

KL(p ‖ q) = Σₖ p_k · log( p_k / q_k )

y se minimiza cuando q iguala a p. El estudiante actualiza sus parámetros por descenso de gradiente, θ^s ← θ^s − η · ∇_{θ^s} ℒ, mientras el profesor permanece congelado. La formulación conecta cuatro elementos: representación de entrada (la imagen), función del modelo (estudiante), función de pérdida (CE + KL con temperatura) 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

Mismo test real para profesor, estudiante base y estudiante destilada.

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é temperatura equilibra mejor señales duras y blandas?

🔗 Referencias

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

🔬 Experimentos

Plan de experimentos — Destilación de conocimiento

Hipótesis principal

Transferir conocimiento de una CNN profesora a una estudiante compacta. La hipótesis debe aceptarse o rechazarse comparando el modelo con Estudiante entrenado solo con etiquetas 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

Comparar calidad, tamaño y latencia.

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 — Destilación de conocimiento

Evidencias obligatorias

Preguntas

  1. Explique con sus palabras: L=α CE(y,s)+(1-α)T² KL(softmax(t/T)||softmax(s/T)).
  2. ¿Qué información del dataset solo puede utilizarse durante entrenamiento?
  3. ¿Por qué la línea base Estudiante entrenado solo con etiquetas es una comparación razonable?
  4. ¿Qué temperatura equilibra mejor señales duras y blandas?
  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.