Uno de los conocimientos base para el análisis de las redes profundas dentro del Deep Learning consiste en la arquitectura típica de una red neuronal convolucional utilizada para el procesamiento de los macrodatos.
Por esta razón, dentro del amplio campo del aprendizaje profundo, un data scientist debe contar con estas bases fundamentales. A continuación, en este post, te exponemos cómo es la arquitectura típica de una red neuronal convolucional.
Arquitectura típica de una red neuronal convolucional
Para saber sobre cómo es la arquitectura típica de una red neuronal convolucional vamos a ver qué son las redes neuronales convolucionales y cómo funcionan.
En estas imágenes podéis ver la arquitectura típica de una red neuronal convolucional.
Como entrada, tenemos la imagen que queremos clasificar, en este caso, de nuestro gato negro. Como ya sabéis, esto no es otra cosa que una matriz de Ancho x Alto x 3 (porque es RGB).
Después, empiezan los bloques convolucionales. Estos bloques de arquitecturas de redes neuronales convolucionales están compuestos normalmente por:
- Capas convolucionales, que ya hemos visto como funcionan.
- Capas de pooling, que lo que hacen es diezmar el contenido de la salida de la capa convolucional.
Antes hemos visto cómo funciona la convolución y las arquitecturas de redes neuronales convolucionales: definimos un kernel o filtro que sirve para resaltar determinadas estructura de una red neuronal convolucional de la imagen. Y os estaréis preguntando: ¿cómo defino un filtro que me permita averiguar que la imagen de entrada tiene un gato negro?
Pues aquí está la magia de las CNNs. Nosotros no tenemos que definir ningún filtro, los aprende la red automáticamente gracias al backpopagation de la arquitectura de red o arquitectura de redes neuronales .
Por otra parte, ¿te das cuenta de que nuestra CNN tiene dos etapas: feature extractor y classifier? Esto se debe a que la red, primero, extrae unos determinados patrones haciendo uso de la primera etapa (base model), que son los que mejor le vienen al posterior clasificador (top model) para hacer su trabajo con la mayor precisión posible.
Así que al final, lo que tenemos es una red que aprende sola o una arquitectura de redes neuronales, con la que no hace falta que nos preocupemos de qué características escogemos para clasificar, ya que las elige por sí misma.
¿Y cómo va aprendiendo? De la misma forma que una red neuronal tradicional:
Convoluciones
Dentro de las arquitecturas de redes neuronales convolucionales, estas capas son las encargadas de aplicar la convolución a nuestras imágenes de entrada para encontrar los patrones que más tarde permitirán clasificarla.
Para ello, se define:
- El número de filtros/kernels a aplicar a la imagen: el número de matrices por las que se van a convolucionar las imágenes de entrada.
- El tamaño de estos filtros: 99% de las veces son cuadrados, de 3×3, 5×5, etc.
Aquí puedes ver el esquema general, en el que se ve como una imagen de entrada dada se convoluciona por cada filtro, y la salida son mapas de activación 2D. Esto quiere decir que, si la imagen de entrada es RGB, tendrá 3 canales. Por lo tanto, convolucionaremos cada filtro por cada canal y luego sumaremos los resultados para reducir de 3 canales a 1 solo.
Capas de pooling
Dentro de la arquitectura típica de una red neuronal convolucional se cuenta también con capas de pooling, que se utilizan para ir reduciendo el tamaño de nuestros mapas de activaciones, ya que de otra forma no sería posible ejecutarlos en GPUs. Además, también ayuda a reducir el overfitting.
Los dos tipos de pooling de la arquitectura de red más comunes son:
- max-pooling: calcula el máximo de los elementos.
- averag-pooling: calcula la media de los elementos.
Hay que tener en cuenta que esto se realiza para cada mapa de activaciones de nuestro volumen, es decir, no interviene para nada la dimensión depth en los cálculos.
Veamos un ejemplo de un max-pooling con diferentes strides:
Aprende más del Big Data
En este post, te hemos explicado cómo es la arquitectura típica de una red neuronal convolucional, de forma que ahora puedes contar con este conocimiento dentro de tu procesamiento de los datos y de la arquitectura de red.
Ahora, con nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning podrás conseguir un gran conocimiento de los macrodatos y aprender sobre la implementación de los sistemas y herramientas más conocidos en este ámbito. Este bootcamp te preparará para el inmenso ecosistema de los macrodatos y cómo desarrollarlo con el fin de destacar el valor de la información. En definitiva, contarás con 11 módulos para instruirte, de forma teórica y práctica, sobre el mundo Big Data. ¡Apúntate ahora y continúa formándote!