Método de aprendizaje automático para transferir conocimiento de un modelo grande a uno más pequeño
En el aprendizaje automático , la destilación de conocimiento o destilación de modelos es el 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 muchos modelos) tienen más capacidad de conocimiento que los modelos pequeños, es posible que esta capacidad no se utilice por completo. Puede ser igualmente costoso computacionalmente evaluar un modelo incluso si utiliza poco de su capacidad de conocimiento. La destilación de conocimiento transfiere conocimiento de un modelo grande a uno más pequeño sin pérdida de validez . Como los modelos más pequeños son menos costosos de evaluar, se pueden implementar en hardware menos potente (como un dispositivo móvil ). [1]
La destilación de modelos no debe confundirse con la compresión de modelos , que describe métodos para reducir el tamaño de un modelo grande en sí, sin entrenar un nuevo modelo. La compresión de modelos generalmente conserva la arquitectura y el recuento nominal de parámetros del modelo, mientras que disminuye los bits por parámetro.
La destilación de conocimiento se ha utilizado con éxito en varias aplicaciones de aprendizaje automático, como la detección de objetos , [2] modelos acústicos , [3] y el procesamiento del lenguaje natural . [4]
Recientemente, también se ha introducido en redes neuronales gráficas aplicables a datos no cuadriculados. [5]
Métodos
La transferencia de conocimiento de un modelo grande a uno pequeño necesita de alguna manera enseñarle a este último sin pérdida de validez. Si ambos modelos se entrenan con los mismos datos, el modelo más pequeño puede tener capacidad insuficiente para aprender una representación concisa del conocimiento en comparación con el modelo grande. Sin embargo, cierta información sobre una representación concisa del conocimiento está codificada en las pseudoverosimilitudes asignadas a su salida: cuando un modelo predice correctamente una clase, asigna un valor grande a la variable de salida correspondiente a dicha clase y valores más pequeños a las otras variables de salida. La distribución de valores entre las salidas de un registro proporciona información sobre cómo el modelo grande representa el conocimiento. Por lo tanto, el objetivo de implementación económica de un modelo válido se puede lograr entrenando solo el modelo grande con los datos, explotando su mejor capacidad para aprender representaciones concisas del conocimiento y luego destilando dicho conocimiento en el modelo más pequeño, entrenándolo para que aprenda la salida suave del modelo grande. [1]
Formulación matemática
Dado un modelo grande en función de la variable vectorial , entrenado para una tarea de clasificación específica , normalmente la capa final de la red es un softmax en la forma
donde es la temperatura , un parámetro que se establece en 1 para un softmax estándar. El operador softmax convierte los valores logit en pseudoprobabilidades: los valores de temperatura más altos generan distribuciones más suaves de pseudoprobabilidades entre las clases de salida. La destilación de conocimiento consiste en entrenar una red más pequeña, llamada modelo destilado , en un conjunto de datos llamado conjunto de transferencia (que es diferente del conjunto de datos utilizado para entrenar el modelo grande) utilizando la entropía cruzada como la función de pérdida entre la salida del modelo destilado y la salida del modelo grande en el mismo registro (o el promedio de las salidas individuales, si el modelo grande es un conjunto), utilizando un valor alto de temperatura softmax para ambos modelos [1]
En este contexto, una temperatura alta aumenta la entropía de la salida, proporcionando así más información para aprender para el modelo destilado en comparación con los objetivos duros, y al mismo tiempo reduciendo la varianza del gradiente entre diferentes registros, permitiendo así una mayor tasa de aprendizaje . [1]
Si se dispone de la verdad fundamental para el conjunto de transferencia, el proceso se puede fortalecer agregando a la pérdida la entropía cruzada entre la salida del modelo destilado (calculado con ) y la etiqueta conocida.
donde el componente de la pérdida con respecto al modelo grande se pondera por un factor de ya que, a medida que aumenta la temperatura, el gradiente de la pérdida con respecto a los pesos del modelo se escala por un factor de . [1]
Relación con la compresión del modelo
Suponiendo que los logits tienen media cero , es posible demostrar que la compresión del modelo es un caso especial de destilación de conocimiento. El gradiente de la pérdida de destilación de conocimiento con respecto al logit del modelo destilado se da por
donde están los logits del modelo grande. Para valores grandes, esto se puede aproximar como
y bajo la hipótesis de media cero se convierte en , que es la derivada de , es decir, la pérdida es equivalente a hacer coincidir los logits de los dos modelos, como se hace en la compresión de modelos. [1]
Daño cerebral óptimo
El algoritmo de daño cerebral óptimo (OBD) es el siguiente: [6]
Hacerlo hasta alcanzar el nivel deseado de escasez o rendimiento:
Entrenar la red (mediante métodos como la retropropagación) hasta obtener una solución razonable
Calcular las saliencias para cada parámetro
Eliminar algunos parámetros de menor relevancia
Eliminar un parámetro significa fijarlo en cero. La "prominencia" de un parámetro se define como , donde es la función de pérdida. La segunda derivada se puede calcular mediante retropropagación de segundo orden .
La idea para un daño cerebral óptimo es aproximar la función de pérdida en un entorno de parámetro óptimo mediante la expansión de Taylor: donde , ya que es óptimo, y las derivadas cruzadas se ignoran para ahorrar cálculo. Por lo tanto, la prominencia de un parámetro se aproxima al aumento de la pérdida si se elimina ese parámetro.
Historia
Una metodología relacionada fue la compresión o poda de modelos , donde se reduce el tamaño de una red entrenada. Esto fue realizado por primera vez en 1965 por Alexey Ivakhnenko y Valentin Lapa en Ucrania (1965). [7] [8] [9] Sus redes profundas se entrenaron capa por capa a través del análisis de regresión. Las unidades ocultas superfluas se podaron utilizando un conjunto de validación separado. [10] Otros métodos de compresión de redes neuronales incluyen Biased Weight Decay [11] y Optimal Brain Damage. [6]
Un ejemplo temprano de destilación de redes neuronales fue publicado por Jürgen Schmidhuber en 1991, en el campo de las redes neuronales recurrentes (RNN). El problema era la predicción de secuencias para secuencias largas, es decir, aprendizaje profundo . Se resolvió mediante dos RNN. Una de ellas (el automatizador ) predijo la secuencia y otra (el chunker ) predijo los errores del automatizador. Simultáneamente, el automatizador predijo los estados internos del chunker. Después de que el automatizador logra predecir bien los estados internos del chunker, comenzaría a corregir los errores y pronto el chunker queda obsoleto, dejando solo una RNN al final. [12] [13]
La idea de utilizar la salida de una red neuronal para entrenar a otra red neuronal también se estudió como la configuración de red profesor-alumno. [14] En 1992, varios artículos estudiaron la mecánica estadística de las configuraciones profesor-alumno con máquinas de comité [15] [16] o ambas son máquinas de paridad. [17]
En 2006, la compresión del conocimiento de múltiples modelos en una única red neuronal se denominó compresión de modelos : la compresión se logró entrenando un modelo más pequeño en grandes cantidades de pseudodatos etiquetados por un conjunto de mayor rendimiento, optimizando para que coincidiera el logit del modelo comprimido con el logit del conjunto. [18] La preimpresión de destilación de conocimiento de Geoffrey Hinton et al. (2015) [1] formuló el concepto y mostró algunos resultados logrados en la tarea de clasificación de imágenes .
La destilación del conocimiento también está relacionada con el concepto de clonación conductual discutido por Faraz Torabi et. al. [19].
Referencias
- ^ abcdefg Hinton, Geoffrey; Vinyals, Oriol; Dean, Jeff (2015). "Destilando el conocimiento en una red neuronal". arXiv : 1503.02531 [stat.ML].
- ^ Chen, Guobin; Choi, Wongun; Yu, Xiang; Han, Tony; Chandraker, Manmohan (2017). "Aprendizaje de modelos de detección de objetos eficientes con destilación de conocimiento". Avances en sistemas de procesamiento de información neuronal : 742–751.
- ^ Asami, Taichi; Masumura, Ryo; Yamaguchi, Yoshikazu; Masataki, Hirokazu; Aono, Yushi (2017). Adaptación de dominio de modelos acústicos de DNN utilizando destilación de conocimiento . IEEE International Conference on Acoustics, Speech and Signal Processing. págs. 5185–5189.
- ^ Cui, Jia; Kingsbury, Brian; Ramabhadran, Bhuvana ; Saon, George; Sercu, Tom; Audhkhasi, Kartik; Sethy, Abhinav; Nussbaum-Thom, Markus; Rosenberg, Andrew (2017). Destilación de conocimiento a través de conjuntos de modelos multilingües para idiomas con recursos limitados . IEEE International Conference on Acoustics, Speech and Signal Processing. págs. 4825–4829.
- ^ Yang, Yiding; Jiayan, Qiu; Mingli, Song; Dacheng, Tao; Xinchao, Wang (2020). "Destilando conocimiento de redes convolucionales de grafos" (PDF) . Actas de la Conferencia IEEE sobre visión artificial y reconocimiento de patrones : 7072–7081. arXiv : 2003.10477 . Código Bibliográfico :2020arXiv200310477Y.
- ^ ab LeCun, Yann; Denker, John; Solla, Sara (1989). "Daño cerebral óptimo". Avances en sistemas de procesamiento de información neuronal . 2. Morgan-Kaufmann.
- ^ Ivakhnenko, AG; Lapa, VG (1967). Cibernética y técnicas de previsión. American Elsevier Publishing Co. ISBN 978-0-444-00020-0.
- ^ Ivakhnenko, AG (marzo de 1970). "Autoorganización heurística en problemas de ingeniería cibernética". Automatica . 6 (2): 207–219. doi :10.1016/0005-1098(70)90092-0.
- ^ Ivakhnenko, Alexey (1971). "Teoría polinómica de sistemas complejos" (PDF) . IEEE Transactions on Systems, Man, and Cybernetics . SMC-1 (4): 364–378. doi :10.1109/TSMC.1971.4308320. Archivado (PDF) desde el original el 29 de agosto de 2017 . Consultado el 5 de noviembre de 2019 .
- ^ Schmidhuber, Jürgen (2022). "Historia comentada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [cs.NE].
- ^ Hanson, Stephen; Pratt, Lorien (1988). "Comparación de sesgos para la construcción de redes mínimas con retropropagación". Avances en sistemas de procesamiento de información neuronal . 1 . Morgan-Kaufmann.
- ^ Schmidhuber, Jürgen (abril de 1991). "Fragmentos de secuencias neuronales" (PDF) . TR FKI-148, TU Munich .
- ^ Schmidhuber, Jürgen (1992). "Aprendizaje de secuencias complejas y extendidas utilizando el principio de compresión histórica" (PDF) . Neural Computation . 4 (2): 234–242. doi :10.1162/neco.1992.4.2.234. S2CID 18271205.
- ^ Watkin, Timothy LH; Rau, Albrecht; Biehl, Michael (1 de abril de 1993). "La mecánica estadística del aprendizaje de una regla". Reseñas de Física Moderna . 65 (2): 499–556. Bibcode :1993RvMP...65..499W. doi :10.1103/RevModPhys.65.499.
- ^ Schwarze, H; Hertz, J (15 de octubre de 1992). "Generalización en una máquina de comité grande". Europhysics Letters (EPL) . 20 (4): 375–380. Bibcode :1992EL.....20..375S. doi :10.1209/0295-5075/20/4/015. ISSN 0295-5075.
- ^ Mato, G; Parga, N (1992-10-07). "Propiedades de generalización de redes neuronales multicapa". Journal of Physics A: Mathematical and General . 25 (19): 5047–5054. Bibcode :1992JPhA...25.5047M. doi :10.1088/0305-4470/25/19/017. ISSN 0305-4470.
- ^ Hansel, D; Mato, G; Meunier, C (1992-11-01). "Memorización sin generalización en una red neuronal multicapa". Europhysics Letters (EPL) . 20 (5): 471–476. Bibcode :1992EL.....20..471H. doi :10.1209/0295-5075/20/5/015. ISSN 0295-5075.
- ^ Buciluǎ, Cristian; Caruana, Rich; Niculescu-Mizil, Alexandru (2006). "Compresión de modelos". Actas de la 12.ª conferencia internacional ACM SIGKDD sobre descubrimiento de conocimiento y minería de datos .
- ^ Torabi, Faraz; Warnell, Garrett; Stone, Peter (2018). "Clonación conductual a partir de la observación". arXiv : 1805.01954 [cs.AI].
Enlaces externos
- Destilando el conocimiento en una red neuronal – Google AI