Mostrando entradas con la etiqueta inteligencia artificial. Mostrar todas las entradas
Mostrando entradas con la etiqueta inteligencia artificial. Mostrar todas las entradas

¿puede un robot aprender a mentir?

sábado, 26 de enero de 2008

La respuesta esta pregunta es: pues claro que sí. Tras leer un artículo en barrapunto, sobre robots que aprenden a mentir me sorprende mucho que haya llegado a ser un tema relevante. Si bien es cierto que resulta curioso, no es ninguna novedad. Si programas un robot para decir cosas que no sean ciertas entonces has creado un robot que miente, pero ¿es realmente consciente el robot de que esta mintiendo? ¿existen robots conscientes de si mismos? Bueno, la consciencia artificial de robots es un campo sobre el que se esta investigando, aunque muy ligeramente, y del que no voy a hablar.

Tal vez el aspecto más relevante de los robots que mencionan es que desarrollan por ellos mismos la capacidad de no decir la verdad. ¿Es esto tan impresionante? Pues no mucho la verdad, pero si es interesante. Aunque lo más interesante del artículo original es que esta capacidad de mentir se desarrollan en colonias, es decir, en una colina aparecen robots que mienten a los de otras colonias, pero no a los de la suya. ¿Como es esto posible? En primer lugar se necesita un algoritmo evolutiv, que permita evolucionar el comportamiento de los robots. Y lo segundo que se necesita es una codificación de los comportamientos de los robots que permita mentir, es decir, que una secuencia de esta codificación genere la mentira. El resto es esperar y quedarse mirando a ver como evolucionan los robots. Seguramente en alguna generación aparezca un robot que mienta a todo el mundo, luego este robot mutará y mentirá solo a los que no son de su colonia. Con ello la colonia consigue una ventaja evolutiva sobre el resto y la capacidad de mentir se extiende entre los robots. Más adelante podrán surgir robots que pasen por alto lo que les digan robots de otras colonias, o robots héroes como los definen en el artículo, los que antes de morir avisan de que han comido veneno. Y tras muchas y muchas generaciones seguramente las colonias evolucionen hacia un comportamiento altruista, donde nadie mienta, o haya tanta competencia que desaparezcan la mayoría de las colonias. De una forma o de otra los robots dejarán de mentir porque este es un comportamiento que no beneficia al grupo y que a la larga no resulta una ventaja evolutiva.

Actualización [30 enero 2008]: Tras conseguir el enlace al paper de los robots gracias a Caerolus y leerlo he de aclarar un dato, el cual ha sido desafortunadamente malentendido y transmitido por los diferentes blogs que han hablado del paper. Los robots del experimento en cuestión no aprenden a mentir, simplemente diferentes colonias desarrollan diferentes mecanismos para comunicarse. Los individuos de una colonia señalan la comida emitiendo una luz azul, mientras que los individuos de otras colonias marcan el veneno de la misma forma. No es que se mientan unos a otros, simplemente desarrollan estrategias diferentes. Evidentemente la estrategia más beneficiosa para las colonias es indicar donde esta el alimento, y es por ello por lo que resulta la estrategia más extendida y a la que tiende la evolución. A pesar de ello es posible que los robots desarrollen un comportamiento para mentir, pero no es ni mucho menos el caso del experimento ni su propósito.

CyberLover

sábado, 12 de enero de 2008


En los chats de internet hay de todo. Entre lo más típico que podemos encontrar son tíos que se hacen pasar por tías, bots de paginas web de contenido para adultos, gente que se queda atontada hablando con estos bots... Y ahora resulta que hay unos rusos que se aburre mucho y han creado CyberLover (como ahora mismo no funciona el enlace así que dejo el de la cache de google).

Según se comenta por la web parece ser que este bot es capaz de hacerse pasar por un chico, mantener conversaciones con 10 chicas simultaneamente y obtener información de ellas sin que se den cuenta. Afirman que en sus pruebas ninguna mujer se dio cuenta. Sinceramente puedo llegar a entender que un bot, o mejor dicho una zorrabot, puede hacerse pasar por una mujer que mantiene cybersexo con hombres (CyberLover también cuenta con esta capacidad). Somos hombres, somos simples y cuando la sangre desciende del celebro para acumularse a otras partes dejamos k.o. a la única neurona que tenemos en la cabeza. Pero lo que no entiende es que afirmen con tanta rotundidad que ninguna mujer se dio cuenta del engaño. Lo más complicado que conozco en este sentido es a A.L.I.C.E. (hay un enlace para probar a hablar con ella en el menú de la izquierda) y deja mucho que desear. En apenas 10 líneas te das cuenta de que lo que hay al otro lado no parece ser muy inteligente. Esto me hace plantearme dos posibilidades, o han creado un bot increíble, o la gente que hay por los chats...

El 15 de febrero será la salida de este bot, justo después de San Valentín. En principio solo mantendrá conversaciones en inglés (y ruso supongo), el español llegará más tarde. A ver si con suerte puedo verlo en acción para tener una mejor opinión de él. Si es capaz de engañar a todas las mujeres con las que habla y obtener datos personales como fotos o su teléfono (algún denominemoslo chateador se estará frotando las manos en este punto) es posible que sea capaz de pasar el Test de Turing

Elucubraciones doctorales. Capítulo 2

sábado, 24 de noviembre de 2007

Clasificación de textos usando redes neuronales del tipo ART
Como todo ser humano egoista que se precie, durante algunos meses estuve buscando la forma de hacerme rico creando una página web nueva y diferente. Por si acaso algún día me vuelve la tentación no voy a contar de que se trataba pero si os diré que parte de la base consistía en lograr crear un buen clasificador de textos.

Cuando digo un buen clasificador de textos me refiero a una aplicación que fuera capaz de descargarse un texto de internet (o una web) y clasificarla en un grupo, de tal forma que el clasificador crease automáticamete clases (o grupos) con textos de temática similar. Pero la idea no queda ahí, este clasificador debía ser capaz de evolucionar y adaptarse, es decir, de crear o eliminar clases si fuera necesario o modificarlas de forma que se adaptara a las nuevas tendencias de las temáticas. Cualquier persona avispada se habrá dado cuenta que si tienes un conjunto de usuarios que también clasificas entonces les puedes ofrecer textos relevantes a cada tipo de usuario, y pensando un poco más puedes llegar a tener un negocio interesante.

En primer lugar para clasificar un texto es necesario extraer sus propiedades. La opción mas interesante sería obtener el significado del texto, pero este punto creo que se me escapa de las manos, así que es mejor valorar otras opciones como la longitud, las palabras, la frecuencia con que estas se repiten, el idioma, etc. Tal vez la opción más realista sea clasificar el texto en función del significado de las palabras que contiene y la forma en que estas se agrupan o la frecuencia con que se presentan. Una vez que tenemos los parámetros para clasificar hace falta crear el clasificador.

Como dice el título la idea es utilizar una red neuronal ART, pero antes de explicar que es esto y como podría funcionar empezaré explicando a groso modo que es una red neuronal. Básicamente se trata de crear un celebro en el ordenador, y para ello se utiliza un modelo donde la base son neuronas interconectadas que en función de los estímulos eléctricos de entrada emiten uno de salida. Además de eso, las conexiones no son iguales y en cierto modo se modifica la señal de entrada para cada neurona. Partiendo de estas ideas se puede simular algo parecido a un celebro con un ordenador, con ciertas limitaciones en cuanto a la cantidad de conexiones, el número de neuronas y los ciclos que se producen al interconectar las neuronas. Por tanto, de forma similar al celebro, estas redes son una buena herramienta para crear asociaciones, o lo que es lo mismo, clasificar elementos.

El esquema genérico de una red de neuronas es el siguiente:

donde los valores de salida de cada neurona son una función de sus entradas.

Las redes ART son un modelo de redes de neuronas en los que se ha aplicado la teoría de resonancia adaptativa, o dicho de otra forma, es un modelo de red de neuronas capaz de aprender nuevos patrones y de retener los modelos aprendidos. Con este tipo de red se puede realizar una clasificación de textos donde se aprendan nuevos patrones de estos textos y a su vez también evolucionen los patrones antiguos para poder seguir siendo bien clasificados.

Aunque estas redes funcionan bien el principal problema es ajustar los parámetros que discriminan cuando unos datos de entrada son de un patrón ya existente o se trata de uno nuevo. Además, decidir si un texto ha sido bien o mal clasificado es un factor subjetivo que hace imposible establecer una buena unidad de medida para determinar que red es mejor que otra. Y por si fuera poco, cuando se trata de clasificar textos se necesita realizar un preprocesado de esos textos para obtener las características relevantes para su clasificación, lo cuál puede ser una tarea muy laboriosa, mucho más que crear la red que es la parte interesante del asunto.

NetLogo

miércoles, 21 de noviembre de 2007

NetLogo es una aplicación multiplataforma, hecha en java, para la programación de modelos multiagente. No me ha dado tiempo a verla bien pero si he visto algunos de los modelos y me han gustado mucho. De todos los ejemplos de sistemas de agentes me he ido a buscar, en primer el lugar, los de las hormigas por ser unos animales que me llaman mucho la atención y luego otros grupos de animales sociales. Es increíblecomportamiento tan complejo que se puede obtener con unas reglas muy sencillas. En la página hay varios modelos interesantes que voy a atreverme a explicar:

¿cómo logran las hormigas trazar el camino de menor distancia entre la comida y el hormiguero?

Aunque pueda parecer simple porque lo vemos desde una perspectiva superior el problema no lo es. Imagínate que quieres ir de Madrid a Barcelona (dos ciudades separas por más de 500km), ¿serías capaz de ir en línea recta sin ayuda de una brújula y un mapa? Las hormigas logran hacerlo con unas sencillas reglas. En primer lugar se mueven aleatoriamente dejando un rastro de feromonas para saber por donde han pasado, cuando encuentran la comida vuelven al hormiguero por el camino que habían marcado pero esta vez dejando un rastro de que por ese camino hay comida. El resto de hormigas se enteran de que hay comida y siguen ese rastro con cierta aleatoriedad, sin hacer mucho caso y dejado su propio rastro para evitar perderlo ya que los rastros van desapareciendo con el tiempo. Y al final, tras pasar muchas hormigas logran trazar la distancia más corta entre el hormiguero y la comida. Un ejemplo de este comportamiento lo podéis ver en en el modelo llamado ant lines.

Además las hormigas en caso de tener varias fuentes de alimentos, gracias al comportamiento anterior también son capaces de primero recoger el alimento que más cerca se encuentre. Otro ejemplo en el modelo llamado ants.

¿Cómo apilar elemento dispersos en el menor número de grupos posibles de forma totalmente distribuida? O cómo las termitas son capaces de dejar en montones los trozos de madera.

Pues para ello cada termita utiliza tres reglas: si tengo delante madera y no llevo madera cojo el trozo de madera, si tengo delante madera y llevo madera suelto el trozo de madera, si no tengo delante madera me muevo aleatoriamente. Y con estas sencillas reglas se apilan los trozos de madera, sino mirarlo en el modelo de las termitas.

¿Por qué los pájaros se desplazan en bandadas?

Aunque esto también se debe a que al volar en formación los pájaros necesitan menos energía para volar, por temas de aerodinámica en los que no voy a entrar, las reglas que sigue cada pájaro son muy simples: primero continuar el vuelo, si esta muy cerca de otro pájaro alejarse un poco e intentar acercarse siempre al centro de los pájaros. Tocando un poco los parámetros del modelo de pájaros se puede apreciar bien este comportamiento.

En la web tenéis un montón de modelos que me gustaría ver algún día.

Elucubraciones doctorales. Capítulo 1

martes, 30 de octubre de 2007

Optimización de funciones computacionales usando conceptos de vida artificial

En este primer capítulo de mis ideas alocadas comentaré una de las primeras ideas que me vinieron a la mente en medio de una clase y que pensé que podría ser increíblemente útil. Desgraciadamente antes de que acabará la clase el profesor hizo algunos comentarios que me hundieron en la miseria y deje la idea por imposible. Pero ahí sigue la idea.

Para empezar voy a explicar un poco lo que es la vida artificial, que básicamente se resume en jugar a ser dios y crear vida, de ahí el termino "artificial". Pero, ¿qué es la vida? o mejor dicho ¿qué es un ser vivo? Existen multitud de definiciones y aún hay gente que sigue discutiendo por definir el concepto de vida. A mi me gusta la definición que dice que un ser vivo es algo que se opone a la segunda ley de la termodinámica, pero me voy a quedar con la que me explicaron de pequeño en el colegio: "los seres vivos nacen, crecen, se relacionan con el entorno, se reproducen y mueren" a lo que voy a añadir el término de evolución, porque los seres vivos evolucionan. Y por si alguien es seguidor de la teoría del creacionismo o similar, por favor que se lea un maravilloso libro que escribió Charles Darwin: El origen de las especies (1859, On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life) (Texto íntegro en Wikisource).

Partiendo de esta definición de vida voy a contar una historia, la historia de un biólogo, Thomas S. Ray, que se presento a una conferencia de inteligencia artificial. El primer año se rieron de él por proponer la posibilidad de crear vida en el ordenador, el segundo año no tuvieron otra cosa que hacer sino asombrarse de lo que Thomas había conseguido. Como dice él: "Jugué a ser Dios y creé la vida en mi computadora". Y ¿cómo lo hizo? En primer lugar decidió lo que iba a ser el mundo de la vida que iba a crear, como se trataba de crear vida en el ordenador no hay mejor mundo que la memoría, o al menos, una parte de ella. Lo segundo que hizo fue crear un pseudo lenguaje de programación un poco más avanzado del lenguaje ensamblador pero lejos del los lenguajes de alto nivel que sería utilizado para ejecutar un código capaz de autoreplicarse en la memoria, en el universo. En este punto merece la pena mencionar la necesidad de crear un nuevo lenguaje, ya que los lenguajes actuales contienen bucles y estos bucles cuando se dejan a manos del azar y el ordenador es muy, pero muy fácil que aparezcan bucles infinitos (bucles que nunca acaban) y esto es mortal para cualquier programa. De ahí la necesidad de intentar mitigar un poco este problema con un nuevo lenguaje que hiciera más difícil estos bucles. El siguiente paso fue crear un programa capaz de autoreplicarse en memoria. Para que el programa no se replicara y fuera siempre igual añadió mutación para ver si se generaban nuevos programas capaces de replicarse pero diferentes del original. Por último determino la forma de morir de los individuos, recordar que morir es un instrumento esencial para que las especies evolucionen. Así pues, los individuos que más tiempo llevaban en memoria dejaban de ejecutarse y morían, además los individuos que hacían "cosas raras" como ejecutar instrucciones determinadas cuando no debían eran penalizados y morían antes.

Con todo listo Thomas lanzo su experimento y se puso a observar. Lo primero que vio aparecer fueron los parásitos, individuos que se aprovechaban de los huéspedes para replicarse. Luego los huéspedes crearon mecanismos para defenderse, en concreto dejaban que el parásito se replicase aprovechándose de ellos pero luego proporcionaban información falsa para que el parásito replicase al huésped y no a si mismo. Y entonces los parásitos desaparecieron y los huéspedes empezaron a cooperar unos con otros creando comunidad para replicarse, era el principio de una sociedad. Pero como en toda sociedad, siempre tiene que haber parásitos y estos volvieron a aparecer. A parir de aquí la evolución se había vuelto tan loca que Thomas decidió eliminar la mutación para poder observar a los individuos. Sin la mutación Thomas pensó que no aparecerían individuos nuevos, pero sorprendentemente sí seguían apareciendo individuos nuevos distintos de sus progenitores. Fue entonces cuando descubrió que había aparecido la reproducción sexual en el universo que había creado.

Por si alguien tiene más interés en la vida artificial que creo Thomas existe un software desarrollado por el mismo llamado "Tierra Net" que se ejecuta de forma distribuida y aún sigue generando individuos nuevos.

Y cómo encaja todo esto en mi idea de optimización de funciones, pues bien, no solo apareció la reproducción sexual en el universo de Thomas, sino que también se crearon individuos capaces de replicarse con un número de instrucciones mucho menor del que Thomas había diseñado en un principio. Esto podría parecer una memez porque Thomas no creo un programa optimizado, pero cuando se le propuso a un grupo de estudiantes que crearán ellos individuos capaces de replicarse con el menor número de instrucciones posibles, ninguno fue capaz de aproximarse a lo que el universo de Y cómo encaja todo esto en mi idea de optimización de funciones, pues bien, no solo apareció la reproducción sexual en el universo de Thomas, sino que también se crearon individuos capaces de replicarse con un número de instrucciones mucho menor del que Thomas había diseñado en un principio. Esto podría parecer una memez porque ThomasThomas había creado. En este punto podría decirse que la evolución en la vida artificial supera la inteligencia humana en lo referente a crear individuos que se autorepliquen.

Partiendo de esta base por qué no aprovecharse de que la vida artificial es capaz de optimizar una función para crear nuevas funciones que desarrollen su cometido mucho más rápido. Me parece un tema especialmente interesante para cualquier aplicación de tiempo real donde una fracción de segundo pueda suponer una diferencia entre el éxito o el fracaso, además es mucho más fácil crear un código que funcione y que luego el ordenador optimice a crearlo directamente optimizado. Como dije antes, ningún programa creado por los estudiantes fue más óptimo que lo que se creo en el universo de Thomas. Pero no todo es tan bonito como parece, cuando dije que los comentarios del profesor me hundieron en la miseria fue porque aunque los científicos se entusiasmaron mucho con los resultados de Thomas nadie ha sido capaz de extrapolar los resultados a aplicaciones que no fueran una mera simulación de un universo virtual.

¿Cuales son los problemas que plantea esta idea?
  • Crear un lenguaje más complicado que el de Thomas con toda las potencia de los lenguajes actuales pero con las ventajas del lenguaje que creo Thomas. Esto es casi imposible y tal vez resultaría más fácil hacer un programa traductor, pero entonces puede que en la traducción se perdiera la optimización conseguida.
  • Añadir la función a optimizar al código capaz de replicarse. En este punto se pueden tener esperanzas porque en lugar de que las instrucciones se ejecuten una en cada ciclo y se den los mismos ciclos de computadora a todos los individuos se podría utilizar el tiempo que la función tarda en realizar su cometido para determinar cuanto tiempo de reproducción doy a cada individuo. De forma que a una función más optimizada se le dan más ciclos para que pueda replicarse, aún así el código para replicarse debería también replicar la función.
  • En caso de conseguir el punto anterior habría que tener en cuenta también que la mutación es parte del universo y esta afectaría a las funciones y estas podría dejar de realizar su cometido de forma eficaz y empezar a hacer cosas extrañas. Una solución sería penalizar a estos individuos pero entonces es posible que no hay evolución, todo sería probar.
  • Con todas las restricciones anteriores, si todo funcionara sin problemas entonces a lo mejor la reproducción sexual no sería necesaria en este universo y puede que no apareciera, con todas las implicaciones que esto supone en la evolución. Una solución sería que los primeros individuos si contase con reproducción sexual.
  • Y lo peor de todo es que si todo acaba funcionando puede que lo único que haya conseguido es reinventar la programación genética pero de una forma más sofisticada.

Runbot

domingo, 14 de octubre de 2007



Desde que estudié las redes de neuronas siempre me han parecido muy útiles y el día que me pusieron a cacharrear con los lego mindstorms lo primero que pensé fue en hacer un robot que aprendiera a andar. Pero como me pasa siempre alguien se me había adelantado.

Runbot es un robót de unos 23 cm de altura diseñado por unos científicos del MIT capaz de aprender a subir una rampa y, además, es el robot bípedo más rápido del mundo: 3,4 zancadas por segundo. El secreto del robot reside en un diseño muy simple que intenta imitar la forma de caminar de los humanos. Además esta dotado de un sensor infrarrojo que le permite conocer la inclinación del suelo. Es un poco diferente al robot que yo había pensando, pero aún así me resulta impresionante como es capaz de aprender a no caerse tras apenas 3 intentos y de aumentar su velocidad.


Fuentes:

Roomba, Scooba, Dirt dog & Verro

lunes, 3 de septiembre de 2007


Roomba, Scooba, Dirt dog, Verro son cuatro de los robots de la empresa iRobot encargados de la limpieza de superficies. En concreto Roomba se encarga de aspirar el suelo y Scooba de fregarlo, mientras que Dirt dog esta más orientado a limpiar suelos de industrias y Verro de la limpieza del fondo de la piscina. Hacen todo el trabajo ellos solitos y según leo en Xataka parece ser que lo hacen bastante bien. ¿Quien no querría tener uno de estos?

Dejando el tema de que voy a terminar por comprarme uno de estos cuando me toca limpiar el suelo, lo que me ha llamado la atención de estos robots es que usan inteligencia artificial, lo cual es una excusa perfecta para hacer marketing. Pero no hay que olvidar que son robots y que su éxito también se debe de la parte robótica, de la que no voy a hablar porque mis conocimientos no son tan amplios.

¿y donde esta la parte inteligente de estos robots?: ¿en qué saben volver a la base a recargarse? , ¿que saben que zonas están más sucias?, ¿que sabe no caerse por las escaleras y no chocar con las paredes? ¿en que esquivan muebles? pues nada de eso, todas esas cosas se hacen con sensores y algoritmos "sencillos", la inteligencia está en ser capaz de abarcar toda una superficie para limpiarla (un pequeño matiz, Verro limpia también las paredes de la piscina, pero en el fondo esto no es más que una superficie, es decir, un plano, igual que el suelo). Si bien es cierto que se esta investigando mucho en el tema de recorrer edificios y crear mapas, en este caso el robot se basa en un algoritmo que intenta abarcar una superficie. Y cómo se hace un algoritmo capaz de recorrer una superficie, pues si esta es cuadrada es bastante fácil, pero la cosa se complica si la superficie no es cuadrada y encima hay muebles de por medio, paredes, escaleras, etc...

Para resolver este problema se utiliza la programación genética, que no es más que un programa haciendo otros "programas" para resolver un problema. En primer lugar se definen una serie de funciones que la programación genética puede utilizar pare resolver el problema, en el caso de estos robots se podrían usar las siguientes funciones:

  • de movimiento:
    • avanzar X
    • retroceder X
    • girar X grados

  • de los sensores:
    • hay un obstáculo delante, a la derecha, izquierda, etc
    • hay un hueco delante, a la derecha, izquierda, etc
    • cuanta suciedad hay delante, detras, etc

  • condicionales:
    • si función A es [operador condicional > < >= <= =] funcion B entonces funcion C, sino función D

  • bucles:
    • repetir función A X veces
Y otras muchas que se les pudieron ocurrir a los ingenieros. Una vez definidas las funciones se preparan los escenarios, es decir , se crean habitaciones con diferentes elementos de la vida cotidiana donde el robot va a tener que limpiar. Por supuesto todos estos escenarios son simulados y en ello se se ha colocado basura que el robot debe limpiar.

Con esto ya tenemos nuestro robot listo para aprender a limpiar, o más bien a recorrer una habitación sin dejar un solo rincón. La programación genética se encargará de crear programas de forma aleatoria y de evaluarlos en los escenarios que hemos preparado, con ello se hará una idea cuales son los programas que mejor limpian y a partir de estos programas se crearan programas nuevos que seguramente sean más complejos que los primeros y más eficientes en su tarea.

Evidentemente esto no es coser y cantar y seguramente haya hecho falta probar con diferentes funciones y con un gran número de escenarios muy variados para conseguir un producto que pueda llegar al consumidor. Además el programa final, el mejor que haya conseguido la programación genética después de un buen rato funcionando, habrá sido evaluado y retocado por un humano para simplificarlo y corregir los defectos observados.

Tenéis más información de los cuatro robots en la sección de cleaning robots de iRobot, junto con algunos vídeos.

...y hasta se pueden programar para que limpien la casa cuando no estamos, son una maravilla.

Una introducción a la Singularidad

viernes, 24 de agosto de 2007

Emilio me pasa un texto que se llama "Una introducción a la Singularidad" por Eliezer S. Yudkowsky. Os recomiendo bastante que lo leáis y para los más vagos hago un resumen de lo que me ha gustado más.

El texto plantea una singularidad en la inteligencia humana, es decir, que va a llegar un momento en el que la inteligencia humana de deje de crecer. La evolución ya no será capaz de hacernos más listos, al igual que pasa con las computadoras, que llegará un momento en el que el límite físico de los materiales no nos permitan construir procesadores más veloces y haya que buscar otras alternativas (como los procesados multinúcleo y la paralelización). Ante este hecho se plantea la posibilidad de crear mediante hardware un "cerebro" que sea más rápido que el nuestro. A este cerebro artificial se le introducirán técnicas de inteligencia artificial (¿algún tipo de red de neuronas, tal vez?) para que sea capaz de aprender y que pueda llegar en algún momento a mejorarse a sí mismo.

La segunda mitad del texto me parece más aburrida ya que se mete en temas de nanotecnología para imitar al cerebro y en como representar el proceso de muerte de las neuronas (y su reemplazo para crear seres inmortales super listos que puedan decidir si vivir o morir, los Amish).

Bueno, ahora voy a ofrecer mi punto de vista. El texto comienza diciendo que los ordenadores actuales son capaces de realizar más cálculos por segundo que el cerebro humano, lo cuál hasta cierto punto es cierto. Si intentas hacer una división, o mejor, una raíz cúbica seguro que tardas menos con una simple calculadora. También hay estudios que hablan de que el ojo humano solo tienen una resolución de un megapixel o que solo somos capaces de prestar atención a 4 objetos simultáneamente. También se dice que los hombres no somos capaces de hacer dos cosas a la vez... (lo cual no estoy de acuerdo porque somos capaces de hacer 2: lo que estamos haciendo y pensar en lo que siempre pensamos). Pero dejando de lado las discursiones, lo cierto es que apenas conocemos nuestro cerebro y ni siquiera usamos un 10% del mismo (o era un 1%, no lo recuerdo ahora mismo). Y lo que es más sorprendente, tampoco somos capaces de simularlo con los ordenadores actuales. Como bien dice el texto, el cerebro tiene 40 mil millones de neuronas y 100 billones de sinapsis, lo cual es una burrada para simular (casi es más fácil poner a resolverse el Eternity II) y mucho más complicado de crear mediante hardware, aunque se plantean algunas posibilidades usando nanotecnología y cristales.

Dejando todo lo anterior de lado me quedo con una paradoja del texto (copio la parte a la que me refiero):
Una civilización basada en una inteligencia más lista o más sabia o más creativa es imposible de imaginar, aún como ficción. Usted no puede escribir un cuento en el que uno de los personajes sea más listo que usted; por definición, si usted supiera lo que ese personaje haría, usted sería tan listo como él. Si la habilidad humana de considerar procesos abstractos en general es lo más lejos a lo que puede llegar cualquier inteligencia concebible, entonces una inteligencia más lista simplemente sería capaz de resolver problemas más rápido, más directamente, más elegantemente, quizás con soluciones bellamente multifacéticas, a la vez que obvias en retrospectiva (pero seguirían siendo soluciones a la misma clase de problemas que planteamos nosotros).

y digo yo, si no podemos escribir un cuento donde los personajes sean más listos que nosotros, ¿cómo vamos a crear una inteligencia que sea más lista que la nuestra?

Para mi la única respuesta a esa pregunta pasar por crear un ambiente controlado donde pueda aparecer vida de forma más o menos espontanea, un tipo de vida que se nos escapa a la imaginación, y que en ese tipo de vida aparezca inteligencia (casi por arte de magia).

Gracias Emilio

VIDA 10.0. Concurso Internacional Arte y Vida Artificial

martes, 14 de agosto de 2007

VIDA 10.0 es la décima edición de un concurso convocado por Convocado por Fundación Telefónica que premia obras artísticas desarrolladas con tecnologías de Vida Artificial y sus disciplinas asociadas, la robótica, la inteligencia artificial, etc. Se buscan proyectos artísticos que hagan una reflexión sobre la relación entre lo “sintético” y lo “orgánico”.

En años anteriores se han premiado proyectos artísticos realizados con robots, avatares electrónicos, algoritmos caóticos, knowbots, autómatas celulares, virus informáticos, ecologías virtuales que evolucionan con la interacción del participante, y trabajos que profundizan en aspectos sociales de la Vida Artificial.

Aquí tenéis un vídeo que he encontrado del segundo premio de la novena edición. La verdad es que no me ha parecido demasiado sorprendente pero ha sido lo único que he encontrado.



A mi me parece más interesante estos animales de Theo Jansen (mención especial como obra pionera en la sexta edición):

Agrupación de sonidos

martes, 31 de julio de 2007

Leo en Tendencias 21 que investigadores de la universidad de Stanford han desarrollado un programa informático que imita los procesos cerebrales usados por los niños cuando aprenden a hablar. El título me ha chocado suficientemente la atención para pensar que podría tratarse de inteligencia artificial, y no me he equivocado. Básicamente el objetivo de los investigadores era realizar una clasificación de los sonidos, para ello utilizaron una red de neuronas. Por resumir un poco una red de neuronas es un modelo conceptual y simplificado del cerebro, es decir, un conjunto de células ("neuronas") interconectadas capaces de procesar información y dar una respuesta. La forma de conseguir que la red de neuronas aprenda a clasificar los sonidos es pasárselos como entrada una y otra vez para que las conexiones entre las neuronas se vayan adaptando. Llegando un momento en el que el error al clasificar los sonidos desciendo de un cierto umbral. Seguramente en este caso el aprendizaje no fue supervisado (indicando a la red si acertaba o se equivoca en al clasificación), sino que fue la propia red la que dedujo los tipos de sonidos que había. Las redes capaces de hacer este tipos de cosas son los mapas de kohonen y las redes ART, no he encontrado buena información en español sobre ellas así que otro día las explicare con detalles.

He estado comentado el proceso de aprendizaje porque es la parte más curiosa de la inteligencia artificial, sin embargo, no he mencionado nada de como se transforma el sonido en algo que pueda introducirse en la red de neuronas. Básicamente, el componente que falta por explicar en todo este sistema es el que hace de oído. Puede ser algo que no llame tanto la atención o resulte menos curioso, pero la transformación de, en este caso, el sonido en datos interpretables por la red es un factor importante que condiciona el éxito de aplicar una técnica de inteligencia artificial. No solo se trata de transformar el sonido en bits, lo cual con un micrófono no es muy complicado, sino que en este caso seguramente también haya sido necesario realizar un pequeño procesado para separar los sonidos, o al menos, las palabras. Además, las condiciones en las que se realizan este tipo de estudios suelen ser lo más idóneas posibles y las grabaciones se habrán realizado sin apenas ruido ambiente. Con ruido el problema se complica pero estoy seguro que una red de neuronas que también tenga en cuenta datos del pasado, una cierta memoria, es capaz de resolver el problema.

También leí hace tiempo en Tendencias 21 que unos ingeniero británicos habían reinventado la rueda dotándola de capacidad para aprender y adaptarse a la carretera respondiendo a baches y problemas de a medida que se enfrenta a ellos. El artículo explicaba que eran microordenadores situados en las ruedas capaces de registrar cambios en el camino y adaptarse a ellos, pero no daba detalles de que tipo de inteligencia artificial se había aplicado. A mi se me ocurren multitud de formas de usar alguna técnica de inteligencia artificial (redes de neuronas o sistemas expertos) para dotar a las ruedas de "inteligencia", el verdadero éxito de esta inteligencia se basa en ser capaces de obtener características de la carretera en tiempo real y modificar el comportamiento en cuestión de milisegundos.

Inteligencia Artificial

Cuando se habla de inteligencia artificial lo primero que se nos viene a la mente son los típicos robots de las películas con forma humanoides que son capaces de realizar las mismas cosas que los humanos, pero más rápido y mejor. Este concepto dista mucho del verdadero concepto de inteligencia artificial.

Aunque la inteligencia artificial es un concepto bastante amplio, aunque la idea fundamental es siempre la misma: intentar imitar el comportamiento inteligente, hasta que llegue el día donde sea imposible discernir si nos encontramos ante un ser vivo o una máquina (Prueba de Turing).

Muchas veces este comportamiento se reduce a encontrar una solución, lo más óptima posible, a un problema determinado. Para ello las máquinas, o mejor dicho ordenadores, utilizan todo su pontencial de cálculo para recorrer todo el espacio de posibles soluciones hasta encontrar una válida. Por ello los inicios de la inteligencia artificial se remontan a los primeros algoritmos de búsqueda que utilizaban cierto conocimiento, denominado heurísticas, para recorrer el espacio de posibles soluciones de forma que en cada paso estuvieran más cerca de la solución, sin tener que pasar por todas. Desgraciadamente estos algoritmos están limitados y se buscan otras soluciones para alcanzar la "inteligencia".

Desde mi punto de vista en la inteligencia artificial existen dos tendencias: la que pretende crear inteligencia a partir de analizar los mecanismos que utilizamos para razonar y pensar, y otra que trata de "copiar" a la naturaleza para crear inteligencia igual que ella. En el primer caso me estoy refiriendo a las técnicas utilizadas en los sistemas expertos, redes bayesinas y razonamiento con incertidumbre. La segunda tendencia me resulta más interesante, porque la naturaleza siempre será más sabia que nosotros y será capaz de darnos las mejores soluciones para resolver problemas, y es donde se englobarían técnicas como las redes de neuronas, los algoritmos genéticos y la computación evolutiva. Otro día, si el tiempo me lo permite intentaré explicar cada unas de las técnicas de forma amena con sus aplicaciones en la vida real, alguno seguro que se sorprende.

Bueno y después de todo esto, ¿para que se usa la inteligencia artificial hoy en día? Pues las aplicaciones son muy diversas y van desde sistemas de predicción o de recomendación hasta clasificadores y para optimizar parámetros de una función. Por poner algunos ejemplos curiosos, algunos sistemas de radar utilizan una red de neuronas para clasificar los aviones en función del eco recibido, la inteligencia de los adversarios en los video juegos se suele crear con técnicas de computación evolutiva, los supermercados descubrieron mediante data mining que los hombres solían comprar cerveza cuando compraban pañales (y que no habrán descubierto después que cada mes cambian de sitio la mitad de las cosas del supermercado), etc.

En definitiva, poco tiene que ver la inteligencia artificial real de la de ficción, pero como todo, llegará un día en el que la realidad supere a la ficción y sino tiempo al tiempo. Aunque lo verdaderamente difícil tal vez sea crear una máquina capaz de crear arte de la nada, porque máquinas que inventan cosas... ya existen, que se lo pregunten a John Koza.