En la primera parte de este artículo, examinamos los tipos de sistemas que estudia la ciencia y finalizamos señalando que la Inteligencia Artificial (IA) se ocupa, precisamente de los sistemas con complejidad organizada. Como consecuencia de ello le es de aplicación, tanto toda la teoría desarrollada sobre sistemas complejos, como los avances derivados de la computación que nos han de permitir realizar simulaciones cada vez más precisas de la realidad o «acelerar» el tiempo, «comprimiendo» las distintas generaciones de aprendizaje.
En esta segunda parte me voy a ocupar de desentrañar cómo afecta a los algoritmos de IA que se ocupen de sistemas complejos organizados.
Veamos algunos ejemplos:
Para clasificar una imagen, tomamos como entrada un vector con todos los píxeles de la imagen (o mejor dicho 3 vectores, uno por canal de color según el esquema de colores básicos RGB -Rojo, Verde, Azul) y a la salida producimos uno número limitado de posibles respuestas, por ejemplo, 10 o 100 categorías de imágenes (perros, gatos, casas, coches, personas, etc.)

Un clasificador es un sistema complejo organizado, tiene miles de variables de entrada y unos pocas de salida y alguna forma de organización interna de las imágenes (los objetos reales). Fuente: adaptación propia de CS321 “Convolutional Neural networks and visual recognition”, U. Standford
Para hacer reconocimiento de lenguaje natural, las entradas pueden ser los fonemas pronunciados o bien las palabras de un texto, mientras que la salida pueden ser fonemas o texto en otro idioma por ejemplo, como sería el caso del traductor automático de Google. En este caso además se le añade memoria para conectar palabras posteriores con otras pronunciadas anteriormente que acaban de dar significado a las frases.
Nuevamente, a la entrada tenemos un vector con múltiples características, típicamente decenas o centenares y a la salida una forma de onda a pronunciar o un texto traducido, es decir otro problema de complejidad organizada (la organización viene dada por las reglas del lenguaje, las de escritura o las reglas de pronunciación).
Un último ejemplo (se podrían poner incontables más), la predicción de valores de cotización de una empresa en la Bolsa y la realización de transacciones automáticas a alta velocidad (conocidas como high frequency trading -HFT-). Aquí, se producen miles o a veces millones de transacciones por día, que toman en consideración, entre otras, las siguientes variables de entrada (decenas o centenares según la complejidad del modelo) :
Los indicadores contables fundamentales de la empresa, el país o países donde opera y sus ratios de riesgo, deuda y solvencia, las variables macroeconómicas de la zona geográfica donde se encuentre, la evolución de la competencia, el grado de maduración del mercado, etc.
La salida son dos valores: «Compra» o «Vende» (y «cuánto» si sofisticamos el modelo para hacerlo más realista de acuerdo a las diversas estrategias de inversión existentes). La «organización» del sistema se basa en la ley de la oferta y de la demanda, las economías de escala, el efecto de la depreciación de las monedas por las políticas de los bancos centrales, la inflación, las barreras arancelarias, etc., por lo que puede verse que se trata de otro sistema de complejidad organizada.

Modelo de transacción algorítmica. Puede observarse que se trata nuevamente de un sistema de complejidad organizada. Fte: Siraj Raval, Youtube, «Stock Price Prediction | AI in Finance»
¿Por qué hay sistemas de IA que son capaces de predecir también mientras que otros no parecen funcionar de forma satisfactoria o no pueden hacer predicciones a más largo plazo?
La respuesta está en que muchos de estos sistemas complejos funcionan en un régimen determinista (lo que en el lenguaje de la complejidad se denomina bajo la influencia de un atractor fijo -la solución dadas las condiciones iniciales presentadas-, pero a partir de determinado momento pueden entrar en régimen de atractores periódicos (el sistema oscila sucesivamente a 2, 4,8,… atractores sin hacerlo de forma periódica exacta) o entrar en un régimen caótico donde resulta prácticamente imposible hacer predicciones, más allá de un horizonte temporal muy corto, que viene dado por los denominados exponentes de Liapunov.
La dificultad estriba en saber en qué zona del diagrama espacio-temporal se encuentra un sistema en un momento dado, en función de las variables de entrada.

Las distintas zonas en que puede encontrarse un sistema complejo, en este caso para la predicción de la población (2D, para poder visualizarse). Fuente: Curso «Introduction to complexity», Univesidad Santa Fe (EEUU). Textos sobre IA: elaboración propia.
Así, la figura de arriba se refiere a un modelo de predicción de la población en función de la tasa de nacimientos y la de muertes y de la población máxima existente en un momento determinado, denominado el «mapa logístico», en función de una cantidad «R» que es la diferencia entre esas dos tasas (normalizadas por la población máxima). Se trata de un modelo muy simple en 2D para poder ser visualizado. Puede observarse una amplia zona con valores de R hasta 3, en el que el sistema se ve «atraído hacia una única solución» y por tanto puede ser predicho, por ejemplo con regresión lineal, una máquina de vectores de soporte -SVM en inglés- o una red neuronal artificial.
Después se pasa a una zona en la que las soluciones se vuelven oscilantes entre varios atractores. En esta zona, para que una IA funcione bien, ha de hacer uso de modelos no lineales como los SVM y las redes de neuronales para captar la «oscilación» y se debe procurar, más que nunca, que los datos de entrenamiento constituyan una muestra representativa del espacio de las muestras de producción donde se usará el sistema, por ejemplo, exagerando mucho para que se me entienda, entrenar un reconocedor de caras con una muestra con un gran mayoría de blancos caucásicos y después utilizarla en una aplicación con mayoría de población negra.

Atractor de yu-wang. Tiene varios atractores, por lo que se encuentra en zona oscilante. Fte: wikipedia
En cuanto a la zona de régimen caótico, si el espacio en que se mueve nuestra aplicación de IA resulta estar en ese área (y lo difícil es saberlo), o bien no funcionan bien las predicciones de la IA o bien tienen una vigencia muy corta. Las predicciones que superan este horizonte (de Lyapunov) no son fiables, porque dependen enormemente de las condiciones iniciales y pequeñas variaciones pueden provocar cambios enormes en los resultados (el conocido «efecto mariposa«). Por eso, dado que los datos de entrada siempre tienen una incertidumbre asociada a la de los instrumentos de medición de sus valores, resultan básicamente inútiles para realizar predicciones para cualquier IA, pues se trata de limitaciones fundamentales a la naturaleza del problema, no del algoritmo de búsqueda de soluciones.
No obstante, esta impredecibilidad de los sistemas complejos en general y del régimen caótico en particular, es muy diferente a la pura aleatoriedad. En el primer caso, a pesar de todo ello sí es posible establecer alguna verdades universales sobre el sistema, mientras que en el segundo no podemos saber nada a priori, hasta que el suceso concreto se materialice en un valor (no tiene sentido que una IA prediga el número que va a salir en la lotería. Si entrenamos una IA en esta tarea con los números de pasados sorteos, sus predicciones tendrán un valor parecido a las «alucinaciones» de los seres humanos, es decir, verá relaciones entre variables que realmente, no están ahí.
Para concluir este artículo, querría señalar que aquí se ha hecho un análisis de lo que puede esperarse de las predicciones de una IA en un caso muy simple con una única variable. En los sistemas complejos organizados de los que se ocupan las IA, como se ha visto, los espacios de posibles soluciones son multidimensionales, en general de una alta dimensionalidad, por lo que a pesar de poder utilizarse técnicas de reducción de la dimensionalidad -como la PCA– que faciliten el análisis, es preciso que en el futuro nos dotemos de las herramientas matemáticas (de análisis vectorial y matricial) o de simulación adecuadas, que nos permitan identificar o anticipar (o a la propia IA si tiene ese nivel de automatización) cuándo estamos operando en un régimen de atractor fijo, periódico o caótico y las maneras de poder influir en el sistema para sacarlo especialmente del régimen caótico, en definitiva, de fijar los límites a lo que una IA puede hacer en un problema en concreto. Creo que estas consideraciones fijan un interesante camino para aquellos investigadores de la IA que quieran afrontar este importante reto.
Espero que hayáis disfrutado de artículo, con mucho material ajeno y propio y que considero un buen ejemplo de las habilidades que con el tiempo y la experiencia han de ir adquiriendo los expertos generalistas.
¡hasta el próximo artículo!
Para ver la primera parte del artículo, pulsa aquí