spinner

Bayesianos, viendo la inteligencia artificial desde otro prisma

En los últimos años hemos sido testigos de la acelerada expansión de la inteligencia artificial a casi todos nuestros productos y servicios. Estas aplicaciones van desde ‘inocentes’ recomendadores de producto hasta aplicaciones como sistemas de diagnóstico de enfermedades o sistemas de ayuda a la conducción, que si fallaran, podrían poner en riesgo vidas humanas.

Uno de los factores que ha dado lugar a esta rápida adopción ha sido la ‘facilidad’ que tenemos para crear aplicaciones inteligentes de la mano del Big Data y el Machine Learning.  Esto ha hecho que incluso podamos encontrar en el mercado actores como AutoML, BigML o DataRobot que pretenden hacer uso del Deep Learning a gran escala y democratizar la inteligencia artificial, poniéndola al alcance de todos. Pero, tal vez en este punto los científicos de datos nos deberíamos parar pensar ¿Sabemos cuál es nuestro rol en este escenario?  ¿Realmente estamos haciendo foco en la seguridad de saber cómo se van comportar estos modelos en un entorno de real? Y es que, aunque parezca sencillo entrenar modelos de machine learning y poder entender su comportamiento, no lo es.

Interpretabilidad. Necesitamos conocer mejor el comportamiento de los modelos

Un ejemplo de esto se da en octubre de 2017, la policía de Israel arresta a un Palestino que publica una foto de sí mismo al lado de una excavadora junto con un cartel traducido en Facebook cómo ‘atacarlos’. Sin embargo, fue un fallo de traducción del algoritmo ya que en hebreo ‘buenos días’ y ‘atacarlos’ son muy parecidos. El algoritmo sirvió para reforzar un sesgos culturales y hacer que arrestaran a un inocente [1]. Otro ejemplo lo encontramos el 18 de marzo de 2018, un coche autónomo de Uber atropella a una persona que cruza indebidamente a oscuras por la carretera. En este caso, descubrieron que el problema fue que el dataset no incluía suficientes imágenes de peatones infringiendo las normas de seguridad vial [2].

En todos estos casos el modelo parecía estar muy seguro de lo que predecía. ¿Qué sucedió?. Lo cierto es que, aunque no lo parezca, los científicos de datos trabajamos en un mundo caótico en el que la mayor parte de los datos que se generan de forma natural presentan sesgos y en la mayoría de los casos ni disponemos de un conocimiento absoluto del problema ni del proceso que generó los datos con los que estamos entrenando los modelos. Muchas veces, incluso, descartamos el uso de arquitecturas avanzadas de deep learning, a pesar de contar con suficientes datos, puesto que no somos capaces de explicar su comportamiento.

Por ello, necesitamos buscar técnicas que nos ayuden a interpretar mejor estos modelos, ver la inteligencia artificial desde otro prisma, no tanto desde un enfoque frecuentista cómo se viene utilizando hoy en día, si no también asumir que es posible que no seamos capaces de entender o asegurar el comportamiento de estos modelos, asumir cierta incertidumbre en el proceso y utilizar un enfoque más probabilístico o bayesiano.

Estadística bayesiana vs. Frecuentista

¿Qué nos aporta la estadística bayesiana en la interpretabilidad de modelos? Utilizando un enfoque probabilístico, asumimos que las inferencias de los modelos van a tener un cierto margen de error al que llamamos incertidumbre y esto nos ayudará, por ejemplo, en el caso del coche autónomo de Uber, a predecir el margen de error que van a tener las predicciones para poder solicitar la atención del conductor en el caso de que el modelo no funcione como se espera, es decir, no sea capaz de detectar un peatón aunque la precisión del mismo sea alta. ¿Hemos resuelto el problema? Tal vez podríamos pensar que no y que el comportamiento del modelo sigue no siendo el esperado, sin embargo, ser capaces de modelizar esta incertidumbre nos ha permitido, en este caso, minimizar el riesgo de un accidente.

Figura 3: Frequentist vs. Bayesian. – Ref: https://www.explainxkcd.com

Para entender mejor la diferencia entre ambos enfoques y cómo se trata la incertidumbre en cada una de ellas, vamos a empezar con un ejemplo sencillo representado en la ilustración anterior. En esta ilustración, vemos cómo dos estadísticos se hacen la misma pregunta ¿El sol ha explotado?. La diferencia principal reside en la manera que tienen los dos estadísticos en ofrecer una respuesta.

En la historia, vemos cómo el estadístico frecuentista, no trata directamente la incertidumbre y es capaz de concluir afirmando que ‘el sol ha explotado’ basándose en una serie de experimentos u observaciones del problema. Por otro lado, el estadístico bayesiano no es capaz de realizar tal afirmación, él simplemente utilizará estos experimentos para reducir su nivel de incertidumbre o desconocimiento de la causa del problema y su respuesta será la probabilidad de que se dé el evento ‘el sol ha explotado’ en base a las observaciones que él conoce, aplicando lo que se conoce como el teorema de bayes.

 Figura 2:  Teorema de Bayes. – Ref: https://pathmind.com/wiki/bayes-theorem-naive-bayes

En la fórmula matemática anterior podemos ver un ejemplo de cómo calcular estas probabilidades, usando el teorema de bayes. Este teorema por definición trata de calcular las probabilidades subjetivas que puede tomar un determinado suceso cuando hemos recibido algún tipo de información previa. Para ello, se calcula la probabilidad a posteriori P(A|B), en base a las probabilidades a priori o P(A) y la probabilidad de que se dé el suceso B si la hipótesis A es cierta, P(B|A). En el ejemplo anterior la probabilidad a posteriori P(A|B) sería la probabilidad de que el suceso ‘el sol ha explotado’ sea cierta, en base a las evidencias que hemos recogido de los experimentos; evidencias que nos han permitido reducir el nivel de incertidumbre.

Dando un enfoque bayesiano a la construcción de los modelos – Bayesian deep learning

Esta técnica, aplicada a la construcción de modelos de deep learning, es básicamente hacer que nuestro modelo no aprenda un valor único en los parámetros, sino que aprenda unas distribuciones de probabilidad o conjunto de posibles valores que pueden tomar esos parámetros.

Figura 3: Bayesian Deep Learning. – Ref: https://machinelearningmastery.com/prediction-intervals-for-machine-learning/

El resultado que nos daría esta aproximación es el que podemos observar en la imagen anterior. En esta gráfica se puede ver cómo no sólo predecimos un valor para un determinado input, sino que además damos el conjunto de posibles valores o rango de incertidumbre en torno a esta predicción.

Próximos pasos

La manera de aplicar este enfoque en la construcción de modelos, está aún en investigación aunque ya la comunidad científica ha publicado resultados bastante prometedores con aplicación directa en la industria. Desde los Labs de BBVA Next Technologies estamos investigando estas técnicas y trabajaremos en posteriores publicaciones con los resultados que obtengamos; pero si te pica la curiosidad y quieres ir profundizando más en el tema por tu cuenta, aquí te dejo un par de recursos para que se te haga más amena la espera!  =)

  1. http://safeai.ethz.ch/
  2. http://bayesiandeeplearning.org/
  3. https://www.amazon.com/Bayesian-Methods-Hackers-Probabilistic-Addison-Wesley/dp/0133902838

 … to be continued 💡#TecLab

Team que ha trabajado en esta investigación: Yolanda de la Hoz, Carlos Gonzalez, Fernando Cerezal y Samuel Muñoz

Referencias: 

[1] Algoritmos de Facebook traducen ‘buenos días’ cómo ‘atacarlos’ y hace que arresten a un palestino inocente   https://www.theguardian.com/technology/2017/oct/24/facebook-palestine-israel-translates-good-morning-attack-them-arrest
[2] Uber self driving car kills woman in Arizona   https://www.theguardian.com/technology/2018/mar/19/uber-self-driving-car-kills-woman-arizona-tempe

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?