octubre 19, 2019 10:00 am

Jesús

Hubo una época en la que los científicos de datos, aficionados a la inteligencia artificial y evangelistas de las redes neuronales se rebanaban los sesos intentando hallar la clave para, finalmente, poder reconocer, con cierto grado de exactitud, números escritos a mano alzada.

Además del desafío propio de la naturaleza de los datos, habían otras consideraciones a tener en cuenta: ¿Qué tan grande pueden ser estas imágenes? ¿Podemos representarlas a color, o hemos de optar por una alternativa en blanco y negro?

Durante años, problemas de este estilo abundaban en el campo de la visión artificial. Por supuesto, hoy parecen triviales y, de cierta forma, en su época la mayoría de las personas no veían ningún valor en resolverlos. No obstante, MNIST, CIFAR-10, Fashion-MNIST y demás conjuntos de datos similares han servido como métrica, vara de medición de los avances en el área. 

El que hoy podamos resolver estos problemas en minutos, con scripts escritos en lenguajes y herramientas de alto nivel, en nuestras computadoras personales, se debe enormemente al advenimiento de las redes neuronales, particularmente las convolucionales, puesto que, anteriormente, la visión artificial era, en su mayor parte, una tarea de confección artesanal de algoritmos especiales, fuertemente acoplados a cada problema.

Así, pues, ¿de dónde surgió este repentino boom de deep learning y CNNs? 

El año es 2012, el principal responsable es Alex Krizhevsky, y el escenario fue ImageNet, el tópico del día de hoy.

ImageNet

ImageNet es el conjunto de datos por excelencia en la actualidad para evaluar algoritmos de clasificación, localización y reconocimiento de imágenes. Es en 2019 lo que MNIST era en los 90: un problema, cuando menos, muy desafiante.

De hecho, es considerado uno de los datasets más difíciles de atacar de la actualidad, aunque si de algo podemos estar convencidos, es que tarde o temprano lo superaremos y pasaremos a enfrentar el próximo obstáculo.

ImageNet, más que un conjunto de datos, realmente es un proyecto a gran escala que involucra a diversas instituciones educativas, como Stanford y Princeton. Su objetivo es ser un banco de data visual enorme para la investigación y desarrollo de software especializado en reconocimiento de imágenes.

Surge en 2009 gracias a la colaboración de Fei-Fei Li, una investigadora de IA, y Christiane Fellbaum, una de las creadoras de WordNet, de donde ImageNet toma fuerte inspiración para la estructuración de imágenes en “synsets” o “synonym sets”, que vendría siendo “conjuntos de sinónimos” en español. Estos synsets son frases o palabras que engloban conceptos relacionados, y es a través de los mismos que las fotos en ImageNet están organizadas.

En este proyecto, las imágenes se dividen o categorizan en 22.000 clases distintas (synsets), sumando, en total, unas 14 millones a día de hoy.

No obstante, en tu día a día como experto en computer vision, cuando escuches “ImageNet”, rara vez será en alusión al proyecto, sino a otra cosa.

¿Cuál?

ILSVRC

Aunque no debiese ser así, el 99% de las veces, ImageNet = ILSVRC. 

¿Qué es ILSVRC? Las siglas significan ImageNet Large Scale Visual Recognition Challenge. Es un conjunto compuesto por una muestra bastante más pequeña (aunque aún masiva) del proyecto ImageNet, donde la meta es discernir entre 1.000 clases diferentes, así como, en algunos casos, localizar determinados objetos en una fotografía.

Algunas de estas mil categorías son increíblemente complejas de diferenciar, puesto que son muy “finas”, en el sentido de que todas ellas se refieren a variaciones de un mismo objeto. Por ejemplo, en ImageNet hay 120 clases correspondientes a razas de perro, por lo que la red no tiene que sólo aprender a identificar perros, sino también su raza.

Estas clases son muy numerosas como para ser listadas en este artículo, pero te animo a que las consultes y te familiarices con ellas en la página oficial de ImageNet.

Las distribución de los datos en ILSVRC es como sigue:

  • ~1.2 millones de imágenes de entrenamiento.
  • 50.000 imágenes de validación (50 imágenes por synset).
  • 100.000 imágenes de prueba (100 imágenes por synset).

¿Por Qué es tan Difícil?

Las razones que hacen de ImageNet un desafío tan esquivo y, en ocasiones, frustrante (aunque son precisamente estas complicaciones las que lo convierten en el punto de referencia ideal en computer vision) son muchas y diversas. Sin embargo, entre las más resaltantes tenemos:

  • Diferenciación entre categorías finas, como razas de perros, en vez de categorías gruesas o generales, como perro, gato, ave o avión.
  • Variación dramática en la escala de las fotografías.
  • Diversas condiciones de iluminación para imágenes de un mismo synset.
  • Ruido y calidad variable entre imágenes.
  • Oclusión o vistas parciales de objetos (por ejemplo, una foto de un gato detrás de una silla, donde sólo se ve una parte de su rostro).
  • Variaciones en textura, forma y dimensiones.
  • Imágenes deformadas, borrosas o desenfocadas.

Es por estas (entre muchas otras) dificultades que entrenar modelos en ImageNet no es una tarea sencilla, que podamos llevar a cabo en una tarde con una taza de café.

Cada una de las arquitecturas que han alcanzado puntajes vanguardistas en éste desafío han sido desarrolladas por equipos de profesionales altamente calificados, dedicados 100% a experimentar con infinidad de variables e ideas novedosas, con acceso a servidores, hardware e infraestructura especializada (posiblemente compuesta de múltiples nodos con numerosos GPUs). Ello no quiere decir que no podamos intentarlo. Ni siquiera significa que no tenemos esperanza de superarlos; lo que significa es que es una tarea ardua y, por tanto, hemos de mantener nuestras expectativas en su debido lugar, ser conscientes del esfuerzo requerido y de lo rocoso del problema. 

Dicho esto, participar en este tipo de desafíos es la clase de trabajo duro que viene acompañado de enorme satisfacción y orgullo. Te animo a que lo intentes; verás cómo vale la pena.

Por último, la naturaleza de estos obstáculos hacen que las redes entrenadas en ImageNet se desempeñen bastante bien fuera de los confines de ests datos, lo que ha impulsado un salto cuántico en el campo de la visión artificial, mediante el uso e implementación de transfer learning.

Un Antes y un Después

En la introducción del artículo mencionamos que, en el año 2012, AlexNet creó un antes y un después en la visión computarizada.

¿Qué ocurrió aquel año?

En el ILSVRC-2012, Alex Krizhevsky se llevó el oro, al obtener un 16% de error con su arquitectura rompedora, muy por encima (aproximadamente 10 puntos) del segundo lugar, lo que envió un mensaje contundente no sólo al mundo de la inteligencia artificial, sino a la industria del desarrollo de software como tal: Las redes neuronales habían despertado de su largo sueño, y venían a revolucionarlo todo (la caída en precios de las GPUs contribuyó fuertemente a este hecho).

En 2011, una tasa de error del 25% era considerada el estado del arte en ImageNet.

En 2012, AlexNet obtuvo un 16% de error.

En 2017, 29 de los 38 equipos participantes en el ILSVRC de ese año reportaron errores del 5% o menos.

Salón de la Fama

Son muchos los modelos que han alcanzado tasas de error decentes en ImageNet. Algunas arquitecturas son más simples y accesibles que otras, y aunque listarlas todas aquí sería un problema, a continuación encontrarás las más icónicas (extraídas de la documentación oficial de Keras):

ModeloTamaño (MBs)Error Top-1Error Top-5
Xception8820.10 %5.50%
VGG1652828.70% 9.90%
VGG1954928.70%10.00%
ResNet509825.10%7.90%
ResNet10117123.60%0.928
ResNet15223223.40%6.90%
ResNet50V29824.00%7.00%
ResNet101V217122.80%6.20%
ResNet152V223222.00%5.80%
InceptionV39222.20%6.30%
InceptionResNetV221519.70%4.70%
MobileNet1629.60%10.50%
MobileNetV21428.70%9.90%
DenseNet1213325.00%7.70%
DenseNet1695723.80%6.80%
DenseNet2018022.70%6.40%
NASNetMobile2325.60%8.10%
NASNetLarge34317.50%4.00%

El error Top-1 es, en pocas palabras, el complemento del accuracy, tal y como lo conocemos. Es decir, es la proporción de veces que la red se equivocó al predecir una clase. Análogamente, el error Top-5 es el complemento del accuracy-5, siendo, pues, la proporción de veces que la clase correcta de la imagen no estuvo en las 5 predicciones más probables arrojadas por la red. 

Por ejemplo, supongamos que para una imagen de clase perro, la red arroja estas predicciones:

Gato0.4
Perro0.35
Ave0.1
Casa0.1
Carro0.05

El accuracy-1 sería 0, mientras que el accuracy-5 sería 1. ¿Se entiende?

ImageNet es parte de la historia viva de nuestro campo, por lo que es fundamental que tengamos, al menos, un conocimiento superficial del mismo, ya que el devenir de la visión computarizada e, incluso, de la inteligencia artificial, depende en gran medida de los avances que ocurran en el ILSVRC.

¿Quién sabe? ¡Quizás las próxima gran revolución la inicies tú!

Hasta pronto.

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.