Criaturas: Un ejercicio en creación
Fuente: Creatures Labs. http://www.creatures.net/
Stephen Grand, CyberLife Technology Ltd.
Tome una ordinaria rata de laboratorio. Rebane esta por la mitad y observe. Las dos piezas pueden retorcerse por un rato, pero pronto pararán de moverse para siempre. ¿Por qué sucede esto? La respuesta, por supuesto, es que algunos de los dígitos binarios que son las necesidades superiores ahora se desconectan de la mitad inferior. La rata original era una red firmemente integrada de subsistemas múltiples, y todas esas piezas eran necesarias de modo que la criatura pudiera vivir. No hay cosa tal como mitad de un organismo.
¿Por qué crear redes neuronales que no tienen ninguna química? ¿Por qué simular la genética sin un sistema digestivo? No hay cosa tal como mitad de un organismo, con todo la mayoría de las tentativas de generar agentes inteligentes o realistas se basan esencialmente en un solo mecanismo. De acuerdo, algunos personas están trabajando en redes neuronales, pero la genética se considera como los medios para llegar al final, en vez de una parte de un sistema integrado, heterogéneo. Las redes neuronales son ellas mismas generalmente entidades homogéneas, una clase de neurona, interconectada a una o a muchas de diversas maneras y realizando una sola tarea. Nosotros sabemos que nuestros cerebros no son así: Ellos están divididos en regiones que desempeñan diferentes tareas y contienen poblaciones de muy diferentes celdas. Es más, las redes neuronales artificiales emplean generalmente solamente las conexiones sinápticas directas para sus recorridos de la señal, a pesar de nuestro conocimiento que los cerebros verdaderos están nadando en los neurotransmisores que tienen funciones difusas y plurales.
Hay buenas razones para esto, no significa que estemos menospreciando a los investigadores que trabajan en tales acercamientos unimodales. Para un comienzo, los sistemas vivos verdaderos son tan confusos que los biólogos tienen problemas para entenderlos. Los investigadores que usan analogía artificial de tales procesos naturales, comprensiblemente, desean simplificar el objeto de su atención, de modo que puedan aprender las reglas subyacentes que hacen el trabajo. En segundo lugar, crear una red neuronal homogénea para realizar una sola tarea aún es difícil sin necesitad de construir múltiples, imagine sistemas interactivos cuyo comportamiento total es extremadamente complejo y duro de depurar.
El reduccionismo es un impulso compulsivo para un científico, pero para un ingeniero el riesgo serio que trae una aproximación homogénea es que fallará para entregar la emergente riqueza que nacen de las interacciones de sistemas complejos heterogéneos. La primera ley de la biología es que la "Naturaleza es perezosa"; ella hace lo mínimo necesario para obtener el efecto deseado. Esos organismos son combinaciones de muchos diferentes procesos y estructuras que sugieren que muchos de estos sistemas deben ser necesarios, y debemos prestar atención a esto en nuestras tentativas de mímico comportamiento vivo. Tomar un acercamiento holístico y el procurar crear un organismo " tan entero " pudieron sonar como una tarea valiente o aún temeraria. Sin embargo, exploremos las posibilidades y veamos qué podría ser hecho. ¿Cómo usted va a crear una cosa viva completa, exactamente?
Igor, pásame esa llave
Empecemos con un cerebro. Necesitamos que nuestra criatura haga un numero de tareas mentales, como controlar su foco de atención, procesar datos sensoriales, seleccionar un curso de acción, y secuenciar los pasos necesarios para llevar esa acción. No somos muy ambiciosos: Asumamos que estamos tratando de una criatura virtual -- un softbot. Eso significa que podemos brincarnos todo ese reconocimiento visual difícil y así sucesivamente, y proporcionar datos sensoriales bastante abstraídos al cerebro. Utilicemos algoritmos convencionales para proporcionar los datos ambientales e internos visuales, auditivos, táctiles, y los otros estados -- quizás cientos o también secuencias de datos separadas. También engañemos con el ordenamiento de acciones. Dejaremos las "escrituras de la acción", ordenar los movimientos individuales del músculo y las interacciones ambientales, más bien procuremos desarrollar un sistema neural de osciladores conectados o de algunos tales medios del control del motor.
Eso nos deja a nosotros enfocados en la atención y selección de acción. Nuestra red neuronal tiene que realizar así dos trabajos totales (que abarcan probablemente varias sub-tareas distintas), así debe ser una estructura heterogénea. También debe ser capaz de hacer una cierta clase de refuerzo de auto-aprendizaje, porque estamos intentando crear un agente creíble, que no debe ser supervisado y ser realista. Nuestro agente debe poder aprender acciones apropiadas en un ambiente sensorial complejo. Tal sistema es asíncrono, así que ningún lazo obvio existe entre la sincronización de cualquier refuerzo y de las acciones que lo causó. Esto es un mundo virtual sucio, ruidoso, así que no podemos esperar computar los términos confiables del error para la asignación del crédito. Finalmente, nosotros queremos que nuestra criatura aprenda de sus errores pero realísticamente. No deseamos verla tomar decisiones enteramente al azar -- debe poder formar generalizaciones de situaciones anteriores, relacionadas. Oh, casi me olvidé: forcémonos a ser puristas y exigir que las estructuras de los nervios son biológicamente plausibles, específicamente en el sentido de que no contienen ninguna construcción de arriba hacia abajo. Las neuronas individuales deben poder procesar todas sus funciones en forma autónoma, sin que cualquier parte del sistema necesitase saber el estado de la red entera (hay razones buenas prácticas de esto). Por lo tanto, la topología debemos sacarla nosotros mismos.
Nervios de silicio
Nosotros necesitamos que la red haga múltiples funciones y subfunciones, empezaremos diseñando algunas neuronas ricas y altamente configurables que actúen como una caja flexible de herramientas para construir la variadas partes de nuestro cerebro. Sabemos que cerebros reales son dinámicamente muy vivos -quizás caóticos. Sin embargo, necesitamos diseñar un sistema cuyo comportamiento podamos predecir de manera razonable. Así pues, introduzcamos alguna neurona que afecte el sistema en la etapa más temprana posible, de modo que la red no sea obligada a bloquearse como resultado de la retroalimentación positiva o de un rango dinámico escaso. Suponga que diseñamos nuestra neurona para actuar como chicle -- estírelo y déjelo ir (eléctricamente hablando), y la neurona se relajará de nuevo a su estado de reposo, rápidamente al principio y entonces más lentamente. Cuanto más lejos se disturbe, cuanto más rápidamente intenta relajarse, y más difícil llega a ser empujarla más lejos del equilibrio. Esto afectará no sólo el sistema, sino que también deja nuestras neuronas actuar como integradores, sensibles a la frecuencia así como la amplitud de las señales de entrada de información.
Podemos pasar el valor del estado actual a través de un umbral, para proporcionar a una señal de salida de la manera consagrada. Desviar el valor del estado a en el primer lugar significa generalmente sumar las entradas de información de cada célula y adicionar ese valor al estado. Sin embargo, puede ser que deseemos hacer algunas cosas más. Así pues, hagamos que el estado de la neurona funcione en forma configurable, de modo que podamos instalar comparadores, las puertas, y otras estructuras si las necesitamos. Porque estamos en el negocio de crear un organismo entero, tendremos que definir nuestras estructuras de los nervios usando genética simulada. Por lo tanto, especifiquemos esas funciones del estado inventando una cierta sintaxis de expresión, que pueden ser puestas en ejecución y ser interpretados rápidamente, y que es relativamente inmune de los errores de sintaxis causados por mutaciones.
Utilizaremos la teoría de pesos de Hebbian para modular señales de entrada de información, pero necesitamos que sea un dígito binario también. Suponga que nuestra criatura pone su mano en un agujero, y ese agujero contiene un cangrejo, que pellizca los dedos de la criatura. ¿Cuánto debe lastimar? Si el refuerzo (dolor) es demasiado fuerte, la criatura nunca pondrá su mano en un agujero otra vez, incluso si ningún otro agujero contiene algún cangrejo. Si es demasiado débil, las fuerzas que actuaban para recomendar la primera acción (hambre, quizás) harán que la criatura tome la acción otra vez. ¿Cómo podemos crear un resultado estadístico de aprendizaje válido pero asegurándonos de que la red no relanza acciones por comportamiento estadístico?. Empleemos la estrategia del chicle otra vez y definimos un sistema que pueda aprender fuertemente de un solo episodio pero que se olvide rápidamente de lo demás, pero no borre toda esa experiencia. La memoria a corto plazo que resulta previene así la repetición embarazosa, mientras que la memoria a largo plazo permite el sistema aprender de la probabilidad del refuerzo así como su intensidad.
Construyendo un cerebro
Nosotros tenemos una definición de neurona rica, flexible y dinámica, y podemos distribuir estas neuronas en clusters (llamémoslo "lóbulos") que se interconectan con cada otra y desempeñan las funciones necesarias para nuestro cerebro. ¿Cómo este cerebro trabajará? La atención es fácil: Conocemos que podemos configurar neuronas para actuar como integradores, construyamos un lóbulo de celdas configurado para este propósito (lóbulo de atención) y enviemos a la apropiada celda una señal cada vez que un objeto de ese tipo hace un sonido o se mueve. Podemos simplemente detectar la mas activa neurona para dirigir la atención de nuestra criatura al objeto que tiene actualmente la mayoría de la atención. El sistema sensorial entonces alimentará al cerebro de datos más ricos sobre este objeto específico, y el secuenciador de la acción lo tratará como el objeto para seguir encendido.
¿Pero que hay del aprendizaje del mecanismo acción-selección? Explicar esto es como describir un motor de chorro. Puedo explicar como trabaja el motor de chorro en una simple sentencia, pero si usted solo mira todos los tubos y válvulas en un motor real, observará que a menudo necesitan de complejas implementaciones. En este articulo, yo tengo un pequeño espacio para dar mi versión:
Imagine a una criatura "perfectamente bien informada "; es decir, una que sabe exactamente qué mejor hacer en cada situación perceptible diversa. Tal sistema tiene requisitos absolutamente simples: debe poder discriminar entre esas situaciones sensoriales, y cada "esquema sensorial" deberá recomendar la acción más apropiada. Por supuesto, no hay cosa tal como una criatura perfectamente bien informada (la capacidad de aprender de errores es una característica crucial de organismos vivos). Por lo tanto, una criatura práctica debe poder formar o modular las conexiones entre una opinión y una acción, para descubrir y recordar la acción más apropiada para cada opinión (una memoria de lazos). Cuál es más, una criatura práctica con un rango de equipo sensorial puede encontrarse en un número extenso de situaciones perceptible diversas -- mas lejos de lo que un cerebro práctico podría representar. Por lo tanto, debe poder salvar solamente esas situaciones en las cuales se encuentre realmente durante el curso de su vida, o quizás solamente las que han resultado ser significativos (una memoria de acontecimientos).
Dos lóbulos del cerebro pueden realizar estas tareas. El lóbulo del concepto tiene una gran cantidad de células (digamos 600), cada uno de las cuales se enciende solamente cuando todas sus entradas de información están operando. Estas células pueden formar y reformar sus conexiones con el lóbulo sensorial dependiendo de acontecimientos significativos. El lóbulo de la decisión tiene solamente un número pequeño de las células del integrador, una para cada acción que la criatura pueda tomar. Sin embargo, estas células son altamente dendríticas, porque necesitan formar conexiones con el largo número de salidas del lóbulo del concepto. Una vez más las dendritas son un recurso escaso, así que deben poder emigrar y mantener solamente las conexiones más útiles. Cualquier modelo dado de entrada sensorial de información causará una o más de las células del concepto-lóbulo se disparen. Estas salidas contribuirán o inhibirán la acción en una o más células de la acción, dependiendo de cómo es beneficiosa o dañina una situación dada que haya sido probada en el pasado. El aprender en tal sistema requiere así ajustes de peso a estas últimas conexiones, en respuesta a episodios de refuerzo, mas atrofia sináptica y migración para mantener solo estas memorias que prueban ser significativas.
Por supuesto, el aprender por sus errores no es suficiente: " Oops, caminar cerca de un acantilado no era una buena idea, yo recordaré eso la próxima vez" no es un pensamiento muy útil pues ya estás muerto. La red debe poder generalizar situaciones extremas. La criatura no tiene ninguna manera de saber, hasta que ha tenido experiencias confirmativas posteriores, que de las muchas entradas de información sensoriales activas son relevantes en todo momento. Por ejemplo: Estoy adolorido porque vi un carro acercándose y yo me atravesé y es miércoles, o porque me atravesé y es miércoles, o apenas porque vi un carro, o qué? Por esa razón, todas las permutaciones de las entradas de información actuales se deben representar simultáneamente en el lóbulo de la opinión.
Consideremos dos esquemas sensoriales similares si ellos comparten una o mas entradas. Por ejemplo, "Yo veo algo aproximarse; es un carro" es relacionado a una simple situación, "Yo veo algo aproximarse", lo cual puede ser recordado de una previa experiencia, tal como "Yo veo algo aproximarse; es una atractiva chica.". En el pasado la criatura debe aprender que es buena cosa que el aproximarse a chicas lindas es para besarlas. Este podría creer que una buena cosa generalmente ocurre cuando algo se acerca y es para besarlas. Sin embargo, cuando este conoce a un carro acercándose (y para su infortunio) responde tratando de besarlo, lo inevitable sucede, el dolor de la experiencia podría enseñarle a la criatura que autos acercándose no es para besarlos, mientras que la aproximación de lindas chicas siguen siendo para besarlas. La simple característica del acercamiento no es un buen indicador, a pesar de estas sobre-generalizaciones, son mucho mas realistas que simples acciones aleatorias. También significa que la criatura a menudo hará algo sensible en la ausencia de conocimiento confiable.
Hemos obviado muchos detalles importantes aquí, pero este cerebro se ve bien para nuestros propósitos. Sin embargo, ¿Que hay del esfuerzo para las buenas o malas escogencias de acción? ¿Cómo implementamos eso? El sistema tiene que aprender de manera no supervisada, y no hay "respuestas correctas" que uno pueda computar, son los eventos que suceden los que informan a la criatura si la acción o secuencia de acciones fueron sabias o imprudentes. Simple dolor y placer no son suficientes; la vida real es mucho mas multidimensional que eso. Suponga que ponemos el refuerzo en ejecución midiendo el efecto de acontecimientos externos en un conjunto de mecanismos impulsores. Por ejemplo, cualquier acción que aumente el mecanismo impulsor del dolor de una criatura es mala, y se debe castigar, mientras que cualquier cosa que disminuye su mecanismo impulsor del hambre es buena, y debe ser recompensada. Esto nos deja tener una interacción rica e intrincada entre los acontecimientos y el proceso de aprendizaje. Por ejemplo, suponiendo una criatura que elige jugar con una bola y que la experiencia reduce su mecanismo impulsor del aburrimiento grandemente, mientras que aumenta sus mecanismos impulsores del calor y del cansancio. Si el mecanismo de aburrimiento bajo mucho (además se cansó y se calentó) entonces hay recompensa, en cambio, si el mecanismo de aburrimiento bajo muy poco (además se cansó y se calentó) entonces hay castigo. Así, nuestra criatura puede aprender distinguir entre las buenas y malas circunstancias en las cuales jugar con la bola.
Sopa Química
Usted puede ser que se pregunte cuando voy a conseguir este acercamiento multisistematico de Inteligencia Artificial. ¡Éste es el momento! Suponga que representamos cada uno de esos niveles del mecanismo impulsor por la concentración de un bioquímico simulado. Además, suponga que ponemos el mecanismo de castigo-y-recompensa en ejecución por medio de reacciones químicas entre los productos químicos del mecanismo impulsor y que conducimos reductores o los incrementadores. Suponga que el resultado de esas reacciones es una subida de los niveles de un producto químico del castigo o de un producto químico de la recompensa. ¿No es eso terminología aritmética?
Bien, no. El concepto de un "modelo químico" es asombrosamente potente. Las redes de reacciones químicas son similares de muchas maneras a las redes de neuronas. Sin embargo, un cambio de la metáfora implica un cambio en características. Las reacciones químicas son más lentas que las señales eléctricas; son también conductores difusos de la información. Finalmente, la metáfora permite que consideremos nuevas construcciones dinámicas, tales como "catálisis". Así pues, agreguemos un sistema que modela un químico simple a nuestro agente. Modelar el comportamiento detallado de la proteína es quizás un dígito binario demasiado complejo y duro de predecir, así que definamos un modelo en el cual los productos químicos no tengan ninguna característica intrínseca, pero en los cuales son definidas sus interacciones por los objetos de la reacción: A+B >> C+D, donde están opcionales B, C y D. Esto nos deja simular reacciones de la substitución, de la fisión y de la fusión. También permite los catalizadores (>> de A+B; A+C). Hagamos la dinámica bastante realista, haciendo la instantánea reacción dependiente de las concentraciones de los reactivos. Mientras que haya mucho de A y de B, la reacción sucederá rápidamente, pero como A y B siguen siendo utilizados su porcentaje decrecerá y la reacción se enlentecerá.
¿Cómo interconectaremos este sistema químico al resto de la simulación? Aquí es donde el modelo se perfila. Inventemos algunos objetos tipo emisor de químicos, que secretan productos químicos en respuesta a cierta actividad, y los objetos tipo quimiorreceptor, que causan eventos en respuesta a niveles químicos. Podemos hacer estos objetos absolutamente complejos, dándoles umbrales, atenuadores, valores nominales, y gusto. Lo más importante, podemos darles la capacidad de modificar bytes (octetos de bits) arbitrarios en nuestro código. Un emisor de químicos emite así productos químicos en proporción con el valor actualmente en ese direccionamiento en memoria, mientras que los quimiorreceptores cambian el contenido de ese byte en respuesta al nivel de un producto químico dado. Porque estos bytes son direcciones arbitrarias, ellos pueden representar lo que queramos. Por ejemplo, estas direcciones podrían ser las direcciones de los parámetros o buffers dentro de las neuronas. Asociando un quimiorreceptor castigo-sensible a un lugar geométrico apropiado en un grupo de synapses, podemos generar así las señales necesarias para el refuerzo. Receptores y emisores asociados a los parámetros sinápticos de la fuerza pueden dejarnos instalar bucles de feedback químicamente conducidos para el synapse que controla la atrofia. Si decidimos modelar una cierta forma de nivel del despertar (sueño, quizás) en un lóbulo de neuronas, ¡podemos hacerlo simplemente asociando quimiorreceptores a sus parámetros del umbral y definiendo las reacciones químicas necesarias!
Conducir la modulación de las necesidades es simple y directo. Por ejemplo, podemos modular el mecanismo impulsor del hambre con un modelo químico completo del sistema digestivo. Hagamos la ingestión de un almidón el desbloquear el objeto de alimento en la circulación sanguínea de nuestros agentes. Podemos definir una reacción que convierta el almidón lentamente en glucosa, y otro par de reacciones que salven la glucosa como glicógeno, formando un almacén a largo plazo de energía. Asociando un quimiorreceptor a un byte que contenga datos sobre el número de los movimientos del músculo que la criatura ha hecho en un período, y haciendo esto emita una enzima que convierta la glucosa en el bióxido y el agua de carbono, nosotros podemos modelar la respiración. Asociar un receptor del glicógeno al byte apropiado en el código puede incluso hacer a ¡nuestra criatura morir si su energía salvada declina a cero!
Con éxito dando a nuestros agentes un sistema digestivo, démosles un sistema reproductivo también, pues pronto agregaremos genética, y quisiéramos que nuestras criaturas criaran. Defina simplemente la testosterona, estrógeno, progesterona, etcétera. Asocie un receptor del estrógeno adosado mutuamente con un emisor del estrógeno para hacer un oscilador, y tenemos un ciclo de la fertilidad para nuestras hembras. Podemos utilizar un quimiorreceptor sensible a los niveles del estrógeno a la producción del huevo, y podemos conectar la red entera de la reacción con sexo. Conducimos el producto químico para integrar comportamiento de acoplamiento con el cerebro.
Estamos consiguiendo quizá haber llevado poco, pero ¿qué sobre un sistema inmune? Si nuestro mundo virtual tiene bacterias, podemos cubrirlas con diversos antígenos y definir algunas reacciones del anticuerpo para nuestras criaturas. Una vez más los receptores y los emisores proporcionan la interfaz entre la química y fisiología. Pues la criatura acumula una inmunidad a una infección, las bacterias sucumben al envenenamiento por el antígeno. Por supuesto, las bacterias pueden también emitir toxinas, porque la red de la reacción de nuestra criatura es tan compleja ahora, que hay muchas maneras de las cuales un producto químico no nativo puede disturbar el sistema y los síntomas de la causa de la enfermedad. Podemos incluso modelar la producción de la histamina y hacer que nuestras criaturas estornudan, pasando infecciones a sus semejantes. Permitamos que la población bacteriana se desarrolle en un cierto plazo, ¡agregando una especie de coevolución a los procedimientos!
Observando reacciones perturbadoras que causen estas toxinas, no es difícil imaginar sobre medicinas que ayuden a balancear la química o suprima los síntomas emitiendo adrenalina en respuesta a altos niveles del mecanismo impulsor, que interfiere con la eficacia de otras partes del sistema, quizás incluso el cerebro. Podría continuar agregando otros sistemas fisiológicos verdaderos. Sin embargo, paremos allí y dejemos algo para que la evolución los descubra más adelante.
Maravilloso Mecanismo de Mendel
En vez del duro código para estas estructuras que lo haría permanentemente en el programa, definamos un sistema genético para configurarlo todo para nosotros. Cada objeto, sea una neurona, quimiorreceptor, o reacción, es totalmente autónomo, realizando su función sin preocuparse que hace esta pieza en el sistema entero. Así pues, podemos construir y configurar estos objetos simplemente definiendo una clase del gene para cada clase de estructura. Un gene del quimiorreceptor especifica así todos los parámetros necesitados para construir un objeto del receptor y describe qué lugar geométrico para asociarlo. Daremos a cada gene una cabecera, en la cual podemos fijar indicadores al control si el gene se aplica a los varones, a las hembras, o a ambas, y en qué etapa en el ciclo vital de la criatura (que puede ser químicamente controlado, por supuesto) enciende con el gene. Los genes que se encienden más adelante en vida pueden sustituir o suplir las estructuras de preexistencia, según el tipo de gene. Por ejemplo, las nuevas reacciones se pueden expresar en la pubertad al interruptor en el sistema reproductivo de una criatura.
Podemos ensamblar una cadena de estos genes en un solo cromosoma, que define totalmente nuestra criatura en forma neuronal y química (y morfológicas y postural). Cuando dos criaturas se acoplan, estos cromosomas pueden cruzarse encima para producir un descendiente que hereda la definición completa de sus padres. Las mutaciones al azar ocasionales pueden agregar la variación adicional a la piscina del gene, y podemos permitir los "errores del corte", que conducen a las copias caídas o (más importantemente) duplicadas de genes. Estos genes no cifran el comportamiento, sino la estructura profunda -- el comportamiento es una consecuencia inesperada de esta estructura. Nuestras criaturas pueden desarrollarse así de verdad.
Pruebas de Pudín
Tenemos un diseño para una criatura autónoma, inteligente, capaz de aprender por sus errores en un mundo complejo y ruidoso. Necesita aprender a consumir alimento para sobrevivir. Tiene una red compleja de mecanismos impulsores y de necesidades. Tiene un sistema inmune y un sistema reproductivo. Puede criar a otras criaturas (mientras su química reproductiva es compatible; es decir, están de la misma especie), y cuando lo hace así pues, es capaz de evolucionar, que puede dar lugar a nuevas estructuras de nervios y fisiológicas de las cuales su diseñador no podría incluso concebir probablemente. Oh, casi me olvidé: asociando un analizador de sintaxis simple del texto a la criatura, y pasando sustantivos en el lóbulo de la atención, mientras que los verbos pasan a través de la opinión, del concepto, y de los lóbulos de la decisión, podemos dar a estas criaturas la capacidad de entender (y aprender) un lenguaje hablado simple.
¿Qué piensa? ¿Es solo especulación? ¿Es demasiado ambiciosa, dado la actual potencia de ordenador y el estado del conocimiento, de procurar crear a tal criatura? ¿Trabajaría? Bien, en caso de que usted no la haya visto, lo qué he estado describiendo ya existe. Es un proyecto verdadero, una aplicación comercial acabada, y sí, trabaja. El sistema que he descrito es parte de un producto de entretenimiento para computador llamado Creatures, el desarrollo del cual ha ocupado mi tiempo (y últimamente el de un equipo de programadores y de artistas) por los últimos cuatro años.
Creatures dejan al usuario mantener comunidades pequeñas de animales pequeños, peludos, virtuales como " animales domésticos" en su ordenador personal, igual que si tuviesen hámsteres o pescados. Puede enseñar a sus criaturas palabras y frases, hacerles cosquillas o darles alimento (recompensarlas o castigarlas directamente), traerles objetos para comer o jugar, animarlos a que vayan a pie y en vehículos alrededor de su mundo virtual, y les ayuda generalmente a aprender cómo ocuparse. Si se enferman, el usuario puede cuidar de ellas e intentar diagnosticar y tratar la enfermedad. Eventualmente, las criaturas se vuelven viejas y débiles, y finalmente mueren. Sin embargo, si viven la pubertad, el usuario puede animarles a que acoplen y produzcan descendencia. Él o ella puede entonces intercambiar su descendencia con otros entusiastas de Creatures a través de la Web, usando los treinta o mas sitios Web dedicados al producto. Probablemente un millón o más de estas criaturas existen en cualquier hora, y la diversidad de genes está aumentando.
Creatures fue lanzado en Europa y Australia en noviembre de 1996, y llegaron a los E.E.U.U. en agosto del año siguiente. Sin embargo, no escribí este artículo para anunciar el producto de mi compañía, sino para ofrecer algunos puntos: Primero, aunque en el "espacio de todas las máquinas posibles" pudo contener muchas regiones en las cuales la inteligencia puede ser encontrada, no sabemos dónde mienten la mayoría de esas regiones. Sin embargo, sabemos que muchas máquinas biológicas son inteligentes, así que la biología de copiado es claramente una cosa racional a hacer en nuestra búsqueda para la inteligencia artificial. En segundo lugar, no hay cosa tal como mitad de un organismo. Los sistemas verdaderos, vivos son complejos heterogéneos de los bucles de feedback hechos de los nervios, de las reacciones químicas, y de los genes. Debemos observar ese hecho y reconocer que puede ser que sea altamente significativo. Las redes neuronales deben incorporar racionamiento difuso, así como dirigido a los recorridos de la señal. Tercero, tales organismos artificiales completamente redondeados pudieron tener ventajas prácticas.
No es inmediatamente obvio porqué una cámara de video, por ejemplo, deba necesitar un sistema inmune, pero si tenía uno, estoy seguro de que podríamos pensar en un uso para él. Los organismos verdaderos son robustos, se autocuran, y son adaptables; los organismos sintetizados quizás completamente redondeados compartirán esas características. Espero que haya demostrado que tales "síntesis magníficas" son hoy posibles y que, con cuidado y la comprensión, los sistemas muy complejos se pueden construir y hacer para trabajar, en tiempo real en sistemas informáticos bastante humildes.
Una vez en una época, todas las máquinas fueron propulsadas o controladas por organismos vivos. Los arados fueron tirados por caballos, que podrían dirigir ellos mismos, se reaprovisionan de combustible, e incluso se reproducen. La automatización ha substituido a estas criaturas sutiles por los esclavos fuertes pero estúpidos, inflexibles. Si uno mira hacia adelante a un día cuando pongamos la vida nuevamente dentro de la tecnología -- cuasi-no inteligente. Esa es la meta.
Los dejo con una anécdota de Criaturas: Una vez, uno de nuestros probadores de programa colocó huevos de criaturas cerca de la máquina incubadora, planeando colocarlos después allí. En cierto tiempo, él viajó a una distante parte del mundo virtual a chequear otra criatura. Cuando retornó un momento más tarde, el descubrió el cuarto de incubación lleno de bebes Criatura, y no rastros de huevos. Concluyó que una criatura adulta había entrado en el cuarto mientras que nuestro probador estaba ausente, y descubrió que si usted recoge un huevo y lo coloca en la incubadora, ¡conseguía a un nuevo amigo con quien jugar!. ¡Más que la suma de sus piezas de hecho!.
Una extensa e interesante serie de artículos sobre Vida Artificial pueden encontrarlos en: http://www.creatures.net/
El artículo original en Inglés lo pueden encontrar en:
http://www.creatures.net/Library/Science/sci_1exercise.htm