Hoy comenzamos con la Unidad 9: Temas Avanzados de Modelación Basada en Agentes. A diferencia de las otras unidades, ésta estará saltando de un tema a otro, y se hablará de muchos conceptos diferentes. En muchos casos no veremos lo suficiente como para que ustedes puedan crear un modelo a partir de lo que estudiemos aquí. Pero la meta es inspirarlos para pensar en cómo quieren construir modelos, para que investiguen por su cuenta y averigüen cómo utilizar algunas de las técnicas de las que hablaré para sus propios modelos. Espero también resaltar algunas nuevas características de NetLogo y cosas así, que posiblemente no conozcan todavía y que podrían serles útiles en sus modelos. Para comenzar, hablaré de un tema muy cercano a mi corazón que es el Aprendizaje Automático (Machine Learning) incorporado a los modelos de agentes. Si lo piensan, si lo recuerdan, ya hablamos de dos formas de incorporar Aprendizaje Automático. En la Unidad 3 hablamos de usar Aprendizaje Automático para ayudar a los agentes a tomar decisiones con relación al problema del Bar El Farol. Y después en la Unidad 7 hablamos de usar Aprendizaje Automático para optimizar un modelo de agentes usando Behavior Search (Búsqueda de Conductas) para así calibrar el modelo. Aquí hablaremos de algo distinto, relacionado a ambos ejemplos, pero distinto. Está relacionado a la calibración, a la "parametrización" y a que los agentes piensen diferente. Lleguemos al punto. Este proyecto que llevo haciendo desde hace 4 o 5 años con David Darmon de Uniformed Services University, y Jimpei Harada de Amazon en Japón, y Jared Sylvester de Hamilton. Los tres fueron alumnos que trabajaban en proyectos conmigo y con Michelle Girvan, profesora de física y experta en redes de la Universidad de Maryland, e investigadora externa del Instituto de Santa Fe. Y nosotros estábamos impresionados con la novedad de los datos masivos (Big Data) que comenzaba a salir. Ahora vemos toda esa información, de Twitter, de aplicaciones y de otras cosas, y tenemos estas nuevas huellas que la gente deja en el mundo digital, a lo que han llamado escape digital, que son los datos que las personas dejan y quedan flotando allá afuera. Y nos interesaba saber si eso nos podía decir algo nuevo sobre la conducta humana, ya que representa las marcas que deja la gente mediante las acciones que decide tomar. El reto con los datos masivos es que son demasiados y no sabemos exactamente cómo trabajar con ellos. Y los datos resumidos, si solo tomamos los promedios y las varianzas estamos automáticamente eliminando una buena parte de la importancia y lo interesante de los datos que puede estar en la heterogeneidad de la información, en el hecho de que hay diferencias a nivel de individuos. Sin embargo, no pueden estar sentados viendo un billón de 'tweets' cada día. Así que tampoco se puede apreciar la riqueza de los datos examinádolos individualmente. Debemos encontrar un arreglo intermedio para poder sintetizar sin perder las diferencias significativas y representar las conductas individuales sin necesitar mucho esfuerzo en poco tiempo. Una solución son los modelos de agentes ya que son modelos que representan conductas individuales pero en un formato de cómputo que no exige que codifiques instrucciones para cada conducta distinta. Los modelos de agentes tradicionalmente se derivan de postulados teóricos. Ya señalamos algunas excepciones durante el curso, pero la gran mayoría han sido derivados de teorías, no de datos. ¿Pero podemos crear modelos de agentes directamente de datos masivos, que modelaran las conductas individuales sin tener que especificar cada una? Y se nos ocurrió una solución. La solución consistió en usar Aprendizaje Automático para obtener las reglas individuales para los agentes de forma automática y después utilizar los resultados del modelo para comprender las propiedades emergentes de la interacción de conductas. El marco de trabajo que decidimos utilizar fue diseñado en el Instituto de Santa Fe por Jim Crutchfield, Cosma Shalizi y otros mientras trabajaban ahí y posteriormente, creando Máquinas Epsilon. Las máquinas epsilon son la idea de máquinas de estados, también llamadas modelos de estados causales que podemos construir para cada uno de los individuos, que consiste en agruparlos por pasados estadísticamente similares que producen el mismo futuro. Disculpen, debo corregir. Se agrupan por tener pasados que producen futuros estadísticamente similares. Así que si asumimos, por ejemplo, que observamos una serie de datos de la conducta de un individuo, como si una persona ha mandado 'tweets' en un periodo de tiempo, que fue generada por un proceso estocástico condicionalmente estacionario. En otras palabras, con base en la conducta pasada, la conducta futura cae dentro de una distribución predicha. Asumiendo eso, ahora podemos agrupar aquellas conductas pasadas que predicen la misma distribución de conductas futuras. Para darles un ejemplo concreto, imaginemos a una persona que manda tweet, no manda tweet, no manda tweet, manda tweet, y luego veo a otra persona que no manda tweet, manda tweet, manda tweet, no manda tweet. Y ambas conductas pasadas predicen que al siguiente momento tienen una probabilidad de 50% de mandar un tweet. Entonces agrupo las dos conductas dado que sabemos que no hay diferencia, no importa en quien ponga más atención. Por otro lado si una conducta pasada consiste en no mandar tweet, no mandar, no mandar, no mandar, entonces la probabilidad al siguiente momento es cercana al 0% o al 1%, entonces no lo agruparía con las otras. Así que podemos construir estos estados que representan los futuros similares posibles para después trazar las conductas individuales a través de los estados. Estas máquinas de estados son ahora los agentes en el modelo de agentes. Ha habido un gran trabajo en este contexto utilizando lo que se conoce como algoritmo de 'separación y reconstrucción de estados causales' donde se muestra cómo el aprendizaje puede ser muy rápido para sets de datos muy grandes contando con una ventana y un alfabeto de tamaño chico, pero hablaremos de esos elementos más tarde. Llamaremos al modelo de aprendizaje el 'modelo de estados causales' para cada individuo. Este modelo es genial ya que tiene la propiedad excepcional demostrada estadísticamente con el algoritmo de 'separación y reconstrucción' de ser predictivo al máximo y complejo al mínimo. Esto significa en palabras de Cosma quien ha trabajado más en el tema junto con Jim Crotchfield que estos... estos sistemas tienen la máxima habilidad para predecir el futuro dada la historia de conductas pasadas que observan hasta el momento, no lo hará mejor algún otro sistema, ni tendrá sesgos adicionales, a la vez que tienen el menor número de estados en el sistema y por eso decimos que es mínimamente complejo. Esa es una gran definición. Ahora que ya tienen una idea de la manera en que los mecanismos computacionales funcionan con datos masivos estudiaremos dos ejemplos rápidos.