ConvNet en la década de 2020 - ConvNeXt

ConvNets de la década de 2020

Este artículo se publicó en CVPR en 2022. Cuando Transformer brilla en el campo CV, este artículo llama la atención sobre la aplicación de la convolución en el campo de la imagen basándose en los trucos cuidadosamente construidos por swin TransForm. La razón principal es actualizar y mejorar ResNet en función de la estructura ResNet-50 y consultar las ideas en Swin-T, y finalmente obtener la estructura ResNext, lograr una nueva tasa de precisión y explorar más su escalabilidad.
guía

Recepción del artículo:

  1. trabajo de ajuste de parámetros, orden de ajuste de parámetros;
  2. La carga de trabajo de este experimento es extremadamente grande y es abrumadora y abrumadora;
  3. El código fuente es muy informativo. Se necesitaron más de 200 líneas de código para implementar la red, y me di cuenta de la connotación de "la vida es corta, uso python"; estructura ConvNeXt: capa de tallo (capa de preprocesamiento de datos), cuatro etapas ( En la capa de procesamiento, se repiten muchos bloques en cada capa, y cada bloque se denomina profundidad (profundidad): res2, 3, 4, 5, capa de agrupación (capa de reducción de muestreo, utilizada para clasificar datos);
  4. Las habilidades de dibujo también son útiles en los trabajos, y las imágenes más destacadas pueden expresar mejor el tema;
  5. El código de entrenamiento se puede hacer con otros códigos de proyecto
  6. Optimizador AdamW: AdamW es Adam + decate de peso, el efecto es el mismo que la regularización Adam + L2, pero la eficiencia del cálculo es mayor, porque la regularización L2 necesita agregar elementos regulares a la pérdida, luego calcular el gradiente y finalmente retropropagación, y Adamw agrega directamente el gradiente del término de regularización a la fórmula de retropropagación, eliminando la necesidad de agregar manualmente el término de regularización a la pérdida.
  7. Después de leer detenidamente el trabajo de ajuste de parámetros y los detalles del documento, la breve descripción en el texto original del documento no sabía que probé una variedad de permutaciones y combinaciones, y quedé particularmente impresionado. ConvNeXt se está eliminando gradualmente. Tal vez la situación no sea tan grave, pero es concebible que la investigación en la dirección de la red neuronal convolucional profunda sea muy aburrida y amarga, al menos para mí. Poco a poco, también me di cuenta del origen del ingeniero al que se referían los mayores.
  8. Si bien este artículo demuestra que el potencial de las redes convolucionales de ConvNext va más allá, realmente no me corresponde profundizar en ello.
  9. No es necesario leer la tesis para citar el artículo original. Me doy cuenta de que se necesita mucho tiempo para entender a fondo un artículo, siempre pienso que después de entenderlo, tengo nuevas dudas y aceptación después de una lectura cuidadosa.
  10. SwinTransformer toma prestado del sesgo inductivo de las redes convolucionales
  11. título del trabajo

Otros: Complementario a la Figura 4, el bloque del Transformador Swin es más complejo debido a la presencia de múltiples módulos especializados y dos conexiones restantes. Para simplificar, también nos referimos a las capas lineales en el bloque Transformer MLP como "conversiones 1×1", ya que son equivalentes.

Enlace del código fuente: código fuente de ConvNeXt

Resumen

Los "locos años 20" del reconocimiento visual comenzaron con la introducción de Visual Transformers (ViTs), que rápidamente reemplazó a ConvNets como el modelo de clasificación de imágenes de última generación. Por otro lado, Vanilla ViT enfrenta dificultades cuando se aplica a tareas generales de visión por computadora, como la detección de objetos y la segmentación semántica. Es el Transformador en capas (por ejemplo, SwinTransformer) que reintroduce varios ConvNet anteriores que hace que el Transformador sea prácticamente factible como una columna vertebral de visión de propósito general y exhibe un rendimiento excelente en varias tareas de visión. Sin embargo, la efectividad de este enfoque híbrido todavía se debe en gran medida a las fortalezas intrínsecas de los transformadores más que al sesgo inductivo inherente de las circunvoluciones. En este trabajo, reexaminamos el espacio de diseño y probamos los límites de lo que pueden lograr las ConvNet puras. Gradualmente "modernizamos" el ResNet estándar hacia el diseño de un Transformador visual y, en el proceso, descubrimos varios componentes clave que conducen a la diferencia en el rendimiento. El resultado de esta exploración es una familia de modelos ConvNet puros llamada ConvNeXt. Los ConvNeXts se construyen completamente a partir de módulos ConvNet estándar, compiten con los transformadores en precisión y escalabilidad, logran un 87,8 % de precisión Top-1 de ImageNet, superan a los transformadores Swin en la detección de COCO y la segmentación ADE20K, al tiempo que mantienen la simplicidad y la eficiencia de los ConvNet estándar.

Resumen : Actualmente, Transformer está de moda en CV, pero ViT no es muy bueno en tareas visuales posteriores. SwinTransformer es muy bueno en tareas de CV. Aunque Swin Transformer se basa en el sesgo inductivo de las redes convolucionales, todavía se debe a las características de Transformer. Este artículo tiene como objetivo explorar los límites de las redes convolucionales. La lógica de la escritura es clara, los antecedentes, el propósito de presentar este artículo, los detalles de la introducción y el efecto.

1. Introducción

Mirando hacia atrás en la década de 2010, el aprendizaje profundo ha visto un tremendo progreso e impacto. La principal fuerza impulsora es el renacimiento de las redes neuronales, especialmente las redes neuronales convolucionales (ConvNets). Durante la última década, el campo del reconocimiento visual ha pasado con éxito de las funciones de ingeniería al diseño de arquitecturas (ConvNet). Si bien la invención del entrenamiento de retropropagación ConvNets se remonta a la década de 1980, no fue hasta finales de 2012 que vimos su verdadero potencial para el aprendizaje de funciones visuales. La llegada de AlexNet dio origen al "momento ImageNet" y abrió una nueva era de visión por computadora. El campo ha crecido rápidamente desde entonces. Los convenios representativos, como VGGNet, Inceptions, ResNe(X)t, DenseNet, MobileNet, EfficientNet y RegNet , se centran en diferentes aspectos de precisión, eficiencia y escalabilidad, y generalizan muchos principios de diseño útiles.

El dominio total de ConvNets en la visión por computadora no es una coincidencia: la estrategia de "ventana deslizante" es inherente al procesamiento de la visión en muchos escenarios de aplicación, especialmente cuando se trata de imágenes de alta resolución. ConvNets tiene varios sesgos inductivos incorporados que los hacen ideales para una amplia variedad de aplicaciones de visión por computadora. La más importante es la homovarianza de traducción, que es una propiedad deseable para tareas como la detección de objetos. Las ConvNet también son intrínsecamente eficientes porque el cálculo se comparte cuando se usa en forma de ventana deslizante. Este ha sido el uso predeterminado de ConvNets durante décadas, a menudo para categorías limitadas de conjuntos de datos, como dígitos, caras y peatones. Pasando a la década de 2010, los detectores basados ​​en regiones elevaron aún más a ConvNets a la posición de bloques de construcción fundamentales en los sistemas de reconocimiento visual.

Casi al mismo tiempo, el viaje de evolución del diseño de las redes neuronales para el procesamiento del lenguaje natural (NLP) tomó un camino diferente, ya que los transformadores reemplazaron las redes neuronales recurrentes como la arquitectura principal de la columna vertebral. A pesar de las diferencias en el enfoque de tareas entre los dominios de lenguaje y visión, las dos tendencias convergieron sorprendentemente en 2020 cuando la introducción de Vision Transformer (ViT) cambió por completo el panorama del diseño de arquitectura de red. Además de la capa de "parche" inicial, que divide la imagen en una secuencia de parches, ViT no introduce ningún sesgo inductivo específico de la imagen y solo cambios mínimos en el NLP Transformer original. Una de las principales preocupaciones de ViT es el comportamiento de escalado: con modelos y conjuntos de datos más grandes, los transformadores pueden superar a los ResNet estándar por un amplio margen. Los resultados de estas tareas de clasificación de imágenes son alentadores, pero la visión artificial no se limita a la clasificación de imágenes. Como se mencionó anteriormente, durante la última década, las soluciones para muchas tareas de visión artificial se han basado en gran medida en el paradigma de ventana deslizante, completamente convolucional. Sin el sesgo inductivo de ConvNet, el modelo Vanilla ViT enfrenta muchos desafíos para ser adoptado como una columna vertebral de visión general. El mayor desafío es el diseño de atención global de ViT, cuya complejidad está relacionada con el tamaño de entrada. Esto puede ser aceptable para la clasificación basada en ImageNet, pero tiende a volverse intratable para entradas de mayor resolución.

Los transformadores jerárquicos emplean un enfoque híbrido para cerrar esta brecha. Por ejemplo, las estrategias de "ventana deslizante" (como la atención dentro de las ventanas locales) se reintrodujeron en Transformers, lo que los hizo comportarse más como Convnets. Swin Transformer es un trabajo histórico en esta dirección, es el primero en demostrar que Transformer puede usarse como una columna vertebral de visión general y ha logrado un rendimiento de vanguardia en una serie de tareas de visión por computadora además de la clasificación de imágenes. El éxito y la rápida adopción del Swin Transformer también revelaron una cosa: la esencia de la convolución no se ha vuelto irrelevante; por el contrario, sigue siendo muy deseada y nunca se ha desvanecido.

Desde este punto de vista, muchos de los avances de Transformer en visión por computadora tienen como objetivo recuperar circunvoluciones. Sin embargo, estos intentos tienen un precio: una implementación simple de la autoatención de la ventana deslizante puede ser costosa; con métodos avanzados como el cambio cíclico, la velocidad se puede optimizar, pero el sistema debe tener un diseño más cuidadoso. Por otro lado, la ironía es que ConvNets ya satisface muchas de las propiedades deseadas, aunque de una manera simple y sin complicaciones. La única razón por la que las ConvNet parecen estar perdiendo impulso es que los transformadores (jerárquicos) los superan en muchas tareas de visión, y la diferencia de rendimiento a menudo se atribuye al comportamiento de escala superior de los transformadores, donde el mecanismo de autoatención de varios cabezales es un componente clave .

A diferencia de ConvNets, que ha seguido mejorando durante la última década, la adopción de un Transformador visual es un paso adelante. En la literatura reciente, las comparaciones a nivel de sistema (por ejemplo, Swin Transformer vs. ResNet) se emplean a menudo cuando se comparan los dos. ConvNets y Hierarchical Vision Transformers se vuelven diferentes y similares al mismo tiempo: ambos establecen sesgos inductivos similares, pero tienen diferencias significativas en el proceso de entrenamiento y el diseño de arquitectura de nivel macro/micro. En este documento, investigamos las diferencias arquitectónicas entre ConvNets y transformadores y tratamos de identificar variables de confusión al comparar el rendimiento de la red. Nuestra investigación tiene como objetivo cerrar la brecha entre las ConvNet anteriores y posteriores a ViT, así como probar los límites de lo que pueden lograr las ConvNet puras.

Para hacer esto, comenzamos con un ResNet estándar (por ejemplo, ResNet50) entrenado con un procedimiento modificado. Gradualmente "modernizamos" la arquitectura para construir un Vision Transformer en capas (por ejemplo, Swin-T). Nuestra exploración está guiada por una pregunta clave: "¿Cómo afectan las decisiones de diseño en Transformers al rendimiento de ConvNets?". En el proceso, descubrimos varios componentes clave responsables de la diferencia de rendimiento. Por lo tanto, proponemos una familia de ConvNets puros llamada ConvNeXt. Evaluamos ConvNeXts en varias tareas de visión, como la clasificación de ImageNet, la detección/segmentación de objetos en COCO y la segmentación semántica en ADE20K. Sorprendentemente, ConvNeXts, creado completamente a partir de módulos ConvNet estándar, rivaliza con Transformer en términos de precisión, escalabilidad y solidez en todos los principales puntos de referencia. ConvNeXt mantiene la eficiencia de los convnets estándar, y la naturaleza totalmente convolucional del entrenamiento y las pruebas hace que su implementación sea muy sencilla.

Esperamos que las nuevas observaciones y discusiones desafíen algunas creencias comunes y alienten un replanteamiento de la importancia de las circunvoluciones en la visión artificial.

Resumen :

2 Hoja de ruta hacia Modern ConvNet

En esta sección, proporcionamos una ruta de trayectoria desde ResNet a ConvNet, que tiene similitudes con Transformer. Consideramos dos tamaños de modelo basados ​​en FLOP, uno es el sistema ResNet-50/Swin-T con FLOP de aproximadamente 4,5 × 109 y el otro es el sistema ResNet-200/Swin-B con FLOP de aproximadamente 15,0 × 109. Para simplificar, usaremos el modelo de complejidad ResNet-50/Swin-T para mostrar los resultados. Las conclusiones para los modelos de alta capacidad son consistentes y los resultados se pueden encontrar en el Apéndice C.

En un nivel alto, nuestra exploración tiene como objetivo estudiar y seguir el diseño de diferentes capas de Swin Transformer, manteniendo la simplicidad de la red como un ConvNet estándar. Nuestra hoja de ruta de exploración es la siguiente. Nuestro punto de partida es el modelo ResNet-50. Primero lo entrenamos con una técnica de entrenamiento similar al entrenamiento de Transformers visuales y obtenemos resultados que son mucho mejores que los del ResNet-50 original. Esta es nuestra línea de base. Luego investigamos una serie de decisiones de diseño, que resumimos como 1) diseño macro, 2) ResNeXt, 3) cuello de botella inverso, 4) tamaño de kernel grande y 5) diseño micro para varias capas. En la Figura 2, mostramos los procesos y resultados que se pueden lograr en cada paso de la "modernización de la red". Dado que la complejidad de la red está estrechamente relacionada con el rendimiento final, los fracasos se controlan aproximadamente durante la exploración, aunque en los pasos intermedios, los fracasos pueden ser mayores o menores que el modelo de referencia. Todos los modelos se entrenan y evalúan en ImageNet-1K.

2.1 Habilidades de entrenamiento

Además del diseño de la arquitectura de la red, el proceso de entrenamiento también afecta el desempeño final. Vision Transformer no solo trae un nuevo conjunto de módulos y decisiones de diseño arquitectónico, sino que también presenta diferentes técnicas de entrenamiento (como el optimizador AdamW ) para la visión. Esto implica principalmente estrategias de optimización y configuraciones de hiperparámetros relacionadas. Por lo tanto, el primer paso en nuestra exploración es entrenar un modelo de referencia (modelo de referencia, modelo de referencia), en este caso ResNet50/200, usando el procedimiento de entrenamiento de Vision Transformer. Estudios recientes han demostrado que un conjunto de técnicas de capacitación modernas puede mejorar significativamente el rendimiento de los modelos ResNet-50 simples. En nuestro estudio, utilizamos un método de entrenamiento cercano a DeiT y Swin Transformer. El entrenamiento de ResNets se extiende de las 90 épocas originales a 300 épocas. Utilizamos el optimizador AdamW, técnicas de aumento de datos como Mixup, Cutmix, RandAugment, RandomErasing y esquemas de regularización que incluyen la profundidad aleatoria StochasticDepth y el suavizado de etiquetas LabelSmoothing. El conjunto completo de hiperparámetros que utilizamos se puede encontrar en el Apéndice A.1. Por sí solo, este esquema de entrenamiento mejorado mejora el rendimiento del modelo ResNet-50 del 76,1 % al 78,8 % (+2,7 %), lo que significa que una gran parte de la diferencia de rendimiento entre ConvNets tradicionales y Vision Transformer puede deberse a diferencias en técnicas de entrenamiento. Usaremos este esquema de entrenamiento fijo con los mismos hiperparámetros durante todo el proceso de "modernización". En el sistema ResNet-50, cada precisión informada es el promedio obtenido mediante el entrenamiento con tres semillas aleatorias diferentes (parámetros de entrenamiento).

Resumen : el propio ViT introduce nuevas técnicas de entrenamiento, como el optimizador AdamW.

2.2 Diseño de macros

Ahora analizamos el diseño de la macro-red del transformador Swin. El transformador Swin sigue a ConvNets utilizando un diseño de varias etapas, donde cada etapa tiene una resolución de mapa de características diferente. Hay dos consideraciones de diseño interesantes: la relación de cómputo de etapa, la estructura de "célula madre".
Cambio de la relación de cálculo de la etapa : Cambio de la relación de cálculo de la etapa. El diseño original de las distribuciones informáticas entre etapas en ResNet es en gran medida empírico. La etapa pesada "res4" es para compatibilidad con tareas posteriores como la detección de objetos, donde el cabezal del detector opera en un plano de características de 14×14. Swin-T, por otro lado, sigue el mismo principio, pero con una relación de cálculo de fase ligeramente diferente de 1:1:3:1. Para transformadores Swin más grandes, la relación es 1:1:9:1. De acuerdo con el diseño, ajustamos la cantidad de bloques en cada etapa de (3,4,6,3) en ResNet-50 a (3,3,9,3), lo que también hace que las FLOP (operaciones de punto flotante) sean comparables a Swin-T alinea. La precisión del modelo mejora del 78,8 % al 79,4 %. Vale la pena señalar que los investigadores han estudiado a fondo la distribución de los cálculos y es posible que existan diseños más óptimos. (indica que hay una investigación de seguimiento)
Entonces, de ahora en adelante, usaremos esta etapa para calcular la proporción.

Cambiando el tallo a "Patchify" : Cambie la capa del tallo a "Patchify". En términos generales, el diseño de células madre considera principalmente cómo procesar la imagen de entrada en la etapa inicial de la red. Debido a la redundancia inherente de las imágenes naturales, una célula madre común reduce agresivamente la muestra de la imagen de entrada al tamaño de mapa de características adecuado en ConvNets y Vision Transformers estándar. La célula madre en ResNet estándar consta de una capa convolucional de 7 × 7 con un paso de 2 seguido de una agrupación máxima, lo que da como resultado una reducción de resolución de 4 × de la imagen de entrada. En el Transformador de visión, a menudo se usa una estrategia de "parches" más agresiva como célula madre, es decir, un tamaño de kernel grande (como un tamaño de kernel de 14 o 16) y convolución no superpuesta. Swin Transformer utiliza una capa "Patchify" similar, pero con un tamaño de parche más pequeño de 4 para adaptarse al diseño de varias etapas de la arquitectura. Reemplazamos las células madre de estilo Resnet con capas de Patchify implementadas usando capas convolucionales de 4×4, paso 4. La precisión mejoró del 79,4 % al 79,5 %. Esto sugiere que las células madre en ResNet podrían reemplazarse por capas "Patchify" más simples a la ViT, lo que conduciría a un rendimiento similar.
Usaremos un "tallo parcheado" (circunvoluciones no superpuestas de 4 × 4) en la red.

2.3ResNeXt-ify

En esta parte, tratamos de adoptar la idea de ResNeXt, que tiene una mejor relación FLOP (cómputo)/precisión que ResNet estándar. La parte central es la convolución de grupo, donde los filtros de convolución se dividen en diferentes grupos. A un alto nivel, el principio rector de ResNeXt es "usar más grupos, expandir el ancho". Más precisamente, ResNeXt usa convoluciones agrupadas para las capas de conversión de 3×3 en el bloque de cuello de botella. Dado que esto reduce en gran medida los fracasos, la pérdida de capacidad se puede compensar ampliando el ancho de la red del modelo.

En nuestro caso, usamos la convolución en profundidad, que es un caso especial de convolución de grupo cuando el número de grupos es igual al número de canales. MobileNet y Xception han llevado adelante la conversión profunda. Observamos que la convolución profunda es similar al mecanismo de ponderación en la autoatención, que opera por canal, es decir, solo mezcla información en la dimensión espacial. La combinación de convoluciones en profundidad y 1 × 1 conduce a una separación de la mezcla espacial y de canales, una propiedad compartida por los transportes de visión, donde cada operación mezcla información a través de dimensiones espaciales o de canales, pero no simultáneamente. El uso de convoluciones en profundidad reduce efectivamente los FLOP de la red y mejora la precisión como se esperaba. Siguiendo la estrategia propuesta en ResNeXt, aumentamos el ancho de la red al mismo número de canales que Swin-T (de 64 a 96). Esto da como resultado un rendimiento de la red del 80,5 % con un aumento de FLOP (5,3 G).
Ahora usaremos el diseño ResNeXt.

2.4Cuello de botella invertido

Un diseño importante en cada bloque Transformador es que crea un cuello de botella inverso, donde la dimensión oculta del bloque MLP es cuatro veces más ancha que la dimensión de entrada (consulte la Figura 4). Curiosamente, este diseño de transformador está conectado al diseño de cuello de botella inverso con una relación de expansión de 4 que se usa en ConvNets. La idea fue popularizada por MobileNetV2 y posteriormente encontró soporte en varias arquitecturas ConvNet avanzadas.
Figura 4

Aquí exploramos el diseño de cuello de botella inverso. Las figuras 3(a) a (b) ilustran estas configuraciones. Este cambio reduce los FLOP de toda la red a 4,6 G, a pesar del aumento de FLOP de las capas convolucionales en profundidad, debido a la reducción significativa de FLOP de la capa de conv. 1×1 debido al atajo del bloque residual submuestreado. Curiosamente, esto da como resultado un ligero aumento en el rendimiento (80,5% a 80,6%). En el régimen ResNet-200/Swin-B, este paso genera más ganancias (81,9 % a 82,6 %) al tiempo que reduce los FLOP.
imagen 3
Ahora usaremos el cuello de botella inverso.

2.5 Gran tamaño de kernel

En esta parte de la exploración, nos enfocamos principalmente en el comportamiento de los núcleos de convolución grandes. La característica más notable de Vision Transport es su mecanismo de autoatención no local, que permite que cada capa tenga un campo receptivo global. Si bien en el pasado se han utilizado ConvNets con kernels grandes, el estándar dorado (popularizado por VGGNet) es apilar capas de conv de tamaño de kernel pequeño (3×3) con hardware eficiente en las GPU modernas. Aunque el transformador Swin vuelve a introducir la ventana local en el bloque de autoatención, el tamaño de la ventana es de al menos 7×7, que es significativamente más grande que el tamaño del núcleo ResNe(X)t de 3×3. Aquí, revisamos el uso de circunvoluciones de gran tamaño de kernel en ConvNets.
Moviendo hacia arriba la capa de conversión en profundidad : La capa de conversión en profundidad se está moviendo hacia arriba. Para explorar kernels grandes, un requisito previo es subir la posición de las capas de conv profundas (Fig. 3 (b) a ©). Esta es una decisión de diseño, también evidente en Transformer: el bloque MSA se coloca antes de la capa MLP. Dado que tenemos un bloque de cuello de botella inverso, esta es una elección de diseño natural: los módulos complejos/ineficientes (autoatención basada en MSA Window, conversión de núcleo grande) tendrán menos canales, mientras que las capas 1×1 eficientes y densas harán el trabajo pesado. Este paso intermedio reduce los fracasos a 4,1 G, lo que da como resultado una caída temporal del rendimiento al 79,9 %. ( Es realmente la alquimia definitiva )
Aumentar el tamaño del kernel: Con todas estas preparaciones, el beneficio de adoptar circunvoluciones con granos de mayor tamaño es significativo. Probamos varios tamaños de kernel, incluidos 3, 5, 7, 9 y 11. El rendimiento de la red aumenta del 79,9 % (3×3) al 80,6 % (7×7), mientras que los FLOP de la red permanecen prácticamente sin cambios. Además, observamos que los beneficios de los kernels de mayor tamaño alcanzan un punto de saturación de 7×7. También verificamos este comportamiento en modelos de gran capacidad: el modelo de estado ResNet-200 no muestra mayores ganancias cuando aumentamos el tamaño del kernel más allá de 7×7. Usaremos una conversión de profundidad de 7 × 7 en cada bloque. En este punto, hemos concluido nuestro estudio de arquitecturas de red a escala macro. Curiosamente, una parte significativa de las elecciones de diseño realizadas en el transformador de visión probablemente se correspondan con la creación de instancias de ConvNet.

2.6 Microdiseño

En esta sección, examinamos varias otras diferencias arquitectónicas a escala micro; la mayor parte de la exploración aquí se realiza a nivel de capa, centrándose en opciones específicas de funciones de activación y capas de normalización.

Reemplazo de ReLU con GELU : Reemplace ReLU con GELU. Una diferencia entre NLP (procesamiento del lenguaje natural) y las arquitecturas de visión son los detalles de qué funciones de activación usar. Con el tiempo, se han estudiado muchas funciones de activación, pero la Unidad Lineal Rectificada (ReLU) todavía se usa ampliamente en ConvNets debido a su simplicidad y eficiencia. En el documento original de Transformer, ReLU también se utilizó como función de activación. La unidad lineal de error gaussiano (también conocida como GELU), que puede considerarse una variante más fluida de ReLU, se utiliza en transformadores de última generación, incluidos BERT de Google y GPT-2 de OpenAI, y más recientemente ViT. Encontramos que ReLU también se puede reemplazar por GELU en nuestra ConvNet, aunque la precisión sigue siendo la misma (80,6 %).

Menos funciones de activación. : Menos funciones de activación. Una pequeña diferencia entre los bloques Transformer y ResNet es que Transformer tiene menos funciones de activación. Considere un bloque de transformador con capas de incrustación lineal de clave/consulta/valor, la capa de proyección y dos capas lineales en un bloque MLP (perceptrón multicapa). Solo hay una función de activación en el bloque MLP. Por el contrario, es una práctica común adjuntar una función de activación a cada capa convolucional, incluidas las convoluciones 1 × 1. Aquí examinamos cómo cambia el rendimiento cuando nos ceñimos a la misma estrategia. Como se muestra en la Figura 4, eliminamos todas las capas GELU del bloque restante y solo mantenemos la que está entre las dos capas 1 × 1, replicando el estilo del bloque Transformador. Este proceso mejora los resultados en un 0,7 % a un 81,3 %, lo que es básicamente comparable al rendimiento de Swin-T.
Ahora usaremos una sola activación de GELU en cada bloque.
Menos capas de normalización : los bloques de transformadores suelen tener también menos capas de normalización. Aquí, eliminamos dos capas BatchNorm (BN), dejando solo una capa BN antes de la capa conv 1 × 1. Esto mejora aún más el rendimiento al 81,4%, que ya supera el resultado de Swin-T. Tenga en cuenta que tenemos aún menos capas de normalización por bloque que Transformer, porque descubrimos empíricamente que agregar una capa BN adicional al comienzo de un bloque no mejora el rendimiento.
Sustituyendo BN por LN: Reemplace BN con LN (Normalización de capa). BatchNorm es un componente importante en ConvNets, que mejora la convergencia y reduce el sobreajuste. Sin embargo, BN también tiene muchas complejidades que pueden afectar negativamente el rendimiento del modelo. Ha habido muchos intentos de desarrollar técnicas de normalización alternativas, pero BN sigue siendo la primera opción en la mayoría de las tareas de visión. Por otro lado, en Transformer se utiliza una normalización de capas (LN) más simple, lo que conduce a un buen rendimiento en diferentes escenarios de aplicación.
Reemplazar directamente BN con LN en el ResNet original dará como resultado un rendimiento subóptimo. Con todas las modificaciones a las arquitecturas de red y las técnicas de capacitación, aquí revisamos el impacto de usar LN en lugar de BN. Observamos que nuestro modelo ConvNet no tiene ninguna dificultad para entrenar con LN, de hecho, el rendimiento es ligeramente mejor, logrando un 81,5% de precisión.
De ahora en adelante, usaremos una LayerNorm en cada bloque residual como opción de normalización.
Capas de reducción de resolución separadas : Capas de reducción de resolución independientes. En ResNet, la reducción de resolución espacial se implementa mediante un bloque residual al comienzo de cada etapa, utilizando 3×3 conv con zancada 2 (1×1 conv con zancada 2 en la conexión de acceso directo). En Swin Transformer, se agrega una capa de reducción de resolución separada entre etapas. Exploramos una estrategia similar en la que usamos capas de conversión de 2 × 2 con zancada 2 para la reducción de resolución espacial. Esta modificación conduce sorprendentemente a la divergencia de entrenamiento. Investigaciones posteriores muestran que agregar capas de normalización donde cambia la resolución espacial ayuda a estabilizar el entrenamiento. Estos incluyen varias capas LN que también se usan en Swin Transformer: una antes de cada capa de reducción de muestreo, una después del tallo y una después de la agrupación promedio global final. Podemos mejorar la precisión al 82,0 %, superando con creces el 81,3 % de Swin-T.
Usaremos una capa de reducción de resolución separada. Esto lleva a nuestro modelo final, al que llamamos ConvNeXt.
En la Figura 4 se puede encontrar una comparación de las estructuras de bloque ResNet, Swin y ConvNeXt. En la Tabla 9 se muestra una comparación de las especificaciones de arquitectura detalladas de ResNet-50, Swin-T y ConvNeXt-T. Como se muestra a continuación:
La tabla 9 es similar a la tabla del documento de aprendizaje residual
Palabras de cierre : Palabras de cierre. Hicimos nuestro primer "paso" y descubrimos ConvNeXt, una ConvNet pura, que puede superar a Swin Transformer en la tarea de clasificación ImageNet-1K. Vale la pena señalar que todas las opciones de diseño discutidas hasta ahora fueron adaptadas de Vision Transformer. Además, incluso en la literatura de ConvNet, estos diseños no son novedosos: todos han sido estudiados individualmente, no colectivamente, durante la última década. Nuestros modelos ConvNeXt tienen aproximadamente los mismos FLOP, #params. Utiliza el convertidor Swin, pero no requiere módulos especializados como la atención de la ventana de cambio o el sesgo de posición relativa.

Estos hallazgos son alentadores, pero no del todo convincentes: nuestras exploraciones hasta ahora se han limitado a áreas pequeñas, pero el comportamiento de escala del transformador de visión es lo que realmente los diferencia. Además, si ConvNet puede competir con el transformador Swin en tareas posteriores, como la detección de objetivos y la segmentación semántica, es un tema central que preocupa a los profesionales de la visión artificial. En la siguiente sección, ampliamos los modelos ConvNeXt, tanto en términos de datos como de tamaño del modelo, y los evaluamos en una variedad de diferentes tareas de reconocimiento visual.

Evaluación experimental de ImageNet

Construimos una variante diferente de ConvNeXt, ConvNeXtT/S/B/L, para que tenga una complejidad similar a Swin-T/S/B/L. ConvNeXt-T/B son los productos finales de las operaciones de "modernización" en el régimen ResNet-50/200, respectivamente. Además, también construimos un ConvNeXt-xl más grande para probar aún más la escalabilidad de ConvNeXt. Estas variables difieren únicamente en el número de canales C y el número de bloques B por etapa. Después de los transformadores ResNets y Swin, el número de canales se duplica para cada nueva etapa. Resumimos la configuración de la siguiente manera:
Configuración de parámetros del número de canal C y número de bloque B para cada variante de ConvNeXt

3.1 Configuración

El conjunto de datos ImageNet-1K consta de 1000 clases de objetos y 1,2 millones de imágenes de entrenamiento. Informamos la precisión top-1 de ImageNet-1K en el conjunto de validación. También realizamos un entrenamiento previo en ImageNet-22K, que es un conjunto de datos más grande con 21 841 clases (un superconjunto de 1000 clases de ImageNet-1K), con 14 millones de imágenes para el entrenamiento previo y, luego, en ImageNet, ajustamos el modelo previamente entrenado en -1K para evaluación. Resumimos nuestra configuración de entrenamiento de la siguiente manera. Se pueden encontrar más detalles en el Apéndice A.
Capacitación en ImageNet-1K : Capacitación en ImageNet-1K. Entrenamos ConvNeXts para 300 épocas (300 iteraciones de ciclo) utilizando AdamW como optimizador con una tasa de aprendizaje de 4e-3. También utilicé un calentamiento lineal y un programa de decaimiento de coseno con un parámetro de 20epoch para controlar la tasa de aprendizaje. Usamos un tamaño de lote de 4096 y una caída de peso de 0,05. Para el aumento de datos, los esquemas comunes que empleamos incluyen Mixup, Cutmix, RandAugment y Random Erasing. Regularizamos la red con profundidad aleatoria y suavizado de etiquetas. Use una escala de capa con un valor inicial de 1e-6.
Usamos la media móvil exponencial (EMA) porque encontramos que alivia el sobreajuste de modelos más grandes.
Pre-entrenamiento en ImageNet-22K : pre-entrenamiento en ImageNet-22K. Entrenamos previamente a ConvNeXts en ImageNet-22K durante 90 épocas, con un calentamiento de 5 épocas.
No utilizamos EMA. Otras configuraciones siguen a ImageNet-1K.
Ajuste fino en ImageNet-1KAjuste fino en ImageNet-1K. Ajustamos el modelo preentrenado de ImageNet22K en ImageNet-1K durante 30 épocas. Usamos AdamW con una tasa de aprendizaje de 5e-5, una tabla de tasa de aprendizaje de coseno, disminución de la tasa de aprendizaje jerárquica, sin calentamiento, un tamaño de lote de 512 y una disminución de peso de 1e-8. Las resoluciones predeterminadas de preentrenamiento, ajuste y prueba son 224 × 224. Además, ajustamos las resoluciones grandes de 384 × 384 en los modelos preentrenados ImageNet-22K e ImageNet-1K .
En comparación con los transformadores ViTs/Swin, ConvNeXts es más fácil de ajustar a diferentes resoluciones, porque la red es completamente convolucional y no necesita cambiar el tamaño de los parches de entrada ni interpolar el sesgo de posición absoluta/relativa.

3.2 Resultados

ImageNet-1K : la tabla 1 (arriba) muestra la comparación de resultados con dos variantes de transformador recientes, DeiT y Swin Transformer, y dos convnets (RegNets, EfficientNets y EfficientNetsV2) de la búsqueda de arquitectura. ConvNeXt compite favorablemente con dos sólidas líneas de base de ConvNet (RegNet y EfficientNet) en términos de compensación de cálculo de precisión, así como en rendimiento de inferencia. ConvNeXt también supera a Swin Transformer en una complejidad similar, a veces por un amplio margen (por ejemplo, 0,8 % para ConvNeXt-t). Sin módulos especializados como ventanas móviles o sesgo de posición relativa, ConvNeXts también disfruta de un mayor rendimiento en comparación con Swin Transformer.
Un punto brillante en los resultados es ConvNeXt-B con una resolución de 384384: supera a Swin-B en un 0,6 % (85,1 % frente a 84,5 %), pero tiene un rendimiento de inferencia un 12,5 % más alto (95,7 frente a 85,1 imagen/s). Notamos que la ventaja de FLOP/rendimiento de ConvNeXt-B sobre Swin-B aumenta cuando la resolución aumenta de 224 224 a 384 384. Además, cuando se amplía aún más a ConvNeXt-L, observamos una mejora del 85,5 % en los resultados.
tabla 1

ImageNet-22K : mostramos los resultados del ajuste fino del modelo con el entrenamiento previo de ImageNet-22K en la Tabla 1 (abajo). Estos experimentos son importantes porque se cree ampliamente que los transformadores de visión tienen menos sesgo inductivo y, por lo tanto, pueden superar a los ConvNet cuando se entrenan previamente a escala. Nuestros resultados muestran que los ConvNets correctamente diseñados no son inferiores a los transformadores de visión cuando se entrenan previamente con grandes conjuntos de datos; los ConvNeXts aún funcionan igual o mejor que los Swin Transformers de tamaño similar con un rendimiento ligeramente superior. Además, nuestro modelo ConvNeXt-XL logra una precisión del 87,8 %, una gran mejora con respecto al 384*384 de ConvNeXt-L, lo que demuestra que ConvNeXt es una arquitectura escalable.
En ImageNet-1K, el rendimiento más alto se logra mediante una estructura de búsqueda como compresión y dexcitación [35] y un procedimiento de entrenamiento progresivo. Sin embargo, con el entrenamiento previo de ImageNet-22K, ConvNeXt puede superar a EfficientNetV2, lo que demuestra aún más la importancia del entrenamiento a gran escala.
En el Apéndice B, analizamos la solidez y los resultados de generalización fuera del dominio de ConvNeXt.
Tabla 1 a continuación

5 trabajos relacionados

Modelos híbridos : Modelos híbridos. Los modelos híbridos que combinan mecanismos convolucionales y de autoatención se han estudiado activamente en la era anterior y posterior a vViT. Antes de ViT, el enfoque estaba en aumentar ConvNets con módulos de autoatención/no locales para dependencias a largo plazo. El ViT original primero investigó una estructura híbrida y una gran cantidad de trabajo posterior se centró en reintroducir antecedentes convolucionales en ViT de manera explícita o implícita.
Enfoques recientes basados ​​en convolución : Enfoques recientes basados ​​en convolución. Han y otros muestran que la atención del transformador local es equivalente a la convolución en profundidad no homogénea (conv. en profundidad no homogénea). Luego, los bloques MSA en Swin se reemplazan por circunvoluciones en profundidad dinámicas o regulares para lograr un rendimiento comparable al de Swin. El último artículo ConvMixer muestra que la convolución en profundidad se puede utilizar como una estrategia de mezcla prometedora en entornos de pequeña escala. ConvMixer logra los mejores resultados con tamaños de parche más pequeños, lo que hace que el rendimiento sea mucho más bajo que otras líneas de base. GFNet utiliza la transformada rápida de Fourier (FFT) para mezclar tokens. FFT también es una forma de convolución, pero con un tamaño de núcleo global y relleno circular.
A diferencia de muchos diseños recientes de Transformer o ConvNet, un objetivo principal de nuestra investigación es obtener información sobre el proceso de modernización de ResNet estándar y lograr un rendimiento de vanguardia.

6. Conclusión

En la década de 2020, los transformadores de visión, especialmente los transformadores en capas como el Swin Transformer, comenzaron a reemplazar a ConvNets como la columna vertebral de visión general preferida.
En general, se acepta que los transformadores de visión son más precisos, eficientes y escalables que las redes ConvNet. Proponemos ConvNeXts, un modelo puro de ConvNet que puede competir con los transformadores de visión en capas de última generación en múltiples puntos de referencia de visión por computadora, al tiempo que conserva la simplicidad y la eficiencia de los ConvNet estándar. En algunos aspectos, nuestras observaciones son sorprendentes y nuestro modelo ConvNeXt en sí no es completamente nuevo: muchas opciones de diseño se han examinado individualmente, pero no en forma conjunta, durante la última década. Esperamos que los nuevos resultados informados en este estudio desafíen varios puntos de vista ampliamente aceptados y provoquen un replanteamiento de la importancia de las circunvoluciones en la visión artificial.

おすすめ

転載: blog.csdn.net/weixin_45216950/article/details/129008877