Introducción al aprendizaje profundo: descripción general del modelo de red neuronal convolucional profunda (Deep Convolution Neural Network, DCNN)

Este artículo resume principalmente lo que he aprendido antes. La última tecnología aún está en investigación...

1. Introducción

El aprendizaje automático es un método y un medio para realizar la inteligencia artificial y se especializa en estudiar cómo las computadoras pueden simular o implementar el comportamiento de aprendizaje humano para adquirir nuevos conocimientos y habilidades y reorganizar las estructuras de conocimiento existentes para mejorar continuamente su propio desempeño. Como dirección de investigación de la inteligencia artificial, la tecnología de visión por computadora ha progresado con el desarrollo del aprendizaje automático. Especialmente en los últimos 10 años, la tecnología de aprendizaje automático representada por el aprendizaje profundo ha desencadenado una revolución en la visión por computadora. Este artículo presentará la tecnología típica de aprendizaje profundo: la red neuronal convolucional profunda, principalmente presentando el conocimiento básico de la red neuronal convolucional profunda.

2 conceptos básicos de la red neuronal convolucional profunda

Con el continuo desarrollo de la tecnología de la información, la cantidad de diversos tipos de datos de imágenes de video ha aumentado dramáticamente. Es de gran importancia extraer información oculta de una gran cantidad de datos de imágenes de video y aprovechar su valor potencial.

Con el desarrollo de la inteligencia artificial, la tecnología de visión por computadora se ha utilizado cada vez más. Por ejemplo, reconocimiento facial y análisis de identidad en videovigilancia, análisis y reconocimiento de diversas imágenes médicas en diagnóstico médico, clasificación visual detallada, reconocimiento de atributos de imágenes faciales, reconocimiento de huellas dactilares, reconocimiento de escenas, etc. La tecnología de visión por computadora ha penetrado gradualmente en las personas. vida diaria en la vida y aplicaciones . Sin embargo, el método tradicional de visión por computadora de extraer manualmente características de la imagen y luego realizar el aprendizaje automático se está volviendo cada vez más inadecuado para manejar estas aplicaciones. Desde 2006, el aprendizaje profundo ha entrado en el campo de visión de las personas. Especialmente después de que AlexNet ganara el Desafío de reconocimiento visual a gran escala de ImageNet en 2012, el aprendizaje profundo ha logrado avances notables en el campo de la inteligencia artificial y se ha utilizado ampliamente en la visión y el habla por computadora. reconocimiento, procesamiento del lenguaje natural, multimedia y muchos otros campos han logrado un gran éxito. La mayor diferencia entre el aprendizaje profundo y los métodos tradicionales de reconocimiento de patrones es que aprende automáticamente funciones a partir de big data en lugar de utilizar funciones diseñadas manualmente, y las buenas funciones pueden mejorar en gran medida el rendimiento de los sistemas de reconocimiento de patrones. En el campo de la visión por computadora, las redes neuronales convolucionales profundas se han convertido en un tema de investigación candente y desempeñan un papel vital en tareas de visión por computadora como la clasificación de imágenes, la detección de objetivos y la segmentación de imágenes. Esta sección presentará los conocimientos básicos de las redes neuronales convolucionales profundas.

2.1 Red neuronal artificial

El sistema nervioso humano está compuesto por cientos de miles de millones de neuronas y cada neurona consta de dendritas, axones y cuerpos celulares. El ser humano recibe cada día innumerables informaciones visuales y auditivas. El procesamiento de esta información lo completa el sistema nervioso. Las dendritas reciben la información y la transmiten al cuerpo celular, y el axón recibe la información y la transmite al exterior. La red neuronal artificial simula la estructura y función del sistema nervioso humano y es un sistema de procesamiento de información.

Figura 2-1 Estructura de neuronas artificiales

La figura 2-1 muestra la estructura de una sola neurona artificial. La neurona tiene n entradas, respectivamente X1,...,Xn. El valor en la línea de conexión es el peso de cada entrada, respectivamente W1,...,Wn. La función de activación (función de activación) es F, el término de sesgo (sesgo ) es b, y la salida de la neurona es: y=f(\suma WiXi+b).

Una red neuronal artificial es un modelo informático que consta de una gran cantidad de neuronas artificiales (también llamadas nodos) conectadas entre sí. Cada dos neuronas conectadas representa un valor ponderado de la señal que pasa. La red neuronal directa es un modelo de red neuronal artificial simple, que incluye una capa de entrada, una capa oculta y una capa de salida. La capa de entrada tiene una capa, la capa de salida tiene una capa, la capa oculta tiene varias capas y cada capa tiene varios nodos No hay conexiones entre nodos y la relación entre nodos entre capas se mide por peso. La red neuronal directa también se puede llamar una capa completamente conectada. Su estructura de red es más compleja que la de una sola neurona, pero la salida aún satisface la relación entre la entrada y el peso multiplicado por la función de activación.

La salida de las redes neuronales artificiales se ve afectada por muchos aspectos, como la estructura de la red, la entrada X, los pesos W.y las funciones de activación. Una vez construida la red neuronal, su estructura de red y función de activación son fijas. Si desea cambiar la salida, debe cambiar los pesos  W.. Por lo tanto, el proceso de entrenamiento de la red neuronal es un proceso de optimización continua de parámetros. El entrenamiento consta de dos procesos: propagación hacia adelante y propagación hacia atrás. Primero, se construye una red neuronal e ingresa los datos de entrenamiento, y la red neuronal calcula el resultado de salida, que es la propagación directa; luego, calcula la diferencia entre el resultado de salida y la etiqueta real de los datos de entrada (es decir, la función de pérdida). Y la red usa este valor de diferencia para actualizar W.el valor del parámetro, que es retropropagación. El proceso de entrenamiento de la red neuronal consiste en realizar cíclicamente propagación hacia adelante y hacia atrás, ajustar los parámetros de peso de cada neurona, ajustar la relación no lineal y finalmente obtener una mejor precisión del modelo.

El grado de ajuste del modelo está estrechamente relacionado con la función de activación. La función de la función de activación de la red neuronal es realizar cálculos no lineales en la señal de entrada y pasar su salida al siguiente nodo. Hay tres funciones de activación comunes: función de activación sigmoidea, función de activación Tanh y función de activación ReLU. La función de activación sigmoidea se muestra en la Figura 2-2. Cuando la entrada es grande o pequeña, el gradiente de la función es muy pequeño. Dado que la regla de derivación de cadena se utiliza en el algoritmo de retropropagación para calcular el gradiente de los parámetros, cuando el El modelo utiliza la función sigmoidea, es fácil W.Se produce el problema del gradiente que desaparece. La función Tanh es similar a la función sigmoidea: cuando la entrada es grande o pequeña, el gradiente de la función es pequeño, lo que propicia el problema de la desaparición del gradiente y no favorece la actualización del peso. La función ReLU tiene más ventajas: cuando la entrada es un número positivo, el gradiente es constante y no será cero; la velocidad de cálculo es rápida. Pero también tiene un defecto fatal: cuando la entrada es negativa, el gradiente desaparece por completo, por lo que el uso de la función de activación debe determinarse en función de las necesidades reales.

Figura 2-2 Función de activación sigmoidea Figura 2-3 Función de activación Tanh Figura 2-4 Función de activación Relu

En la propagación hacia atrás, la función de pérdida (pérdida) es muy importante. Las funciones de pérdida comúnmente utilizadas incluyen error_loss cuadrático medio (mse_loss), función de pérdida personalizada y función de pérdida de entropía cruzada (entropía cruzada). La función de pérdida más utilizada en la clasificación de imágenes es la función de pérdida de entropía cruzada. En el problema de clasificación, suponiendo que hay n categorías en total, la salida del clasificador es la probabilidad de que se prediga que la entrada sean estas n categorías, es decir, la salida son n probabilidades. Como se muestra en la fórmula (1), la entropía cruzada describe la diferencia entre dos distribuciones de probabilidad. Cuanto menor es la diferencia, más cercanas están las dos probabilidades. Cuanto mayor es la diferencia, mayor es la diferencia entre las dos probabilidades. qrepresenta la etiqueta real y pagrepresenta el valor predicho.

                                                         H(p,q)=-\sum q(x)logp(x)                    (1)

2.2 Redes neuronales convolucionales (CNN)

La red neuronal convolucional es una mejora de la red neuronal artificial. Agrega una capa convolucional y una capa de agrupación. El proceso de entrenamiento de la red neuronal convolucional es el mismo que el de la red neuronal artificial, incluida la propagación directa y la propagación inversa. desparramar. La capa convolucional y la capa de agrupación se presentan en detalle a continuación.

(1)  capa convolucional

La red neuronal convolucional es una red de peso compartido. En comparación con las redes neuronales ordinarias, la complejidad de su modelo se reduce y el número de parámetros se reduce considerablemente. Esto se debe a dos características importantes de la convolución: el campo receptivo local y el intercambio de parámetros (Parameter Sharing) .

En las redes neuronales tradicionales, cada neurona de entrada y de salida están completamente conectadas, y la relación entre cada neurona de entrada y de salida se describe mediante un parámetro. El tamaño del filtro del núcleo de convolución de una red neuronal convolucional es mucho más pequeño que el tamaño de entrada y sus conexiones son escasas. Los píxeles locales de la imagen están estrechamente conectados y la correlación de los píxeles distantes es débil. Las neuronas no necesitan percibir la imagen global, solo necesitan percibir la imagen local y combinar información local de alto nivel para obtener información global. . Utilice un núcleo de convolución para procesar una imagen y detectar características significativas localmente. El rango de conexión espacial con el mismo tamaño que el núcleo de convolución se denomina campo receptivo. Cuanto mayor sea el número de capas convolucionales, mayor será el campo receptivo. Cuanto mayor sea el valor , mayor será el área de la imagen original correspondiente al campo receptivo. El campo receptivo local reduce en gran medida la cantidad de parámetros, como se ilustra a continuación. Si el tamaño de la imagen de entrada es 1000 \veces1000, el número de neuronas de la capa oculta es 1 millón. Si están completamente conectadas, habrá 1000 \veces1000 = 1000000= 10^{12}conexiones y 10^{12}un parámetro; si el tamaño del núcleo de convolución es 10 \veces10, entonces el local campo receptivo El tamaño es 10 \veces10. Cada neurona en la capa oculta solo necesita \vecesestar conectada a un área de tamaño 10 10. Hay un total de 10 \veces10 1000000 = 10^{8}conexiones, es decir, hay 10^{8}parámetros.

En el ejemplo anterior, el uso de campos receptivos locales reduce en gran medida la cantidad de parámetros, pero la cantidad sigue siendo muy grande. Cada neurona está conectada a \vecesun área de imagen de tamaño 10 10, por lo que cada neurona tiene 10 \veces10 = 100 parámetros. Si los parámetros de cada neurona son los mismos, es decir, cada neurona usa el mismo núcleo de convolución. Para la deconvolución, solo Se necesitan 100 parámetros en total, lo que equivale a compartir parámetros. Sin embargo, un núcleo de convolución solo puede extraer una característica, por lo que se utilizan varios núcleos de convolución durante la convolución. Los parámetros de cada filtro de núcleo de convolución son diferentes, lo que significa que se extraen diferentes características de la imagen de entrada. Con varios núcleos de convolución, se pueden extraer varias características y estas características se organizan para formar un mapa de características. Los campos receptivos locales y el uso compartido de parámetros reducen en gran medida la cantidad de parámetros del modelo, lo que ahorra espacio en la memoria y al mismo tiempo mantiene el rendimiento del modelo sin degradación.

(2) Capa de agrupación

Figura 2-5 Diagrama esquemático de agrupación máxima

La capa de agrupación también se denomina capa de reducción de resolución. En términos generales, la agrupación opera en cada mapa de características con el propósito de reducir el tamaño del mapa de características. La agrupación se divide en dos tipos: agrupación máxima y agrupación promedio. La Figura 2-5 muestra la agrupación máxima. El tamaño del núcleo de la agrupación es 2 2 y el tamaño del paso es 2 2. En términos sencillos, la operación de agrupación máxima es encontrar \vecesla \vecesparte \vecessuperpuesta del núcleo de agrupación 2 2 y un mapa de características de cierta profundidad, y luego toma el valor máximo del área de superposición para obtener el valor reducido. Mueva la posición del núcleo de agrupación de acuerdo con el tamaño del paso para obtener el mapa de características de salida. El funcionamiento de la agrupación promedio es similar al de la agrupación máxima, excepto que se toma el valor promedio de los píxeles en el área de superposición.

2.3 Optimización de redes neuronales convolucionales profundas

Para lograr un mejor rendimiento, las capas de redes neuronales convolucionales son cada vez más profundas. Cuanto más profundas son las capas de redes neuronales convolucionales profundas, más parámetros deben aprenderse y más difícil es optimizar la red. Sin buenos métodos de optimización, se producirán problemas de sobreajuste o desajuste.

El sobreajuste significa que el modelo tiene poca capacidad de generalización y un buen ajuste en el conjunto de entrenamiento, pero mal ajuste en el conjunto de validación. En términos simples, significa que el modelo aprende demasiado bien los datos de entrenamiento: el modelo puede reconocer muy bien las imágenes en el conjunto de entrenamiento, pero no puede reconocer las imágenes en el conjunto sin entrenamiento. Hay dos razones: una es que hay muy pocos datos en el conjunto de entrenamiento y la otra es que hay demasiadas iteraciones de entrenamiento. Existen cuatro métodos principales para aliviar el sobreajuste, como se indica a continuación:

(1) Parada anticipada. Después de cada iteración (época), se calcula la tasa de error del conjunto de validación (error de validación). Si la tasa de error ya no disminuye, el entrenamiento finaliza. Este es un método para detener las pérdidas en el tiempo: la capacidad de generalización del modelo ya no mejora y continuar entrenando es una pérdida de tiempo. Sin embargo, no es científico confiar únicamente en la tasa de error después de una iteración, porque la tasa de error después de esta iteración puede aumentar o disminuir. Por lo tanto, puede determinar si finalizar el entrenamiento en función de la tasa de error del conjunto de validación después de 10, 20 y otras iteraciones.

(2) Ampliación del conjunto de datos. Ésta es la forma más directa y eficaz de reducir el sobreajuste. Sin buena calidad y gran cantidad de datos, es imposible entrenar un buen modelo. El conjunto de datos se puede ampliar desde dos aspectos: agregar datos de la fuente. Por ejemplo, al clasificar imágenes, agregar imágenes directamente al conjunto de entrenamiento. Sin embargo, este método es difícil de implementar porque no se sabe cuántos datos se agregarán. ; realizar cambios en los datos originales. , obteniendo así más datos, como rotar la imagen original, agregar ruido a los datos originales, interceptar una parte de los datos originales, etc.

(3) Regularización. La regularización incluye regularización L0, regularización L1 y regularización L2. La regularización L2 se usa comúnmente en el aprendizaje automático. El término de regularización L2 tiene el efecto de hacer que los parámetros sean más pequeños e intensificados. Los parámetros más pequeños significan que la complejidad del modelo es menor, de modo que el modelo se ajusta perfectamente a los datos de entrenamiento para mejorar la capacidad de generalización del modelo.

(4) abandonar los estudios. El abandono, como tipo de fusión de modelos, hace que las neuronas dejen de funcionar con cierta probabilidad, lo que reduce eficazmente los errores de prueba. Dada una entrada, la red toma muestras de diferentes estructuras, que comparten un conjunto de parámetros. Dado que una neurona no depende de ciertas neuronas específicas, la deserción reduce la compleja coadaptación entre neuronas y mejora la solidez de la red.

El modelo no encaja bien en el conjunto de entrenamiento, pero sí en el conjunto de validación, lo cual no es adecuado. La razón es que el desajuste significa que el modelo no ha aprendido lo suficiente sobre los datos de entrenamiento, tiene un aprendizaje de características insuficiente y una capacidad de representación deficiente. El desajuste se puede aliviar mediante los siguientes métodos:

(1) Agregue otros elementos característicos. Elementos de características insuficientes darán lugar a un ajuste insuficiente. El ajuste insuficiente causado por elementos de funciones insuficientes se puede resolver bien agregando elementos de funciones. Los métodos para agregar elementos característicos incluyen combinación, generalización, correlación, etc. Estos métodos son aplicables en muchos escenarios.

(2) Agregar características polinómicas. Por ejemplo, agregar términos cuadráticos o cúbicos a un modelo lineal puede mejorar la capacidad de generalización del modelo.

Supongo que te gusta

Origin blog.csdn.net/qq_44918501/article/details/130270044
Recomendado
Clasificación