3.13 - AlexNet y VGGNet

Lección 13 de la sección “Redes Convolucionales” del curso Fundamentos de Deep Learning con Python.

Introducción

En la práctica anterior vimos cómo implementar un clasificador de imágenes usando LeNet y la librería Keras y vimos el impresionante desempeño de LeNet en esta tarea de clasificación.

Con el paso de los años, se han desarrollado variantes de LeNet que han alcanzado un desempeño aún más impresionante en el campo de la visión artificial, comparable incluso con el alcanzado por el ser humano.

En esta lección hablaremos en detalle de dos de estas arquitecturas: AlexNet y VGGNet.

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Evolución del desempeño de las Redes Convolucionales

Una buena medida del progreso que han tenido las Redes Convolucionales en los últimos años es la tasa de error en competencias como el reto ImageNet.

El reto consiste en clasificar imágenes en una de 10.000 (!!!) posibles categorías, usando un set de datos (ImageNet) que contiene 1.2 millones de imágenes de entrenamiento y 50.000 de validación. Como vemos se trata de un set y una tarea mucho más compleja que la analizada en el caso de LeNet.

El desempeño de los modelos entrenados se mide en este caso con el error top-5: se toman las primeras 5 predicciones hechas por la Red Convolucional y se verifica si dentro de dichas predicciones está la categoría real del dato a clasificar.

Para que tengamos una referencia: este error top-5 era del 26% antes de 2012, y con la aparición de AlexNet y VGGNet este error se redujo al 17% y 8% respectivamente. Tengamos en cuenta que el desempeño del ser humano para esta tarea de clasificación, y con el mismo set de ImageNet, es del 5%.

Esta mejora en el desempeño (pasando del 26% al 8%) se puede atribuir al incremento en la cantidad de datos de entrenamiento y a que las Redes Convolucionales diseñadas para esta tarea son más profundas que la red LeNet original.

Veamos entonces en detalle cómo están conformadas AlexNet y VGGNet.

AlexNet

Fue desarrollada por Alex Krizhevsky en el año 2012. Su arquitectura es muy similar a LeNet, sin embargo hace uso de más datos de entrenamiento (ImageNet) y posee muchas más capas ocultas y más filtros por capa con lo cual alcanza un desempeño impresionante.

De hecho, si comparamos LeNet con AlexNet, encontramos que la primera tiene tan sólo un poco más de 62.000 parámetros entrenables, mientras que la segunda tiene aproximadamente 61 millones de parámetros.

VGGNet

Fue desarrollada en el año 2014 por el Visual Geometry Group (de allí la sigla VGG) de la Universidad de Oxford.

Fue la primera en proponer una plantilla para crear nuevas Redes Convolucionales. Así, los autores de VGGNet introdujeron el concepto de “bloques”: en lugar de usar capas aisladas, como en el caso de LeNet y AlexNet, VGGNet posee combinaciones de capas con patrones repetitivos.

Además, los autores encontraron que múltiples capas con filtros o kernels pequeños (de 3x3) resultaban siendo más efectivas en comparación con usar pocas capas con filtros más grandes.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Estas dos arquitecturas que acabamos de ver dieron comienzo a una revolución en el área de la visión artificial a través del Deep Learning.

Los creadores de estas redes lograron demostrar que una red lo suficientemente profunda, y entrenada con una elevada cantidad de datos, era capaz de aprender a clasificar automáticamente imágenes con una tasa de error muy baja y cercana al desempeño alcanzado por el ser humano.

Así que ya estamos listos para la segunda práctica de esta sección, que será el tema de la próxima lección, y donde veremos cómo realizar lo que se conoce como transferencia de aprendizaje usando VGG-16.

Ver todas las lecciones de este curso