Hace muchos años un equipo de ingenieros desarrolló un sistema que podía diseñar circuitos electrónicos por su cuenta. Lo hacía mediante una técnica llamada «programación evolutiva» y el caso es que consiguió crear un filtro de ruido que superaba cualquier cosa hecha con anterioridad por el hombre. El problema es que no sabían cómo lo había conseguido.
La programación evolutiva es una disciplina de la inteligencia artificial que intenta replicar los mecanismos de selección natural en el diseño de sistemas. Se crean en el programa unas cuantas reglas de selección, las nociones básicas de construcción de sistemas y se deja que avance 100, 1.000 o 40.000 generaciones hasta ver si encuentra una solución al problema planteado.
En este caso se suministraron al programa las reglas básicas de los componentes de un circuito electrónico y el objetivo de crear un filtro de ruido. La cosa era muy sencilla: en cada generación, el sistema alteraba al azar un elemento con una nueva combinación de componentes, lo que podríamos definir como una «mutación» del sistema. Si el resultado era que mejoraba la reducción de ruido, se quedaba; si no, se eliminaba.
Al cabo de no sé cuántas generaciones, consiguieron su objetivo. El trasto era capaz de reducir el ruido en una señal de entrada de forma asombrosa. Mejor que cualquier dispositivo en el mercado o de cuyo diseño se tuviera noticia. Pero el problema era que no entendían cómo funcionaba. No se trataba de que careciera de manual de instrucciones, sino que aquello no tenía sentido. Una resistencia no llevaba a ninguna parte, pero si la quitaban el sistema funcionaba peor. ¿Por qué? No tenía lógica y el programa era (por supuesto) incapaz de explicar cómo había llegado a esa conclusión. Pero el caso es que hacía lo que se le había pedido y lo hacía de forma insuperable.
Unos años después, unos cuantos avances en inteligencia artificial después, el problema se está magnificando y la pregunta que empieza a surgir es si podemos fiarnos y poner en práctica las soluciones generadas por los sistemas de inteligencia artificial. Pongamos, por ejemplo, las redes neuronales retroalimentadas. Funcionan mediante un ajuste de parámetros en los que el circuito, de forma autónoma, va haciendo pequeños cambios hasta que la combinación de los valores de entrada y esos parámetros, aplicados a su operativa interna, generan el resultado deseado. ¿Cómo lo hace? ¿Por qué esos y no otros? Ni idea. Precisamente, las redes neuronales funcionan cada vez más como una «caja negra» que hace lo que se espera de ella, aunque luego haya que dedicar dos años a investigar cómo lo ha conseguido.
¿Podemos aceptar soluciones que no comprendemos de sistemas que funcionan de manera autónoma? En principio, la ventaja de la inteligencia artificial y los sistemas de aprendizaje automático sin supervisión es que son más rápidos que sus operadores en encontrar soluciones. Pero esto me lleva a la anécdota reciente de un sistema de reconocimiento de imágenes que tenía que identificar tanques.
Se le entrenó en el laboratorio para que los detectara en una serie de fotografías y, al cabo de unas pocas iteraciones, el sistema tenía una precisión alucinante. Entusiasmados, los del equipo propusieron una prueba de campo y el fiasco fue monumental. El sistema no daba una a derechas y era incapaz de diferenciar un tanque de una farola. ¿Por qué? ¿Qué había pasado?
El misterio se desveló al comprobar que las imágenes utilizadas con tanques siempre eran soleadas, mientras que las que no tenían tanques eran de días nublados o grises. ¿Podemos fiarnos de un sistema que no entendemos cómo ha llegado a sus conclusiones? Buen argumento para alguna película de ciencia ficción, supongo.