La naturaleza como modelo: Darwin, genetica e Inteligencia Artificial
El antropomorfismo es un rasgo psicológico de los seres humanos. Consiste en atribuir cualidades humanas a animales, objetos o fenómenos naturales. Por este rasgo nos parecen normales expresiones como “el sistema me lo recomendó”, o “el algoritmo se equivocó”, aunque sepamos que los sistemas y algoritmos de hoy no tienen consciencia de sí mismos. Por eso las noticias sobre el progreso de la Inteligencia Artificial (IA) frecuentemente contienen un toque de antropomorfismo, que dificulta valorar el sentido o importancia real de los avances.
- “La inteligencia artificial de Google está empezando a crear y seleccionar algoritmos para su evolución sin intervención humana” (14-abr-2020)
- “Por qué el camino más rápido hacia la IA a nivel humano puede ser dejar que evolucione por sí misma” (7-nov-2019)
- “Algoritmo genético evoluciona para optimizar el tránsito” (4-jul-2019)
Estas noticias no anuncian que los programas pueden evolucionar como un ser vivo, sino la utilización de algoritmos genéticos, una herramienta de la IA inspirada en el mecanismo de selección natural propuesto por Charles Darwin en su teoría de la evolución. Estos algoritmos han demostrado ser muy efectivos para resolver complejos problemas de optimización, en los que no existe una fórmula o procedimiento directo para encontrar la solución, y donde ésta se encuentra entre un número tan grande de posibilidades que es impensable probarlas una por una.
Imagen por WikiImages de Pixabay
La biología siempre ha mantenido una estrecha relación con el avance de la IA. Fenómenos y mecanismos de la naturaleza inspiran técnicas que simulan procesos observados en los seres vivos, para hacer que un sistema de IA realice una tarea. Las neuronas del cerebro, el comportamiento grupal de animales e insectos, así como los principios funcionales de la visión, son, junto con la selección natural, algunos de los fenómenos replicados en herramientas de IA. Las experiencias obtenidas, a su vez, ayudan a la biología a entender mejor los procesos de la naturaleza.
Ahora bien, ¿Qué son los algoritmos genéticos y dónde se utilizan? Empecemos con el uso. Un campo de la IA es la solución de problemas mediante búsqueda. En ellos se representa la situación del mundo mediante un grupo de atributos con valores numéricos. Puede ser la posición de las piezas en un tablero de ajedrez, el estado encendido o apagado de las bombas de un sistema de agua potable, o las coordenadas, velocidad y dirección de un vehículo. El problema consiste en encontrar o llegar a un estado del mundo deseado, atributos, con el mayor valor para nosotros.
Una variante de la solución de problemas mediante búsqueda encuentra la secuencia de pasos para llegar al estado deseado, como la ruta más corta para ir de un lugar a otro (lee nuestro artículo sobre este tipo de problemas). Otra vertiente encuentra el estado de cosas que tiene el mayor valor, de acuerdo con el criterio que establezcamos. Dichos problemas son llamados de optimización y es en ellos donde se utilizan los algoritmos genéticos. Estos son algunos artículos académicos con ejemplos interesantes de su aplicación:
- Valuación de inmuebles.
- Planeación del crecimiento de sistemas eléctricos (de investigadores de la Universidad Panamericana de México).
- Configuración de modelos de aprendizaje automático.
- Arquitectura de redes neuronales.
Veamos cómo funcionan los algoritmos genéticos con un ejemplo clásico muy conocido: el problema de las 8 reinas. Este problema consiste en encontrar la posición de 8 reinas en un tablero de ajedrez, de forma que ninguna reina esté amenazada por otra (Una reina puede atacar cualquier pieza ubicada en el mismo renglón, la misma columna o la misma diagonal que ella). La figura de abajo muestra las casillas amenazadas por una reina y un ejemplo donde 6 reinas están amenazadas.
En este ejemplo, la manera de representar el mundo es con 8 números, uno por cada columna, donde cada número es el renglón en que está ubicada la reina en esa columna. El ejemplo de la figura de arriba se representa por la secuencia [3,3,5,2,0,4,6,1]. Como hay 8 renglones y 8 columnas, el total de estados posibles es 8 elevado a la 8ª potencia: 11,777,216 posibilidades. ¿Cómo hacer para que un programa encuentre una solución?
El problema de las 8 reinas tiene 92 soluciones. Si escogemos posiciones al azar, podríamos encontrar una solución a la primera o en el intento 11,777,125 si las soluciones están al final de la lista. En promedio, podemos esperar encontrarla en 5,888,562 intentos. Evidentemente esto es muy tardado, necesitamos una manera de ir escogiendo los estados a revisar que nos vaya acercando a una solución. Aquí es donde entran los algoritmos genéticos.
Inspirados como dijimos en el proceso de selección natural, a cada estado del tablero se le llama individuo, el cual tiene un factor de aptitud, o valor, que para nosotros es el número de reinas no amenazadas. De esta forma, el individuo del ejemplo [3,3,5,2,0,4,6,1] tiene una aptitud 2, pues hay 2 reinas no amenazadas. La meta es encontrar un individuo que tenga una aptitud 8, todas las reinas sin amenaza.
El algoritmo genético sigue los siguientes pasos:
1. Se establece una población de individuos,
escogidos al azar, o de una nueva generación.
2. Se seleccionan 2 individuos (padres). Si la
aptitud de alguno de ellos es 8 terminamos.
3. Se genera un nuevo individuo (hijo) a partir de la
combinación de los padres y una mutación. Si la aptitud del hijo es 8
terminamos (¿Cómo hacemos esto? Formamos la secuencia del hijo tomando algunos
atributos de la madre y el resto del padre. La mutación cambia al azar alguno o
algunos atributos en un porcentaje pequeño de los casos. La figura ilustra el proceso
para el problema de las 8 reinas).
4. Si la aptitud del hijo cumple con un criterio
establecido, por ejemplo, mayor a la aptitud más baja de los padres, pasa a ser
parte de la siguiente generación (selección natural).
5. Si quedan más de 2 individuos no utilizados de
la población, y no se cumple algún criterio de paro anticipado, como encontrar al
individuo más apto hasta el momento, se regresa al paso 2.
6. Si hay individuos suficientes en la nueva
generación, se regresa al paso 1 para que la nueva generación sea la nueva
población.
7. Si no quedan individuos, la población se
extingue sin encontrar una solución.
En 50 ejercicios que hicimos de este problema, se encontró una solución con el algoritmo genético en un promedio de 20 segundos, luego de 231 mil intentos, 25 veces menos que el número esperado de 5.9 millones. Un gran ahorro de tiempo ¿no? La figura de abajo muestra 9 de estas soluciones.
Un ejemplo más impactante de la utilidad de estos algoritmos es un experimento que hicimos para predecir el resultado de la prueba COVID-19 (lee el artículo sobre el tema). Uno de los algoritmos utilizados se configura con 4 parámetros, 3 de ellos podían tomar 50 valores diferentes y el otro tenía 90 valores distintos, un total de 11.25 millones de combinaciones. Calcular la exactitud lograda por cada combinación toma 2 minutos, por lo que mi computadora portátil tardaría 42.8 años en evaluarlos todos. Utilizando un algoritmo genético, pudimos encontrar una solución que diera el mayor grado de exactitud en 12 horas.
La próxima vez que escuches una noticia sobre la IA que suene como antropomorfismo, piensa que tal vez se trate de un ejemplo más de cómo la naturaleza inspira a los investigadores de IA y aprendizaje automático. Es muy posible que la nota de cuenta de cómo esta inspiración lleva a algoritmos e ingeniosas aplicaciones que, si bien no dotan a los sistemas de una inteligencia a nivel humano, logran avances impresionantes en la solución de problemas que antes se pensaba imposible resolver. Y eso sí es noticia.
¿Qué opinas? Comparte tus comentarios abajo. ¿Te gustó este artículo? Lee otros artículos de nuestro blog IF Inteligencia Futura aquí.