$ cd ../
Destilación de conocimiento — Teacher → Student — bash

user@devops:~$ cat README.md

Destilación de conocimiento — Teacher → Student

# Descripción

Knowledge Distillation (KD, Hinton et al. 2015) implementada desde cero en PyTorch sobre Fashion-MNIST (6,000 train / 2,000 test, seed 42). Un teacher CNN de 824,650 parámetros (Conv 32→64ch, BatchNorm, Dropout, FC 256) alcanza 88.95% de test y transfiere su conocimiento a un student CNN de 105,866 parámetros (Conv 16→32ch, 7.8× menor) mediante soft labels: loss = α·CE(student, y) + (1−α)·T²·KL(softmax(z_s/T) ‖ softmax(z_t/T)) con T=4, α=0.7, usando logits del teacher precomputados (sin forward del teacher durante el entrenamiento del student). Resultados: student con labels duras 82.85% vs student con KD 83.85% — KD recupera +1.00 pp con la misma arquitectura y retiene el 94.3% de la precisión del teacher. La ventaja se concentra donde más cuesta: Coat +11.4 pp (52.1→63.5%) y Shirt +6.1 pp (68.0→74.1%), mientras que en las clases fáciles (Trouser, Sandal) ambos empatan. El conocimiento oscuro es medible: la entropía media del softmax en test del student KD (1.306) reproduce la de los soft labels del teacher a T=4 (1.401), mientras el hard queda sobreconfiado (0.514 vs teacher 0.238). Sweeps: temperatura T∈{1,2,4,8,16} (mejor T=1 con épocas cortas; el régimen clásico T=4 gana con entrenamiento largo) y alpha α∈{0,0.3,0.5,0.7,0.9,1.0} (mejor α=0.9; α=0, solo soft labels, colapsa a 10.15% ≈ azar — la etiqueta dura es imprescindible). 8 visualizaciones: curvas del teacher, soft labels a distintas T, hard vs KD, sweeps de T y α, params vs accuracy, precisión por clase y distribución de entropía.

# Características principales

$ Knowledge Distillation (Hinton et al. 2015) desde cero en PyTorch: soft labels con temperatura T y loss α·CE + (1−α)·T²·KL

$ Teacher CNN de 824,650 params (32→64ch, BN, Dropout) al 88.95% de test; student CNN de 105,866 params (7.8× menor) con KD al 83.85%

$ KD recupera +1.00 pp sobre la misma arquitectura con labels duras (82.85→83.85%): 94.3% de la precisión del teacher con 7.8× menos params

$ El conocimiento oscuro se concentra en lo difícil: Coat +11.4 pp (52.1→63.5%) y Shirt +6.1 pp (68.0→74.1%)

$ Calibración transferida: entropía media del softmax en test — teacher 0.238 · hard 0.514 (sobreconfiado) · KD 1.306 ≈ soft labels a T=4 (1.401)

$ Sweeps: temperatura T∈{1,2,4,8,16} y alpha α∈{0,0.3,…,1.0}; α=0 (solo soft labels) colapsa a 10.15% ≈ azar

$ Logits del teacher precomputados: entrenamiento determinista con seed 42, sin forward del teacher durante el entrenamiento del student

$ 8 visualizaciones, modelos guardados (artifacts/) y ml_distill_history.json reproducible

# Galería

Terminal del proyecto
Destilación de conocimiento — Teacher → Student - Terminal del proyecto
Teacher — curvas de loss y acc
Destilación de conocimiento — Teacher → Student - Teacher — curvas de loss y acc
Soft labels del teacher a T=1/2/4/8
Destilación de conocimiento — Teacher → Student - Soft labels del teacher a T=1/2/4/8
Student hard vs KD
Destilación de conocimiento — Teacher → Student - Student hard vs KD
Sweep de temperatura T
Destilación de conocimiento — Teacher → Student - Sweep de temperatura T
Sweep de alpha
Destilación de conocimiento — Teacher → Student - Sweep de alpha
Params vs precisión
Destilación de conocimiento — Teacher → Student - Params vs precisión
Precisión por clase
Destilación de conocimiento — Teacher → Student - Precisión por clase
Distribución de entropía del softmax
Destilación de conocimiento — Teacher → Student - Distribución de entropía del softmax

# Tecnologías utilizadas

Python PyTorch NumPy Matplotlib