Tipos de arquitecturas de redes convolucionales

Contenido del Bootcamp Dirigido por: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En la actualidad, hay grupos de investigación que dedican su vida a desarrollar tipos de arquitecturas de redes convolucionales que funcionen y entrenarlas en datasets enormes, así que parece lógico aprovecharnos de esto en vez de intentar crear una arquitectura propia cada vez que tengamos un problema.

Esto no solo ahorra tiempo y dolores de cabeza, también aporta precisión y estabilidad. En este post, te exponemos los tipos de arquitecturas de redes convolucionales en Deep Learning.

Tipos de arquitecturas de redes convolucionales

Pues bien, dentro de los tipos de arquitecturas de redes convolucionales más comunes hoy en día encontramos:

  • VGG.
  • ResNet.
  • Inception.
  • Xception.

VGG16 y VGG19

Esta arquitectura, que fue una de las primeras en aparecer dentro de los tipos de arquitecturas de redes convolucionales, fue introducida por Simonyan y Zisserman en 2014 con su artículo titulado Very Deep Convolutional Networks for Large Scale Image Recognition.

Se trata de una arquitectura bastante simple, usando solo bloques compuestos por un número progresivo de capas convolucionales con filtros de tamaño 3×3. Además, para reducir el tamaño de los mapas de activación que se van obteniendo, se intercalan bloques maxpooling entre los convolucionales reduciendo a la mitad el tamaño de estos mapas de activación. Finalmente, se utiliza un bloque de clasificación compuesto por dos capas densas de 4096 neuronas cada una y una última capa, la de salida, de 1000 neuronas.

ResNet

La arquitectura de ResNet, desarrollada por He en 2015 (puedes ver su artículo llamado Deep Residual Learning for Image Recognition), supuso un hito al introducir un tipo de arquitectura exótica basada en módulos o, como se conoce ahora, redes dentro de redes. Estas redes introdujeron el concepto de conexiones residuales.

Lo que permiten estos bloques es que llegue a la capa l+1 parte del mapa de activaciones previo sin modificar,y parte modificado por el bloque perteneciente a la capa l.

En 2016, mejoraron esta arquitectura incluyendo más capas en estos bloques residuales.

Existen variaciones de ResNet con distinto número de capas, pero la más usada es la ResNet50, que consta de 50 capas con pesos.

Inception V3

Este forma parte de los tipos de arquitecturas de redes convolucionales y se introdujo en 2014 por Szegedy en su artículo llamado Going Deeper with Convolutions. Utiliza bloques con filtros de diferentes tamaños que luego concatena para poder extraer características a diferentes escalas.

Para que lo entendáis, la meta del bloque inception es calcular mapas de activaciones con convoluciones de 1×1, 3×3 y 5×5 para conseguir extraer características a diferentes escalas. Simplemente se concatenan todos estos mapas de activaciones en uno solo.

Esta arquitectura necesita incluso menos memoria que la VGG y la ResNet.

Xception

Esta arquitectura la propuso François Chollet (el creador de Keras) y lo único que aporta respecto a Inception es que realiza las convoluciones de una forma óptima para que tarden menos tiempo. Esto lo consigue separando las convoluciones 2D en 2 convoluciones 1D.

En términos de memoria es muy similar a la Xception. Este es el esquema de su arquitectura:

SqueezeNet

Esta red es extremadamente ligera (sus pesos ocupan 5MB, en comparación de los 500MB de la VGG o los 100 de la Inception, por ejemplo) y consigue un accuracy de ~57% rank-1 o ~80% rank-5 con el ImageNet.

¿Qué significa rank-1 y rank-5, o top-1 y top-5?

  • rank-1 accuracy: comparamos si la clase con la mayor probabilidad según nuestra red acierta a la etiqueta real.
  • rank-5 accuracy: comparamos si una de las 5 clases con mayor probabilidad según nuestra red acierta a la etiqueta real.

¿Cómo consigue esta red ocupar tan poco y a la vez ser precisa? Pues lo consigue utilizando una arquitectura que «comprime» los datos y después los expande.

Esperamos que este post te haya sido de ayuda para localizar los tipos de arquitecturas de redes convolucionales; sin embargo, debido a la gran variedad de herramientas y sistemas Big Data que hay, te aconsejamos nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning para continuar aprendiendo.

Aquí recorrerás de forma práctica y teórica todos y cada uno de los módulos de Spark, iniciando el camino en su ‘core’ y transitando por Spark SQL, Spark Streaming (Structured), Spark MLlib (Machine learning) y GraphX (información almacenada en estructuras arborescentes), entre muchas otras herramientas. ¡No esperes más para empezar!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado