spinner

Del laboratorio al mundo real. ¿Son fiables las predicciones de Deep Learning?

La fiabilidad de las predicciones de los modelos de Deep Learning suele ser medida y evaluada de acuerdo a unas asunciones que puede que no se den en la realidad. Esto nos genera una sobreconfianza sobre las capacidades del modelo ante situaciones desconocidas. En este post introductorio veremos qué retos nos encontramos a la hora de estimar la fiabilidad de estas predicciones en el mundo real.

Esta entrada forma parte de una serie, en la que primero haremos un recorrido por los retos que nos encontramos a la hora de estimar la fiabilidad o certidumbre de las predicciones, para finalmente profundizar en una serie de posts más técnicos en los que iremos viendo cómo ofrecer soluciones que tengan en cuenta estas problemáticas, utilizando técnicas de Bayesian Deep Learning.

 

Conociendo el límite en la mejora de las predicciones de Deep Learning

Uno de los métodos más utilizados en la actualidad para medir la evaluación y el progreso en Machine Learning es la publicación de benchmarks, métricas y datos de referencia. Esto lo podemos ver con el benchmark ImageNet, presentado en la competición ILSVRC (Large Scale Visual Recognition Challenge) que tiene como objetivo el uso de IA para la clasificación de imágenes dentro de un conjunto de etiquetas.

La publicación del conjunto de imágenes asociado a este benchmark, supuso en sí mismo un gran hito en la historia de la IA. Primero, porque hizo que en 2012 estallara el ‘boom’ del Deep Learning en reconocimiento de imágenes con la arquitectura de tipo CNN (convolucional) AlexNet. Este modelo era capaz de extraer patrones de forma automática, superando los resultados obtenidos con visión artificial basada en reconocimiento de patrones fijos. Y segundo, porque en 2015 el modelo ResNet de Microsoft, consiguió una mejora de rendimiento que superó incluso a la del humano, rendimiento que se ha ido mejorando bastante a lo largo del tiempo.

Por tanto, viendo estos resultados, podríamos pensar que estamos en un punto en el que no sólo hemos conseguido automatizar esta tarea, sino que además la IA lo hace mucho mejor que nosotros. Pero… ¿Cómo de fiables son estos resultados? ¿Dónde está el límite de mejora en Deep Learning?

La carrera por conseguir más datos y representar mejor la variabilidad del mundo real

Cómo os podréis imaginar, la mejora y evaluación de las predicciones de un modelo, no sólo depende de su arquitectura, sino de los de datos usados en su entrenamiento y evaluación. El conjunto de imágenes asociado a este benchmark representa nada más ni nada menos que el esfuerzo de recolectar casi 15 millones de imágenes y etiquetarlas dentro de un conjunto de 22000 etiquetas diferentes. Todo esto con el propósito de conseguir representar lo mejor posible toda la variabilidad existente en la realidad. Es decir, reducir la falta de certeza o incertidumbre que podría tener el modelo ante nuevos ejemplos.

Para entender esto mejor, y que os hagáis una idea del esfuerzo que supondría, vamos a acotarlo a la simple tarea de clasificar imágenes de gatitos. Para alcanzar este ideal de incertidumbre o 100% certeza hemos dicho que necesitamos conseguir un conjunto de datos que recoja lo mejor posible toda la variabilidad existente. En este ejemplo, esto implicaría obtener datos que incluyeran alrededor de las 50 razas de gatitos que existen en el mundo. Conseguir hacerles fotos en cada una de las partes, posiciones y condiciones en las que se pueden encontrar, teniendo en cuenta incluso las situaciones poco comunes o muy extremas que de forma aleatoria podrían suceder. Todo esto contando con que conseguimos un modelo Deep Learning que aprenda una representación lo más fiel a esta realidad. Lo cual es imposible. El esfuerzo a día de hoy más grande de este estilo es el del modelo GPT-3 que tiene 175 billiones de parámetros y ha sido entrenado con 45 TB de texto comprimido extraído de la Web, aún insuficiente.

Training a Classifier — PyTorch Tutorials 1.7.1 documentation

Visualización del conjunto limitado de imágenes que se suele emplear para construir un clasificador con Deep Learning. Ejemplo extraído del dataset CIFAR10.

Entonces, visto que conseguir un modelo perfecto que tenga en cuenta todos estos casos no es posible y que siempre va a haber cierta incertidumbre en su respuesta. Nos preguntamos, ¿Qué podemos hacer? ¿Cómo podemos saber cómo de seguro está el modelo cuando se enfrenta a la gran variabilidad existente en el mundo real?

Una de las opciones que vamos a estudiar aquí, y que mayor atención está recibiendo en la comunidad científica, es asumir esta incertidumbre en el proceso, es decir, no buscar tanto superar ese límite para mejorar más el rendimiento de las predicciones, sino incluir también el error o incertidumbre de cada una de las predicciones del modelo. Con esto, probablemente no estemos resolviendo esta limitación, pero al menos estamos ofreciendo una medida de fiabilidad en cada predicción. Esto, como veremos a continuación, nos permitirá minimizar el posible riesgo de utilizar un modelo de deep learning de ‘laboratorio’ en el mundo real.

Tipos y fuentes de incertidumbre

Entendida esta limitación, vamos a desmitificar los resultados de ‘laboratorio’ obtenidos en el benchmark ImageNet, es decir, vamos a ver cómo de buenas son las predicciones de un modelo de este benchmark, con tasa de error 7,3%,  cuando se expone a distintos tipos de incertidumbre en el mundo real.

Incertidumbre epistémica

El primer tipo de incertidumbre a la que nos enfrentamos, es la que hemos visto que se da en el modelo por falta de datos o desconocimiento del proceso, conocida como epistémica del griego epistḗmē (conocimiento). Y es que, cómo hemos visto, aunque entrenemos un modelo que obtenga muy buenos resultados, a veces es muy difícil conocer a priori si tiene todo el conocimiento necesario para modelar la complejidad real del problema al que nos enfrentamos.

Vamos a ver qué sucede si cogemos un modelo entrenado y evaluado con ImageNet, el modelo VGG16, con tasa de error de sólo el 7,3%, y lo enfrentamos a cualquier ejemplo que se pueda dar en la realidad.

Imaginemos que nos vamos a un museo de ciencias naturales y usamos este modelo en una app, para que, dada una foto, nos proporcione información de la vida de los elefantes. Como podéis comprobar en el notebook Using a pretrained Imagenet network to predict images into one of the 1000 Imagenet classes vemos que la imagen de la derecha no la logramos reconocer, a pesar de que nosotros viendo esta foto podríamos reconocer inequívocamente un elefante.

Ejemplo práctico de reconocimiento de objetos extraído del libro: Probabilistic Deep Learning: With Python, Keras and TensorFlow Probability.

Entonces… ¿Por qué un modelo con 92.7% de precisión en las predicciones falla? Básicamente lo que ocurre es que en el dataset de entrenamiento no hay imágenes de elefantes fuera de su medio natural. Es decir, el modelo está fallando en extrapolar o hacer predicciones sobre unos datos que no siguen la misma distribución del conjunto de datos de entrenamiento.

Incertidumbre aleatoria

Otro reto que nos podríamos encontrar a la hora de hacer inferencias con este modelo, es la incertidumbre debida a la variabilidad inevitable o inexplicable producida por distintos factores aleatorios externos. Por ejemplo, la imagen que hemos visto del elefante puede variar también considerablemente dependiendo de si, en ese momento, hay mucha exposición solar, sombras u algún tipo de oclusión. Este tipo de fenómenos se dan en el momento, por lo que es imposible obtener conocimiento previo que nos permita modelar su comportamiento.

Por ello, esta incertidumbre en las predicciones del modelo se conoce como aleatoria. Siendo una de las causas más comunes por las que se han sucedido distintos accidentes de coches autónomos como el que podemos leer en la siguiente noticia.

Imagen y extracto de la noticia del accidente de un coche Tesla en modo autopiloto 

En sucesivos posts, nos centraremos más en este tipo de incertidumbre, imposible de reducir, y por tanto una de las más interesantes a estimar, veremos cómo podemos estimarla con técnicas de Bayesian Deep Learning.

Ofreciendo un método más robusto e interpretable de la fiabilidad

Entonces, teniendo en cuenta esta limitación y los distintos tipos de retos o incertidumbre que nos podemos encontrar, nos deberíamos preguntar ¿Por qué la tasa de error del modelo VGG16 no cubre estos tipos de incertidumbre?

Si lo analizamos desde esta perspectiva, nos daríamos cuenta de que uno de los problemas que nos encontramos en este benchmark, y en Machine Learning en general, es que estamos evaluando la incertidumbre o error del modelo en general sobre un contexto y conjunto de datos disponible y no sobre cada predicción en particular. Esta generalización hace que nos genere una sobreconfianza en las predicciones del modelo. Es decir, solemos confundir las capacidades que ofrece el modelo en media con lo
que podría ofrecer en una situación concreta particular.

Imaginemos que utilizamos Deep Learning para medir nuestro nivel de exposición al COVID-19. Si lo pensamos bien, nos deberíamos fiar más de la predicción y su error para nuestro caso particular (nuestro contexto o características particulares), y no tanto la del error de la predicción obtenido sobre el conjunto de la población.  Ya hemos comprobado anteriormente que este error depende del conocimiento que el modelo tenga ante una situación particular. Cómo cita Kull and Flach (2014): “Being able to assess the reliability of a probability score for each instance is much more powerful than assigning an aggregate reliability score […] independent of the instance to be classified.

Ejemplo de aplicación de modelo de Deep Learning capaz de asociar a cada predicción un valor de incertidumbre, representada con la barra vertical azul.

En la figura anterior, se ha representado de forma ilustrativa una propuesta de solución a este problema. En el ejemplo, tenemos un modelo de Deep Learning que dado el contexto o características de una persona particular (sexo, edad, población, uso de mascarilla, etc) predice, además de un nivel 4 de exposición, la incertidumbre que tiene el modelo sobre la predicción de este valor, en este caso ± 1. Esta incertidumbre, en contraposición a la que se suele obtener con las típicas métricas de Machine Learning. p.ej.: RMSE, MAE, etc, si tiene en cuenta la capacidad del modelo para hacer predicciones en nuestro caso particular.

Conclusiones

Los modelos de Deep Learning tienen capacidad limitada para aprender de grandes cantidades de datos y conocer toda la variabilidad existente en el mundo real. Esto hace que las predicciones que realizan no sean del todo certeras cuando se exponen a situaciones desconocidas o distintos tipos de incertidumbre.  Sin embargo, estas situaciones no se tienen en cuenta cuando en su evaluación se estima un error generalizado en un conjunto de datos limitado.

En sucesivos posts veremos cómo construir modelos de Deep Learning como el propuesto en la figura anterior. Estudiaremos la combinación de técnicas bayesianas y deep learning para ofrecer además de la predicción, una medida de certeza que exprese cómo de seguro está el modelo sobre las predicciones que realiza.

Fuente de imagen principal: Unsplash

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?