Tipos de arquitecturas de redes convolucionales

Autor: | Última modificación: 30 de agosto de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

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.

imagenet_vgg16

Se trata de una arquitectura bastante simple, usando solo bloques compuestos por un número incremental 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.

imagenet_vggnet_table1

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 que puedes ver en la siguiente imagen:

imagenet_resnet_residual

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, como puedes observar en la siguiente imagen:

imagenet_resnet_identity

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.

imagenet_inception_module

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:

imagenet_xception_flow

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, tal y como puedes ver en la siguiente imagen:

imagenet_squeezenet_fire

Comparación de tamaños

net_param_size

Conoce más sobre el mundo Big Data

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!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Sabías que hay más de 5.000 vacantes para desarrolladores de Big Data sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!