En este artículo me gustaría añadir una nueva dimensión a los temas tratados en este blog, de acuerdo con la filosofía de «Experto-generalista» que ya he comentado en anteriores ocasiones.  Quisiera hablar de las conexiones entre los sistemas complejos y la Inteligencia Artificial (IA),  pues es una tema que está ocupando una parte de mi atención en los últimos tiempos y me parece clave para el desarrollo futuro de la IA.

Espero compensar el considerable tiempo que me ha tomado escribir este artículo con una extensión mayor de la usual y una profundidad también mayor (en mi opinión).  Lo cierto es que como me ha sucedido en la gran mayoría de los artículos de este blog,  escribir este tipo de artículos me está llevando un tiempo mayor de investigación del que inicialmente había previsto, así como la selección  de temas para hablar (tengo mis limitaciones cognitivas naturalmente), la identificación de fuentes relevantes y, sobre todo, para la aportación, modestamente, de mi visión personal sobre el tema, a fin de no convertirme en una agregador-traductor de contenidos de otros.

¡En fin, espero que la larga espera de este artículo haya merecido la pena!. ¡Los caminos de los expertos -generalistas no son fáciles!;->.

Para entender esta relación entre IA y sistemas complejos, me voy a remontar a una descripción sobre los problemas que investiga la Ciencia que ya tiene ¡70 años! y aún sigue vigente, obra del científico Warren Weaver, aparecido en «The American Scientist«, en 1948: la Ciencia ha tratado históricamente con tres tipo de problemas, los problemas de simplicidad, los problemas de complejidad desorganizada y los problemas de complejidad organizada.

Sistemas complejos: atractor de Lorenz

Durante los siglos XVII, XVIII y XIX, la Física aprendió a manejar problemas simples de dos variables, lo que produjo  desarrollos tan importantes como el teléfono, la radio, el automóvil, el fonógrafo, los aviones, el cine, la turbina y las centrales hidroeléctricas, por citar sólo algunos de los más relevantes. Por el contrario las denominadas «ciencias de la vida» (la biología y la medicina principalmente), donde frecuentemente aparecen relacionadas varias docenas de variables en formas sutiles, aunque también experimentaron indudables avances, no fueron de un carácter ni muy cuantitativo, ni analítico. Apenas empezaron a proporcionar explicaciones detalladas de los mecanismos físico-químicos subyacentes o constituyeron sucesos biológicos significativos. Las herramientas del científico para manejar esta «simplicidad» eran la deducción, la inducción,  el álgebra y el cálculo, especialmente las ecuaciones diferenciales donde se relaciona una magnitud con su velocidad de variación o con su aceleración (o velocidad de cambio de su velocidad).

A partir del S.XX las ciencias físicas cambiaron de enfoque y en vez de tratar sólo con dos, tres a lo sumo cuatro variables, se fueron al otro extremo y desarrollaron métodos analíticos para tratar con miles de millones de variables, lo que llevó al desarrollo de la teoría de la probabilidad y mecánica estadística, en lo que vinieron a llamar, problemas de complejidad desorganizada.

¿Qué entiendo por complejidad desorganizada?. La dinámica clásica del S.XIX era adecuada para analizar y predecir el movimiento de una bola de marfil en una mesa billar, esto es un problema de simplicidad. Incrementando la dificultad, uno puede analizar dos  o incluso tres bolas de billar. Pero si uno intenta analizar 10 o 15 bolas al mismo tiempo, el problema acaba siendo inmanejable, no por su dificultad teórica, sino por el trabajo que requiere, con los detalles específicos de tantas variables, lo convierte en impracticable.

El billar es un ejemplo de sistema de simplicidad. Como intuitivamente saben los jugadores de este deporte, podemos calcular con precisión la trayectoria de una bola de billar e incluso la de una segunda bola al chocar con la primera (bueno realmente la primera con la segunda). Fuente: elaboración propia.

Sin embargo si imaginamos un gran tablero de billar con millones de bolas rondando por su superficie, la gran sorpresa es que el problema se vuelve más fácil, porque son aplicables los métodos de la mecánica estadística. Es decir, naturalmente no se puede seguir la historia detallada de una bola específica, pero se pueden responder a importantes preguntas con una precisión útil a efectos prácticos, como:  ¿cuál será el recorrido en promedio que hará una bola antes de chocar con otra? ¿cuántas bolas por segundo  golpean un tramo determinado de mesa?, en promedio, ¿cuántos impactos por segundo experimenta una bola? Esto es complejidad desorganizada, es decir, cuando existen un gran número de variables  y además cada una de ellas tiene un comportamiento individual errático o incluso totalmente desconocido.

Complejidad desorganizada: millones de bolas de billar, cada una moviéndose en direcciones aleatorias o erráticas. Aún podemos decir cosas útiles del conjunto de bolas. Fuente: elaboración propia.

Así, los métodos estadísticos no aplicarían si uno dispone las bolas en un fila paralela a uno de los lados de la mesa y comienza a moverlas en trayectorias perfectamente paralelas a la fila original. Las bolas nunca chocarán con otras, ni con los laterales y por lo tanto no tendremos una situación de de complejidad desorganizada.

Complejidad organizada. Hay múltiples bolas de billar que corren en paralelo aunque puedan ir en direcciones opuestas, lo que introduce una forma de organización. Ya no aplica la estadística aquí. Fuente: elaboración propia.

Este método incrementa su precisión con el número de variables. Un ejemplo de aplicación en el que este método proporciona una gran exactitud es el diseño de centrales telefónicas: la probabilidad de congestión de un circuito, las frecuencia de llamadas por hora, etc. Otro ejemplo completamente distinto es el de las compañías de seguros. Aunque estas últimas empresas no pueden saber cuando va a fallecer una persona determinada, tienen un conocimiento bastante preciso sobre la muerte de las personas en general, que depende de la frecuencia media con la que ocurren las muertes según la edad y gracias a este conocimiento puede establecer sus primas de manera que tengan estabilidad financiera (y no quiebren por tener que hacer efectivas las pólizas suscritas por acumular demasiados siniestros).

Con estos dos ejemplos se puede apreciar toda la variedad de aplicaciones de las técnicas estadísticas a la complejidad desorganizada. Estas situaciones pueden aplicarse tanto a supuestos donde la teoría sobre cada evento individual es perfectamente conocida (llamadas en central telefónica), como a otros eventos rodeados de un completo misterio, como la cadena de eventos que conducen a la muerte de una persona (compañía de seguros).

De hecho, los ejemplos son anecdóticos y no deben enmascarar, la realidad del uso extenso que hace la ciencia de estos métodos estadísticos: los movimientos  de los átomos que forman la materia, las leyes de la termodinámica, los movimientos de las estrellas que forman el universo. Y aún más, la cuestión de la evidencia científica y como el conocimiento se infiere de la evidencia, depende completamente de estas ideas estadísticas (niveles de confianza, errores de tipo I y II, test de significación estadística, máxima verosimilitud, etc.), de manera que las nociones de probabilidad son esenciales en cualquier teoría del conocimiento (la epistemología, que es la base seamos conscientes o no de todo el método científico).

Representación de los valores posibles de la probabilidad de un error tipo II (rojo) en el ejemplo de un test de significancia estadística para el parámetro μ. El error tipo II depende del parámetro μ. Mientras más cerca se encuentre éste del valor supuesto bajo la hipótesis nula, mayor es la probabilidad de ocurrencia del error tipo II. Debido a que el verdadero valor de μ es desconocido al hacer la presunción de la hipótesis alternativa, la probabilidad del error tipo II, en contraste con el error tipo I (azul), no se puede calcular. En definitiva las verdades científicas se prueban a través de la estadística. Fte: Wikipedia.

Pero como el lector (o lectora) avispado/a habrá comenzado a intuir, entre la simplicidad y la complejidad desorganizada, queda un territorio amplio por explorar. La importancia de esta región no es tanto el número de variables involucradas, frecuentemente muchas, pero no un número ingente como el número de moléculas en un grano de sal, por ejemplo, sino que en estas variables existe una propiedad emergente, alguna forma de organización. Es por eso que a estos problemas se les llama de complejidad organizada.

¿ Y qué tipo de problemas son los de la complejidad organizada? pues son los que surgen de preguntas como: ¿es un virus un organismo vivo?, ¿qué es un gen y como la constitución genética original de un organismo se expresa a sí misma en las características desarrolladas en un adulto?  Todos ellos son problemas que tratan simultáneamente con un considerable número de factores que están interrelacionados con un todo orgánico.

Pero este tipo de problemas no se limita a la biología. ¿De qué depende el precio del trigo?, ¿cómo se puede estabilizar la cotización de una moneda?, ¿hasta qué punto es seguro depender de la interacción libre de la oferta y la demanda en un mercado?, ¿hasta qué punto deben emplearse sistemas económicos de control para prevenir grandes oscilaciones que pasan de la prosperidad a la depresión? Estos problemas obviamente son complejos pero implican analizar los sistemas como un todo orgánico, con sus partes íntimamente interrelacionadas.

Y un último grupo de ejemplos para no extenderme: ¿cómo puede explicarse el comportamiento organizado de un grupo de personas como un sindicato, un grupo de fabricantes, una minoría racial o una empresa?.

Estos problemas y muchos otros de la biología, la medicina, la psicología, la economía o la política son demasiado complicados para las técnicas de la simplicidad del S.XIX y tampoco pueden ser tratados adecuadamente mediante los métodos estadísticos del S.XX (de su primera mitad para ser más precisos). Hace falta pues, desarrollar un conjunto de técnicas para tratar con la complejidad organizada y a ello es a lo que se ha dedicado la Ciencia y  70 años después de ser formulado el problema por primera vez, quedan aún muchas cosas por descubrir y técnicas por desarrollar en este sentido.

Los desarrollos de la complejidad se están haciendo mediante dos vías:

  1. A través de los desarrollos teóricos sobre los sistemas complejos (una parte de los cuales son además sistemas caóticos), el estudio de sistemas con un número no entero de dimensiones (como los fractales), los sistemas dinámicos, la incertidumbre de nuestras predicciones en estos sistemas (los exponentes de Lyapunov) que nos han permitido hacer ciertas predicciones o medir al menos la incertidumbre de nuestras predicciones y también a través de los desarrollos producidos en la teoría de la información (recordemos a Shannon).

Fractal:es un objeto semigeométrico cuya estructura básica, fragmentada o irregular, se repite a diferentes escalas. En este caso un helecho. Muchos objetos de la Naturaleza son fractales.

En este punto, hay que aclarar que no tiene nada que ver lo que la gente común entiende por «complejo» con la definición que entienden los científicos de «complejo». De acuerdo con el físico y gurú del «management», creador de la Teoría de las Limitaciones (Theory of Constraints), Dr. Eli Goldratt, para el público general un sistema complejo sería un sistema que consta de muchos elementos, como por ejemplo un automóvil, mientras que, si sobre ese mismo sistema podemos establecer una serie de relaciones causa-efecto, de manera que al final sólo depende para ser gobernado (y predicho) de unos pocas variables (causas raíz o en otro contexto, grados de libertad), como un automóvil, que al final depende del acelerador, del freno y de la dirección x para conducirlo -de forma resumida-, entonces el sistema no es complejo en el sentido científico del término, sino simplemente complicado.

Sistema Complicado: hay múltiples efectos intermedios para gobernar el sistema (Goal), pero sólo dependen de dos variables bajo nuestro control. Fuente: Elaboración propia a partir de Goldratt.

Mientras que un sistema con pocos elementos, pero en el cual no podemos establecer apenas relaciones entre sus elementos y que, por lo tanto, su gobierno y predicción depende de muchas variables o de pocas pero completamente desconocidas, se dice que es un sistema complejo.

Sistema complejo: apenas tenemos información de cuántas variables hay y cómo influyen las variables en la consecución del objetivo (goal). Fuente: elaboración propia a partir de Goldratt

Por el contrario, los sistemas complejos tienen una serie de propiedades que los caracterizan (que pongo en relación con la IA y la Naturaleza según los casos ):

  1. Están formados por componentes o agentes que son simples, comparados con el sistema completo (por ejemplo abejas respecto al comportamiento de la colmena o las neuronas respecto del comportamiento del cerebro).
  2. Tienen interacciones no lineales entre sus componentes (esto es, no son la suma ponderada de acciones de otros componentes). Gracias a ello estos sistemas hacen cosas «interesantes» como las redes neuronales y al mismo tiempo resulta más difícil su «explicabilidad».
  3. No hay un elemento central de control de la actuación de los componentes, que toman sus decisiones de forma autónoma.
  4. Aparecen una serie de comportamientos emergentes a nivel global:
  • Organización jerárquica (por ejemplo en un red neuronal que tiene capas con una sucesiva abstracción para la detección de bordes horizontales, verticales, esquinas, bocas, caras, miembros del cuerpo y cuerpos enteremos conforme añadimos capas a la red).
  • Procesamiento de la información (el sistema como un todo recibe información de su entorno y de su propio estado y usa dicha información para tomar decisiones globales que afectan a todo el sistema, no las toman los componentes. Este es el comportamiento de los «agentes inteligentes que examinamos brevemente en este artículo).
  • Dinámica: todo estos sistemas cambian sus patrones de comportamiento en el espacio y en tiempo  de formas «inesperadas» y precisamente lo que intentan muchos sistema de análisis predictivo es anticipar la naturaleza y sentido de estos cambios, como por ejemplo los sistemas automáticos para la predicción de valores en la Bolsa, que vimos en el caso de Goldman Sachs)
  • Evolución y aprendizaje: todo estos sistemas evolucionan en el sentido darwiniano del término (hay una rama de la IA, que se llama computación evolutiva que hace precisamente esto) y aprenden de sus acciones (esto es lo que la técnica de la propagación hacia atrásbackpropagation– junto con la técnica de optimización del Descenso Estocástico del Gradiente que está en la esencia de la mayoría de los algoritmos de aprendizaje automático).

2. La segunda vía de avance de los sistemas complejos (en el sentido científico del término que acabamos de examinar) es gracias a los ordenadores. Estos dispositivos electrónicos son las grandes herramientas que nos han permitido lidiar cada vez mejor con la complejidad organizada. Con su enorme velocidad y memoria, pueden llevar a cabo cálculos  de una enorme complejidad que nos permiten tratar con problemas que son demasiado complicados.

Si como puede comprobarse a través de la Historia, la ciencia necesita cada vez más datos para dar soporte a sus teorías, puede decirse sin error, que sin los ordenadores, la ciencia a mediados del s.XX habría tenido grandes dificultades para avanzar. Y si los ordenadores son la herramienta, las simulaciones son la técnica que nos está empujando, especialmente en este principio del s.XXI cuando los ordenadores han empezado a tener la velocidad y memoria adecuados para llevar a cabo problemas intratables hasta la fecha, en un tiempo razonable,  como el aprendizaje profundo, así como la posibilidad de simular un entornos, centenares o miles de veces para acelerar el aprendizaje como en el aprendizaje por refuerzo.

Bien, todo esto es muy interesante, dirá el lector (o lectora) pero, ¿dónde interviene la IA es todo esto? Pues precisamente en que los problemas complejos organizados son el tipo de problemas que estamos tratando de resolver con el aprendizaje automático y la IA.

Para saber más tendrás que mirar el siguiente artículo de esta serie.

¡Hasta pronto!

 

Posted by santiago

Deja un comentario