Una Breve Guía sobre la Red Neuronal Convolucional (CNN)

INTRODUCCIÓN:

Manan Parekh
Manan Parekh

Seguir

16 de julio de 2019 * 5 minutos de lectura

La Red Neuronal Convolucional (CNN o ConvNet)es una clase de redes neuronales profundas que se utiliza principalmente para hacer reconocimiento de imágenes, clasificación de imágenes, detección de objetos, etc.

Los avances en la Visión por Computadora con Aprendizaje Profundo se han construido y perfeccionado con el tiempo, principalmente a través de un algoritmo en particular: una Red Neuronal Convolucional.

Google lo usa para la búsqueda de fotos, Facebook para sus algoritmos de etiquetado automático, Amazon para sus recomendaciones de productos, y la lista sigue y sigue

Con la ayuda de CNN, puede hacer muchas cosas interesantes como, He hecho un modelo de reconocimiento de dígitos escrito a mano que predice el dígito en la imagen con 98.precisión del 82%.

Bono:

código -> https://github.com/UPPERCASEGUY/CNN-implementation

También puede hacer sus modelos geniales con poca ayuda en conceptos relacionados con CNN. Este blog comenzará a construir sus conceptos sobre CNNs y ¡ya está listo!

REDES NEURONALES CONVOLUCIONALES:

La clasificación de imágenes es la tarea de tomar una imagen de entrada y emitir una clase o una probabilidad de clases que mejor describe la imagen. En CNN, tomamos una imagen como entrada, asignamos importancia a sus diversos aspectos/características en la imagen y somos capaces de diferenciarnos unos de otros. El preprocesamiento requerido en CNN es mucho menor en comparación con otros algoritmos de clasificación.

Un clásico de la CNN clasificar entre un perro y un gato

ARQUITECTURA:

representación de la matriz de una imagen.

Los ordenadores no pueden ver las cosas como nosotros, para los ordenadores la imagen no es más que una matriz.

Una CNN normalmente tiene tres capas: una capa convolucional, una capa de agrupación y una capa completamente conectada.

Diferentes capas en una CNN

Capa convolucional:

Estoy bastante seguro de que ha encontrado la palabra ‘convolución’ en su vida antes y aquí su significado no cambia. Sí! tienes razón, esta capa se trata de objetos enrevesados unos sobre otros. La capa de convolución es el elemento central de la CNN. Lleva la parte principal de la carga computacional de la red.

El objetivo principal de convolution es extraer características como bordes, colores, esquinas de la entrada. A medida que profundizamos en la red, la red comienza a identificar características más complejas,como formas, dígitos, partes faciales también.

Imagen enrevesada de 5x5x1 con un núcleo de 3x3x1 para obtener una característica enrevesada de 3x3x1

Esta capa realiza un producto escalar entre dos matrices, donde una matriz(conocida como filtro/núcleo)es el conjunto de parámetros aprendibles, y la otra matriz es la porción restringida de la imagen.

Si la imagen es RGB, el filtro tendrá una altura y un ancho más pequeños en comparación con la imagen, pero tendrá la misma profundidad(altura x ancho x 3) que la imagen.

Para imágenes RGB, la parte enrevesada se puede visualizar de la siguiente manera:

Operación de convolución en una matriz de imagen MxNx3 con un núcleo de 3x3x3

Al final del proceso de convolución, tenemos una matriz destacada que tiene parámetros(dimensiones) menores que la imagen real, así como características más claras que la real. Por lo tanto, ahora trabajaremos con nuestra matriz destacada a partir de ahora.

Capa de agrupación:

Esta capa es únicamente para disminuir la potencia computacional requerida para procesar los datos. Se hace disminuyendo aún más las dimensiones de la matriz destacada. En esta capa, tratamos de extraer las características dominantes de una cantidad restringida de vecindario. Pongámoslo claro tomando un ejemplo.

capa de pooling

La matriz naranja es nuestra matriz destacada, la marrón es un núcleo de pooling y obtenemos nuestra matriz azul como salida después de hacer el pooling. Por lo tanto, aquí lo que estamos haciendo es tomar el máximo entre todos los números que están en la región de agrupación y cambiar la región de agrupación cada vez para procesar otro vecindario de la matriz.

Hay dos tipos de técnicas de agrupación: MEDIA y MÁXIMA.

La diferencia entre estos dos es que, en AVERAGE-pooling, tomamos el promedio de todos los valores de la región de pooling y en MAX-pooling, tomamos el máximo entre todos los valores que se encuentran dentro de la región de pooling.

Por lo tanto, después de la capa de agrupación, tenemos una matriz que contiene las características principales de la imagen y esta matriz tiene dimensiones aún menores, lo que ayudará mucho en el siguiente paso.

Capa totalmente conectada:

Hasta ahora no hemos hecho nada para clasificar diferentes imágenes, lo que hemos hecho es resaltar algunas características de una imagen y reducir drásticamente las dimensiones de la imagen.

Capa completamente conectada dentro de CNN

De aquí en adelante, vamos a hacer el proceso de clasificación.

Ahora que hemos convertido nuestra imagen de entrada en una forma adecuada para nuestra arquitectura completamente conectada de varios niveles, aplanaremos la imagen en un vector de columna. La salida aplanada se alimenta a una red neuronal de alimentación y se aplica una contrapropagación a cada iteración de entrenamiento. A lo largo de una serie de épocas, el modelo puede distinguir entre características dominantes y ciertas características de bajo nivel en las imágenes y clasificarlas.

RESUMEN:

  1. Proporcione la imagen de entrada en la capa de convolución.
  2. Toma convolución con kernel/filtros destacados.
  3. Aplique la capa de agrupación para reducir las dimensiones.
  4. Agregue estas capas varias veces.
  5. Aplanar la salida y alimentar a una capa completamente conectada.
  6. Ahora entrena el modelo con backpropagation usando regresión logística.

Y ha creado su red neuronal convolucional.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.