Cai Caixue Paddle Parte 5: Análisis en profundidad del concepto de red neuronal convolucional

Prefacio: 

La visión por computadora es una disciplina que permite que las máquinas aprendan a "ver". Específicamente, permite que las máquinas reconozcan objetos en imágenes o videos tomados por cámaras, detecten la ubicación de objetos y rastreen objetos de destino, para que comprendan y describan las escenas e historias en imágenes o videos para simular el sistema visual del cerebro humano. Por lo tanto, la visión por computadora también se denomina comúnmente visión artificial, y su propósito es construir un sistema artificial que pueda "percibir" información de imágenes o videos.

Es muy fácil para los humanos reconocer gatos y perros. Entonces, para las computadoras, ¿cómo pueden las computadoras entender el mundo que las rodea como los humanos?

Definición de red neuronal convolucional:

1. Definición matemática:

"Convolutional Neural Networks (CNN) es un tipo de Feedforward Neural Networks (Redes neuronales de avance) que incluye cálculos de convolución y tiene una estructura profunda, y es uno de los algoritmos representativos para el aprendizaje profundo". ¿Serás engañado? ¿Qué es el cálculo de convolución? Dejemos eso a un lado.

2. Definición biológica:

La red neuronal convolucional es la estructura de modelo más clásica de la tecnología de visión por computadora. Se modela en el mecanismo de percepción visual biológica (percepción visual). Extrae las características clave de los datos de entrada a través del kernel de convolución, y después de múltiples conversiones de red, obtenemos lo que queremos salida. Similar a nuestra observación humana y reconocimiento de un objeto, siempre extraemos sus características clave.

Núcleo de convolución:

El núcleo de convolución (núcleo) es generalmente bidimensional. Suponiendo que la altura y el ancho del núcleo de convolución son H​ y W​ respectivamente, se denomina convolución H*W, como convolución 3*5, que se refiere al volumen. la altura del núcleo de acumulación es 3 y el ancho es 5. En algunos lugares, también se le llama filtro (filtro). De hecho, hay una diferencia entre los dos. Para la entrada de un solo canal, los dos son equivalentes. Para la entrada multicanal, el filtro es multidimensional y el La dimensión está relacionada con el número de canales. Lo mismo, y el kernel de convolución sigue siendo bidimensional. Para ser más sencillo: filtro = número de canales * núcleo de convolución, cuando el número de canales es igual a 1, los dos son equivalentes.

Cálculo de convolución:

La convolución es un método de transformación integral en el análisis matemático y, en las redes neuronales convolucionales, la implementación de capas convolucionales es en realidad una operación de correlación cruzada definida en matemáticas:

Como puede ver en la figura, la fuente de entrada es una matriz de 3 * 3, y el tamaño del kernel de convolución es 2 * 2. Después de la convolución horizontal y la convolución vertical, finalmente se obtiene el resultado de salida de 2 * 2. El cálculo de convolución El proceso es muy simple, los bits correspondientes se multiplican y luego se suman.

relleno

A partir de la figura anterior del cálculo de convolución, podemos ver que la imagen de 3 * 3 se convierte en una imagen de 2 * 2 después de ser convolucionada por el núcleo de convolución de 2 * 2. Pensémoslo de esta manera, ya que es una red de múltiples capas , Luego, después de múltiples convoluciones, nuestros datos de salida se volverán cada vez más pequeños. ¿Hay alguna forma de resolverlo? Aquí es donde entra el relleno.

 Después del relleno, el tamaño de la imagen original cambia, de modo que nuestra salida no siga reduciéndose.

paso

En pocas palabras, el paso consiste en mover el núcleo de convolución hacia la derecha o hacia abajo unos pocos píxeles a la vez. Por supuesto, si el paso es grande, la magnitud del cálculo será mucho menor.

Campo receptivo

El valor de cada punto en el mapa de características de salida se obtiene multiplicando y sumando los elementos del área del tamaño de H*W en la imagen de entrada y cada elemento del kernel de convolución, por lo que cada uno de los H* W áreas en la imagen de entrada Un cambio en el valor de cada elemento afectará el valor de píxel del punto de salida. Llamamos a esta región el campo receptivo del punto correspondiente en el mapa de características de salida.

Un entendimiento popular es que los píxeles de salida se ven afectados por el área que se ve afectada por la entrada.La imagen de arriba es un campo receptivo de 3*3.

 

Múltiples canales de entrada

En muchos casos, los datos que procesamos son multicanal.Para las imágenes en blanco y negro, nuestros datos de entrada son de un solo canal, pero las imágenes en color tienen tres canales de RGB.

Múltiples canales de salida

¿Por qué hay múltiples canales de salida? Si queremos extraer características multidimensionales de una imagen, como extraer tanto animales como plantas, entonces necesitamos 2 filtros, a veces también llamamos 2 núcleos de convolución, luego, al generar, hay dos pasillos. Por lo general, nos referimos al número de canales de salida después de la convolución como el número de filtros (núcleos de convolución).

operación por lotes

En el cálculo de la red neuronal convolucional, las muestras múltiples generalmente se juntan para formar un mini lote para la operación por lotes.

puesta en común

La agrupación es utilizar las características estadísticas generales de la salida adyacente en una determinada posición para reemplazar la salida de la red en esa posición. La ventaja es que cuando los datos de entrada se desplazan un poco, la mayor parte de la salida después de la función de agrupación permanece sin cambios. . Comúnmente se utilizan la agrupación máxima, la agrupación mínima y la agrupación media:

 


Normalización por lotes

Para la red neuronal profunda, dado que los parámetros se actualizan constantemente, incluso si los datos de entrada se han estandarizado, la entrada recibida por las capas posteriores aún cambia drásticamente, lo que generalmente conduce a una inestabilidad numérica y el modelo es difícil de converger. Por lo general, estandarizamos los datos de la red neuronal y el conjunto de datos de muestra procesados ​​satisface una distribución estadística con una media de 0 y una varianza de 1, de modo que cuando la distribución de los datos de entrada es relativamente fija, conduce a la estabilidad. y convergencia del algoritmo. BatchNorm puede hacer que la salida de la capa intermedia de la red neuronal sea más estable y tiene las siguientes tres ventajas:

  • Haga que el aprendizaje sea rápido (capaz de usar grandes tasas de aprendizaje)
  • Reducir la sensibilidad del modelo a los valores iniciales
  • Para suprimir el sobreajuste hasta cierto punto


Abandonar

Dropout es un método comúnmente utilizado para suprimir el sobreajuste en el aprendizaje profundo Su método consiste en eliminar aleatoriamente algunas neuronas durante el proceso de aprendizaje de la red neuronal. Durante el entrenamiento, algunas neuronas se seleccionan aleatoriamente y su salida se establece en 0, y estas neuronas no transmitirán señales al exterior.

 

Supongo que te gusta

Origin blog.csdn.net/duzm200542901104/article/details/127966872
Recomendado
Clasificación