Vivir del error


Desde el inicio de la Inteligencia Artificial (IA) se han hecho esfuerzos por desarrollar organismos artificiales (robots) que sean capaces de imitar la complejidad del ser humano, asi mismo como ser capaces de actuar de manera independiente tal cual si tuviesen conciencia. En esta tarea, la naturaleza ha probado ser mucho mas efectiva que la manada de hombres y mujeres que pasan sus dias, jugando con Legos® en sus laboratorios.

La tecnica de la naturaleza para crear organismos complejos y ultimadamente inteligencia a partir de biomoleculas sin vida, es sencilla: hacer que las mismas hagan copias de si mismas que incorporen uno que otro error ocasional, y luego esperar un millardo de años o algo asi.

Lo que ocurre es que las copias que posean errores que les den ventaja, es decir, errores que les permitan ya sea replicarse a mayor velocidad o evitar ser destruidas por mas tiempo—tenderan a ser mayoria sobre sus rivales. Tarde o temprano, los errores ventajosos se transformaran en entidades mas complejas, que eventualmente toman la forma celular, con capacidades relativamente complejas en lo que se refiere a metabolismo y autoreplicacion. Mas errores hacen que estas celulas se junten para formar los primeros organismos multicelulares. Aun mas errores producen organismos que se hacen cada vez mas complejos y que exhiben comportamientos cada vez mas sofisticados. El resultado final, organismos inteligentes que muchas veces pasan su vida entera tratando de descifrar lo que la naturaleza hace pero con la meta de reproducirlo en menos tiempo.

¿Puede la IA usar el poder de la evolucion? La creacion de software que evoluciona cuenta con su historia. A principios de los años 50, los cientificos dedicados a la computacion trataron de aplicar tecnicas evolucionarias a la programacion. La tecnica preferida era la de jugar con la lista de dos programas y tomar pedazos de una e incrustarla en la otra. Esto es similar a lo que ocurre en la naturaleza cuando el ovulo y el esperma se funden: sus cromosomas se alinean intercambiando material genetico, de modo tal, que el feto resultante contendra material genetico de ambos padres. Aun los organismos que se reproducen mediante el proceso de la clonacion, intercambian material genetico. El intercambio le sirve a la evolucion en dos maneras: permite la creacion ocasional de descendientes que poseen las mejores caracteristicas de ambos padres, y de manera mas infrecuente, la oportunidad para la aparicion de errores (mutaciones) que ayudarian a la evolucion del organismo.

Desafortunadamente lo que funciona de manera perfecta en la naturaleza, es un desastre en una computadora. El problema es que los programas para computadoras deben ser sintacticamente precisos, es decir existe poco espacio de maniobra para la forma como las instrucciones deben ser agrupadas, asi como el orden de aparicion en cada grupo. Si ocurre cualquier cambio, el programa se declara sin sentido y la computadora se niega a ejecutarlo.

Este era el estado del asunto hasta que aparecieron los algoritmos geneticos, desarrollados primeramente por John Holland quien represento programas en cadenas de 1’s y 0’s muy parecidas al ADN pero formadas de bitios. La informacion estaba codificada como una serie de preguntas cuya respuesta era si-o-no. Estos sistemas clasificadores eran propicios para ser usados en los experimentos de mutacion debido a que los programas podian ser diseñados para que funcionaran con todas las combinaciones de 1’s y 0’s. Es mas Holland probo que cualquier programa puede ser representado como una cadena de 1’s y 0’s.

Este tipo de tecnica es particularmente efectiva para resolver problemas que contienen muchas variables, cada una de las cuales posee muchos valores posibles, haciendo su evaluacion manual prohibitiva desde el punto de vista del tiempo. Actualmente se usa para resolver ecuaciones matematicas, diseñar esquemas de control, etc.

Por supuesto la tecnica del algoritmo genetico, presenta el inconveniente que el proceso para convertir un programa dado en una cadena de 1’s y 0’s es excesivamente largo. Una tecnica para resolver este punto es usar lenguajes de programacion que sean paralelos, es decir, que no necesiten que sus comandos se ejecuten paso-a-paso.

La evolucion de la natualeza ofrece un camino seguro para fabricar un cerebro. En caso que no seamos lo suficientemente inteligentes para desarrollar IA en menos tiempo ¿estaremos dispuestos a esperar?

KeyWords: “Algoritmo genetico”; “Inteligencia Artificial”; “Software”; “DNA”

2 Responses to Vivir del error

  1. NBV says:

    Siempre he creído que el teorema de Gödel imposibilitaría que un cerebro (el humano) cree un cerebro artificial, ya que ello implicaría darle reglas que nosotros no podríamos entender (por la autoreferencia). Supongo que la respuesta puede ser del tipo genético.

    Pero todo eso lo he pensado a nivel de habladera de gamelote, claro.

    Saludos.

  2. Elijah says:

    Es un buen punto sobre todo por lo de la autoreferencia. Sera por eso que los esfuerzos en IA no han sido recompensados con exito total. El enfoque evolucionario presenta ventajas sin embargo, pues no depende de suministrar instrucciones a un automaton, sino mas bien dejar que el codigo evolucione. Ahora el codigo no es genetico en el sentido biologico, asi que debemos imaginarnos unas influencias que se parezcan a las externas recibidas por el material genetico animal.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: