Convolution Neural Network

 La red neuronal de convolución es uno entre varios tipos de redes neuronales de aprendizaje profundo. CNN es muy potente y se usa ampliamente en clasificación de imágenes, reconocimiento de imágenes, visión por computadora, etc.

Arquitectura CNN

1. ¿Qué es CNN?

Convolution Neural Network tiene una capa de entrada, una capa de salida, muchas capas ocultas y millones de parámetros que tienen la capacidad de aprender objetos y patrones complejos. Submuestrea la entrada dada por procesos de convolución y agrupación y está sujeta a la función de activación, donde todas estas son las capas ocultas que están parcialmente conectadas y en el último extremo está la capa completamente conectada que da como resultado la capa de salida. La salida conserva la forma original similar a las dimensiones de la imagen de entrada.

1.1 Convolución (Convolution)

La convolución es el proceso que involucra la combinación de dos funciones que produce la otra función como resultado. En las CNN, la imagen de entrada se somete a convolución con el uso de filtros que producen un mapa de características.

1.2 Filtros / Núcleos (Filter/Kernel)

Los filtros son vectores generados aleatoriamente en la red que consisten en pesos y sesgos. Los mismos pesos y sesgos se comparten entre varias neuronas en CNN en lugar de pesos y sesgos únicos para cada neurona. Se pueden generar muchos filtros donde cada filtro captura una característica única de la entrada. Los filtros también se conocen como Kernels .

2. Capa de convolución (Convolution Layer)

Las circunvoluciones ocurren en la capa de convolución, que son los componentes básicos de CNN. Esta capa generalmente tiene

  • Vectores de entrada ( Imagen )
  • Filtros ( Detector de características )
  • Vectores de salida ( mapa de características.

2.1 Normalización de lotes (Batch Normalization)

La normalización por lotes generalmente se realiza entre las capas de convolución y activación (ReLU). Normaliza las entradas en cada capa, reduce el cambio interno de covariables (cambio en la distribución de activaciones de red) y es un método para regularizar una red convolucional.
La normalización por lotes permite tasas de aprendizaje más altas que pueden reducir el tiempo de capacitación y brindar un mejor rendimiento. Permite aprender en cada capa por sí mismo sin depender más de otras capas. El abandono, que también es una técnica de regularización, es menos efectivo para regularizar capas de convolución.

2.2 Acolchado y zancada (Padding and Stride)

Padding y Stride influyen en cómo se realiza la operación de convolución. El relleno y la zancada se pueden usar para alterar las dimensiones (alto y ancho) de los vectores de entrada/salida, ya sea aumentando o disminuyendo.

El Padding se usa para hacer que la dimensión de la salida sea igual a la entrada agregando ceros al marco de entrada de la matriz . El relleno permite más espacios para que el kernel cubra la imagen y es preciso para el análisis de imágenes. Debido al relleno, la información en los bordes de las imágenes también se conserva de manera similar al centro de la imagen.

Stride controla cómo el filtro gira sobre la entrada, es decir, el número de píxeles se desplaza sobre la matriz de entrada . Si la zancada se establece en 1, el filtro se mueve a través de 1 píxel a la vez y si la zancada es 2, el filtro se mueve 2 píxeles a la vez. Cuanto mayor sea el valor de la zancada, menor será la salida resultante y viceversa.


3. Capa ReLU (Unidad Lineal Rectificada)

ReLU se calcula después de la convolución. Es la función de activación más comúnmente implementada que permite que la red neuronal tenga en cuenta las relaciones no lineales. En una matriz dada (x), ReLU establece todos los valores negativos en cero y todos los demás valores permanecen constantes. Se representa matemáticamente como:
Los valores menores que cero los aplasta a cero

4. Capa de agrupación/submuestreo

A continuación, hay una capa de agrupación. La capa de agrupación opera en cada mapa de características de forma independiente. Esto reduce la resolución del mapa de características al reducir la altura y el ancho de los mapas de características, pero conserva las características del mapa necesarias para la clasificación. Esto se llama reducción de muestreo .

La agrupación se puede hacer de las siguientes maneras:

Max-pooling : selecciona el elemento máximo del mapa de características. La capa agrupada máxima resultante contiene características importantes del mapa de características. Es el enfoque más común ya que da mejores resultados.
Agrupación promedio: Implica un cálculo promedio para cada parche del mapa de características.
Capa Pooling

¿Por qué es importante el Pooling?

Reduce progresivamente el tamaño espacial de la representación para reducir la cantidad de parámetros y cálculos en la red y también controla el sobreajuste. Si no hay agrupación, la salida tiene la misma resolución que la entrada.

Puede haber muchas capas de convolución, ReLU y agrupación. Las capas iniciales de convolución aprenden información genérica y las últimas capas aprenden características más específicas/complejas. Después de la capa de convolución final, ReLU, capa de agrupación, el mapa de características de salida ( matriz ) se convertirá en un vector ( matriz unidimensional ). Esto se llama capa plana


5. Capa completamente conectada  (Fully Connected Layer)

La capa totalmente conectada parece una red neuronal normal que conecta todas las neuronas y forma las últimas capas de la red. La salida de la capa plana se envía a esta capa completamente conectada.

El vector de características de la capa completamente conectada se usa para clasificar imágenes entre diferentes categorías después del entrenamiento. Todas las entradas de esta capa están conectadas a cada unidad de activación de la siguiente capa. Dado que todos los parámetros están ocupados en una capa totalmente conectada, provoca un sobreajuste. El abandono es una de las técnicas que reduce el sobreajuste.
6. Abandono (Dropout)
Dropout es un enfoque utilizado para la regularización en redes neuronales. Es una técnica en la que los nodos elegidos al azar se ignoran en la red durante la fase de entrenamiento en cada etapa.

Esta tasa de abandono suele ser de 0,5 y el abandono se puede ajustar para producir los mejores resultados y también mejora la velocidad de entrenamiento. Este método de regularización reduce las interacciones de nodo a nodo en la red, lo que conduce al aprendizaje de características importantes y también ayuda a generalizar mejor los nuevos datos.

7. Capa Soft-Max  (Soft-Max Layer)

Soft-max es una capa de activación normalmente aplicada a la última capa de la red que actúa como clasificador. La clasificación de la entrada dada en distintas clases se lleva a cabo en esta capa. La función soft max se usa para mapear la salida no normalizada de una red a una distribución de probabilidad.

  • La salida de la última capa de la capa totalmente conectada se dirige a la capa máxima suave, que la convierte en probabilidades.
  • Aquí soft-max asigna probabilidades decimales a cada clase en un problema de varias clases, estas probabilidades suman 1.0.
  • Esto permite que la salida se interprete directamente como una probabilidad.
  • Para el problema de clasificación binaria, se usa la función logística y para la clasificación múltiple se usa soft-max.