Tema
Una de las razones por las cuales las Redes neuronales funcionan es que dado una cantidad suficiente de neuronas, estas pueden funcionar como un aproximador universal. Para asegurar que la red sea capaz de generalizar se necesita una cantidad importante de datos. Por lo mismo, muchas de las redes que muestran mejor desempeño requieren de bastante computación para ser entrenadas o ejecutadas y muchas veces son incapaces de funcionar en un tiempo razonable si no se cuenta con cómputo de alto rendimiento.
La destilación de conocimiento permite busca reproducir las salidas de una red compleja, usando menos recursos. Pero, abre toda una discusión sobre la certeza que se puede esperar de un modelo entrenado ya no directamente sobre datos ordenados, si no sobre la interpretación que un modelo hace sobre esos datos.
Material para el aprendizaje
- Un tutorial indroductorio del tema.
- Otro tutorial bastante amable aunque con muchos anuncios insertados.
- El artículo seminal sobre destilación del conocimiento.
- Una revisión de 2021 que se ve bastante completa.
- Destilación del conocimiento en
papers with code
- Una presentación algo rara pero muy completa.
Actividades de aprendizaje
- Destilación del conocimiento en Keras (tambien esta receta) y un proyectito en pyTorch con su respectivo reporte.
- Un modulo de pythorch en etapa mas o menos experimental.
Proyecto
Vamos a usar un modelo grande proveniente del CERN para destilar un modelo con la menor pérdida posible.