Articulo de referencia

Destilación del conocimiento

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 lo...

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 las redes neuronales muy profundas o los conjuntos de muchos modelos [ 1 ] ) tienen mayor capacidad de conocimiento que los modelos pequeños, esta capacidad podría no utilizarse por completo. Evaluar un modelo puede ser igual de costoso computacionalmente, incluso si utiliza poca 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, pueden implementarse en hardware menos potente (como un dispositivo móvil ). [ 2 ]

También existe una técnica menos común llamada Destilación Inversa del Conocimiento , donde el conocimiento se transfiere de un modelo más pequeño a uno más grande. [ 3 ]

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 sin necesidad de entrenar uno nuevo. La compresión de modelos generalmente conserva la arquitectura y el número nominal de parámetros del modelo, a la vez que reduce la cantidad de bits por parámetro.

La destilación del conocimiento se ha utilizado con éxito en varias aplicaciones de aprendizaje automático, como la detección de objetos , [ 4 ] los modelos acústicos , [ 5 ] y el procesamiento del lenguaje natural . [ 6 ] Recientemente, también se ha introducido en redes neuronales gráficas aplicables a datos no reticulares. [ 7 ]

Métodos

La transferencia de conocimiento de un modelo grande a uno pequeño requiere, de alguna manera, enseñar 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 una capacidad insuficiente para aprender una representación de conocimiento concisa en comparación con el modelo grande. Sin embargo, cierta información sobre una representación de conocimiento concisa 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 menores a las demás variables de salida. La distribución de valores entre las salidas para un registro proporciona información sobre cómo el modelo grande representa el conocimiento. Por lo tanto, el objetivo de una implementación económica de un modelo válido puede lograrse entrenando solo el modelo grande con los datos, aprovechando su mayor capacidad para aprender representaciones de conocimiento concisas, y luego destilando dicho conocimiento en el modelo más pequeño, entrenándolo para que aprenda la salida suave del modelo grande. [ 2 ]

Formulación matemática

Dado un modelo grande como función de la variable vectorialincógnita{\displaystyle \mathbf {x} }, entrenada para una tarea de clasificación específica , típicamente la capa final de las redes de clasificación es una softmax en la forma

yi(incógnita|t)=mizi(incógnita)tjmizj(incógnita)t{\displaystyle y_{i}(\mathbf {x} |t)={\frac {e^{\frac {z_{i}(\mathbf {x} )}{t}}}{\sum _{j}e^{\frac {z_{j}(\mathbf {x} )}{t}}}}}

dóndet{\displaystyle t}es la temperatura , un parámetro que se establece en 1 para un softmax estándar. El operador softmax convierte los valores logit.zi(incógnita){\displaystyle z_{i}(\mathbf {x} )}a pseudoprobabilidades: valores de temperatura más altos generan distribuciones más suaves de pseudoprobabilidades entre las clases de salida. La destilación del conocimiento consiste en entrenar una red más pequeña, llamada modelo destilado , en un conjunto de datos llamado conjunto de transferencia que podría corresponder al conjunto de entrenamiento original o consistir en datos nuevos, posiblemente sin etiquetar. Normalmente se utiliza una función de pérdida de entropía cruzada , calculada entre la salida del modelo destilado.y(incógnita|t){\displaystyle \mathbf {y} (\mathbf {x} |t)}y el resultado del modelo grandey^(incógnita|t){\displaystyle {\sombrero {\mathbf {y} }}(\mathbf {x} |t)}en el mismo registro (o el promedio de las salidas individuales, si el modelo grande es un conjunto), utilizando un valor alto de temperatura softmaxt{\displaystyle t}para ambos modelos: [ 2 ]

mi(incógnita|t)=iy^i(incógnita|t)registroyi(incógnita|t).{\displaystyle E(\mathbf {x} |t)=-\sum _{i}{\hat {y}}_{i}(\mathbf {x} |t)\log y_{i}(\mathbf {x} |t).}

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 objetivos duros, y al mismo tiempo reduciendo la varianza del gradiente entre diferentes registros, lo que permite una tasa de aprendizaje más alta . [ 2 ]

Si se dispone de datos de referencia para el conjunto de transferencia, el proceso puede reforzarse añadiendo a la pérdida la entropía cruzada entre la salida.yi(incógnita|1){\displaystyle y_{i}(\mathbf {x} |1)}del modelo destilado calculado cont=1{\displaystyle t=1}y la etiqueta conociday¯i{\displaystyle {\bar {y}}_{i}}

mi(incógnita|t)=t2iy^i(incógnita|t)registroyi(incógnita|t)iy¯iregistroyi(incógnita|1){\displaystyle E(\mathbf {x} |t)=-t^{2}\sum _{i}{\hat {y}}_{i}(\mathbf {x} |t)\log y_{i}(\mathbf {x} |t)-\sum _{i}{\bar {y}}_{i}\log y_{i}(\mathbf {x} |1)}

donde el componente de la pérdida con respecto al modelo grande se pondera por un factor det2{\displaystyle t^{2}}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 de1t2{\displaystyle {\frac {1}{t^{2}}}}. [ 2 ]

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 de destilación del conocimientomi{\displaystyle E}con respecto al logit del modelo destiladozi{\displaystyle z_{i}}es dado por

zimi=zijy^jregistroyj=ziy^iregistroyi+(zikiy^kregistroyk)=y^i1yiziyi+ki(y^k1ykmizkt(1(jmizjt)2)mizit1t)=y^i1yizimizitjmizjt+ki(y^k1ykykyi1t)=y^i1yi(1tmizitjmizjt1t(mizit)2(jmizjt)2)+yikiy^kt=y^i1yi(yityi2t)+yi(1y^i)t=1t(yiy^i)=1t(mizitjmizjtmiz^itjmiz^jt){\displaystyle {\begin{aligned}{\frac {\partial }{\partial z_{i}}}E&=-{\frac {\partial }{\partial z_{i}}}\sum _{j}{\hat {y}}_{j}\log y_{j}\\&=-{\frac {\partial }{\partial z_{i}}}{\hat {y}}_{i}\log y_{i}+\left(-{\frac {\partial }{\partial z_{i}}}\sum _{k\neq i}{\hat {y}}_{k}\log y_{k}\right)\\&=-{\hat {y}}_{i}{\frac {1}{y_{i}}}{\frac {\partial }{\partial z_{i}}}y_{i}+\sum _{k\neq i}\left(-{\hat {y}}_{k}\cdot {\frac {1}{y_{k}}}\cdot e^{\frac {z_{k}}{t}}\cdot \left(-{\frac {1}{\left(\sum _{j}e^{\frac {z_{j}}{t}}\right)^{2}}}\right)\cdot e^{\frac {z_{i}}{t}}\cdot {\frac {1}{t}}\right)\\&=-{\hat {y}}_{i}{\frac {1}{y_{i}}}{\frac {\partial }{\partial z_{i}}}{\frac {e^{\frac {z_{i}}{t}}}{\sum _{j}e^{\frac {z_{j}}{t}}}}+\sum _{k\neq i}\left({\hat {y}}_{k}\cdot {\frac {1}{y_{k}}}\cdot y_{k}\cdot y_{i}\cdot {\frac {1}{t}}\right)\\&=-{\hat {y}}_{i}{\frac {1}{y_{i}}}\left({\frac {{\frac {1}{t}}e^{\frac {z_{i}}{t}}\sum _{j}e^{\frac {z_{j}}{t}}-{\frac {1}{t}}\left(e^{\frac {z_{i}}{t}}\right)^{2}}{\left(\sum _{j}e^{\frac {z_{j}}{t}}\right)^{2}}}\right)+{\frac {y_{i}\sum _{k\neq i}{\hat {y}}_{k}}{t}}\\&=-{\hat {y}}_{i}{\frac {1}{y_{i}}}\left({\frac {y_{i}}{t}}-{\frac {y_{i}^{2}}{t}}\right)+{\frac {y_{i}(1-{\hat {y}}_{i})}{t}}\\&={\frac {1}{t}}\left(y_{i}-{\hat {y}}_{i}\right)\\&={\frac {1}{t}}\left({\frac {e^{\frac {z_{i}}{t}}}{\sum _{j}e^{\frac {z_{j}}{t}}}}-{\frac {e^{\frac {{\hat {z}}_{i}}{t}}}{\sum _{j}e^{\frac {{\hat {z}}_{j}}{t}}}}\right)\\\end{aligned}}}

dóndez^i{\displaystyle {\sombrero {z}}_{i}}son los logits del modelo grande. Para valores grandes det{\displaystyle t}Esto se puede aproximar como

1t(1+zitnorte+jzjt1+z^itnorte+jz^jt){\displaystyle {\frac {1}{t}}\left({\frac {1+{\frac {z_{i}}{t}}}{N+\sum _{j}{\frac {z_{j}}{t}}}}-{\frac {1+{\frac {{\hat {z}}_{i}}{t}}}{N+\sum _{j}{\frac {{\hat {z}}_{j}}{t}}}}\right)}

y bajo la hipótesis de media cerojzj=jz^j=0{\displaystyle \sum _{j}z_{j}=\sum _{j}{\hat {z}}_{j}=0}se convierteziz^inorteT2{\displaystyle {\frac {z_{i}-{\hat {z}}_{i}}{NT^{2}}}}, que es el derivado de12(ziz^i)2{\displaystyle {\frac {1}{2}}\left(z_{i}-{\hat {z}}_{i}\right)^{2}}, es decir, la pérdida es equivalente a igualar los logits de los dos modelos, como se hace en la compresión de modelos. [ 2 ]

Algoritmo de "daño cerebral óptimo"

El algoritmo de Daño Cerebral Óptimo (OBD) es el siguiente: [ 8 ]

Repita hasta alcanzar el nivel de dispersión o rendimiento deseado:
Entrenar la red (mediante métodos como la retropropagación) hasta obtener una solución razonable.
Calcular las prominencias para cada parámetro
Eliminar algunos parámetros de menor relevancia

Eliminar un parámetro significa fijar el parámetro a cero. La "saliencia" de un parámetroθ{\displaystyle \theta }se define como12(θ2L)θ2{\displaystyle {\frac {1}{2}}(\partial _{\theta }^{2}L)\theta ^{2}}, dóndeL{\displaystyle L}es la función de pérdida. La segunda derivadaθ2L{\displaystyle \partial _{\theta }^{2}L}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ámetros óptimos.θ{\displaystyle \theta ^{*}}por Taylor expansión :L(θ)L(θ)+12i(θi2L(θ))(θiθi)2{\displaystyle L(\theta )\approx L(\theta ^{*})+{\frac {1}{2}}\sum _{i}(\partial _{\theta _{i}}^{2}L(\theta ^{*}))(\theta _{i}-\theta _{i}^{*})^{2}}dóndeL(θ)0{\displaystyle \nabla L(\theta ^{*})\approx 0}, desdeθ{\displaystyle \theta ^{*}}es óptimo, y las derivadas cruzadasθiθjL{\displaystyle \partial _{\theta _{i}}\partial _{\theta _{j}}L}Se omiten para ahorrar capacidad de cálculo. Por lo tanto, la importancia de un parámetro se aproxima al aumento de la pérdida si se elimina dicho 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 la URSS (1965). [ 9 ] [ 10 ] [ 11 ] Sus redes profundas fueron entrenadas capa por capa a través de análisis de regresión . Las unidades ocultas superfluas fueron podadas utilizando un conjunto de validación separado. [ 12 ] Otros métodos de compresión de redes neuronales incluyen Biased Weight Decay [ 13 ] y Optimal Brain Damage. [ 8 ]

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 largas, es decir, aprendizaje profundo . Su enfoque consistía en usar dos RNN. Una de ellas (el autómata ) predecía la secuencia, y la otra (el segmentador ) predecía los errores del autómata. Simultáneamente, el autómata predecía los estados internos del segmentador. Una vez que el autómata lograba predecir correctamente los estados internos del segmentador, comenzaba a corregir los errores, y pronto el segmentador quedaba obsoleto, quedando finalmente solo una RNN. [ 14 ] [ 15 ]

La idea de utilizar la salida de una red neuronal para entrenar otra red neuronal también se estudió como la configuración de red profesor-alumno. [ 16 ] En 1992, varios artículos estudiaron la mecánica estadística de las configuraciones profesor-alumno con máquinas de comité [ 17 ] [ 18 ] o máquinas de paridad. [ 19 ]

La compresión del conocimiento de múltiples modelos en una sola red neuronal se denominó compresión de modelos en 2006: 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 el logit del modelo comprimido coincidiera con el logit del conjunto. [ 20 ] El preimpreso de destilación de conocimiento de Geoffrey Hinton et al. (2015) [ 2 ] formuló el concepto y mostró algunos resultados obtenidos 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. [ 21 ].

Referencias

  1. You, Shan; Xu, Chang; Xu, Chao; Tao, Dacheng (2017). Aprendizaje a partir de múltiples redes de profesores . Actas de la 23.ª conferencia internacional ACM SIGKDD sobre descubrimiento de conocimiento y minería de datos. págs. 1285–1294 . 
  2. 1 2 3 4 5 6 7 Hinton, Geoffrey; Vinyals, Oriol; Dean, Jeff (2015). "Destilando el conocimiento en una red neuronal". arXiv : 1503.02531 [ stat.ML ].
  3. ^ Yifan Xu y Yuxiang Wu y Zhiqiang Hu y Hang Xu y Zhongwei Wan y Yongfeng Zhang y Yu Qiao y Zhen Wang (2023). "RestGPT: conexión de modelos de lenguaje grandes con API RESTful del mundo real". arXiv : 2307.10698 [ cs.CV ].
  4. Chen, Guobin; Choi, Wongun; Yu, Xiang; Han, Tony; Chandraker, Manmohan (2017). "Aprendizaje de modelos eficientes de detección de objetos mediante destilación de conocimiento". Advances in Neural Information Processing Systems : 742–751 .
  5. Asami, Taichi; Masumura, Ryo; Yamaguchi, Yoshikazu; Masataki, Hirokazu; Aono, Yushi (2017). Adaptación de dominio de modelos acústicos DNN mediante destilación de conocimiento . Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales. pp. 5185–5189 . 
  6. 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 lenguas con pocos recursos . Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales. págs. 4825–4829 . 
  7. Yang, Yiding; Jiayan, Qiu; Mingli, Song; Dacheng, Tao; Xinchao, Wang (2020). "Destilación de conocimiento a partir de redes neuronales convolucionales de grafos" (PDF) . Actas de la Conferencia IEEE sobre Visión por Computadora y Reconocimiento de Patrones : 7072–7081 . arXiv : 2003.10477 . Bibcode : 2020arXiv200310477Y .
  8. 1 2 LeCun, Yann; Denker, John; Solla, Sara (1989). "Daño cerebral óptimo" . Avances en sistemas de procesamiento de información neuronal . 2. Morgan-Kaufmann.
  9. Ivakhnenko, AG; Lapa, VG (1967). Cibernética y técnicas de predicción . American Elsevier Publishing Co. ISBN 978-0-444-00020-0.
  10. Ivakhnenko, AG (marzo de 1970). "Autoorganización heurística en problemas de cibernética de ingeniería" . Automatica . 6 (2): 207– 219. doi : 10.1016/0005-1098(70)90092-0 .
  11. 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) del original el 29 de agosto de 2017. Recuperado el 5 de noviembre de 2019 .
  12. Schmidhuber, Jürgen (2022). "Historia anotada de la IA moderna y el aprendizaje profundo". arXiv : 2212.11279 [ cs.NE ].
  13. 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.
  14. Schmidhuber, Jürgen (abril de 1991). "Neural Sequence Chunkers" (PDF) . TR FKI-148, TU Munich .
  15. Schmidhuber, Jürgen (1992). "Aprendizaje de secuencias complejas y extendidas mediante el principio de compresión histórica" ​​(PDF) . Neural Computation . 4 (2): 234– 242. doi : 10.1162/neco.1992.4.2.234 . S2CID 18271205. Archivado del original (PDF) el 6 de julio de 2017. 
  16. Watkin, Timothy LH; Rau, Albrecht; Biehl, Michael (1993-04-01). "La mecánica estadística del aprendizaje de una regla" . Reviews of Modern Physics . 65 (2): 499– 556. Bibcode : 1993RvMP...65..499W . doi : 10.1103/RevModPhys.65.499 . hdl : 11370/02b0cd15-dfc5-4acb-9566-4ab937ee0d13 .
  17. Schwarze, H; Hertz, J (1992-10-15). "Generalización en una gran máquina de comité" . Europhysics Letters . 20 (4): 375– 380. Bibcode : 1992EL.....20..375S . doi : 10.1209/0295-5075/20/4/015 . ISSN 0295-5075 . 
  18. 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 . 
  19. Hansel, D; Mato, G; Meunier, C (1992-11-01). "Memorización sin generalización en una red neuronal multicapa" . Europhysics Letters . 20 (5): 471– 476. Bibcode : 1992EL.....20..471H . doi : 10.1209/0295-5075/20/5/015 . ISSN 0295-5075 . 
  20. 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 .
  21. Torabi, Faraz; Warnell, Garrett; Stone, Peter (2018). "Clonación conductual a partir de la observación". arXiv : 1805.01954 [ cs.AI ].
  • Destilando el conocimiento en una red neuronal – Google AI