
El pasado día 16 de octubre se celebró el día mundial de la alimentación, una fecha que tiene como objetivo poner de manifiesto que aún hay muchas personas en el planeta que padecen hambre y malnutrición: Un reciente informe de la ONU revela que hay más de 800 millones de personas en el mundo que pasan hambre y no pueden permitirse comer cada día. Por este motivo, organismos como el Banco Mundial, la ONU, Google, o Cruz Roja han creado la iniciativa “Mecanismo de Acción contra el Hambre” (FAM, por sus siglas en inglés) que usa técnicas de inteligencia artificial y machine learning para combatir el hambre en el mundo.
El objetivo de FAM es utilizar inteligencia artificial y big data para predecir las hambrunas que van a ocurrir en el planeta, con un tiempo de antelación lo suficientemente amplio como para que se puedan provisionar los recursos necesarios para paliar los efectos esas hambrunas.
Los sistemas de inteligencia artificial que se usan para predecir lo que va a pasar, como el de FAM, se basan en el análisis automático de situaciones que ocurrieron en el pasado, para extraer patrones y aprender modelos que permiten predecir lo que va a ocurrir en el futuro. Esta tarea en la que un sistema informático aprende patrones para predecir situaciones y casos futuros es lo que se conoce como aprendizaje automático (se usa mucho también el término en inglés, machine learning).
Este aprendizaje automático por parte de las máquinas es muy similar al de las personas: A partir de experiencias pasadas, somos capaces de abstraer lo que probablemente ocurrirá en el futuro. Por ejemplo, sabemos que, si una mañana llueve en Madrid, lo más seguro es que haya más tráfico en la carretera. Pero ese es un ejemplo muy sencillo, con solo una variable (lluvia). En problemas complejos con cientos de variables, como el que nos ocupa de poder predecir una hambruna en una determinada zona, el número de factores que intervienen es mucho mayor y, además, de una complejidad muy alta.
Lo que hará el Mecanismo de Acción contra el Hambre es recoger datos de variables heterogéneas de tipo social, político, climático, económico, etc. que ocurrieron en el mundo antes de una hambruna, y alimentar el sistema de inteligencia artificial para que sea capaz de inferir un modelo que prediga situaciones similares en el futuro. El tratamiento de toda esa información no es sencillo. Al tener tantas variables y casos, es necesario recurrir a técnicas de procesamiento de grandes volúmenes de datos (big data) para poder procesar las variables y realizar los cálculos necesarios de los distintos algoritmos de machine learning. Hay que tener en cuenta que en un problema como este puede ser necesario manipular y analizar terabytes de datos, algo que queda fuera de las capacidades de proceso con ordenadores tradicionales. Para poder solventar este problema, se utilizan clusters de ordenadores, que es un conjunto de máquinas interconectadas entre sí, para distribuir el trabajo y procesar de forma distribuida y paralelizada los datos. Para hacernos una idea, una tarea de análisis de datos utilizando la infraestructura de Google (con su herramienta BigQuery), utiliza un cluster con 2.000 ordenadores trabajando en paralelo.
Pero ¿cómo se diseña e implementa un sistema tan complejo como para poder prever con varios de meses de antelación los riesgos de hambrunas en determinadas zonas del planeta?
Estos sistemas utilizan cientos de millones de datos provenientes de sensores y otras fuentes de información sobre las diferentes zonas del planeta, como por ejemplo estaciones meteorológicas, sistemas de análisis de seísmos, imágenes satelitales, información socioeconómica, características geofísicas de las regiones, para predecir la probabilidad de que se produzca un conflicto, una hambruna en una región del planeta. Para poder analizar cantidades de datos tan grandes, se utilizan sistemas de Big Data que distribuyen la carga de trabajo entre cientos o miles de ordenadores para procesar los datos de forma distribuida y paralela.
Los pasos que hay que dar para construir un proyecto de machine learning como el de FAM serían los siguientes:
Definir los objetivos del proyecto: ¿Qué es lo que queremos predecir exactamente con nuestro proyecto? En esta parte nos planteamos cuestiones como si queremos construir un modelo que prediga situaciones de hambruna para unos países concretos o si queremos hacer un modelo más abstracto que sirva para cualquier región del planeta. Aquí, por ejemplo, podemos definir si el objetivo es predecir con tres meses de antelación la hambruna en una determinada región (sí o no) o si lo que nos interesa es predecir un valor de pobreza de la región en tres meses. Esta parte es muy importante porque las preguntas y objetivos iniciales marcarán todo el desarrollo futuro y los algoritmos que se van a aplicar.
Recopilar y fusionar los datos: Esta fase depende obviamente de la fase anterior, y consiste en recopilar las bases de datos locales, la información de sensores climáticos y geofísicos, los datos macro y microeconómicos, imágenes de los satélites, precios de los alimentos y del petróleo, áreas con conflictos bélicos,… En esta fase, la labor del Banco Mundial y de la Cruz Roja es clave ya que tendrán que encargarse de recopilar toda esta información intentando que sea lo más completa y veraz posible. Esta tarea no es nada sencilla, ya que en muchos casos estamos tratando zonas con escasa o nula presencia tecnológica, y en donde la información puede estar muy sesgada por la propia situación política y social de la zona.
Para facilitar la labor de obtención de datos para proyectos como FAM, han surgido iniciativas como Open Data for Resilience Initiative, que recopilan y hacen públicos datos abiertos de varios países en riesgo de sufrir alguna catástrofe.
Limpieza y transformación de datos: Quizás la fase más crítica e importante de todo proyecto de machine learning. El equipo de ingenieros de datos tiene que asegurarse de que la información recopilada es transformada para eliminar el ruido antes de utilizar algoritmos de aprendizaje automático. En esta fase se realizan tareas como lidiar con la información incompleta, tratar los outliers (observaciones extrañas que se salen de los rangos normales), normalizar los datos, gestionar los datos desbalanceados y sesgados, computar la capacidad predictiva de los atributos y descartar aquellos que no aporten valor a nuestro objetivo. En esta fase también se realiza lo que se conoce como fase de extracción, que consiste en generar nuevos atributos a partir de las variables actuales, como, por ejemplo, añadir una nueva variable que es el número de días sin llover a partir de la información meteorológica o el radio del cauce de los ríos a partir de las imágenes de satélites (que puede ser una buena variable para predecir desbordamientos).
Generación del modelo predictivo con machine learning: En esta fase, los datos ya procesados se utilizan para alimentar un algoritmo que analiza los millones de observaciones con el fin de encontrar los patrones y reglas que sirvan para predecir lo que va a ocurrir en situaciones futuras no conocidas aún. Dependiendo del objetivo definido en la primera fase, la familia de técnicas de machine learning a utilizar será distinta. En un sistema como el FAM para predecir situaciones de hambrunas, estamos ante un tipo de aprendizaje automático que se conoce como aprendizaje supervisado, y dentro de ese tipo podemos estar desarrollando un sistema de clasificación o uno de regresión, dependiendo de si, en el objetivo principal definido en la primera fase, hemos dicho que nos interesa predecir un valor numérico o un valor categórico.
Por las características del proyecto FAM, lo más probable es que se trate de un problema de clasificación. Para las tareas de clasificación existen varias familias de algoritmos y técnicas de machine learning que se pueden utilizar, y por desgracia no existe una regla de oro que nos diga qué algoritmo es el que mejor va a funcionar, ya que para cada problema, el algoritmo que mejor funciona puede ser distinto. En todos los proyectos de machine learning lo habitual es generar varios modelos con distintos algoritmos y evaluarlos todos para ver cuál es el que se comporta mejor. Algunos de los algoritmos más utilizados hoy en día para predicción son las máquinas de vector soporte (Support Vector Machines), los algoritmos basados en árboles de decisión como Random Forest, o los Gradient Boosted Treesy. Para problemas complejos y con una gran cantidad de datos (como el que nos ocupa), suele funcionar muy bien lo que se conoce como deep learning: el uso de algoritmos de aprendizaje basados en redes neuronales complejas.
Evaluación y pruebas: Una vez que tenemos varios modelos, hay que evaluar cuál de todos es el que mejor se comporta para predecir las observaciones futuras. Hay que indicar que estos algoritmos de inteligencia artificial que hemos mencionado no son 100% precisos, y tienen siempre un error. Esto es importante porque, aunque queda fuera del alcance de este artículo, el tema de ver quién tiene la responsabilidad de los errores cometidos por sistemas de inteligencia artificial está actualmente generando mucho debate. Para evaluar los diferentes modelos, lo que se suele hacer es dividir la colección de datos inicial en dos partes. Una parte se utiliza para hacer que los algoritmos aprendan y generen los modelos predictivos, y la parte restante, que no se ha usado en el proceso de aprendizaje, se utiliza para evaluar y ver la precisión que tienen los modelos (es decir, cuánto aciertan y cuánto fallan ante situaciones desconocidas).
EJEMPLO: el caso de Guatemala.
Guatemala es un país muy expuesto a desastres naturales como terremotos, incendios o actividad volcánica, y es, además, uno de los países más pobres de Latinoamérica, por lo que es una región en la que un desastre natural podría provocar situaciones de hambre entre la población.
En 1976, Guatemala sufrió un terremoto que diezmó la población de Los Amates y generó en la zona situaciones de hambre y extrema pobreza. El terremoto causó 23.000 muertos, 76.000 personas heridas e hizo que el PIB del país cayera un 20%.
Predecir un terremoto con meses de antelación es tremendamente complicado, pero mediante machine learning, ¿podemos analizar imágenes satélites para identificar de forma automática zonas en las que un seísmo sería especialmente devastador?

El Banco Mundial utilizó imágenes satelitales, de drones, y fotos 360º de las calles para identificar las casas con alto riesgo de colapsar durante un terremoto. La inspección manual sobre el terreno por ingenieros y arquitectos habría tenido un coste que directamente habría hecho inviable la inspección. Sin embargo, el análisis de estas imágenes mediante inteligencia artificial se pudo hacer con un coste mucho más bajo y consiguió identificar los edificios con alto riesgo de colapso con una precisión del 85%, permitiendo crear campañas para optimizar los recursos económicos disponibles con el fin de minimizar el impacto de desastres en el país (salvando muchas vidas).