La Singularidad Desnuda

Un universo impredecible de pensamientos y cavilaciones sobre ciencia, tecnología y otros conundros

Posts Tagged ‘Visión por Computador’

Realidad Virtual y Vida Artificial: de la Biomecánica a la Inteligencia

Posted by Carlos en julio 14, 2009

Las charlas plenarias de las conferencias suelen navegar por la procelosa frontera que separa el tema central de la reunión con otros temas relacionados (y en ocasiones transcurren directamente al otro lado de la frontera). Suele ser una buena política, ya que en las zonas de confluencia las cosas se ponen divertidas, y de hecho este ha sido el caso de la primera de las charlas invitadas que hemos disfrutado. El orador era Demitri Terzopoulos, que estuvo involucrado en los comités de programa de estos saraos tiempo ha pero que nunca ha llegado a aplicar computación evolutiva a su área de trabajo. Era pues un gran desconocido a priori para el grueso de la audiencia -salvedad hecha de los que trabajan en visión por computador- a pesar de tener un currículo investigador talla XXL, y hay que decir que después de su charla los allí presentes recordaremos bien su nombre, pues fue una hora y media extremadamente interesante y entretenida.

El título de su charla fue “Artificial Life Simulation of Humans and Lower Animals: From Biomechanics to Intelligence”, y durante la misma intentó explicarnos algunas de las claves de la emergente fusión entre realidad virtual y vida artificial, cuyo objetivo final es la construcción de agentes biomiméticos autónomos. En sus diapositivas iniciales nos mostró lo que no es uno de dichos agentes, como por ejemplo los dinosaurios de Parque Jurásico, o los protagonistas de Toy Story por citar un par de ejemplos. Las cosas empezaron a calentarse un poco con los ejércitos de El Señor de los Anillos, que podríamos englobar dentro de la categoría de enjambres (animar manualmente cada uno de los miles de personajes en el ejercito es inasumible, por lo que cada uno de ellos está dotado de un sistema simple basado en reglas para determinar su comportamiento). En este punto fue donde nos presentó los diferentes niveles en los que hay que intervenir para construir un sistema biomimético autónomo, y que se organizan jerárquicamente como sigue:

Niveles para la simulación de un sistema biomimético. Credit: Demitri Terzopoulos

Niveles para la simulación de un sistema biomimético. Credit: Demitri Terzopoulos

La ilustración inicial de estas ideas corrió a cargo de una fauna submarina sintética que el propio Demitri desarrolló con sus colaboradores. El nivel más bajo de la jerarquía estaba definido en este caso por un armazón de cada uno de los peces, construido a partir de partículas unidas mediante una combinación de muelle y amortiguador. Algunos de los segmentos del pez hacen las veces de músculos, y en ellos la longitud natural del muelle puede modificarse a voluntad. El modelo resultante queda descrito por una colección de ecuaciones diferenciales que determinan la respuesta dinámica al movimiento del pez en el medio líquido. La locomoción del pez se optimizó mediante una técnica de búsqueda local (no entró en muchos detalles al respecto) para que resultara en el movimiento más fluido y energéticamente económico. En este punto, el movimiento de natación de peces y morenas resultante era extremadamente realista.

Para simular la percepción, los peces estaban dotados de sensores visuales que permitían cubrir un cierto ángulo en la dirección de orientación de la criatura. La información así obtenida era procesada según técnicas estándar de visión por computador, para proporcionar la entrada al siguiente nivel, el comportamiento. Éste es esencialmente reactivo, y está determinado por una red neuronal que determina la acción correspondiente a un determinado estímulo. Para la simulación de los animales marinos se incluyó un registro de memoria con capacidad unidad. Esto permite que el animal desarrolle un comportamiento básico -seguir un objeto, alimentarse, ..- que pueda ser interrumpido cuando por ejemplo se entre en modo huida al detectar un depredador, y luego reanudado cuando cese el peligro.

En el ejemplo del mundo submarino no había mucho lugar para el nivel más alto de la pirámide y que entronca plenamente con la inteligencia artificial. En el siguiente ejemplo que abordó -seres humanos sintéticos- sí que era más relevante, aunque no entró en él. Sí describió unos modelos muy interesantes relativos a la simulación de rostros humanos (quien haya visto Final Fantasy recordará el fotorrealismo de algunos de los personajes). Los niveles más bajos de la pirámide se abordan de la misma manera que en el caso de los peces, aunque más arriba se introduce un elemento más interesante: redes bayesianas para la determinación del comportamiento. Resultaba curioso ver cómo un rostro humano sintético era capaz de reaccionar a estímulos visuales, siguiendo la trayectoria de un objeto o mostrando enfado o satisfacción dependiendo de su patrón de movimiento.

La charla terminó con algunas ideas sobre lo que podemos esperar en el futuro. Alguien planteó si quizás en algunos años una versión virtual de Demitri podría dar esa misma charla ante una audiencia igualmente virtual. Él estuvo de acuerdo en que eso será factible, aunque no cree vivir para verlo (hay que decir que no es muy mayor, cuarenta y tantos según mi ojo de buen cubero). Yo soy sin embargo más optimista que él.

Anuncios

Posted in Aprendizaje Automático, Computación Evolutiva, Inteligencia Artificial, Vida Artificial | Etiquetado: , , , , | 6 Comments »

Soylent Grid: Cómo convertir los CAPTCHA en un sistema de computación humana distribuida

Posted by Carlos en octubre 17, 2007

CAPTCHA A poco que uno se mueva por la red las posibilidades de enfrentarse a un CAPTCHA aumentan rápidamente. Basta con querer escribir un comentario en algún blog, crear una cuenta de correo electrónico, o acceder por primera vez a algún servicio on-line para que con gran probabilidad nos muestren alguna combinación distorsionada de caracteres que debemos identificar para proseguir. Este tipo de rudimentario test de Turing es preciso para evitar abusos en estos sistemas, impidiendo que bots accedan a los servicios. La idea básica es que el esfuerzo necesario para resolver uno de estos desafíos (de estar bien diseñado) sería enorme -imposible de manera ideal- para un sistema automatizado, pero mínimo para un humano, quizás unos pocos segundos.

Partiendo de la base de lo anterior, cabría preguntarse si ese esfuerzo cognitivo realizado por los usuarios humanos podría aprovecharse de algún modo adicional al de la propia detección de bots. Hay que tener en cuenta que aunque individualmente dicho esfuerzo es mínimo, si hay miles, centenares de miles o incluso millones de personas conectadas a Internet y sometidas a un CAPTCHA a diario, el esfuerzo acumulado pasa a ser enormemente considerable. Una utilidad para el mismo es la que Stephan Steinbach, Vincent Rabaud y Serge Belongie, del Departamento de Informática e Ingeniería de la Universidad de California San Diego, han propuesto en un trabajo titulado

presentado en la conferencia Interactive Computer Vision 2007. La idea de estos investigadores es la de emplear este esfuerzo cognitivo para el etiquetado o segmentación de imágenes, con vistas a su utilización en por ejemplo aplicaciones de asistencia a personas con discapacidad visual. Pensemos en lo siguiente: al entrar a un cierto sitio web se nos muestran una serie de fotografías de productos de un supermercado, y se nos pide que identifiquemos aquellas que contienen un determinado producto o clase de productos (conservas, bebidas gaseosas, etc.). De entre estas fotografías habrá unas cuantas que ya están correctamente etiquetadas con antelación. Si el usuario falla en la identificación de éstas no ha pasado el CAPTCHA y se le niega el acceso. Por el contrario, si las identifica correctamente, se asume que su respuesta a las fotografías no etiquetadas es la correcta (por supuesto en todo el proceso el usuario no sabe qué imágenes son de control y cuáles no, por lo que intenta contestar siempre correctamente). Mediante un adecuado dimensionamiento del número de fotografías se puede garantizar que por pura combinatoria la probabilidad de que se pase el test al azar, o de que conteste correctamente a las preguntas de control e incorrectamente a las no etiquetadas es muy pequeña. Más aún, el hecho de que hay miles de usuarios permitiría eliminar fácilmente este tipo de errores de etiquetados a través de análisis estadísticos.

Los tipos de prueba en los que los autores están pensando son cuatro: identificar el nombre de un objeto, identificar las fotografías que tengan un cierto objeto o las diferentes apariciones de un cierto objeto en una fotografía, dibujar el contorno de un objeto en una fotografía, o identificar si una imagen es estéticamente agradable o no. Este tipo de cuestiones serían proporcionadas por un grupo de investigación a las organizaciones cliente (aquellas que quieren disponer de CAPTCHA en sus páginas web), que se beneficiarían de un sistema de detección de bots eficaz y barato, a la vez que proporcionarían información muy útil a los investigadores. Todos contentos.

Como nota anecdótica, el nombre Soylent Grid es por supuesto una referencia a la película de ciencia-ficción Soylent Green (“Cuando el destino nos alcance“). Y es que el ingrediente básico tanto de la supuesta comida a base de plancton que da el nombre a la película, como de la red computacional que en este caso se usaría es el mismo.

Posted in Ciencia Ficción, Cine, Informática, Internet, Tecnología | Etiquetado: , , , , , | 4 Comments »