stringtranslate.com

Destilación del conocimiento

En 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 una mayor capacidad de conocimiento que los modelos pequeños, es posible que esta capacidad no se utilice plenamente. Puede resultar igualmente costoso desde el punto de vista computacional evaluar un modelo incluso si utiliza poca de su capacidad de conocimiento. La destilación del conocimiento transfiere conocimiento de un modelo grande a un modelo 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 conocimientos se ha utilizado con éxito en varias aplicaciones del 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 para graficar redes neuronales aplicables a datos que no son de red. [5]

Concepto de destilación

Transferir el conocimiento de un modelo grande a uno pequeño necesita enseñar de alguna manera a este último sin pérdida de validez. Si ambos modelos se entrenan con los mismos datos, el modelo pequeño puede tener capacidad insuficiente para aprender una representación concisa del conocimiento dados los mismos recursos computacionales y los mismos datos que el modelo grande. Sin embargo, parte de la 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 los resultados de un registro proporciona información sobre cómo el modelo grande representa el conocimiento. Por lo tanto, el objetivo de la 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 de conocimiento concisas y luego destilando dicho conocimiento en el modelo más pequeño, que no sería capaz de implementar. Aprendalo por sí solo, entrenándolo para que aprenda la salida suave del modelo grande. [1]

Un primer ejemplo de destilación de una red neuronal artificial en otra red se remonta a 1992, cuando Juergen Schmidhuber comprimió o colapsó una jerarquía de redes neuronales recurrentes (RNN) en un único RNN, al destilar una red fragmentaria de nivel superior en una red automatizadora de nivel inferior. . [6] [7] Esto facilitó el aprendizaje profundo posterior.

Una metodología relacionada para comprimir el conocimiento de múltiples modelos en una única red neuronal se denominó compresión de modelos en 2006. La compresión se logró entrenando un modelo más pequeño con grandes cantidades de pseudodatos etiquetados por un conjunto de mayor rendimiento, optimizándolo para que coincida con el logit. del modelo comprimido al logit del conjunto. [8] La destilación del conocimiento es una generalización de dicho enfoque, introducida por Geoffrey Hinton et al. en 2015, [1] en una preimpresión que formulaba el concepto y mostraba algunos resultados alcanzados en la tarea de clasificación de imágenes .

La destilación de conocimientos también está relacionada con el concepto de clonación conductual discutido por Faraz Torabi et. Alabama. [9]

Formulación

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 hay un parámetro llamado temperatura , que para un softmax estándar normalmente se establece en 1. El operador softmax convierte los valores logit en pseudoprobabilidades, y los valores más altos de temperatura tienen el efecto de generar una distribución más suave de pseudoprobabilidades entre la salida. clases. 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 (diferente al conjunto de datos utilizado para entrenar el modelo grande) usando la entropía cruzada como función de pérdida entre la salida del modelo destilado y la salida producida. por el modelo grande en el mismo registro (o el promedio de las salidas individuales, si el modelo grande es un conjunto), usando un valor alto de temperatura softmax para ambos modelos [1]

En este contexto, una temperatura alta aumenta la entropía de la salida y, por lo tanto, proporciona más información para aprender para el modelo destilado en comparación con objetivos duros, al mismo tiempo que reduce la variación del gradiente entre diferentes registros y, por lo tanto, permite tasas de aprendizaje más altas . [1]

Si la verdad fundamental está disponible 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 está ponderado 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 aumenta en un factor de . [1]

Relación con la compresión del modelo.

Bajo el supuesto de que los logits tienen media cero , es posible demostrar que la compresión del modelo es un caso especial de destilación del conocimiento. El gradiente de la pérdida por destilación del conocimiento con respecto al logit del modelo destilado viene dado por

¿Dónde están los logits del modelo grande? Para valores grandes de 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 del modelo. [1]

Referencias

  1. ^ abcdefg Hinton, Geoffrey; Vinyals, Oriol; Decano, Jeff (2015). "Destilando el conocimiento en una red neuronal". arXiv : 1503.02531 [estad.ML].
  2. ^ Chen, Guobin; Choi, Wongun; Yu, Xiang; Han, Tony; Chandraker, Manmohan (2017). "Aprendizaje de modelos eficientes de detección de objetos con destilación de conocimientos". Avances en los sistemas de procesamiento de información neuronal : 742–751.
  3. ^ Asami, Taichi; Masumura, Ryo; Yamaguchi, Yoshikazu; Masataki, Hirokazu; Aono, Yushi (2017). "Adaptación de dominio de modelos acústicos DNN mediante destilación de conocimientos" . Conferencia internacional IEEE sobre acústica, habla y procesamiento de señales. págs. 5185–5189.
  4. ^ Cui, Jia; Kingsbury, Brian; Ramabhadran, Bhuvana ; Saón, George; Sercu, Tom; Audhkhasi, Kartik; Sethy, Abhinav; Nussbaum-Thom, Markus; Rosenberg, Andrés (2017). "Destilación de conocimientos a través de conjuntos de modelos multilingües para lenguas de bajos recursos" . Conferencia internacional IEEE sobre acústica, habla y procesamiento de señales. págs. 4825–4829.
  5. ^ Yang, Yiding; Jiayan, Qiu; Mingli, canción; Dacheng, Tao; Xinchao, Wang (2020). "Destilación de conocimientos a partir de redes convolucionales de gráficos" (PDF) . Actas de la Conferencia IEEE sobre visión por computadora y reconocimiento de patrones : 7072–7081. arXiv : 2003.10477 . Código Bib : 2020arXiv200310477Y.
  6. ^ Schmidhuber, Jürgen (1992). "Aprendizaje de secuencias extendidas y complejas utilizando el principio de compresión histórica" ​​(PDF) . Computación neuronal . 4 (2): 234–242. doi :10.1162/neco.1992.4.2.234. S2CID  18271205.
  7. ^ Schmidhuber, Jürgen (2022). "Historia comentada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [cs.NE].
  8. ^ Buciluǎ, Cristian; Caruana, Rico; Niculescu-Mizil, Alexandru (2006). "Compresión del modelo". Actas de la 12ª conferencia internacional ACM SIGKDD sobre descubrimiento de conocimiento y minería de datos .
  9. ^ Torabi, Faraz; Warnell, Garrett; Piedra, Peter (2018). "Clonación conductual a partir de la observación". arXiv : 1805.01954 [cs.AI].

enlaces externos