Modelo clásico de red neuronal convolucional para aprendizaje profundo

La aplicación del modelo LeNet-5 en CNN, el modelo LeNet-5 utilizado en el sistema de reconocimiento de caracteres, es un modelo muy clásico. El modelo LeNet-5 fue propuesto por el profesor Yann LeCun en 1998. Es la primera red neuronal convolucional aplicada con éxito al reconocimiento de dígitos escritos a mano a gran escala, y su precisión en el conjunto de datos MNIST puede alcanzar el 99,2.

A continuación se describe en detalle el principio de funcionamiento del modelo LeNet-5.

El modelo LeNet-5 * * * tiene siete capas y cada capa contiene muchos parámetros, que son los parámetros de la red neuronal convolucional. Aunque solo hay siete capas, que son muy pocas en las enormes redes neuronales actuales, incluyen capas convolucionales, capas de agrupación y capas completamente conectadas. Se puede decir que aunque el gorrión es pequeño, tiene todos los órganos internos. Por conveniencia, nos referimos a la capa convolucional como capa C y a la capa de reducción de resolución como capa de reducción de resolución.

Primero, la capa de entrada ingresa la imagen original, que se procesa en un valor de 32×32 píxeles. El medidor de capa oculta subyacente alterna entre convolución y submuestreo. La capa C1 es una capa convolucional y contiene seis mapas de características. Cada mapa tiene 28x28 neuronas. El núcleo de convolución puede ser un cruce de 5 × 5, y estas 28 × 28 neuronas * * * comparten los parámetros de peso del núcleo de convolución. Mediante la operación de convolución, se mejoran las características de la señal original y se reduce el ruido. Cuando los núcleos de convolución son diferentes, las características extraídas de la imagen son diferentes. La capa C2 es una capa de colección. Las funciones de la capa de piscina se han presentado anteriormente. Promedia los valores de píxeles locales para lograr el submuestreo.

La capa de agrupación contiene seis mapas de características, cada uno con un valor de píxel de 14x14. Esta capa de agrupación es muy importante porque garantiza que las características de la red se puedan extraer hasta cierto punto, al tiempo que reduce en gran medida la complejidad computacional, lo que reduce el riesgo de sobreajuste de la estructura de la red. Dado que la capa convolucional y la capa de agrupación aparecen alternativamente, la tercera capa de la capa oculta es otra capa convolucional. La segunda capa convolucional consta de 16 mapas de características. El núcleo de convolución utilizado para cada mapa de características para el cálculo de la suma ponderada es 10x10. La cuarta capa oculta, la segunda capa de agrupación, también contiene 16 mapas de características, y cada mapa de características utiliza un núcleo de convolución de 5x5. La quinta capa oculta utiliza una operación de núcleo de convolución de 5 × 5 y contiene 120 neuronas. También es la última capa de la operación de convolución de la red.

La sexta capa es una capa completamente conectada que contiene 84 mapas de características. En la capa completamente conectada, la entrada se multiplica por puntos, luego se agrega el sesgo y luego se pasa a las neuronas de la capa de salida a través de una función de activación. La última capa, la séptima capa, para obtener el vector de salida, se configuran diez neuronas para la clasificación, lo que equivale a generar una matriz unidimensional de diez elementos, es decir, de 0 a 9.

Modelo AlexNet

Introducción a AlexNet

En el concurso de reconocimiento de imágenes Imagenet de 2012, el modelo de red Alexnet propuesto por Alext se convirtió en un éxito de taquilla y desencadenó un auge en La aplicación de redes neuronales Ganar el campeonato en el Concurso de reconocimiento de imágenes de 2012 también convirtió a las redes neuronales convolucionales en un verdadero algoritmo central en el procesamiento de imágenes. LeNet-5 presentado anteriormente apareció en el siglo pasado. Aunque es un clásico, solo se puede utilizar en algunos campos debido a varios escenarios complejos de la vida real. Sin embargo, con el rápido desarrollo de funciones de diseño manual como SVM, LeNet-5 no ha formado una gran situación de aplicación. Con la introducción de ReLU y la deserción, así como el avance en la potencia informática aportado por la GPU y la explosión de big data en la era de Internet, las redes neuronales convolucionales han logrado avances históricos. La propuesta de AlexNet ha colocado el aprendizaje profundo a la vanguardia. inteligencia artificial.

Preprocesamiento de imágenes

Los datos de entrenamiento de AlexNet utilizan el conjunto de datos ILSVRC2010 en el subconjunto de ImageNet, que incluye 1000 categorías, ***12 000 imágenes de entrenamiento, 50 000 conjuntos de validación y 150 000 conjuntos de prueba. Antes del entrenamiento de la red, debemos preprocesar las imágenes del conjunto de datos. Primero, necesitamos reemplazar todas las imágenes con diferentes resoluciones en imágenes de 256x256.

El método de transformación consiste en escalar el lado corto de la imagen a un valor de 256 píxeles y luego interceptar el valor de 256 píxeles en el medio del lado largo para obtener una imagen de 256x256. Además de preprocesar el tamaño de la imagen, también es necesario restar el promedio de la imagen. La imagen generalmente está compuesta por los tres colores primarios de RGB. El valor promedio de los tres componentes RGB puede resaltar las características de la imagen y facilitar cálculos posteriores.

Además, para garantizar el efecto del entrenamiento, también necesitamos procesar los datos del entrenamiento con mayor dureza. Tome una imagen de tamaño 227x227 a partir de una imagen de tamaño 256x256 y luego refleje la imagen, aumentando los datos originales en (256-224)x(256-224)x2= 2048 veces. Finalmente, el espacio RGB es PCA y luego el componente principal es la perturbación gaussiana (0, 0,1). Como resultado, la tasa de error se reduce en 1. Para los datos de prueba, extraemos imágenes con tamaños de esquina de 224, 224, imágenes con tamaños centrales de 224, 224 y sus imágenes especulares, de modo que podamos obtener 65,438 00 imágenes. Podemos usar softmax para la predicción, y todas las predicciones son. promediado como resultado de la clasificación final.

Función de activación ReLU

Mencionamos anteriormente que la función de activación no lineal comúnmente utilizada es sigmoidea, que puede determinar todos los valores reales continuos ingresados ​​entre 0 y 1. Pero esto plantea un problema. Cuando el valor absoluto de un número negativo es muy grande, el resultado es 0; si es un número positivo con un valor absoluto muy grande, el resultado es 1. Esto puede conducir a un fenómeno de saturación, en el que el gradiente de una neurona se vuelve extremadamente pequeño, lo que inevitablemente aumentará la dificultad de aprendizaje de la red. Además, el valor emitido por sigmoide no es 0 como valor promedio, porque esto hará que la señal promedio distinta de cero emitida por la capa superior se ingrese directamente a las neuronas de la capa posterior. Por lo tanto, el modelo AlexNet propone la función ReLU, la fórmula es: f(x)=max(0,x)f(x)=max(0,x).

Utilice ReLU en lugar de sigmoide y descubra que el SGD obtenido por ReLU converge mucho más rápido que Sigmoide, lo que se convierte en una de las ventajas del modelo AlexNet.

Personas que rechazan la sociedad tradicional

El modelo AlexNet propone un método de combinación de modelos efectivo que solo toma el doble de tiempo que un modelo único. Este método se llama Abandono. En toda la red neuronal, la mitad de las neuronas se seleccionan aleatoriamente para que su salida sea 0. De esta forma, la red apaga algunas neuronas, reduciendo el sobreajuste. Al mismo tiempo, también está aumentando el número de iteraciones de formación. En ese momento, una GPU GTX580 solo tenía 3 GB de memoria y no podía realizar cálculos a gran escala. Sin embargo, con el desarrollo de los niveles de hardware, las GPU en ese momento ya podían implementar la computación paralela. Después de la computación en paralelo, dos GPU pueden comunicarse entre sí y transmitir datos, aprovechando al máximo los recursos de la GPU. Por lo tanto, el diseño del modelo utiliza dos GPU para ejecutarse en paralelo, lo que mejora enormemente la eficiencia operativa.

Análisis del modelo

El modelo AlexNet * * * tiene ocho capas, de las cuales las primeras cinco capas son capas convolucionales, de las cuales las dos primeras capas convolucionales y la quinta capa convolucional tienen agrupación. capa, otras capas convolucionales no. Las últimas tres capas están completamente conectadas, con aproximadamente 650.000 neuronas y aproximadamente 60 millones de parámetros para entrenar.

Después del preprocesamiento de la imagen, la imagen original ingresa a la primera capa de convolución C1 y adquiere un tamaño de 55x55 píxeles. En este momento, un *** tiene 96 canales. El modelo está dividido en partes superior e inferior para facilitar la operación de la GPU. El número de canales es 48, lo que es más adecuado para la operación en paralelo de la GPU. En el modelo anterior, la capa 48 se convierte directamente en una superficie, lo que hace que el modelo se parezca más a un cubo con dimensiones de 55x55x48. En la segunda capa convolucional C2, el tamaño del núcleo de convolución es 5x5x48, por lo que la operación de convolución se realiza nuevamente. Habrá una capa de agrupación después de la operación de convolución de las capas convolucionales C1 y C2, lo que reduce en gran medida el valor de píxel de la imagen de la característica después de la extracción de la característica, facilita la operación y hace que las características sean más obvias. La tercera capa convolucional C3 es aún más especial. La tercera capa convolucional fusiona los canales y fusiona nuevamente los datos de los dos canales anteriores. Esta es una operación de empalme. Después de la tercera capa, el número de canales pasa a ser 256 debido a las conexiones en serie.

El tamaño del núcleo de convolución de convolución completa es 13 × 13 × 25613 × 13 × 256. 4096 núcleos de convolución de este tamaño realizan 4096 operaciones de convolución completa en la imagen de entrada. El resultado final es un vector de columna, un * * *, 4096 números. Esta es la salida final, pero AlexNet eventualmente se dividirá en 1000 clases, por lo que a través de la octava capa, que es la tercera capa completamente conectada, obtendrá 1000 salidas de clases.

Cada capa en la red Alexnet tiene diferentes funciones. Se utilizan ReLU y múltiples CPU para mejorar la velocidad de entrenamiento. La agrupación superpuesta se utiliza para mejorar la precisión y es menos propensa al sobreajuste. La precisión y la ganancia y abandono de datos se utilizan para reducir el sobreajuste.

VGGNet

En ILSVRC-2014, el modelo VGGNet propuesto por el Grupo de Geometría Visual de la Universidad de Oxford ocupó el primer lugar en la tarea de posicionamiento y el primer lugar en la tarea de clasificación [[i] ] . Hoy en día, en el campo de la visión por computadora, los buenos efectos de las redes neuronales convolucionales se han ganado el favor de los desarrolladores, y el modelo AlexNet mencionado anteriormente es aún mejor, por lo que los profesionales y estudiantes están tratando de mejorarlo para obtener mejores resultados. Más tarde, muchas personas creyeron que la llamada respuesta local normalizada en el modelo AlexNet desperdiciaba recursos informáticos, pero no mejoraba significativamente el rendimiento. La esencia de VGG es una versión mejorada de la estructura AlexNet, que enfatiza la profundidad en el diseño de redes neuronales convolucionales. La profundidad de la capa convolucional se aumentó a 19 capas y ganó el primer lugar en el problema de posicionamiento en la competencia ImageNet de ese año. Toda la red demuestra a la gente que podemos lograr buenos resultados con núcleos de convolución muy pequeños, siempre que profundicemos en el número de capas de la red. Esto también demuestra que si queremos mejorar el efecto del modelo de toda la red neuronal, es necesario hacer más. Una forma eficaz es profundizar su profundidad. Aunque la cantidad de cálculo aumentará considerablemente, la complejidad general también aumentará, lo que permitirá resolver problemas más complejos. Aunque la red VGG existe desde hace varios años, el efecto en muchas otras redes no es muy bueno. VGG a veces puede ejercer sus ventajas y brindar a las personas ganancias inesperadas.

Muy similar a la red AlexNet, VGG*** tiene cinco capas convolucionales, cada una de las cuales va seguida de una capa de agrupación. En la competencia ImageNet de ese momento, el autor probó seis estructuras de red. Estas seis estructuras son casi iguales, excepto por el número de capas, que oscila entre 11 y 19. La entrada de la estructura de la red es una imagen RGB de tamaño 224 * 224 y la salida final es el resultado de la clasificación. Por supuesto, las imágenes deben procesarse previamente al acceder a Internet.

En comparación con la red AlexNet, la red VGG ha realizado algunas expansiones en la profundidad y el ancho de la red. La operación de convolución específica es similar a la red AlexNet. Explicamos principalmente las mejoras realizadas por la red VGG. En primer lugar, dado que muchos investigadores descubrieron que la capa de normalización no es muy efectiva y consume muchos recursos informáticos, el autor canceló la capa de normalización en la red VGG. En segundo lugar, la red VGG utiliza un núcleo de convolución de 3 × 3 más pequeño, y dos núcleos de convolución de 3 × 3 consecutivos equivalen a un campo receptivo de 5 × 5. Por analogía, tres núcleos de convolución continuos de 3 × 3 equivalen a un campo receptivo de 7 × 7. Este cambio reduce los parámetros, ahorra recursos informáticos y deja recursos para redes más profundas más adelante. El tercer punto es que el núcleo de agrupación de funciones de la capa de agrupación en la red VGG se cambia a 2x2, mientras que el núcleo de agrupación en la red AlexNet es 3x3. Sin duda, estas tres mejoras reducirán todo el cálculo de parámetros, lo que nos permitirá obtener más recursos para redes más profundas en una plataforma informática limitada. Debido a la gran cantidad de capas y al pequeño núcleo de convolución, el efecto de extracción de características de toda la red es muy bueno. De hecho, debido a la gran cantidad de capas de VGG, la cantidad de cálculo sigue siendo bastante grande y la gran cantidad de capas convolucionales se ha convertido en su característica más importante. Además, la red VGG tiene un excelente rendimiento de expansión y una estructura simple, por lo que tiene un buen rendimiento de migración y un buen rendimiento de generalización al migrar a otros conjuntos de datos. Hasta ahora, las redes VGG se utilizan a menudo para proponer funciones. Entonces, cuando muchos modelos actualizados no son efectivos, el uso de VGG puede resolver estos problemas.

GoogleNet

Google volvió a ganar el primer lugar en el Imagenet Challenge 2014 (ILSVRC14) con GoogleNet. Este método logra mejores resultados al aumentar la profundidad y el ancho de la red neuronal y garantiza que los recursos informáticos permanezcan sin cambios durante el proceso. Esta red muestra que aumentar la profundidad, el ancho y los datos de entrenamiento son las principales formas de lograr mejores resultados en el aprendizaje profundo existente. Sin embargo, aumentar el tamaño puede causar problemas de ajuste excesivo, porque la profundización de la profundidad y el ancho traerá inevitablemente demasiados parámetros. Además, aumentar el tamaño de la red también trae la desventaja de ocupar demasiados recursos informáticos. Para mejorar el rendimiento de todo el modelo y al mismo tiempo aprovechar al máximo los recursos informáticos, el autor utiliza el modelo Inception, como se muestra en la siguiente figura. Se puede ver que este modelo piramidal utiliza núcleos de convolución paralelos con diferentes anchos para aumentar el ancho de salida del núcleo de convolución. Debido a que se utiliza un núcleo de convolución más grande, los parámetros aumentan. Utilice un núcleo de convolución 1 * 1 para minimizar la cantidad de parámetros.

Módulo inicial

La tabla anterior es un diagrama de análisis de red. La entrada de la capa convolucional de la primera fila es 224 × 224 × 3, el núcleo de convolución es 7 × 7, el paso es 2 y el relleno es 3. La dimensión de salida es 112 × 112 × 64, en la que se utiliza una convolución de 7 × 7. La segunda capa de agrupación de comportamiento tiene un núcleo de convolución de 3 × 33 × 3, un tamaño de paso deslizante de 2, un relleno de 1, una dimensión de salida de 56 × 56 × 64 y un método de cálculo de 1/2 × (112 2 ×1.3 1)=56. La tercera y cuarta filas son similares a la primera y segunda filas. La quinta línea del módulo Inception se divide en cuatro ramas, y las entradas son todos resultados de 28 × 28 × 192 generados por la capa superior: parte 1, capa convolucional 1 × 1, el tamaño de salida es 28 × 28 × 64; La segunda parte utiliza una capa convolucional 1 × 1, el tamaño de salida es 28 × 28 × 96. Como entrada, se utiliza una capa convolucional de 3 × 3 y el tamaño de salida es 28 × 28 × 128. La tercera parte utiliza una capa convolucional de 1×1 con un tamaño de salida de 28×28×32. Como entrada, se utiliza una capa convolucional de 3 × 3 y el tamaño de salida es 28 × 28 × 32. En la tercera parte de la capa de agrupación de 3 × 3, el tamaño de salida es 28 × 28 × 32. El módulo Inception en la línea 5 concatenará los resultados de salida de los resultados anteriores en paralelo para aumentar el ancho de la red.

Resnet

En la competencia ImageNet de 2015, He's ResidualNetworks ganó el primer lugar en múltiples campos de ImageNet. Este artículo sobre ResNet también ganó el mejor artículo de CVPR2016, bien merecido.

Las redes VGG y Google presentadas anteriormente obtienen mejores resultados al aumentar la profundidad de la red neuronal convolucional y también hacen que las personas comprendan que la profundidad y la amplitud de la red determinan el efecto del entrenamiento. Pero al mismo tiempo, a medida que aumentan el ancho y la profundidad, el efecto empeora. Es decir, a medida que la capa del modelo se vuelve más profunda, la tasa de error aumenta. La profundidad del modelo se profundiza y la capacidad de aprendizaje mejora a una cierta tasa de error. El modelo de red neuronal profunda sacrifica muchos recursos informáticos y su capacidad de aprendizaje no debería ser mayor que la de la red neuronal superficial. Este fenómeno se debe principalmente a que a medida que aumenta el número de capas de redes neuronales, el fenómeno de la desaparición del gradiente se vuelve cada vez más obvio. Por lo tanto, para resolver este problema, el autor propone un residual estructural de red residual profunda:

La figura de arriba es la estructura básica de la red residual. Se puede ver que en realidad se agrega un mapeo de identidad para convertir la función de transformación original H (x) en F (x) X. Los cambios en toda la red se pueden ver claramente en el diagrama esquemático, lo que hace que la red ya no sea simple. estructura de pila, que resuelve bien el problema de gradientes menos obvios debido al aumento en el número de capas de red. Entonces, en este momento, la red se puede hacer muy profunda. Hasta ahora, el número de capas en la red puede superar las 1000, lo que puede garantizar buenos resultados. Además, esta simple superposición no agrega parámetros ni cálculos adicionales a la red y también mejora el efecto y la eficiencia del entrenamiento de la red.

En el concurso, para demostrar que su punto de vista es correcto, el autor diseñó varios experimentos con variables controladas.

El autor primero construyó dos redes planas con 18 y 34 capas respectivamente, y luego diseñó dos redes residuales con 18 y 34 capas respectivamente. Luego, experimente con estos cuatro modelos utilizando variables de control para observar cambios en la cantidad de datos. La siguiente imagen es el resultado experimental. En los experimentos se observaron fenómenos de degradación evidentes en redes planas. Los resultados experimentales también muestran que en la red residual, el efecto de 34 capas es significativamente mejor que el de 18 capas, lo que demuestra que el rendimiento de la red residual mejora a medida que aumenta el número de capas. No solo eso, el rendimiento de convergencia de la red residual en estructuras más profundas también se mejoró significativamente y todo el experimento fue un gran éxito.

Además, el autor también experimentó con atajos. Si las dimensiones de entrada y salida de los módulos de red restantes son inconsistentes, se deben dimensionar las dimensiones más pequeñas para unificar las dimensiones. El mejor efecto de aumentar la dimensión es llenarla con ceros. Sin embargo, los datos experimentales muestran que la diferencia entre los dos es muy pequeña, por lo que la proyección lineal no es particularmente necesaria. Rellenar las dimensiones con ceros también garantiza que la complejidad del modelo se mantenga en un nivel relativamente bajo.

Con la profundización del experimento, el autor propuso un módulo residual más profundo. Este modelo reduce los parámetros de cada capa, dejando recursos para modelos más profundos. En el caso de baja complejidad, el modelo no tiene una desaparición de gradiente obvia, por lo que el modelo actual puede alcanzar hasta 1202 capas y la tasa de error sigue siendo muy baja. Sin embargo, el número de capas también provoca el fenómeno de sobreajuste, pero muchos investigadores siguen mejorando. Después de todo, ResNet está muy por delante de otros modelos en rendimiento.

La esencia de la red residual son los atajos. Desde una perspectiva, también puede interpretarse como una red de múltiples rutas. Como se muestra en la siguiente figura:

ResNet puede ser muy profundo, pero de la figura anterior podemos entender que cuando la red es muy profunda, es decir, cuando hay muchas capas, la ruta de transmisión de datos es en realidad relativamente fijo. Parece que también puede entenderse como un sistema de votación de varias personas, y la mayoría de los gradientes se distribuyen en los llamados caminos efectivos en el artículo.

DenseNet

Después del modelo ResNet, alguien intentó mejorar el modelo Resnet y nació el modelo ResNeXt.

Este es el modelo Resnet presentado anteriormente, que combina la idea del módulo inicial en GoogleNet y es más efectivo que ResNet. Entonces nació el modelo DenseNet, que conecta directamente todos los módulos, haciendo que todo el modelo sea más simple y tosco. Las conexiones densas se convierten en su característica principal.

Comparamos DenseNet y ResNet:

Como se puede ver en la figura anterior, en comparación con ResNet, DenseNet tiene significativamente menos parámetros y mejores resultados, pero DenseNet consume más memoria.

Resumen

Lo anterior presenta algunos modelos famosos en la historia de las redes neuronales convolucionales. Todos estos modelos son clásicos y cada uno tiene sus propias ventajas. Con la mejora continua de la potencia informática, la eficiencia y el efecto de varias nuevas capacitaciones en redes también están mejorando gradualmente. Desde la perspectiva de la velocidad de convergencia, VGG >: Inception gt; DenseNet gtResNet. Desde una perspectiva computacional, supongamos

.