- Ver más
¿Qué es la destilación del conocimiento?
La destilación de conocimiento (KD) es un proceso de compresión de aprendizaje automático (ML) que transfiere conocimiento de un modelo de aprendizaje profundo (DL) de gran tamaño a un modelo más pequeño y eficiente. En este contexto, el conocimiento se refiere a los patrones y comportamientos que el modelo original aprendió durante el entrenamiento.
Diccionario Techopedia: Destilación del conocimiento
El objetivo de la destilación de conocimiento es reducir la huella de memoria, los requisitos de cómputo y los costes de energía de un modelo grande, para que pueda utilizarse en un entorno con recursos limitados sin sacrificar significativamente el rendimiento.
La destilación de conocimiento es una forma eficaz de mejorar la precisión de un modelo de ML relativamente pequeño. El proceso en sí se denomina a veces aprendizaje maestro/alumno. El modelo grande es el profesor y el modelo pequeño es el alumno.
Cómo funciona la destilación del conocimiento
Durante el proceso de destilación, el modelo maestro (un gran modelo básico preentrenado) genera etiquetas blandas en los datos de entrenamiento. Las etiquetas blandas, que son esencialmente distribuciones de probabilidad de salida, se utilizan para entrenar el modelo del alumno.
- Las etiquetas duras indican qué es algo. Dada una imagen de una mesa, por ejemplo, la salida del modelo del profesor debería ser “mesa”.
- Las etiquetas blandas son distribuciones de probabilidad de salida que indican las puntuaciones de confianza del modelo a través de las etiquetas. Para esa misma imagen, la salida del modelo del profesor podría ser 90% “mesa”, 8% “escritorio” y 2% “silla”.
He aquí un ejemplo muy sencillo de cómo podría utilizarse la destilación de conocimientos para entrenar un modelo de alumno:
- Entrenar el modelo del profesor en un conjunto de datos.
- Generar etiquetas blandas a partir del modelo del profesor para el mismo conjunto de datos.
- Entrenar el modelo del alumno en el mismo conjunto de datos con las etiquetas blandas.
- Ajusta el modelo del alumno en el conjunto de datos con etiquetas duras. (Nota: los pasos tres y cuatro pueden combinarse de alguna manera).
- Evalúa el rendimiento del modelo del alumno en términos de una función de pérdida que cuantifique en qué medida las predicciones del modelo coinciden con los resultados deseados.
Si el nivel de rendimiento del modelo del alumno es aceptable, puede implantarse. Si el nivel de rendimiento del modelo de alumno es inaceptable, el modelo de alumno puede volver a entrenarse con datos adicionales u optimizarse ajustando los hiperparámetros, las tasas de aprendizaje y/o la temperatura de destilación.
Una temperatura más alta hace que las distribuciones de probabilidad sean más suaves (con menos picos), mientras que una temperatura más baja las hace más nítidas (con más picos y más cerca de las etiquetas duras).
Técnicas de optimización de la destilación de conocimientos
- Transferencia de atención
La transferencia de atención es una técnica en la que el modelo del alumno se entrena para imitar los mapas de atención generados por el modelo del profesor. Los mapas de atención destacan las regiones importantes de una imagen o una secuencia de palabras.
- FitNets
FitNets es una técnica en la que el modelo del alumno se entrena para que coincida con las representaciones intermedias del modelo del profesor. Las representaciones intermedias son las capas ocultas del modelo que capturan las características subyacentes de los datos de entrada.
- Destilación por similitud
En esta técnica, el modelo del alumno se entrena para que coincida con la matriz de similitudes del modelo del profesor. La matriz de similitud mide las similitudes entre pares de múltiples muestras de entrada.
- Destilación basada en pistas
La destilación basada en pistas es una técnica en la que el modelo del alumno se entrena para predecir la diferencia entre los resultados del modelo del profesor y el modelo del alumno. Esta diferencia se denomina pista.
- Destilación de entropía cruzada
El modelo del alumno se entrena utilizando una función de pérdida que combina la pérdida de clasificación estándar con una pérdida de destilación que mide la diferencia entre las probabilidades de salida del modelo del profesor y del alumno.
Casos prácticos
La destilación de conocimientos es una técnica importante para crear modelos de aprendizaje automático ligeros. Estos modelos destilados son especialmente beneficiosos para los sistemas de recomendación y los dispositivos IoT edge que tienen limitaciones computacionales.
Mediante el uso de la destilación de conocimiento, dispositivos como cámaras de seguridad, sistemas domésticos inteligentes y asistentes digitales virtuales pueden realizar una amplia gama de tareas complejas de forma local, incluyendo:
- Clasificación: Asignación de datos de entrada a una de varias categorías predefinidas.
- Procesamiento del lenguaje natural (PLN): Procesamiento y análisis de grandes cantidades de datos de lenguaje natural para tareas como el análisis de sentimientos y el reconocimiento de entidades con nombre.
- Detección de objetos: Identificación y clasificación de objetos en imágenes o vídeos.
- Reconocimiento de voz: Conversión del lenguaje hablado en texto.
- Traducción automática: Traducción de texto o voz de un idioma a otro.
Ventajas y desventajas
Una de las principales ventajas de la destilación de conocimientos es que permite crear modelos más pequeños y rápidos que funcionan bien en los dispositivos de borde de la Internet de las Cosas (IoT). Sin embargo, hay que tener en cuenta que la destilación de conocimientos suele implicar un compromiso entre el tamaño y un nivel aceptable de precisión.
Importancia de la compresión
Uno de los mayores retos a la hora de desarrollar aplicaciones de empresa a consumidor (B2C) que utilicen inteligencia artificial (AI) es que los dispositivos informáticos periféricos, como teléfonos móviles y tabletas, tienen capacidades de almacenamiento y procesamiento limitadas.
Esto deja a los ingenieros de aprendizaje automático con una opción si quieren ejecutar un modelo grande en un dispositivo periférico: reducir el tamaño del modelo con técnicas de compresión como la poda de redes neuronales, la cuantización, la factorización de bajo rango y la destilación de conocimientos.
- Poda: Consiste en eliminar determinadas neuronas artificiales o pesos de la red que menos contribuyen al rendimiento del modelo. Después de la poda, el tamaño del modelo se reduce sin una disminución significativa de la precisión.
- Cuantización: Consiste en reducir la precisión de los pesos (y a veces de las activaciones) de un modelo utilizando 16 u 8 bits para representar un peso, por ejemplo, en lugar de 32 bits. Esto reduce el tamaño del modelo y también puede acelerar la inferencia, especialmente en hardware optimizado para cálculos de baja precisión.
- Factorización de bajo rango: Consiste en aproximar las matrices de pesos de una red neuronal con matrices de rango inferior. La idea es que la información contenida en las matrices de pesos puede captarse con menos parámetros.
- Destilación del conocimiento: Consiste en entrenar un modelo de aprendizaje automático más pequeño y ligero para replicar el comportamiento de un modelo más grande y con más recursos.
Destilación de conocimientos frente a aprendizaje por transferencia
A veces se hace referencia a la destilación de conocimientos como un tipo de aprendizaje por transferencia, pero ambos conceptos tienen objetivos diferentes.
El objetivo de la destilación de conocimientos es crear un modelo de aprendizaje automático más pequeño que pueda resolver la misma tarea que un modelo más grande.
Por el contrario, el objetivo del aprendizaje por transferencia es reducir el tiempo que se tarda en entrenar un modelo grande para resolver una nueva tarea utilizando los conocimientos adquiridos en una tarea aprendida previamente.
Destilación de conocimientos frente a destilación de datos
La destilación de datos y la destilación de conocimientos son procesos de compresión, pero se centran en componentes diferentes. La destilación de datos se centra en los propios datos de entrenamiento. Su objetivo es obtener un subconjunto de datos más pequeño que siga representando el gran conjunto de datos original.
En cambio, la destilación de conocimientos se centra en reducir el tamaño de un modelo sin perder eficacia y precisión.