Análisis detallado de poda de compresión del modelo de red de aprendizaje profundo

Análisis detallado de poda de compresión del modelo de red de aprendizaje profundo

1) Introduccion

1. Antecedentes

     El aprendizaje profundo ha llevado el desempeño de las tareas de visión por computadora a un nivel sin precedentes. Sin embargo, al mismo tiempo que el modelo complejo, brinda un alto espacio de almacenamiento y consumo de recursos informáticos, lo que dificulta su implementación en varias plataformas de hardware.

     Para resolver estos problemas, el modelo se comprime para minimizar el espacio computacional y el consumo de tiempo del modelo.

2. Bases teóricas

    Necesidad: la red principal actual, como VGG16, tiene más de 130 millones de parámetros y más de 500 MB de espacio y necesita más de 30 mil millones de operaciones de punto flotante para completar una tarea de reconocimiento de imágenes.

    Viabilidad: en redes convolucionales profundas, hay una gran cantidad de nodos redundantes, y solo una pequeña parte (5-10%) de los pesos participa en el cálculo principal, es decir, solo se puede entrenar una pequeña parte de los parámetros de peso Lograr un rendimiento similar a la red original.

3. Método actual

Analice, comprima y acelere modelos de múltiples dimensiones de datos, modelos y hardware.

1.    Comprima la red existente, que incluye: descomposición del tensor, poda del modelo, cuantificación del modelo (para modelos existentes)

2.     Construya una nueva red pequeña, que incluya: destilación de conocimiento, diseño de red compacta; (para el nuevo modelo)

Segundo, el desarrollo del modelo de poda por compresión.

 Una desventaja importante de las redes neuronales profundas (DNN) es que son demasiado computacionalmente intensivas. Esto ha obstaculizado en gran medida la comercialización de métodos basados ​​en el aprendizaje profundo, especialmente en algunos dispositivos de borde. Debido a que la mayoría de los dispositivos de borde no están diseñados para tareas computacionalmente intensivas, si simplemente se implementan, el consumo de energía y el retraso se convertirán en problemas. Incluso en el lado del servidor, más cálculos conducirán directamente a mayores costos. La gente está tratando de superar este problema desde varios ángulos, como los chips de red neuronal que han estado en pleno desarrollo en los últimos años. La idea es utilizar la aceleración de hardware dedicada para una tarea informática determinada. ¿Y otra idea es considerar si los cálculos en el modelo son todos necesarios? De lo contrario, ¿es posible simplificar el modelo para reducir la cantidad de cálculo y la huella de almacenamiento? Este artículo habla principalmente de este tipo de método, llamado compresión del modelo ( compresión del modelo ) . Es un método de software con un bajo costo de aplicación, y no contradice el método de aceleración de hardware y puede agregarse entre sí. Subdivision, el modelo se puede dividir en muchos métodos de compresión, tales como la poda ( poda ), la cuantificación ( Cuantización ), la descomposición de bajo rango ( Low-factorización rango ), el conocimiento destilada ( Conocimiento de destilación ) . La expansión de cada método de subclase puede ser un gran tema, por lo que vamos uno por uno, hoy principalmente limitados a la podaMétodo Se basa en una suposición, o en el consenso actual. Es la sobre-parametrización de DNN. Sabemos que las redes neuronales profundas, como muchos otros modelos de aprendizaje automático, se pueden dividir en fases de formación e inferencia. La fase de entrenamiento se basa en los parámetros del modelo de aprendizaje de datos (para redes neuronales, se trata principalmente de los pesos en la red); en la fase de inferencia, se introducen nuevos datos en el modelo y se calculan los resultados. La parametrización excesiva significa que necesitamos una gran cantidad de parámetros en la fase de entrenamiento para capturar información pequeña en los datos, y una vez que se completa el entrenamiento en la fase de inferencia, no necesitamos tantos parámetros. Esta suposición respalda que podemos simplificar el modelo antes de la implementación. Los dos métodos de poda y cuantización en la compresión del modelo se basan en esta premisa. Después de simplificar el modelo, hay muchos beneficios, que incluyen, entre otros: 1) El beneficio más directo es la reducción en la cantidad de cálculo, lo que resulta en menos tiempo de cálculo y menor consumo de energía. 2) La huella de memoria se vuelve más pequeña y se puede poner en dispositivos de gama baja para ejecutar. Hay un beneficio de rendimiento adicional que originalmente requería DRAM lenta y que consumía energía para participar, y ahora es posible obtenerlo en SRAM. 3) El paquete de menor tamaño es bueno para el lanzamiento y actualización de la aplicación. Por ejemplo, algunos mercados de teléfonos móviles tendrán restricciones en el tamaño de las aplicaciones, y también es propicio para las actualizaciones OTA de automóviles. Con la "teoría" inspirada, la siguiente pregunta es cómo. Obviamente, no puede tomar el modelo y cortarlo a ciegas, porque la precisión puede caer tanto que es inaceptable. Por supuesto, también hay casos en los que la precisión aumentará después de la poda, lo que demuestra que el modelo original está sobreajustado, y la poda juega un papel en la regularización. En general, el tema central es cómo recortar eficazmente el modelo y minimizar la pérdida de precisión. De hecho, este no es un problema nuevo: la poda de las redes neuronales se estudió a fines de los años ochenta y principios de los noventa. Por ejemplo, el documento "Comparación de sesgos para la construcción de redes mínimas con propagación hacia atrás" propone un método de poda basado en la magnitud, es decir, aplicando una disminución de peso relacionada con su valor absoluto a cada unidad oculta en la red para minimizar el número de unidades ocultas. Otro ejemplo son los trabajos clásicos "Daño cerebral óptimo" y "Derivados de segundo orden para la poda de redes:" "Optimal Brain Surgeon" propuso por separado los métodos OBD y OBS, que miden la importancia de los pesos en la red en función de la segunda derivada de la función de pérdida en relación con los pesos (la matriz de Hesse para el vector de peso), y luego la recortan. Pero debido al entorno general en ese momento, las redes neuronales (no había una red neuronal profunda en ese momento, solo una red neuronal o una red neuronal oculta para la diferenciación) no eran una rama particularmente dominante del aprendizaje automático, por lo que después de mucho tiempo No hay muchas ramas y hojas, pero sus definiciones de peinado e ideas para resolver problemas han tenido un profundo impacto en mucho trabajo más de 20 años después. Para 2012, todos sabíamos que el aprendizaje profundo se hizo famoso y se hizo famoso. Desde entonces, la tendencia de eliminar la lista ha aumentado e intensificado, y la atención de todos es mejorar la precisión. Por lo tanto, la tendencia general es profundizar y agravar continuamente la red para mejorar la precisión, y la precisión de ImageNet se establece en un nuevo máximo cada año. Durante 2015-16, Hang Song y otros publicaron una serie de trabajos sobre compresión de modelos de redes neuronales profundas. Tales como "Aprendizaje de pesos y conexiones para redes neuronales eficientes", "EIE: motor de inferencia eficiente en una red neuronal profunda comprimida". Entre ellos `` Compresión profunda: compresión de redes neuronales profundas con poda, Cuantización entrenada y Codificación Huffman ganaron el mejor trabajo de ICLR 2016. Entre ellos, las redes clásicas AlexNet y VGG estaban comprimidas. Combinando múltiples métodos como la poda, la cuantización y la codificación de huffman, el tamaño de la red se comprime decenas de veces y el rendimiento se duplica. Entre ellos, para la pérdida de precisión causada por la poda, se utiliza el método de poda iterativa para compensar, de modo que casi no hay pérdida de precisión. Esto hace que todos se den cuenta de que el grado de redundancia de los parámetros de DNN es tan grande que se puede exprimir tanto aceite. En los últimos años, el campo de la compresión de modelos se ha enriquecido, y cada vez más trabajos relacionados han derivado varios juegos. A partir de la granularidad de la poda de red, se puede dividir en dos tipos: poda estructurada y poda no estructurada. Algunos de los primeros métodos se basaron en desestructurados, que reducen la granularidad a una sola neurona. Si se realiza una poda no estructurada en el núcleo, el núcleo resultante es escaso, es decir, hay muchas matrices con cero elementos en el medio. A menos que el hardware subyacente y la biblioteca de informática tengan un mejor soporte, es difícil obtener mejoras sustanciales de rendimiento después de la versión de poda. Las matrices dispersas no pueden utilizar la biblioteca BLAS madura existente para obtener beneficios de rendimiento adicionales. Por lo tanto, gran parte de la investigación en los últimos años se ha centrado en la poda estructurada. La poda estructurada puede subdividirse aún más: por ejemplo, puede ser en forma de canal, de filtro o de forma. poda) dos categorías. Algunos de los primeros métodos se basaron en desestructurados, que reducen la granularidad a una sola neurona. Si se realiza una poda no estructurada en el núcleo, el núcleo resultante es escaso, es decir, hay muchas matrices con cero elementos en el medio. A menos que el hardware subyacente y la biblioteca de informática tengan un mejor soporte, es difícil obtener mejoras sustanciales de rendimiento después de la versión de poda. Las matrices dispersas no pueden utilizar la biblioteca BLAS madura existente para obtener beneficios de rendimiento adicionales. Por lo tanto, gran parte de la investigación en los últimos años se ha centrado en la poda estructurada. La poda estructurada puede subdividirse aún más: por ejemplo, puede ser en forma de canal, de filtro o de forma. poda) dos categorías. Algunos de los primeros métodos se basaron en desestructurados, que reducen la granularidad a una sola neurona. Si se realiza una poda no estructurada en el núcleo, el núcleo resultante es escaso, es decir, hay muchas matrices con cero elementos en el medio. A menos que el hardware subyacente y la biblioteca de informática tengan un mejor soporte, es difícil obtener mejoras sustanciales de rendimiento después de la versión de poda. Las matrices dispersas no pueden utilizar la biblioteca BLAS madura existente para obtener beneficios de rendimiento adicionales. Por lo tanto, gran parte de la investigación en los últimos años se ha centrado en la poda estructurada. La poda estructurada puede subdividirse aún más: por ejemplo, puede ser en forma de canal, de filtro o de forma.

 3. Análisis detallado de la tecnología de poda por compresión.

La idea básica de la poda de red es adaptar la parte menos importante. Formalmente, se puede expresar como:

O escriba el corte del parámetro en una forma de optimización restringida: debido a la existencia de la norma L0, este problema se convierte en un problema de optimización combinatoria. Dado que es un problema NP-difícil, obviamente no puede ser difícil.

 Clasificación

Una de las ideas más simples es el método codicioso, o método basado en la prominencia . Es decir, ordenar por importancia y luego eliminar las partes sin importancia. Pero la pregunta es cómo medir la importancia.

 Idea uno 

Una de las heurísticas más simples es evaluar la importancia de acuerdo con el valor absoluto del parámetro (o salida de la característica), y luego usar el método codicioso para matar esa parte. Este tipo se llama poda de peso basada en la magnitud.. Por ejemplo, en el artículo clásico de 2016 "Filtros de poda para redes de conexión eficientes", el valor absoluto del peso se utiliza como una medida de su importancia. Pero si los pesos de entrenamiento no son escasos, no es propicio para la poda. El método común es agregar regularizador a la pérdida durante el entrenamiento, especialmente el regularizador L1, para que los pesos sean escasos. Para la poda estructurada, queremos obtener pesos dispersos estructurados, por lo que el grupo LASSO se usa a menudo para obtener pesos dispersos estructurados, como los documentos 2015-16 "Aprendizaje de la escasez estructurada en redes neuronales profundas" y "Redes neuronales convolucionales dispersas" Etc. El documento de 2017 "Aprendizaje de redes convolucionales eficientes a través del adelgazamiento de red" adoptó un método inteligente basado en el uso generalizado de la capa BN (Batch Normalization), agregando un factor de escala por canal a la capa BN y agregando el regularizador L1 para que sea escaso, y luego La parte con un valor de factor de escala pequeño corresponde al peso. Además, la evaluación de importancia también se puede dirigir a la activación (valor de activación, es decir, la salida de la función de activación). Por supuesto, incluso si se dirige a la activación, se reflejará en el corte de peso. En términos generales, las funciones de activación como Relu tienden a producir activaciones dispersas; es poco probable que los pesos sean escasos (actualmente, como se mencionó anteriormente, podemos hacerlo disperso por una fuerza externa como el regularizador). En este sentido, la activación es más adecuada para la poda. Como el artículo de 2016 "Recorte de red: "Un enfoque de poda de neuronas basado en datos para arquitecturas profundas eficientes" propone utilizar el porcentaje promedio de ceros, o APoZ, para medir la importancia de la activación. Se define como la relación de 0 en la activación.

  Idea dos 

Una suposición del método anterior es que cuanto menor es el valor absoluto del parámetro, menor es su efecto sobre el resultado final. Llamamos a esto el criterio de "menor norma menos importante". Sin embargo, esta suposición no es necesariamente cierta (como se discutió en el documento de 2018 "Repensar la suposición de menor norma menos informativa en la poda de canales de capas de convolución"). La segunda idea es considerar el efecto del recorte de parámetros en la pérdida . De hecho, los OBD y OBS a nivel de antepasados ​​mencionados anteriormente pertenecen a esta categoría. Pero estos dos métodos necesitan calcular la matriz de Hesse o su tiempo aproximado. En los últimos años, se han estudiado y propuesto algunos métodos basados ​​en esta idea. Por ejemplo, el documento de 2016 "Podando redes neuronales convolucionales para el aprendizaje de transferencia eficiente de recursos" también se basa en la expansión de Taylor, pero utiliza el valor absoluto del término de primer orden en la expansión de la función objetivo en relación con la activación como criterio de poda. Esto evita el cálculo de términos de segundo orden (es decir, matriz de Hesse). El artículo de 2018 "SNIP: poda de red de un solo disparo basado en la sensibilidad de conexión" toma como medida de importancia el valor absoluto de la derivada de la función objetivo normalizada en relación con el parámetro.

  Idea tres 

La tercera idea es considerar el efecto sobre la reproducibilidad de la salida de la característica , es decir, minimizar el error de reconstrucción de la salida de la característica después de la red recortada. Su intuición es si la capa actual está recortada, y si no tiene ningún efecto en la salida posterior, significa que la información recortada no es muy importante. Ejemplos típicos son los documentos de 2017 "ThiNet: un método de poda de nivel de filtro para la compresión de redes neuronales profundas" y "poda de canales para acelerar redes neuronales muy profundas" al minimizar los errores de reconstrucción de características para determinar qué canales necesitan ser recortados. . El primero usa el método codicioso, el segundo usa la regresión LASSO. El documento de 2017 "NISP: Poda de redes utilizando la propagación de puntaje de importancia neuronal" propuso que no es suficiente considerar solo las siguientes una o dos capas, por lo que se propuso el algoritmo NISP (propagación de puntaje de importancia neuronal) para minimizar el error de reconstrucción de la penúltima capa de la red de clasificación, y La información de importancia se propaga al frente para determinar qué canales necesitan ser recortados. El documento de 2018 "Poda de canales con conciencia de discriminación para redes neuronales profundas" propone una variante más interesante. Propone el método DCP (poda de canal consciente de la discriminación). Por un lado, agrega una pérdida adicional consciente de la discriminación (para fortalecer la capacidad de discriminación de la capa intermedia) en la capa intermedia. Por otro lado, también considera la pérdida del error de reconstrucción de características. La información de gradiente de los parámetros determina qué canales deben recortarse.

  Idea cuatro 

Además, hay una clasificación de pesos basada en otros criterios. Por ejemplo, el artículo de 2018 "Poda de filtro a través de la mediana geométrica para la aceleración de redes neuronales convolucionales profundas" analiza la premisa y las limitaciones del método basado en la magnitud (es decir, su varianza de la norma es grande y el valor mínimo es cercano a 0). Propone el método FPGM (poda de filtro a través de la mediana geométrica). La idea básica es eliminar los parámetros redundantes basados ​​en la mediana geométrica. Sabemos que la desventaja del algoritmo codicioso es que solo puede encontrar la solución óptima local porque ignora la correlación entre los parámetros. Por supuesto, habrá algunos métodos que tratarán de considerar la relación entre los parámetros y tratarán de encontrar una mejor solución a la situación general.

  Método uno 

Busque en un espacio discreto: como el artículo de 2015 "Poda estructurada de redes neuronales convolucionales profundas" basado en un algoritmo genético y filtro de partículas para realizar la poda de redes. El documento de 2017 "Aprendizaje N2N: compresión de red a red a través del aprendizaje de refuerzo de gradiente de políticas" intenta dividir la compresión de la red en dos etapas de eliminación y contracción de capas, y utiliza el aprendizaje por refuerzo (aprendizaje por refuerzo) para obtener dos etapas de estrategias respectivamente.

  Método dos 

Problemas de planificación: por ejemplo, el documento relativamente nuevo de 2019 "Poda colaborativa de canales para redes profundas" propone el método CCP (poda colaborativa de canales), que considera las dependencias entre canales y formaliza el problema de selección de canales como un problema de planificación secundaria restringido , Y luego use SQP (programación cuadrática secuencial) para resolver.

  Método tres 

Método bayesiano : como el documento de 2017 "El abandono variacional dispersa las redes neuronales profundas" propuso un abandono variacional disperso. Expande el dropout variacional para que pueda ajustar la tasa de abandono, y finalmente obtiene una solución escasa para jugar el efecto de cortar el modelo.

  Método 4 

Método basado en gradiente: mirando hacia atrás al problema de optimización matemática en la definición del problema anterior, la parte más desagradable es la norma L0 en el regularizador, lo que hace que el objetivo no sea diferenciable y, por lo tanto, no se pueda resolver con un método basado en gradiente. Por ejemplo, la idea del artículo de 2017 "Aprendizaje de redes neuronales dispersas a través de la regularización L0" es aproximarlo con una distribución continua combinada con una recitación sigmoidea rígida, de modo que la función objetivo sea fluida y se pueda resolver utilizando un método basado en gradiente.

 Método 5 

Método basado en la agrupación: en general, un método para el problema de compresión es utilizar la agrupación. Si los colores de la imagen están agrupados, la longitud de codificación puede reducirse. Del mismo modo, la idea de agrupación también se puede utilizar en la compresión del modelo. Por ejemplo, los documentos de 2018 `` SCSP: poda de filtro de agrupación espectral con modales de autoadaptación suaves '' y `` Exploración de la relación lineal en el subespacio del mapa de características para la compresión de ConvNets '' utilizan la agrupación espectral y la agrupación del subespacio para explorar información relevante en el filtro y el mapa de características, respectivamente. , Para simplificar la compresión de los parámetros.

 Ratio de dispersión

 Muchos de los métodos anteriores estudian cómo realizar la poda dada la cantidad de cultivo, como qué criterios usar para la selección de parámetros. Sin embargo, en realidad hay un problema central en el que cortar, es decir, la determinación de la relación de escasez. La relación de dispersión aquí se define como la proporción de 0 parámetros en la capa, que también se denomina tasa de poda en algunos artículos. A partir de la estructura de destino o especifica cómo ratio de escasez de la misma, de acuerdo con el documento de 2018 "Repensando el valor de la Red de poda" El argumento se puede dividir en predefinido ( predifined ) y Auto ( automático ) de dos maneras. El método predefinido se corta manualmente especificando la proporción de cada capa, por lo que la estructura objetivo se determina de antemano. El método automático determinará la relación de corte de cada capa en función de toda la información de la capa (es decir, información global) mediante el algoritmo de poda, por lo que la estructura objetivo no está segura al principio.

 predifinado

 En cierto sentido, el parámetro multiplicador propuesto en el famoso MobileNet "MobileNets: redes neuronales convolucionales eficientes para aplicaciones de visión móvil" también es un método de poda de red predefinido. Es solo que es relativamente simple y áspero. Utiliza la misma relación de recorte para todas las capas, y los pesos no se reutilizan después del recorte. En 2019, EfficientNet propuesto en "EfficientNet: repensar el escalado de modelos para redes neuronales convolucionales" lleva este ajuste de parámetros un paso más allá, y propone un método de escalado compuesto para reducir el ancho, la profundidad, La resolución se ajusta en una proporción específica. Pero sus parámetros de ajuste son para todas las capas de la red, y la granularidad es relativamente gruesa. Obviamente, la sensibilidad de las diferentes capas de la red a la poda no es la misma. Solo la relación de dispersión óptima para cada capa se establece de acuerdo con las propiedades de la capa. Este tipo de configuración especial para cada capa se llama local La escasez se llama relativamente escasez global. Los trabajos clásicos de 2015 y 2016 "Aprendizaje de pesos y conexiones para redes neuronales eficientes" y "Filtros de poda para redes de conexión eficientes" analizaron la sensibilidad de cada capa en la red y descubrieron que la capa convolucional es más sensible a la poda que la capa completamente conectada. (Intuitivamente, debido a que los parámetros en la capa convolucional son compartidos, la cantidad de parámetros será mucho menor que la de la capa totalmente conectada.) Además, la sensibilidad entre las diferentes capas convolucionales también es diferente. Por ejemplo, la primera capa de convolución es relativamente corta. Más sensibles, los bloques residuales primero y último en cada etapa en ResNet son más sensibles que los bloques intermedios, etc. Aquí se deriva una cuestión importante, que es cómo determinar la relación de dispersión óptima de cada capa. Entre los métodos predefinidos, uno es determinar la relación de espaciamiento de cada capa a través del análisis de sensibilidad mencionado anteriormente.

 automático

 En cuanto al método automático, como se mencionó anteriormente, requiere el algoritmo de poda para obtener automáticamente la cantidad que se recorta cada capa de la información global. El documento "Aprendizaje de redes convolucionales eficientes a través de adelgazamiento de red" mencionado anteriormente cae en esta categoría. Además, el artículo de 2019 "Jugar y podar: poda de filtro adaptable para compresión profunda del modelo" modela el problema de la poda como un problema de optimización min-max, y luego itera a través de dos módulos para iterar y controlar la pérdida de precisión ajustando la tasa de poda. El documento de 2018 "ADC: compresión profunda automatizada y aceleración con aprendizaje de refuerzo" propone el método ADC (compresión profunda automatizada), que utiliza el aprendizaje de refuerzo para aprender la relación de espaciamiento óptima para cada capa según las diferentes necesidades (como garantizar la precisión o limitar la cantidad de cálculo) . El Algoritmo de Aprendizaje-Compresión "2018 para la poda de redes neuronales propuso un método de poda de optimización alterna de dos pasos para el aprendizaje y la compresión. En la operación de compresión, los parámetros originales se proyectan automáticamente en el conjunto factible representado por las restricciones para encontrar automáticamente el mejor Excelente relación de dispersión. Debido a que este tipo de método no requiere una gran cantidad de análisis de sensibilidad, también reduce la introducción de hiperparámetros. Por lo tanto, en los últimos años, ha habido más y más investigaciones sobre tales métodos.

 Recuperación de precisión

 Cuando el modelo se somete a una poda, generalmente trae pérdida de precisión, por lo que también debemos considerar la recuperación de la precisión durante la poda: en el documento mencionado "Poda de canal para acelerar redes neuronales muy profundas", después de la poda de canal, directamente a través de la menor cuadrado para obtener nuevos parámetros bajo la precisión mínima de reconstrucción de características, por lo que no se necesita un ajuste fino para restaurar la precisión, que es un método de poda en tiempo de inferencia . Su ventaja es que no se requiere un entorno de capacitación para el proceso de poda. La poda de un disparo se refiere al corte de una cabeza, pero esto a menudo tiene un gran impacto en la precisión. Se encuentra que el ajuste fino después del corte puede compensar la pérdida de precisión causada por la poda, por lo que muchos métodos harán un ajuste fino después de la poda. Los más clásicos son el entrenamiento, la poda y el ajuste fino. Las dos últimas fases se alternan, y la precisión perdida después de cada poda se puede compensar con el ajuste posterior. Este proceso también se llama poda iterativa . En pocas palabras, es cortar un cuchillo con sangre y luego cortar un cuchillo para devolver la sangre. Esto no se hace en un solo paso porque algunos experimentos muestran que es difícil devolver la sangre si se corta demasiado fuerte de una vez. Por supuesto, muchos juegos se pueden derivar en realidad. En términos de tiempo, hay arte en cuánto cortar por paso. Por ejemplo, el artículo de 2017 "Podar o no podar: Explorando la eficacia de la poda para la compresión del modelo" propone un algoritmo de poda gradual automatizado, que se basa en la redundancia de la etapa inicial y se puede cortar más rápido, y cuanto más se corte más tarde, más rápido Ideología orientadora, cómo cambiar de la relación de espaciamiento inicial a la relación de espaciamiento objetivo en la poda de n pasos.

 Revisar la hipótesis

 Lo que es más interesante es que recientemente se ha comenzado a reflexionar mucho sobre algunos supuestos inherentes. Por ejemplo, la sobre-parametrización mencionada al principio es realmente muy beneficiosa para el entrenamiento , y si el peso de la red original es importante para la poda . En el mejor artículo "La hipótesis del boleto de lotería: Encontrar redes neuronales dispersas y entrenables" de ICLR2019, se propone la Hipótesis del boleto de lotería, es decir, una inicialización aleatoria, una red densa contiene una subred, si la subred se inicializa con el peso de la red original, como máximo Después de entrenar con el mismo número de iteraciones, se puede comparar la precisión de la prueba de la red original. Al mismo tiempo, también proporciona un método para encontrar esta estructura de subred. El artículo cree que esta subestructura y su valor inicial son críticos para la efectividad de la capacitación y se denominan "boletos ganadores de logttery". Otro documento, "Repensando el valor de la poda de la red" en 2018, no solo sugirió que la sobre-parametrización no es importante para el entrenamiento, sino que no es necesariamente una buena opción para reutilizar su peso de la red original, sino que puede hacer que el modelo recortado Caer en el mínimo local. Si el peso de la red original o su valor inicial no es importante, lo más importante que queda es la estructura de la red después de la poda. En otras palabras, en cierto sentido, la poda es una búsqueda de arquitectura neuronal (NAS), solo porque solo involucra la dimensión de la capa y el espacio de búsqueda es más pequeño. Pero esta también es su ventaja, la búsqueda natural es más eficiente si el espacio de búsqueda es pequeño.

 Retener la capacidad del modelo

 La poda literalmente entiende la resta como un modelo. En el método de poda convencional anterior, la parte recortada generalmente se descarta directamente y no se recuperará, es decir, la capacidad del modelo continúa disminuyendo durante el proceso de poda iterativa. En este caso, una vez que algunos parámetros se cortan de manera inapropiada, no se pueden restaurar. En los últimos dos años, la comunidad académica está tratando de retener la capacidad de ser cortada o expandida durante el proceso de compresión del modelo . El documento de 2018 "Poda de filtro suave para acelerar redes neuronales convolucionales profundas" propuso SFP (poda de filtro suave) para que el filtro recortado todavía se pueda actualizar durante el entrenamiento, de modo que todavía tenga la oportunidad de recuperarse. El documento de 2016 "Cirugía de red dinámica para DNN eficientes" agregó operaciones de empalme sobre la base de la poda para evitar el impacto de la poda inapropiada. El documento de 2017 "Morphnet: Aprendizaje rápido y simple de estructuras con restricciones de recursos de redes profundas" también se basa en esta idea, y realizará operaciones de reducción y expansión de forma iterativa. El efecto secundario de la poda es que puede dañar la capacidad del modelo. Aunque los métodos anteriores hacen que este efecto sea lo más pequeño posible, a menudo solo podemos hacerlo en un conjunto de datos limitado. Por lo tanto, es probable que no tenga ningún efecto en la poda de muestras más simple, pero tendrá un mayor impacto en un pequeño número de datos difíciles. ¿Es posible simplificar el cálculo mientras se preserva la capacidad de la red? Algunos estudiosos intentan combinar NN dinámicoPara lograr este objetivo, es decir, qué módulos son ejecutados por la red están determinados por la salida. Por ejemplo, el artículo de 2017 "Redes neuronales profundas dinámicas: optimización de compensaciones de precisión y eficiencia mediante ejecución selectiva" introdujo Redes neuronales profundas dinámicas. Para una entrada determinada, qué parte de la neurona se ejecuta está determinada por el módulo controlador en la propia red. Este módulo se entrena a través del aprendizaje por refuerzo. Otro artículo de 2017 "Poda neuronal en tiempo de ejecución" modela la poda como un proceso de decisión de Markov y aprende estrategias de poda a través del aprendizaje por refuerzo. Por supuesto, este tipo de método tiene algunas limitaciones, por ejemplo, debido a que la capacidad original de la red se mantiene, el tamaño no disminuirá. Además, debido a qué parte de la ejecución es dinámica, tendrá un impacto en la aceleración de hardware (como la fusión entre operadores).

 4. Resumen

A diferencia de la capacitación de DNN, la implementación de DNN tiene un gran desafío: la diversidad de plataformas. Las plataformas de hardware en la nube y el final son muy diferentes, y los tipos de hardware y las capacidades entre el equipo final y el equipo final también son muy diferentes. Hay muchas investigaciones e intentos para acelerar la diversidad de hardware, como TVM basado en compiladores, y el tiempo de ejecución de Android NN de Runtime + vendor backend. Pero la diferencia en la potencia informática sigue siendo un gran problema. Si también es un teléfono móvil, puede haber grandes diferencias en la potencia informática. Este es esencialmente un problema de optimización de objetivos múltiples considerando el rendimiento y la precisión. Necesitamos encontrar un equilibrio adecuado en su conjunto de soluciones pareto para diferentes plataformas. Si desea aplicar el mismo DNN a múltiples plataformas, debe cortar y entrenar de acuerdo con diferentes potencias de cómputo. Este costo es muy grande (casi linealmente relacionado con el tipo de plataforma) y la escalabilidad es baja. La compresión del modelo se ha convertido en una de las esperanzas de resolver la solución de implementación unificada de múltiples tipos de plataformas. Por ejemplo, el documento de 2018 "Slimmable Neural Networks" considera diferentes plataformas móviles para entrenar la misma red y diferentes niveles de adaptación para plataformas con diferentes capacidades informáticas. El documento de 2019 "Una vez por todas: capacitar a una red y especializarlo para una implementación eficiente" también tiene un objetivo similar. Se capacitará a una red grande a través de un enfoque de reducción progresiva de subredes con diferentes hiperparámetros. De acuerdo con diferentes requisitos de precisión y Las restricciones de recursos buscan la subred adecuada. Es decir, una capacitación puede adaptarse a implementaciones de múltiples plataformas, por lo que se llama esquema Once for All (OFA). Se puede decir que es un método de compresión modelo o una búsqueda de estructura de red neuronal (búsqueda de arquitectura neural). Para las introducciones relacionadas con NAS, consulte el ensayo de búsqueda de arquitectura neuronal [1]. Del mismo modo, el documento de 2018 "ProxylessNAS: Búsqueda directa de arquitectura neuronal en tareas y hardware de destino" en realidad utiliza la poda para hacer NAS.

Se puede ver que en los últimos años, la poda de redes, como una de las fuerzas principales en la compresión del modelo, está recibiendo cada vez más atención. Por supuesto, una variedad de mejores métodos de selección de parámetros de poda ciertamente surgirán infinitamente. Además, desde una perspectiva de tendencia, las siguientes direcciones merecen atención:

  Dirección uno 

Como se mencionó anteriormente, el límite entre el método de poda de red y el NAS se ha desdibujado. De hecho, también hay un tipo de método de aceleración de búsqueda en la rama NAS. Por ejemplo, One-Shot Architecture Search primero tiene una red grande y luego realiza sustracción. El NAS y el modelo comprimen las dos ramas que al principio no parecían tener una relación tan grande, y finalmente parecieron unirse. Estas dos ramas tienen más intersecciones hoy, y seguramente provocarán más chispas.

  Dirección dos 

Desafíe los supuestos existentes. Como antes, es muy interesante reflexionar sobre si la parametrización excesiva y la reutilización de los parámetros existentes son beneficiosas. Este tipo de trabajo nos dará una gran inspiración para cambiar fundamentalmente la forma de resolver el problema.

  Dirección tres 

Con la marea de AutoML, más y más cosas comenzaron a automatizarse. ¿Se puede bajar la compresión del modelo? Por supuesto que no. Después de la introducción anterior, sabemos que tareas como ADC, RNP, N2N Learning están tratando de automatizar parte del trabajo de poda. Y para otros métodos de compresión de modelos, como la cuantización, hay cierto margen para la automatización. Por ejemplo, el documento de 2018 "HAQ: Cuantización automatizada compatible con hardware" considera que la redundancia de diferentes capas de información en la red es diferente, por lo que se puede hacer con diferentes números de dígitos. Cuantificar

Dirección cuatro 

En los últimos años , GAN, una de las ramas más importantes del aprendizaje automático , está penetrando constantemente en los campos existentes, y ha comenzado a tener presencia en la poda. Por ejemplo, el artículo de 2019 "Hacia una poda CNN estructurada óptima a través del aprendizaje generativo adversario" utiliza la idea de GAN para permitir que el generador genere la red recortada, y el discriminador para determinar si pertenece a la red original o la red recortada, para llevar a cabo un corte estructurado de red más efectivo.

 Dirección cinco 

Combinado con hardware, como escaso soporte informático. Aunque existen bibliotecas informáticas como cuSPARSE, la GPU de hardware subyacente no está diseñada específicamente para el procesamiento de datos dispersos. Si la escasa potencia informática y de procesamiento se puede incorporar en el chip, mejorará en gran medida la eficiencia informática. Por ejemplo, ha habido intentos como EIE en los primeros años. Bajo la corriente actual de chips de redes neuronales, creo que habrá cada vez más casos de este tipo.

 Dirección seis 

Como se mencionó al principio del artículo, la poda es solo uno de los métodos de compresión del modelo y no entra en conflicto con otros métodos, por lo que una integración profunda con otros métodos, como la destilación y cuantificación del conocimiento, es una dirección de investigación digna. Al igual que otras ramas del aprendizaje automático, muchas personas han propuesto muchos algoritmos, y todos dijeron que son buenos. Cuando una rama se desarrolla hasta cierto punto, se requiere un punto de referencia para realizar una comparación horizontal objetiva. El artículo de Google de 2019 "El estado de la escasez en las redes neuronales profundas" es un intento al respecto. Creo que habrá más y más puntos de referencia y competencias específicas en el futuro.

 

Supongo que te gusta

Origin www.cnblogs.com/wujianming-110117/p/12702802.html
Recomendado
Clasificación