talón ¿Qué son las CNN (redes neuronales convolucionales)? - Unite.AI
Contáctanos
Clase magistral de IA:

AI 101

¿Qué son las CNN (redes neuronales convolucionales)?

mm
Actualizado on

Quizás te hayas preguntado cómo Facebook o Instagram son capaces de reconocer automáticamente rostros en una imagen, o cómo Google te permite buscar en la web fotos similares simplemente subiendo una foto tuya. Estas características son ejemplos de visión por computadora y funcionan con redes neuronales convolucionales (CNN). Sin embargo, ¿qué son exactamente las redes neuronales convolucionales? Profundicemos en la arquitectura de una CNN y comprendamos cómo funcionan.

¿Qué son las redes neuronales?

Antes de comenzar a hablar sobre las redes neuronales convolucionales, dediquemos un momento a definir una red neuronal regular. hay otro articulo sobre el tema de las redes neuronales disponibles, por lo que no profundizaremos mucho en ellas aquí. Sin embargo, para definirlos brevemente, son modelos computacionales inspirados en el cerebro humano. Una red neuronal opera tomando datos y manipulándolos ajustando "pesos", que son suposiciones sobre cómo las características de entrada se relacionan entre sí y con la clase del objeto. A medida que se entrena la red, los valores de los pesos se ajustan y, con suerte, convergerán en pesos que capturen con precisión las relaciones entre las características.

Así es como funciona una red neuronal de avance, y las CNN se componen de dos mitades: una red neuronal de avance y un grupo de capas convolucionales.

¿Qué son las redes neuronales de convolución (CNN)?

¿Cuáles son las "convoluciones" que ocurren en una red neuronal convolucional? Una convolución es una operación matemática que crea un conjunto de pesos, creando esencialmente una representación de partes de la imagen. Este conjunto de pesos se conoce como un núcleo o filtro. El filtro que se crea es más pequeño que la imagen de entrada completa y cubre solo una subsección de la imagen. Los valores del filtro se multiplican por los valores de la imagen. Luego, el filtro se mueve para formar una representación de una nueva parte de la imagen, y el proceso se repite hasta que se cubre toda la imagen.

Otra forma de pensar en esto es imaginar una pared de ladrillos, con los ladrillos representando los píxeles en la imagen de entrada. Una “ventana” se desliza de un lado a otro a lo largo de la pared, que es el filtro. Los ladrillos que se pueden ver a través de la ventana son los píxeles que tienen su valor multiplicado por los valores dentro del filtro. Por esta razón, este método de creación de pesos con un filtro a menudo se denomina técnica de "ventanas deslizantes".

La salida de los filtros que se mueven por toda la imagen de entrada es una matriz bidimensional que representa la imagen completa. Esta matriz se llama "mapa de características".

Por qué las circunvoluciones son esenciales

¿Cuál es el propósito de crear circunvoluciones de todos modos? Las circunvoluciones son necesarias porque una red neuronal debe poder interpretar los píxeles de una imagen como valores numéricos. La función de las capas convolucionales es convertir la imagen en valores numéricos que la red neuronal pueda interpretar y luego extraer patrones relevantes. El trabajo de los filtros en la red convolucional es crear una matriz bidimensional de valores que se pueden pasar a las capas posteriores de una red neuronal, aquellas que aprenderán los patrones en la imagen.

Filtros y Canales

Foto: cecebur vía Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

Las CNN no usan solo un filtro para aprender patrones de las imágenes de entrada. Se utilizan varios filtros, ya que las diferentes matrices creadas por los diferentes filtros conducen a una representación más rica y compleja de la imagen de entrada. Los números comunes de filtros para las CNN son 32, 64, 128 y 512. Cuantos más filtros haya, más oportunidades tendrá la CNN de examinar los datos de entrada y aprender de ellos.

Una CNN analiza las diferencias en los valores de los píxeles para determinar los bordes de los objetos. En una imagen en escala de grises, la CNN solo observaría las diferencias en términos de blanco y negro, de claro a oscuro. Cuando las imágenes son imágenes en color, la CNN no solo tiene en cuenta la oscuridad y la luz, sino que también tiene que tener en cuenta los tres canales de color diferentes (rojo, verde y azul). En este caso, los filtros poseen 3 canales, al igual que la propia imagen. La cantidad de canales que tiene un filtro se conoce como su profundidad, y la cantidad de canales en el filtro debe coincidir con la cantidad de canales en la imagen.

Red neuronal convolucional (CNN) Arquitectura

Echemos un vistazo a la arquitectura completa de una red neuronal convolucional. Una capa convolucional se encuentra al comienzo de cada red convolucional, ya que es necesaria para transformar los datos de la imagen en matrices numéricas. Sin embargo, las capas convolucionales también pueden aparecer después de otras capas convolucionales, lo que significa que estas capas se pueden apilar una encima de la otra. Tener múltiples capas convolucionales significa que las salidas de una capa pueden sufrir más convoluciones y agruparse en patrones relevantes. En la práctica, esto significa que a medida que los datos de la imagen avanzan a través de las capas convolucionales, la red comienza a “reconocer” características más complejas de la imagen.

Las primeras capas de una ConvNet son responsables de extraer las características de bajo nivel, como los píxeles que forman líneas simples. Las capas posteriores de ConvNet unirán estas líneas en formas. Este proceso de pasar del análisis de nivel superficial al análisis de nivel profundo continúa hasta que ConvNet reconoce formas complejas como animales, rostros humanos y automóviles.

Una vez que los datos han pasado por todas las capas convolucionales, pasan a la parte densamente conectada de la CNN. Las capas densamente conectadas son lo que parece una red neuronal feed-forward tradicional, una serie de nodos dispuestos en capas que están conectadas entre sí. Los datos avanzan a través de estas capas densamente conectadas, que aprenden los patrones que fueron extraídos por las capas convolucionales y, al hacerlo, la red se vuelve capaz de reconocer objetos.