[ad_1]
Las redes neuronales modernas han logrado hazañas impresionantes en una variedad de aplicaciones como el habla, el razonamiento matemático y la visión. Sin embargo, estas redes suelen utilizar arquitecturas grandes que requieren grandes cantidades de recursos informáticos. Esto puede hacer que sea poco práctico proporcionar a los usuarios dichos modelos, especialmente en entornos con recursos limitados, como dispositivos portátiles y teléfonos inteligentes. Un enfoque común para mitigar el costo de inferencia de las redes previamente entrenadas es limpiarlas eliminando algunos de sus pesos de una manera que no afecte significativamente la utilidad. En las redes neuronales estándar, cada peso define una conexión entre dos neuronas. Entonces, después de limpiar los pesos, la entrada pasa a través de un conjunto más pequeño de conexiones, lo que requiere menos recursos computacionales.
![]() |
Red original versus una red podada. |
Los métodos de poda se pueden aplicar en diferentes etapas del proceso de entrenamiento de la red: después, durante o antes del entrenamiento (es decir, inmediatamente después de la inicialización del peso). En esta publicación, nos centramos en la situación posterior al entrenamiento: ¿cómo podemos utilizar una red previamente entrenada para determinar qué pesos se deben recortar? Un método popular es la poda de magnitud, que elimina los pesos de magnitud más pequeños. Si bien este método es eficaz, no tiene en cuenta directamente el efecto de eliminar ponderaciones en el rendimiento de la red. Otro paradigma popular es la poda basada en optimización, que elimina pesos en función de cómo su eliminación afecta la función de pérdida. Aunque conceptualmente atractivos, la mayoría de los enfoques basados en optimización existentes parecen enfrentar un serio compromiso entre el rendimiento y los requisitos computacionales. Los métodos que hacen aproximaciones aproximadas (como asumir una matriz hessiana diagonal) se escalan bien, pero tienen un rendimiento relativamente pobre. Por otro lado, los métodos que hacen menos aproximaciones tienden a ser mejores, pero parecen mucho menos escalables.
En Fast as CHITA: Neural Network Pruning with Combinatorial Optimization, presentado en ICML 2023, describimos cómo desarrollamos un enfoque basado en optimización para podar redes neuronales previamente entrenadas a escala. CHITA (que significa Algoritmo de umbral iterativo combinatorio sin arpillera) supera los métodos de poda existentes en términos de escalabilidad y compensaciones de rendimiento al aprovechar los avances de múltiples áreas, incluidas las estadísticas de alta dimensión, la optimización combinatoria y la poda de redes neuronales. Por ejemplo, CHITA puede ser entre 20 y 1000 veces más rápido que los métodos más modernos para limpiar ResNet y mejora la precisión en más de un 10 % en muchos entornos.
Resumen de las publicaciones
CHITA presenta dos mejoras técnicas notables con respecto a los métodos actuales:
- Uso eficiente de la información de segundo orden.: Los métodos de poda que utilizan información de segundo orden (es decir, haciendo referencia a segundas derivadas) están alcanzando el estado del arte en muchas situaciones. En la literatura, esta información se utiliza típicamente para calcular la matriz de Hesse o su inversa, una operación que es muy difícil de escalar porque la cantidad de Hesse es cuadrática con respecto al número de pesos. Mediante una reformulación cuidadosa, CHITA utiliza información de segundo orden sin la necesidad de calcular o almacenar explícitamente la matriz de Hesse, lo que permite una mejor escalabilidad.
- Optimización combinatoria: Los métodos populares basados en optimización utilizan una técnica de optimización simple que limpia las pesas de forma aislada, es decir, la decisión de limpiar una pesa específica no tiene en cuenta si se han limpiado otras pesas. Esto podría dar lugar a que se reduzcan pesos importantes, ya que los pesos que se consideran poco importantes de forma aislada pueden volverse importantes cuando se recortan otros pesos. CHITA evita este problema mediante el uso de un algoritmo de optimización combinatoria más avanzado que tiene en cuenta cómo la poda de un peso afecta a otros.
En las siguientes secciones, analizamos la formulación y los algoritmos de poda de CHITA.
Una formulación de poda computacionalmente amigable
Hay muchos candidatos de poda posibles que se obtienen reteniendo solo un subconjunto de los pesos de la red original. Dejar k ser un parámetro proporcionado por el usuario que especifica el número de pesos a conservar. Por supuesto, la poda puede formularse como un problema de selección del mejor subconjunto (BSS): entre todos los posibles candidatos a poda (es decir, subconjuntos de ponderaciones) con sólo k Si se mantienen las ponderaciones, se selecciona el candidato con la menor pérdida.
![]() |
Poda como problema de BSS: Entre todos los posibles candidatos a poda con el mismo peso total, el mejor candidato se define como aquel con la menor pérdida. Esta figura muestra cuatro candidatos, pero este número es generalmente mucho mayor. |
Resolver el problema de poda de BSS para la función de pérdida original generalmente es computacionalmente difícil de resolver. Por lo tanto, similar a trabajos anteriores como OBD y OBS, aproximamos la pérdida con una función cuadrática usando una serie de Taylor de segundo orden, estimando el Hessiano con la matriz de información empírica de Fisher. Si bien los gradientes generalmente se pueden calcular de manera eficiente, la matriz de Hesse es prohibitivamente costosa de calcular y almacenar debido a su gran tamaño. En la literatura, este desafío a menudo se resuelve haciendo suposiciones restrictivas sobre la matriz de Hesse (por ejemplo, matriz diagonal) y también sobre el algoritmo (por ejemplo, limpieza aislada de pesos).
CHITA utiliza una reformulación eficiente del problema de poda (BSS usando pérdida al cuadrado) que evita el cálculo explícito de la matriz de Hesse, pero utiliza toda la información de esa matriz. Esto es posible gracias a la explotación de la estructura de rango bajo de la matriz de información empírica de Fisher. Esta reformulación puede verse como un problema de regresión lineal dispersa, donde cada coeficiente de regresión corresponde a un peso específico en la red neuronal. Después de encontrar una solución a este problema de regresión, los coeficientes establecidos en cero corresponden a los pesos que deben limpiarse. Nuestra matriz de datos de regresión es (norte X PAG), Dónde norte es el tamaño del lote (submuestra) y PAG es el número de pesos en la red original. Típicamente norte < PAGPor lo tanto, almacenar y trabajar con esta matriz de datos es mucho más escalable que los enfoques de limpieza tradicionales que utilizan (PAG X PAG) Arpillera.
![]() |
CHITA reformula la aproximación de pérdida cuadrática, que requiere una costosa matriz de Hesse, como un problema de regresión lineal (LR). La matriz de datos del LR es lineal. PAGhaciendo que la reformulación sea más escalable que la aproximación cuadrática original. |
Algoritmos de optimización escalables
CHITA reduce la poda a un problema de regresión lineal bajo la siguiente restricción de escasez: como máximo k Los coeficientes de regresión pueden ser distintos de cero. Para encontrar una solución a este problema, consideremos una modificación del conocido algoritmo iterativo Hard Thresholding (IHT). IHT realiza un descenso de gradiente y realiza el siguiente paso de posprocesamiento después de cada actualización: Todos los coeficientes de regresión fuera de la parte superiork (es decir, el k Los coeficientes de mayor magnitud) se establecen en cero. IHT generalmente proporciona una buena solución al problema al examinar iterativamente diferentes candidatos de corte y optimizar los pesos juntos.
Debido a la magnitud del problema, el IHT estándar con una tasa de aprendizaje constante puede converger muy lentamente. Para una convergencia más rápida, desarrollamos un nuevo método de búsqueda de líneas que explota la estructura del problema para encontrar una tasa de aprendizaje adecuada, es decir, una que resulte en una reducción de pérdidas lo suficientemente grande. También hemos empleado varios esquemas computacionales para mejorar la eficiencia de CHITA y la calidad de la aproximación de segundo orden, lo que resultó en una versión mejorada que llamamos CHITA++.
experimentos
Comparamos el tiempo de ejecución y la precisión de CHITA con varios métodos de limpieza de última generación que utilizan diferentes arquitecturas, incluidas ResNet y MobileNet.
Duración: CHITA es mucho más escalable que métodos comparables que realizan optimización conjunta (a diferencia de la poda de peso de forma aislada). Por ejemplo, el aumento de velocidad de CHITA puede alcanzar 1000X al limpiar ResNet.
Precisión después del recorte: A continuación comparamos el rendimiento de CHITA y CHITA++ utilizando Magnitude Pruning (MP), Woodfisher (WF) y Combinatorial Brain Surgeon (CBS) para podar el 70% de los pesos del modelo. En general, vemos buenas mejoras de CHITA y CHITA++.
![]() |
Precisión después de podar varios métodos en ResNet20. Los resultados se dan para recortar el 70% de los pesos del modelo. |
![]() |
Precisión después de podar varios métodos en MobileNet. Los resultados se dan para recortar el 70% de los pesos del modelo. |
A continuación, informamos los resultados de la limpieza de una red más grande: ResNet50 (en esta red, algunos de los métodos enumerados en la figura de ResNet20 no lograron escalar). Aquí lo comparamos con Magnitude Pruning y M-FAC. La siguiente figura muestra que CHITA logra una mejor precisión de las pruebas para una amplia gama de niveles de escasez.
![]() |
Pruebe la precisión de las redes podadas, determinada con diferentes métodos. |
Conclusión, limitaciones y trabajo futuro.
Presentamos CHITA, un enfoque basado en optimización para limpiar redes neuronales previamente entrenadas. CHITA ofrece escalabilidad y rendimiento competitivo mediante el uso eficiente de información de segundo orden y el aprovechamiento de ideas de optimización combinatoria y estadísticas de alta dimensión.
CHITA está diseñado para corte desestructurado en el que se puede quitar cualquier peso. En teoría, la limpieza no estructurada puede reducir significativamente la sobrecarga computacional. Sin embargo, para lograr estas reducciones en la práctica se requiere software especializado (y posiblemente hardware) que admita cálculos escasos. A diferencia de, Corte estructurado, que elimina estructuras enteras, como las neuronas, podría ofrecer mejoras que son más fáciles de lograr en el software y el hardware en general. Sería interesante ampliar CHITA a la poda texturizada.
gracias
Este trabajo es parte de una colaboración de investigación entre Google y el MIT. Muchas gracias a Rahul Mazumder, Natalia Ponomareva, Wenyu Chen, Xiang Meng, Zhe Zhao y Sergei Vassilvitskii por su ayuda en la preparación de esta publicación y este artículo. Gracias también a John Guilyard por crear los gráficos de esta publicación.
[ad_2]