Una guía para principiantes sobre la destilación del conocimiento en el aprendizaje profundo

Estás leyendo la publicación: Una guía para principiantes sobre la destilación del conocimiento en el aprendizaje profundo

Con la aparición del aprendizaje profundo en el gran tamaño de los datos, se ha impulsado el verdadero uso de los datos y el aprendizaje profundo lo hace al atravesar esos datos en millones de parámetros. Pero esto ha hecho un requisito adicional de los recursos de cómputo como GPU y estos recursos no están disponibles en los dispositivos de última generación como los teléfonos móviles. Para contrarrestar este problema, los investigadores han introducido muchas técnicas de compresión, como la destilación del conocimiento, que es el proceso de convertir el comportamiento de un modelo complejo en uno más pequeño en términos de una serie de parámetros. Entonces, en este artículo, echaremos un vistazo a la destilación del conocimiento y discutiremos su contexto brevemente. A continuación se enumeran los puntos principales que se discutirán en este artículo.

Tabla de contenido

  1. ¿Qué es la destilación del conocimiento?
  2. Necesidad de destilación del conocimiento.
  3. Partes principales de la técnica.
  4. Tipos de destilación del conocimiento
  5. Modos de destilación

Comencemos la discusión entendiendo la destilación del conocimiento.

¿Qué es la destilación del conocimiento?

En el aprendizaje automático, la destilación de conocimiento se refiere al proceso de transferir conocimiento de un modelo grande a uno más pequeño. Si bien los modelos grandes (como redes neuronales muy profundas o conjuntos de múltiples modelos) tienen una mayor capacidad de conocimiento que los modelos pequeños, es posible que esta capacidad no se utilice en todo su potencial.

Incluso si un modelo solo emplea un pequeño porcentaje de su capacidad de conocimiento, evaluarlo puede ser computacionalmente costoso. La destilación del conocimiento es el proceso de mover el conocimiento de un modelo grande a uno más pequeño mientras se mantiene la validez.

Los modelos más pequeños se pueden colocar en un hardware menos potente porque son menos costosos de evaluar (como un dispositivo móvil). La destilación del conocimiento se ha utilizado con éxito en una variedad de aplicaciones de aprendizaje automático, incluida la detección de objetos.

Como se ilustra en la figura a continuación, la destilación del conocimiento implica que un pequeño modelo de “estudiante” aprenda a imitar un gran modelo de “maestro” y use el conocimiento del maestro para lograr una precisión similar o superior.

Necesidad de destilación del conocimiento.

En general, el tamaño de las redes neuronales es enorme (millones/billones de parámetros), lo que requiere el uso de computadoras con una cantidad significativa de memoria y capacidad de cómputo para entrenarlas/implementarlas. En la mayoría de los casos, los modelos deben implementarse en sistemas con poca potencia informática, como dispositivos móviles y dispositivos de borde, en diversas aplicaciones.

🔥 Recomendado:  Una guía para la minería de reglas de asociación interpretable usando PyCaret

Sin embargo, los modelos ultraligeros (unos pocos miles de parámetros) pueden no proporcionarnos una buena precisión. Aquí es donde entra en juego Knowledge Distillation, con la ayuda de la red de instructores. Esencialmente aclara el modelo mientras mantiene la precisión.

Partes principales de la técnica.

Los modelos de maestro y alumno de la destilación del conocimiento son dos técnicas de redes neuronales.

modelo de profesor

Se puede usar un conjunto de modelos entrenados por separado o un solo modelo muy grande entrenado con un regularizador muy fuerte como el abandono para crear un modelo engorroso más grande. El modelo engorroso es el primero en ser entrenado.

estudiante modelo

Un modelo más pequeño que se basará en el conocimiento destilado de Teacher Network. Emplea un tipo diferente de entrenamiento llamado “destilación” para transferir conocimiento del modelo grande al modelo Student más pequeño. El modelo de estudiante es más adecuado para la implementación porque será computacionalmente menos costoso que el modelo de Profesor mientras mantiene la misma o mejor precisión.

Tipos de destilación del conocimiento

Según Knowledge Distillation: A Survey research paper, hay tres tipos principales de destilación de conocimiento, es decir, destilación basada en respuestas, basada en características y basada en relaciones. Discutámoslos brevemente.

Destilación basada en la respuesta

El conocimiento basado en la respuesta es el foco de la capa de salida final del modelo docente. El modelo de alumno aprenderá a imitar las predicciones del modelo de profesor, según la hipótesis. Esto se puede hacer usando una función de pérdida conocida como pérdida por destilación, que captura la diferencia entre los logits de los modelos del estudiante y del maestro, como se muestra en el siguiente diagrama. El modelo de estudiante será más preciso al hacer predicciones similares a las del maestro a medida que esta pérdida se reduzca con el tiempo.

Destilación basada en características

Las redes neuronales profundas sobresalen en el aprendizaje de múltiples niveles de representación de características a medida que aumenta la abstracción. Un modelo de maestro capacitado también captura el conocimiento de los datos en sus capas intermedias, lo cual es particularmente importante para las redes neuronales profundas. Las capas intermedias aprenden a discriminar entre características específicas, que luego se pueden usar para entrenar un modelo de estudiante.

🔥 Recomendado:  ¿Cómo se aplica el Teorema del Límite Central a la Ciencia de Datos?

El objetivo, como se ilustra en la figura a continuación, es entrenar al modelo de estudiante para que aprenda las mismas activaciones de funciones que el modelo de maestro. Esto se logra minimizando la diferencia entre las activaciones de características de los modelos de maestro y alumno.

Destilación basada en relaciones

Tanto el conocimiento basado en respuestas como el basado en características usan los resultados de capas específicas en el modelo del maestro. El conocimiento basado en relaciones amplía las conexiones entre diferentes capas o muestras de datos. Se utilizó un proceso de flujo de solución (FSP) definido por la matriz de Gram entre dos capas para investigar las relaciones entre diferentes mapas de características.

Las relaciones de los pares de mapas de características se resumen en la matriz FSP. Se calcula tomando los productos internos de las características de dos capas. La descomposición de valores singulares se utiliza para destilar conocimiento, con correlaciones entre mapas de características que sirven como conocimiento destilado. Esta relación se puede resumir como una relación entre mapas de características, gráficos, matrices de similitud, incrustaciones de características y distribuciones probabilísticas basadas en representaciones de características. El paradigma se representa en la siguiente figura.

Modos de destilación

En esta sección se analizan los modos de destilación (es decir, los esquemas de formación) para los modelos de profesor y alumno. Los esquemas de aprendizaje de la destilación del conocimiento se pueden dividir directamente en tres categorías principales, dependiendo de si el modelo docente se actualiza simultáneamente con el modelo del alumno o no.

Destilación fuera de línea

La mayoría de los métodos de destilación de conocimientos anteriores funcionan fuera de línea, con un modelo de maestro previamente capacitado que guía al modelo de estudiante. El modelo de maestro primero se entrena previamente en un conjunto de datos de entrenamiento en este modo, y luego el conocimiento del modelo de maestro se destila para entrenar el modelo de estudiante.

Dados los avances recientes en el aprendizaje profundo, una amplia gama de modelos de redes neuronales preentrenadas que pueden servir como maestros, según el caso de uso, están disponibles gratuitamente. La destilación sin conexión es una técnica bien establecida en el aprendizaje profundo que también es fácil de implementar.

🔥 Recomendado:  Cómo agregar una columna de estado de existencias en la cuadrícula de productos en Magento 2
Destilación en línea

A pesar de que los métodos de destilación fuera de línea son simples y efectivos, han surgido algunos problemas. Para superar las limitaciones de la destilación fuera de línea, se propone la destilación en línea para mejorar aún más el rendimiento del modelo de estudiante, especialmente cuando no se dispone de un modelo de profesor de gran capacidad y alto rendimiento. En la destilación en línea, tanto el modelo de profesor como el de estudiante se actualizan al mismo tiempo, y todo el marco de destilación de conocimientos se puede entrenar de principio a fin.

Autodestilación

En la autodestilación, se emplean las mismas redes para los modelos de instructor y alumno. Esta es una especie de destilación en línea en la que el conocimiento de los niveles más profundos de la red se destila en las capas superficiales de la red. Los conocimientos de las primeras épocas del modelo docente pueden trasladarse a sus épocas posteriores para formar el modelo alumno.

Ultimas palabras

A través de esta publicación, hemos discutido qué es la destilación de conocimiento y hemos visto brevemente su necesidad, las partes principales de la técnica, los tipos de destilación de conocimiento y, por último, el modo de destilación. En el sitio web oficial de Keras, se encuentra la implementación práctica de la destilación de conocimiento donde el código simula el mismo comportamiento del modelo profesor-alumno que comentamos en este post. Para obtener más detalles prácticos sobre este proceso, le recomiendo que siga esta implementación.

Referencias