
En este artículo, exploraré el proceso de destilación de conocimiento en IA: cómo funciona en general, su importancia y las razones para usarlo.
¿Cómo podemos comprimir y transferir conocimiento de un modelo más grande o un conjunto de modelos (que fueron entrenados en conjuntos de datos muy grandes para extraer estructura de los datos) a un único modelo pequeño sin una caída significativa en el rendimiento?
Pero ¿por qué queremos hacer esto? ¿Por qué necesitamos un modelo más pequeño cuando un modelo más grande o un modelo de conjunto ya está dando buenos resultados con datos de prueba?
Durante el entrenamiento, solemos entrenar grandes conjuntos de modelos, ya que el objetivo principal es extraer la estructura de conjuntos de datos muy grandes. También podríamos aplicar diversas medidas, como la eliminación de datos y el aumento de datos, para alimentar estos grandes modelos con todo tipo de datos.
Pero a la hora de predecir, nuestro objetivo es totalmente diferente. Queremos obtener resultados lo antes posible. Por lo tanto, usar un conjunto más grande de modelos es muy costoso y dificultará la implementación para un gran número de usuarios. La pregunta ahora es cómo podemos comprimir el conocimiento de este modelo más grande en un modelo más pequeño que se pueda implementar fácilmente.
Geoffrey Hinton, Oriol Vinyals y Jeff Dean, de Google, idearon en su artículo un tipo diferente de entrenamiento llamado destilación para transferir este conocimiento al modelo más pequeño. Esta es la misma técnica que Hugging Face utilizó en su implementación de Distill BERT .
Si podemos entrenar este modelo más pequeño para que generalice de la misma manera que un modelo grande, este modelo entrenado de esta manera tendrá un rendimiento mucho mejor que el modelo más pequeño entrenado con los mismos datos, pero de forma normal. Este es uno de los principios fundamentales de la destilación.
Generalmente, en el aprendizaje automático, un modelo que aprende a discriminar entre un gran número de clases, el principal objetivo de entrenamiento es maximizar la probabilidad logarítmica promedio de una respuesta correcta. Por ejemplo, tomemos el ejemplo del conjunto de datos MNIST, donde el objetivo es clasificar una imagen según sea 1, 2 o … 9. Entonces, si la imagen real es 2, entonces el objetivo de cualquier modelo es maximizar P(sus 2/imagen) (que puede leerse como la probabilidad de que una imagen en particular sea 2 dada la imagen). Pero el modelo también da probabilidades para todas las respuestas incorrectas, aunque esas probabilidades sean muy pequeñas, algunas de ellas son mucho mayores que otras. El punto es que, aunque estas probabilidades sean pequeñas, las probabilidades relativas de respuestas incorrectas nos dicen mucho sobre cómo el modelo puede generalizar. Para entenderlo, veamos el siguiente ejemplo.
En la figura anterior, a esta versión del 2 se le asignó una probabilidad de 10-6 de ser un 3 y de 10-9 de ser un 7, mientras que para otra versión podría ser al revés. Esta información valiosa define una rica estructura de similitud en los datos (es decir, indica qué 2 se parecen a 3 y cuáles a 7), pero tiene muy poca influencia en la función de coste de entropía cruzada durante la etapa de transferencia, ya que las probabilidades son muy cercanas a cero.
Pero antes de pasar al procedimiento de destilación, analicemos cómo el modelo generó las probabilidades de salida. Aquí es donde entra en juego la activación de softmax. El último paso del procesamiento del modelo es softmax, y este componente es el que genera las probabilidades de salida. La entrada de softmax se denomina logits, y diseñamos la capa final de la NN de tal manera que el número de unidades ocultas sea igual al número de clases que queremos clasificar.
La fórmula para calcular softmax se da como
La ecuación anterior proporciona probabilidades para cada i y la suma de todas las probabilidades generales de i es igual a 1. Durante el tiempo de entrenamiento, la pérdida para cualquier ejemplo de entrenamiento individual se calcula comparando estas probabilidades softmax con objetivos duros (etiquetas) y utilizando coeficientes de retropropagación que se actualizan hasta que la pérdida sea mínima.
Como se vio anteriormente, este softmax otorga una alta probabilidad de obtener una etiqueta verdadera y una baja probabilidad de obtener una incorrecta. También observamos que las probabilidades de obtener respuestas incorrectas, aunque pequeñas, contienen mucha información oculta que facilita la generalización del modelo. A esto lo llamamos Conocimiento Oscuro .
Según el artículo, la mejor forma de transferir las capacidades de generalización del modelo más grande a un modelo pequeño es utilizar las probabilidades de clase producidas por el modelo engorroso como objetivos suaves para entrenar el modelo pequeño.
Entonces el proceso es el siguiente:
El resultado de aplicar softmax con temperatura (T) es lo que llamamos objetivos blandos. Este proceso es lo que los autores denominan destilación . Es una analogía con la eliminación de impurezas en el agua mediante el aumento de la temperatura.
A continuación se muestra un diagrama de flujo de todo el proceso de capacitación.
El proceso de entrenamiento de un modelo pequeño consta de dos funciones de pérdida. La primera, que toma tanto predicciones como objetivos suaves, es la función de pérdida de entropía cruzada. Así, la capacidad de generalización se transfiere del modelo grande al pequeño, intentando coincidir con los objetivos suaves. Para esta función de pérdida, softmax utiliza la temperatura de 'T'.
Los autores también descubrieron que usar el modelo pequeño para alcanzar los objetivos reales es útil. Esto se incorpora en la segunda función de costo. El costo final es un promedio ponderado de estas dos funciones de costo con los hiperparámetros alfa y beta.
Los autores utilizaron el conjunto de datos MNIST para probar este enfoque. Para ello, emplearon dos arquitecturas que difieren únicamente en el número de unidades ocultas en las capas intermedias. En ambos casos, utilizaron redes neuronales de dos capas ocultas.
¿Podemos transferir esta mejora del modelo más grande a un modelo pequeño?
Los autores ahora utilizaron objetivos blandos obtenidos de la red grande y objetivos verdaderos sin pérdida ni vibración de las imágenes, es decir, la red más pequeña se regularizó únicamente agregando la tarea adicional de hacer coincidir los objetivos blandos producidos por la red grande a una temperatura de 20 y el resultado es.
74 errores de prueba usando 784 -> 800 -> 800 -> 10
Esto demuestra que los objetivos blandos pueden transferir una gran cantidad de conocimiento al modelo pequeño, incluyendo el conocimiento sobre cómo generalizar, aprendido a partir de los datos de entrenamiento traducidos. En otras palabras, el beneficio obtenido al transformar las entradas se transfiere a la red pequeña, aunque no estemos transformando las entradas para esta.
Es bien sabido que transformar las entradas mediante diferentes transformaciones mejora considerablemente la generalización del modelo. En nuestro caso, la información sobre cómo generalizar aparece en el conocimiento oscuro, mientras que esta se encuentra oculta en los objetivos blandos. Ninguna de esta información se encuentra en los objetivos verdaderos. Por lo tanto, al utilizar la información de los objetivos blandos, nuestra pequeña red funciona mucho mejor.
La gran red que utiliza objetivos blandos aprendió una métrica de similitud que aprendió "qué es como qué" y con esta transferencia de conocimiento, le estamos diciendo a la pequeña red "qué es como qué".
Todo el experimento anterior en MNIST se resume a continuación
Además, los autores también intentaron omitir ejemplos del dígito 3 al entrenar un modelo más pequeño mediante destilación. Por lo tanto, desde la perspectiva del modelo pequeño, el 3 es un dígito mítico que nunca ha visto. Dado que el modelo más pequeño nunca ha visto el 3 durante el entrenamiento, esperamos que cometa muchos errores al encontrar el 3 en el conjunto de prueba. A pesar de esto, el modelo destilado solo cometió 206 errores de prueba, de los cuales 133 corresponden a 1010 treses en el conjunto de prueba. Esto demuestra claramente que las capacidades de generalización del modelo grande se transfirieron al modelo pequeño durante la destilación, lo que hace que el modelo pequeño prediga correctamente el 3 en la mayoría de los casos.
Así que la moraleja de la historia es...
Transformar las imágenes de entrada mejora considerablemente la generalización. Transformar los objetivos también tiene un efecto similar, y si podemos obtener objetivos blandos de algún lugar, resulta mucho más económico, ya que podemos obtener el mismo rendimiento con el modelo más pequeño.
Referencias: