[Notas personales | Paquete de regalo de convolución | En proceso de arreglo]

【Leyendo lista】

Lea los 20 tipos de convoluciones en el aprendizaje profundo en un artículo (CVHub) : Introducción a los principios, ventajas y desventajas (conceptual)

Resumen de convolución (convolución ordinaria, convolución transpuesta, convolución dilatada, convolución agrupada y convolución separable en profundidad)

[Convolución clásica]

Lea los 20 tipos de convoluciones en el aprendizaje profundo en un artículo (con compilación del código fuente e interpretación en papel): Zhihu (zhihu.com)    thumb.jpg

1. Convolución vainilla

Consiste en un conjunto de núcleos de convolución con un tamaño de ventana fijo y parámetros que se pueden aprender, que se pueden utilizar para extraer características.

Conectividad escasa : a diferencia de la conectividad densa uno a uno

Pesos compartidos : intercambio de parámetros del núcleo de convolución

Invariante de traducción : cuando el objetivo en la imagen cambia, la red aún puede generar resultados consistentes para la misma imagen de origen. Para las tareas de clasificación de imágenes, esperamos que las CNN tengan invariancia de traducción (frágiles, necesitan aprender de múltiples datos)

Equivalencia de traducción : cuando la entrada cambia, la salida de la red también debería cambiar en consecuencia. Esta característica es más adecuada para tareas como la detección de objetivos y la segmentación semántica.

Reponer:

Redes neuronales de avance

Una red neuronal feedforward es una red neuronal artificial que procesa información de manera unidireccional, desde la capa de entrada hasta la capa de salida, sin bucles ni bucles en la red. Se llama "feedforward" porque la información fluye hacia adelante a través de la red, y cada capa procesa la salida de la capa anterior.

En una red neuronal feedforward, los datos de entrada pasan primero a través de la capa de entrada , que generalmente contiene una gran cantidad de neuronas, cada neurona corresponde a una característica de los datos de entrada . La salida de la capa de entrada luego a través de una o más capas ocultas, donde cada neurona de la capa oculta realiza una suma ponderada de las entradas y aplica una función de activación a la suma . La salida de cada capa oculta luego pasa a la siguiente capa hasta llegar a la capa de salida . La capa de salida contiene un conjunto de neuronas que producen la salida final de la red.

Los pesos y sesgos de las neuronas en una red neuronal feedforward se aprenden durante la fase de entrenamiento, generalmente mediante retropropagación, que ajusta los pesos y sesgos en función de la diferencia entre las salidas reales y previstas de la red. Una vez que la red está entrenada, puede hacer predicciones sobre nuevos datos pasando los datos a la red y utilizando la salida producida por la capa de salida.

【Serie de convolución】 Convolución simple (qq.com)

Desde la perspectiva del mapeo de funciones , el proceso de convolución es como transformar linealmente cada posición en la imagen y mapearla en un nuevo valor . Entonces, la convolución multicapa es simplemente mapear capa por capa y el conjunto se construye en una función compleja. El proceso de capacitación de la red en realidad consiste en aprender el peso requerido para cada mapeo local. Los resultados del entrenamiento pueden verse como el proceso en el que la red se ajusta a la distribución de entrada.

Desde la perspectiva de la coincidencia de plantillas , el núcleo de convolución se puede definir esencialmente como un determinado patrón. La operación de convolución calcula el grado de coincidencia entre la posición actual en la imagen y la plantilla (núcleo de convolución). Si el grado de coincidencia es mayor, entonces La respuesta (valor de activación) es más fuerte. Por lo tanto, extraer características más discriminativas es la clave para las operaciones de convolución . Sin embargo, las operaciones de convolución tradicionales no pueden suprimir eficazmente la interferencia del ruido de fondo, por lo que debemos introducir métodos similares a la atención para mejorar el rendimiento de la red.

2. Convolución grupal

Divida la red para permitir el cálculo paralelo en múltiples GPU

Reducir la cantidad de parámetros, mejorar la eficiencia del entrenamiento (recursos distribuidos-computación paralela) y mejorar el rendimiento de generalización (desacoplamiento-regularización)

Desventajas : En la implementación de convolución de grupo original, las características de diferentes canales se dividirán en diferentes grupos y no se fusionarán hasta el final de la red. El proceso intermedio obviamente carece de interacción de información ( considerando que diferentes filtros pueden extraer diferentes características ) Para resolver este problema, ShuffleNet [3] combina convolución de grupo puntual (PGC) y reproducción aleatoria de canales para lograr un diseño de red móvil eficiente y liviano.

 3. Convolución transpuesta

Muestreo de características, visualización de características,

 4、Conv. 1x1

Capacidad de expresión de características mejorada : la convolución 1 × 1 es esencialmente un filtro con parámetros que puede aumentar la profundidad de la red sin cambiar el tamaño del mapa de características en sí . La capacidad expresiva de la red se puede mejorar efectivamente utilizando una función de activación no lineal después de la convolución . ( Modifique la profundidad del mapa de características cambiando el número de canales, porque la profundidad del mapa de características de salida está determinada por el número de canales del núcleo de convolución. Pero la conv 1x1 no está completamente conectada, la convolución 1x1 es una operación de convolución, generalmente se usa para modificar características (el número y la profundidad de los canales y ayuda a la red a aprender mejores representaciones. Las capas completamente conectadas son un tipo de capa común en las redes neuronales que conectan cada entrada a cada salida, y a menudo se usan para problemas de clasificación y regresión) .

Mejora y reducción de dimensionalidad : la convolución 1 × 1 puede lograr una mejora o reducción de dimensionalidad aumentando o reduciendo el número de filtros. A diferencia de la capa totalmente conectada, la convolución se basa en el reparto de peso, por lo que puede reducir eficazmente la cantidad de parámetros y cálculos de la red . Por otro lado, se puede pensar que reducir la dimensión reduce la escasez de pesos en las capas intermedias del modelo al reducir los mapas de características redundantes , obteniendo así una estructura de red más compacta.

Interacción de información entre canales : similar a un perceptrón multicapa, la convolución 1 × 1 es esencialmente una combinación lineal de múltiples mapas de características . Por lo tanto, la interacción e integración de información entre canales se puede lograr fácilmente mediante una operación de convolución 1 × 1.

 5. Conv dilatada

La tasa de huecos se introduce sobre la base de la convolución original para ajustar el número de intervalos del núcleo de convolución.

La función de la convolución atroz es aumentar el campo receptivo de la red sin realizar operaciones de reducción de resolución, es decir, sin perder ninguna información espacial, de modo que la red pueda capturar información contextual en diferentes rangos . Esto es beneficioso para tareas de predicción intensivas como la segmentación semántica. Al mismo tiempo, también podemos extraer fácilmente información contextual de múltiples escalas mediante la aplicación de una convolución atroz.

Motivación: se aplicó por primera vez a tareas de segmentación semántica (una tarea de predicción intensiva que requiere una clasificación de imágenes por píxeles). Una dificultad importante en las tareas de segmentación semántica es cómo extraer de manera eficiente información contextual de múltiples escalas para adaptarse a los cambios en diferentes escalas de objetos . Por lo general, los métodos basados ​​en CNN se basan principalmente en una representación de características jerárquica y extraen características en diferentes niveles apilando continuamente capas convolucionales y agrupando capas. Sin embargo, todavía existen los siguientes problemas: ① A medida que aumenta la profundidad de la red, la cantidad de cálculos y parámetros aumentará drásticamente ② Demasiadas veces de reducción de resolución hará que los objetos con resoluciones más pequeñas no puedan reconstruirse ③ No hay parámetros en la capa de muestreo ascendente o descendente Realizar aprendizaje ④La estructura de datos interna y la información jerárquica espacial se pierden gravemente. Por lo tanto, se propone la convolución dilatada, que puede extraer efectivamente información de contexto de diferentes escalas sin reducir la resolución espacial (expandiendo el campo receptivo de la red con el mismo núcleo de convolución) .

Aumente el campo receptivo : la convolución atroz puede obtener un campo receptivo más grande bajo los mismos parámetros del núcleo de convolución. Por lo tanto, para tareas que requieren más información semántica global o requieren dependencias de información de secuencia más largas similares al texto de voz , puede intentar aplicar una convolución atroz. ( Campo receptivo : La neurona representa el tamaño del rango de percepción de la imagen de entrada. Por lo general, las características extraídas mediante operaciones de convolución y agrupación son una conexión local, que carece de correlación global. Por lo tanto, para capturar el contexto global La información se puede expandir al apilar una convolución más profunda y agrupar estructuras para expandir el campo receptivo de la red . Cuanto mayor sea el campo receptivo, más completas serán las características extraídas. Por el contrario, cuanto más pequeño sea el campo receptivo, más sensible será la red a las localizaciones características Los detalles serán más sensibles.)

Representación de información de múltiples escalas : utilizando convoluciones con diferentes tasas de agujeros, también se puede capturar información semántica contextual de múltiples escalas. Diferentes tasas de agujeros representan diferentes campos receptivos, lo que significa que la red puede percibir objetivos de diferentes tamaños.

Desventajas :

No es fácil de optimizar (aumentar el campo receptivo cuando los parámetros permanecen sin cambios, pero debido al aumento en la resolución espacial , a menudo es difícil de optimizar en la práctica. La velocidad es una crítica, por lo que existen requisitos en tiempo real en industria. Más aplicaciones todavía se basan en estructuras similares a FCN),

Efecto de cuadrícula/tablero de ajedrez: cuando se utilizan convoluciones con la misma tasa de agujeros varias veces para extraer características, se perderá la continuidad de la información . Esto se debe a que el núcleo de convolución no es continuo, lo que hace que muchos píxeles no participen en la operación de principio a fin, lo que equivale a un error (se superponen espacios en blanco en la imagen a continuación), lo que es muy difícil para tareas de predicción intensivas como segmentación semántica.Muy hostil , especialmente para objetivos pequeños ( desde el principio de funcionamiento, la convolución dilatada se utiliza para mejorar la capacidad de la red para capturar características de larga distancia, por lo que solo es útil para segmentar algunos objetos más grandes, pero para algunos objetos pequeños, El efecto es a menudo contraproducente. Por ejemplo, para la segmentación de grietas, la grieta generalmente adopta una forma de tira delgada. Si aumentamos la tasa de vacíos en este momento, sin duda destruirá seriamente la consistencia espacial inherente de la característica misma) .

Una solución es garantizar que la tasa de huecos de la convolución superpuesta no pueda tener un divisor común mayor que 1, como [1, 2, 5], lo que hace que parezca una estructura en diente de sierra.

 6. Convolución separable en profundidad (DSC )

Se utiliza para reducir la cantidad de parámetros y cálculos de la red para mejorar la eficiencia operativa de la red.

DSC primero aplica un único filtro de convolución de profundidad a cada canal de entrada , y luego usa convolución puntual para combinar las salidas de diferentes convoluciones de profundidad, por lo que DSC divide la operación de convolución ordinaria en dos procesos: convolución de profundidad y convolución puntual. (Convolución puntual) procesos. Utilice convolución de profundidad para filtrar , y convolución puntual para combinación . Este método de descomposición puede reducir en gran medida la cantidad de parámetros y cálculos de la red.

La convolución de profundidad es un núcleo de convolución responsable de un canal y realiza una convolución espacial en cada canal de forma independiente. Por lo tanto, el número de mapas de características de salida de convolución profunda es igual al número de mapas de características de entrada y no se puede realizar una expansión de dimensión efectiva.

Dado que un mapa de características está convolucionado por un solo filtro, la información de características de diferentes canales en la misma posición espacial no se puede utilizar de manera efectiva, por lo que se agrega convolución puntual. La convolución de puntos se compone principalmente de convolución 1 × 1, que es responsable de proyectar la salida de la convolución de profundidad en un nuevo mapa de características por canal.

Filtre cada canal primero y luego combine

Reduzca la cantidad de parámetros y cálculos: la convolución separable en profundidad divide la operación de convolución original en dos capas, una para filtrado (convolución en profundidad) y otra para combinación (convolución puntual). Este proceso de descomposición puede reducir en gran medida la cantidad de parámetros y cálculos en el modelo .

Reducir la capacidad del modelo: se aplica una convolución separable en profundidad sin utilizar una función de activación . Además, aunque la convolución separable en profundidad puede reducir significativamente la cantidad de cálculo del modelo, también conducirá a una reducción significativa en la capacidad del modelo, lo que resultará en una disminución en la precisión del modelo .

DSC es muy superior a la convolución ordinaria en términos de cantidad de parámetros y eficiencia computacional. Como sustituto de la convolución ordinaria, la mayor ventaja de DSC es que su eficiencia de cálculo es muy alta . Por lo tanto, usar DSC para construir modelos livianos es una práctica muy común hoy en día. Sin embargo, esta alta eficiencia de DSC se produce a expensas de la precisión . En el proceso futuro de utilizar DSC para construir modelos livianos, es necesario equilibrar la precisión y la eficiencia informática de manera integral. Si bien se sacrifica una pequeña cantidad de precisión, la opción correcta es mejorar en gran medida la eficiencia informática .

 7. Convolución espacialmente separable

Convolución a partir de las dimensiones del espacio de la imagen (ancho y alto)

La convolución espacialmente separable rara vez se usa ampliamente en la práctica, una de las razones principales es que no todos los núcleos de convolución se pueden dividir de manera efectiva en pequeños núcleos de convolución (para reducir la cantidad de cálculo). Sin embargo, rara vez se usa ampliamente en la práctica . Una de las razones principales es que no todos los núcleos de convolución se pueden dividir de manera efectiva en pequeños núcleos de convolución .

8. Convolución deformable

Puede verse como una operación de auto atención en el área local (no es una expansión del núcleo de convolución, sino una reintegración de píxeles del mapa de características antes de la convolución, y la expansión del núcleo de convolución disfrazada)

La transformación geométrica desconocida del mismo objeto en diferentes escenas y ángulos es un desafío importante de la tarea (la convolución convencional codifica información de características a través de una estructura geométrica fija para capturar el campo receptivo. Sin embargo, dado que la forma del objeto es cambiante, irregular, Es difícil capturar el campo receptivo apropiado con este método de codificación, lo que da como resultado una capacidad de expresión de red limitada ). En términos generales, a través de una mejora suficiente de los datos, se expanden suficientes muestras para mejorar la capacidad del modelo para adaptarse a la transformación de escala, o se establecen algunas características o algoritmos. que son invariantes a transformaciones geométricas, como SIFT o ventanas corredizas. Sin embargo, la estructura geométrica fija de las CNN tradicionales no puede modelar eficazmente la deformación de objetos desconocidos, por lo que se propone la convolución deformable para resolver este problema.

Sin aumento en el número de puntos de muestreo: capture la semántica de los objetos de manera más efectiva y completa sin aumentar la cantidad de parámetros adicionales

La convolución deformable en realidad no aprende un núcleo de convolución deformable, sino que utiliza capas de convolución adicionales para aprender el desplazamiento correspondiente y superponer el desplazamiento obtenido a los píxeles en las posiciones correspondientes en el mapa de características de entrada . Sin embargo, dado que la generación del desplazamiento producirá un tipo de número de punto flotante y el desplazamiento debe convertirse en un número entero, la propagación hacia atrás no se puede realizar si se redondea directamente, por lo que el artículo original utiliza la interpolación bilineal para calcular indirectamente el correspondiente . valor de píxel.

Proceso de cálculo x4:

(1) Calcular el desplazamiento relativo : aprenda el desplazamiento de cada píxel realizando una operación de convolución en el mapa de características de entrada . 2N en la figura representa el número duplicado de canales, es decir, cada píxel tiene un desplazamiento en las direcciones xey.

(2) Obtenga el desplazamiento absoluto : agregue el desplazamiento relativo calculado en el primer paso al valor del índice de píxeles de la imagen original para obtener el desplazamiento absoluto del índice de píxeles de la imagen de la característica de entrada.

(3) Reintegración de píxeles : primero redondee el desplazamiento absoluto del índice de píxeles hacia arriba y hacia abajo y luego intégrelo aún más en cuatro pares de coordenadas. Mediante interpolación bilineal, se obtiene el valor del píxel del índice de desplazamiento.

(4) Codificación de nuevos píxeles : Complete el cálculo del valor de píxel del desplazamiento del índice, es decir, obtenga un nuevo mapa de características y realice una convolución convencional en él para lograr una convolución deformable.

Este método utiliza una idea inteligente para implementar un método de extracción de características de estructura geométrica deformable: se basa en una red paralela para aprender compensaciones, lo que permite que el núcleo de convolución muestree de manera divergente el mapa de características de entrada, lo que permite que la red se concentre en el centro del objetivo. , mejorando así la precisión del objeto Capacidades de modelado de deformaciones. La convolución deformable . ()

Puede mejorar hasta cierto punto la capacidad de generalización de la extracción de características del modelo, pero también introducirá algunas interferencias de ruido de fondo irrelevantes. Tres soluciones correspondientes: utilizar una mayor cantidad de convoluciones deformables, agregar pesos correspondientes a cada sesgo e imitar las características en R-CNN. Sin embargo, la eficiencia computacional de la convolución deformable también es un tema cuestionable ( aunque puede brindar una alta precisión, cuando el núcleo de convolución es demasiado grande, ocupará un espacio de memoria muy grande, por lo que su aplicación en la implementación de aterrizaje es muy limitada. Pero Puede considerarse como un truco para mejorar los puntos al participar en competiciones ) .

 9. Convolución gráfica

Documento: https://arxiv.org/abs/1609.02907

Código: https://github.com/tkipf/gcn

( otros leyendo notas , código CVHub )

La red convolucional de gráficos es la rama más simple de las redes de gráficos y está diseñada para resolver eficazmente problemas de datos en espacios no euclidianos que las CNN, RNN y otras redes tradicionales no pueden manejar ( en las redes convolucionales de gráficos, la similitud o distancia entre nodos no solo Depende de su distancia en el espacio físico, pero está determinado por los vectores de características de los nodos y sus relaciones de conexión en el gráfico. Por lo tanto, la convolución del gráfico puede capturar la correlación abstracta entre nodos, no solo la distancia física) .

Principio: utilice información de borde para agregar información de nodo para generar una nueva representación de nodo . En resumen, la operación de convolución en CNN es la suma ponderada de las posiciones correspondientes del núcleo de convolución. Extendida a GCN, utiliza la información de borde para agregar continuamente la información de los nodos adyacentes para actualizar los parámetros del nodo original.

Características: características de nodo (cada nodo se puede utilizar para la representación de características), características estructurales (los nodos están relacionados a través de bordes que transportan información)

Descripción general de la red neuronal gráfica GNN

Introducción a las redes convolucionales de GCN Graph

Figura ML: Uso de Transformer para aliviar las limitaciones de GNN

 10. Bloque inicial

La información contextual de múltiples escalas se captura principalmente a través de múltiples operaciones de convolución con diferentes tamaños de núcleo de convolución y, finalmente, la salida se agrega mediante operaciones de empalme para obtener una representación de características de múltiples escalas. El propósito original era obtener representaciones de características a diferentes escalas en la misma capa de mapas de características. Aumentar el ancho de la red conduce a obtener representaciones de características más ricas. ( Realice múltiples operaciones de convolución u operaciones de agrupación en paralelo en la imagen de entrada y empalme todos los resultados de salida en un mapa de características muy profundo. Porque diferentes operaciones de convolución, como 1 * 1, 3 * 3, 5 * 5, etc., son diferentes A partir de las operaciones de agrupación se puede obtener diferente información de la imagen de entrada, al procesar estas operaciones en paralelo y combinar todos los resultados se obtendrá una mejor representación de la imagen ).

Análisis completo desde Inception v1 hasta Inception v4

Inception v1 : ① El núcleo de convolución 1x1 comprime el número de canales, reduce los parámetros y la cantidad de cálculo y mejora el efecto; ②. Utilice núcleos de convolución de diferentes tamaños para el procesamiento paralelo y deje que la red elija el mejor mapa de características por sí misma. La ventaja de esto es que puede mejorar tanto la velocidad como la precisión. ③Además, Inception v1 también introduce la capa de agrupación máxima y la capa de agrupación promedio para enriquecer el método de extracción de características.

La idea principal de Inception v1 es utilizar núcleos de convolución de diferentes tamaños para la convolución ( la combinación de diferentes núcleos de convolución no solo puede aumentar el campo receptivo, sino también mejorar la robustez de la red neuronal ), y luego combinar estos resultados. Las convoluciones se empalman en la dimensión del canal como salida para aumentar el poder expresivo de la red. En este proceso, se utiliza la convolución 1x1 para controlar la cantidad de canales, reducir la cantidad de cálculo de la red y también ayudar a mejorar la capacidad de expresión no lineal de las características.

Específicamente, Inception v1 utiliza múltiples tamaños de núcleo de convolución diferentes (como 1x1, 3x3, 5x5) para la convolución para extraer características de diferentes escalas. Además, Inception v1 también introduce una capa de agrupación (como Max Pooling o Average Pooling) para reducir aún más el tamaño del mapa de características. En última instancia, Inception v1 obtiene una representación de características más poderosa al unir estas características de diferentes escalas.

Se agregó 1x1conv, canal :

La rama de convolución 1 × 1 se refiere al uso de un núcleo de convolución de tamaño 1 × 1 para la operación de convolución, donde 1 indica que el núcleo de convolución solo cubre un píxel en la dimensión espacial. La rama de convolución 1 × 1 se utiliza principalmente para aumentar o disminuir la cantidad de canales para reducir la cantidad de cálculo y la complejidad del modelo. En el bloque inicial, la rama de convolución 1 × 1 generalmente se usa para reducir la cantidad de canales del mapa de características de entrada, de modo que la rama de convolución posterior y la rama de agrupación requieran menos cálculos. En redes más profundas como Inception-ResNet, también se utilizan ramas de convolución 1 × 1 para realizar operaciones de dimensionalidad para aumentar las capacidades de representación no lineal de la red. En la práctica, la rama de convolución 1 × 1 generalmente se coloca al principio o al final del bloque inicial para aprovecharla al máximo.

Con respecto a la compresión de canales : la convolución 1x1 generalmente se usa para comprimir el número de canales. Específicamente, utiliza una capa convolucional con solo 1 tamaño de núcleo de convolución en una determinada capa de la red neuronal convolucional, donde la profundidad del núcleo de convolución es la cantidad de canales que deben comprimirse, es decir, el mapa de características de entrada está en el canal Realizar operaciones de reducción de dimensionalidad.

La red aprende el contenido del canal y generalmente incluye la extracción de diferentes características de los datos de entrada. En una red neuronal convolucional, los canales generados por cada capa convolucional corresponden a diferentes características, como bordes, texturas, colores, etc. Al realizar la compresión de canales, generalmente se determina calculando la importancia de cada canal para determinar qué canales deben retenerse y cuáles pueden descartarse. Este método de cálculo se puede determinar de acuerdo con diferentes escenarios de aplicación. Los métodos comúnmente utilizados incluyen el uso de métodos de reducción de dimensionalidad como PCA o el uso de métodos basados ​​​​en gradientes, como calcular el tamaño del gradiente de cada canal durante el entrenamiento de la red para determinar su importancia.

En general, el propósito de comprimir el canal es reducir la cantidad de cálculo y la cantidad de parámetros del modelo mientras se conservan las características de los datos de entrada tanto como sea posible. El contenido específico y el mecanismo de compresión se ajustarán de acuerdo con escenarios de aplicación y algoritmos específicos, pero el principio general es conservar las características más representativas de los datos de entrada .

Para cada capa de la red neuronal convolucional, los datos de entrada generalmente incluyen tres dimensiones: alto, ancho y canal. El número de canales puede entenderse como el número de características o mapas de características. Cada canal contiene el valor de respuesta de los datos de entrada bajo ciertas características. Por ejemplo, para una imagen en color, sus canales pueden incluir canales de color (rojo, verde, azul) y canales de textura, etc. El valor en cada canal representa el grado de respuesta. de la imagen bajo esta característica. En una red neuronal convolucional, el propósito de la operación de convolución es extraer diferentes características de los datos de entrada sin cambiar el tamaño. Estas características suelen ser no lineales y su número puede variar en diferentes capas. Por lo tanto, al ajustar el número de canales en la capa convolucional, se puede controlar el grado en que la red neuronal convolucional extrae diferentes características de los datos de entrada, lo que afecta el rendimiento de la red.

Lote suplementario y minilote

Cuando entrenamos una red neuronal profunda, normalmente necesitamos entrenar de forma iterativa una gran cantidad de datos de entrenamiento. Es posible que estos datos de entrenamiento no se carguen en la memoria todos a la vez, por lo que deben dividirse en varios lotes para su procesamiento. El tamaño del lote determina la cantidad de muestras utilizadas en cada iteración del entrenamiento. Generalmente, elegir un tamaño de lote apropiado puede mejorar la velocidad y la estabilidad del entrenamiento. Además, el lote también se puede utilizar para la computación paralela de GPU y enviar varias muestras a la GPU para su cálculo al mismo tiempo para mejorar la eficiencia del entrenamiento.
De hecho, cuando entrenamos una red neuronal profunda, generalmente dividimos el conjunto de datos en varios lotes para el entrenamiento, y el mini lote es la cantidad de datos de muestra pequeños contenidos en un lote. Dividimos un lote en múltiples minilotes para enviar el conjunto de datos a la red en lotes para el entrenamiento. Solo es necesario procesar los datos del minilote cada vez, lo que puede reducir el uso de memoria y acelerar el entrenamiento. Al mismo tiempo, al atravesar continuamente todo el conjunto de datos, la red se puede entrenar más completamente, mejorando así el rendimiento del modelo. Por lo tanto, el mini lote es parte del lote, que se puede decir que es una división más detallada.

Inception v2 : se propone la normalización por lotes, que acelera efectivamente el entrenamiento de redes profundas al reducir las compensaciones de covariables internas. Además, basándose en la idea de VGG-Net [19], v2 reemplaza la convolución 5×5 en v1 con dos convoluciones 3×3, reduciendo aún más el número de parámetros de la red y garantizando el mismo campo receptivo. importe del cálculo.

En comparación con Inception v1, Inception v2 ha realizado algunas mejoras y optimizaciones manteniendo algunas ideas centrales. En primer lugar, Inception v2 introduce la normalización por lotes, que hace que el entrenamiento de la red sea más estable y también ayuda a mejorar la precisión . En segundo lugar, Inception v2 utiliza una tecnología llamada "Factorización de convoluciones", que reemplaza un núcleo de convolución más grande con dos núcleos de convolución más pequeños. Por ejemplo, utilice dos núcleos de convolución de 3x3 en lugar de un núcleo de convolución de 5x5. La ventaja de esto es que puede reducir la cantidad de parámetros y cálculos, al mismo tiempo que garantiza que el campo receptivo permanezca sin cambios y mejora la precisión de la red. Además, Inception v2 también introduce algunas tecnologías nuevas , como "Label Smoothing" y "Weight Decay", para mejorar aún más la precisión y la capacidad de generalización de la red.

Regularización adicional:

La regularización se refiere a limitar la complejidad del modelo agregando restricciones adicionales durante el proceso de entrenamiento del modelo, evitando así que el modelo sobreajuste los datos de entrenamiento y mejorando la capacidad de generalización del modelo. Las técnicas de regularización se utilizan ampliamente en los campos del aprendizaje automático y el aprendizaje profundo. En el aprendizaje profundo, las técnicas de regularización comúnmente utilizadas incluyen regularización L1, regularización L2, abandono, normalización por lotes, etc. Entre ellos, la regularización L1 y la regularización L2 agregan un término de regularización a la función de pérdida, de modo que los parámetros del modelo continúan tendiendo a 0, reduciendo así la complejidad del modelo; Dropout reduce el sobreajuste al establecer aleatoriamente una parte de las neuronas en 0; Normalización por lotes es estandarizar la entrada de cada lote para reducir la compensación de covariables internas de la red y mejorar la eficiencia y la capacidad de generalización del entrenamiento. La elección de la técnica de regularización debe adaptarse al problema específico y al conjunto de datos para mejorar la capacidad de generalización y la precisión del modelo.

Estos conceptos pueden confundirse fácilmente. La regularización y los métodos para reducir la explosión/desaparición de gradientes son técnicas comúnmente utilizadas en el aprendizaje profundo y su propósito es mejorar el rendimiento de generalización del modelo.

Los métodos para reducir la explosión/desaparición de gradientes están dirigidos principalmente al problema de que los gradientes en las redes neuronales profundas se vuelven demasiado pequeños o demasiado grandes a medida que aumenta el número de capas. Los gradientes se controlan a través de algunos medios, como la inicialización de peso, el uso de funciones de activación, normalización por lotes , etc. El tamaño del gradiente evita que el gradiente sea demasiado pequeño o demasiado grande , para que la red se pueda entrenar mejor.

La regularización es un método para agregar algunos términos de penalización a la función de pérdida. El propósito es hacer que los parámetros del modelo sean más suaves o más cercanos a 0, reduciendo así la complejidad del modelo, evitando el sobreajuste y mejorando el rendimiento de la generalización. Los métodos de regularización más utilizados incluyen regularización L1, regularización L2, abandono, etc.

Inceptionv3 : Se basa principalmente en la idea de convolución espacialmente separable, dividiendo el núcleo de convolución k × k original en convoluciones unidimensionales 1 × k y k × 1. Por un lado, puede acelerar efectivamente la operación de la red y por otro lado, puede acelerar eficazmente el funcionamiento de la red y utilizar el exceso de recursos informáticos para aumentar la profundidad de la red y mejorar la capacidad de mapeo no lineal.

La convolución separable en profundidad y la convolución separable espacialmente son dos conceptos diferentes. La convolución separable en profundidad descompone un núcleo de convolución ordinario en un núcleo de convolución 1x1 en la dirección de profundidad y un núcleo de convolución kxk en la dirección espacial, y luego primero usa el núcleo de convolución 1x1 para realizar la convolución de profundidad, y luego usa la convolución kxk El núcleo realiza la convolución espacial , reduciendo así la cantidad de cálculo hasta cierto punto y también aumentando la profundidad de la red. La convolución espacialmente separable consiste en dividir un núcleo de convolución kxk en núcleos de convolución k 1xk y k kx1, y luego realizar primero convoluciones 1xk y kx1 en el espacio, y luego realizar convoluciones 1x1 en profundidad, reduciendo así la cantidad de cálculo hasta cierto punto. .

Cuando usamos convolución 1x1 en la dirección de profundidad, podemos controlar la profundidad del mapa de características de salida ajustando el número de núcleos de convolución. Por ejemplo, supongamos que tenemos un mapa de características de entrada de tamaño 28x28x192 y queremos reducir su profundidad a 64, entonces podemos usar 64 núcleos de convolución de tamaño 1x1x192 para convolucionar el mapa de características de entrada. Esto produce un mapa de características de salida de tamaño 28x28x64, donde el valor de cada píxel se obtiene tomando una suma ponderada de los 192 valores en cada posición del mapa de características de entrada.

Inception v4 : basándose en las ideas de ResNet, presenta Skip Connection, que no solo acelera en gran medida el entrenamiento de la red, sino que también mejora significativamente el rendimiento de la red.

Basado en Inception v3, se introduce más la tecnología de conexión de salto en ResNet y se propone la estructura Inception-ResNet. Esta estructura no solo puede acelerar el entrenamiento de la red, sino también aliviar eficazmente los problemas de desaparición y explosión de gradientes, y mejorar el efecto de entrenamiento y la capacidad de generalización de la red. Inception v4 también utiliza algunas otras tecnologías, como filtrado basado en matrices dispersas, convolución dinámica, etc., para mejorar aún más el rendimiento y la eficiencia de la red.

La tecnología de conexión de salto en ResNet puede aliviar los problemas de desaparición y explosión de gradiente, principalmente porque puede hacer que la retropropagación de la red sea más fluida y estable . En las redes neuronales profundas, dado que el gradiente se reducirá o amplificará mediante operaciones continuas de multiplicación de matrices durante el proceso de retropropagación, es probable que ocurra el problema de la desaparición o explosión del gradiente en la parte profunda de la red, lo que dificulta el entrenamiento. La tecnología de conexión de salto en ResNet introduce conexiones entre capas en la red para transferir información directamente entre diferentes capas, de modo que el gradiente no se reduzca o amplifique demasiado mediante operaciones continuas de multiplicación de matrices durante la retropropagación, evitando así la desaparición del gradiente . O el problema de la explosión de gradiente, que también puede hacer que la red sea más fácil de entrenar y converger.

[Variante de convolución]

Se actualizará después de usarlo.

1. Convolución asimétrica (convolución asimétrica)


2. Convolución de octava


3. Convolución heterogénea


4. Convoluciones condicionalmente parametrizadas


5. Convolución dinámica (convolución dinámica)

Convolución dinámicaCondConv 


6. Convolución fantasma


7. Convolución autocalibrada (convolución autocalibrada)


8. Convolución sobreparametrizada en profundidad (convolución sobreparametrizada en profundidad)


9. Módulo de atención separada (ResNeSt Block)


10. Involución

Supongo que te gusta

Origin blog.csdn.net/sinat_40759442/article/details/129284792
Recomendado
Clasificación