Inteligencia evolutiva

En el entorno científico-tecnológico, con un buen nombre se tienen más probabilidades de llegar a algún sitio. Piénsese en el “método de la burbuja” como algoritmo de ordenación, en la “partícula de dios” (bosón de Higgs), en la computación cuántica o en la nanotecnología. Marketing científico, podríamos llamarlo. Viene esto a cuento de que, la semana pasada, asistí a la Jornada de Inteligencia Computacional Aplicada al Negocio, organizada por el ITI y me llamó la atención los nombres tan atractivos que tienen los tipos de algoritmos de que se trata en este campo: redes neuronales, inteligencia de enjambre, computación evolutiva… son nombres que inspiran.

Una de los ponentes, Arthur Kordon, de Dow Chemical, presentó una clasificación de las diferentes ramas de la Inteligencia Computacional que me resultó bastante esclarecedora y que paso a comentar de manera muy resumida. Algunas de estas técnicas son utilizadas en los sistemas de detección y protección de seguridad de la información. Ya hablaremos de ello.

Agentes inteligentes.
Se construyen diferentes agentes especializados, con un (micro)comportamiento y un objetivo definido en términos locales y emergen (macro)patrones de comportamiento en el nivel más alto del sistema. En otras palabras, definimos el comportamiento de partes simples del sistema y esperamos a que el resultado se muestre en un comportamiento global deseable.

Inteligencia de enjambre.
De nuevo, se definen agentes simples o boids, todos iguales, que interactúan localmente entre sí y con el entorno y que, sin que se haya definido un control centralizado, hacen emerger un comportamiento inteligente global y auto-organizado que consigue optimizar el sistema.

Computación evolutiva (algoritmos genéticos, entre otros).
Se expresan las ecuaciones para modelar un fenómeno en forma de algoritmos y se realiza una simulación evolutiva haciéndolos competir para alcanzar una solución óptima, a base de la recombinación de sus características y la selección de aquellos que tienen mejor comportamiento.

Lógica difusa.
Se consigue la optimización del control de un sistema complejo mediante el uso de sensores con variables no binarias, expresadas en términos cercanos a los usados por los seres humanos (difusos) y la aplicación de reglas de inferencia que utilizan esos valores “difusos”.

Redes neuronales.
Se consigue el modelado automático y el aprendizaje suministrando datos experimentales a una red que simula el funcionamiento de un cerebro animal (quizás decir humano sea decir demasiado).

Máquinas de soporte vectorial.
Se consigue la clasificación de datos mediante sistemas de modelado automático que aprenden a base de datos experimentales y se aproximan a la optimización de manera automática.

En general, se podría decir que todos estos métodos tienen en común la aceptación de que se renuncia a una solución exacta y analítica del sistema y se deja en manos de la auto-organización la obtención de una solución razonablemente buena del problema. Es una especie de imitación de los sistemas evolutivos naturales. En cierto modo, obtenemos una solución sin entender en el nivel macro cómo se llega a ella. Nos ocurre lo mismo, por ejemplo, cuando somos capaces de entender el funcionamiento de una neurona, pero no el de los procesos cerebrales de alto nivel. ¿No es inquietante?