valor de las preguntas y profundidad de las respuestas
jueves, 29 de noviembre de 2007
... damos significado a nuestro mundo con el valor de nuestras preguntas y la profundidad de nuestras respuestas ...
... damos significado a nuestro mundo con el valor de nuestras preguntas y la profundidad de nuestras respuestas ...
Fue hace ya mucho tiempo en la playa, estábamos en una terraza tomando algo con nuestro amigos y con algún otro desconocido. Aunque apenas nos separaban unos centímetros del resto, sólo eramos capaces de prestarnos atención en uno al otro. Ajenos en nuestra conversación fue cuando ella me dijo que tenía ciertos poderes místicos y que sabía leer la mano. Yo no pude contener mi curiosidad ni mi recelo a pensar que todo aquello eran bobadas y, cómo no, la tente a que me leyera la mano. En apenas 5 minutos y habiendo mirado un poco tres miseras arrugas de mi mano me describió como si me conociera de toda la vida cuando no habían pasado ni dos semanas desde que nos conocimos. No había acabado de leer la mano cuando vio algo que la hizo parar. Al principio no quiso decirme que era, pero al final confeso. Me dijo que algo malo me pasaría entre entre los 25 y los 30 años, que iba a tener una enfermedad y me iba a morir. Esas últimas palabras se la escaparon pero ya no había marcha atrás, lo había dicho. Mi mente estaba ya entonces demasiado confundida para saber si eso era verdad, yo no creía en esas cosas, pero sin saber por qué ella había acertado en todo. Lo único que pude hacer fue pedirla que me explicará como leer las manos. Con un par de conceptos sobre esas tres arrugas de la mano izquierda ya podía aventurarme a leer manos y tenía delante a la persona adecuada. Cogí su mano, observe aquellas arrugas, la mire a los ojos y entonces deje mi mente en blanco y empecé a decir lo primero que se me venia a la cabeza. Al final de la noche no fui yo el que se fue más sorprendido e intrigado de aquella terraza.
Ha pasado el tiempo y aunque todo aquello lo recordaba como una mera anécdota nunca llegue a olvidarlo. Hoy me visto en mi propio funeral, casi no lo cuento. Siempre he sido un chico sano y deportista, y estas cosas no les pasan a la gente como yo. Pero por muy raro que fuera, se que me lo habían advertido. Nada más decirme que iba a morir ella se arrepintió y rectificó diciendo que pasaría una mala racha, que algo muy malo me pasaría pero que saldría adelante, aunque la vida no fuera igual para mí. De todo lo que me dijo aquella noche eso fue lo menos creíble, pero ahora sé que fue lo más acertado.
A largo plazo siempre nos pasan cosas buenas y malas, que me lo digas ahora no es adivinar el futuro.
Clasificación de textos usando redes neuronales del tipo ARTComo 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.
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.
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.
Mientras los tímidos se lo piensan los valientes van, triunfan y vuelven
yo no escribo bien, pero a veces tengo frases lúcidas
No se puede perder lo que nunca se tuvo, ni aquello que nos hace ser lo que somos
puedo comprender que dejes una pregunta sin respuesta, pero me preocupa cuando me das una respuesta a una pregunta que no he hecho
Es mejor conquistar un estado que destruirlo.
Es mejor tomar todo un ejército que destruirlo.
Es mejor tomar todo un batallón que destruirlo.
Es mejor tomar toda una compañía que destruirla.
Es mejor tomar todo un pelotón que destruirlo.
Por tanto, un centenar de victorias en un centenar de batallas no es lo más hábil.
Lo más hábil es someter al ejército contrario sin batalla.
Optimización de funciones computacionales usando conceptos de vida artificial
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.
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.Como antesala al futuro que se me plantea, por la consecuencia intrínseca de los insensatos e irreflexivos actos cometidos durante un trastornado verano, me veo en la obligación de liberar a mi cerebro con el fin de divagar sobre la posible temática que compondrá lo que transcurrido el tiempo puede que nombre como mi tesis doctoral. Por ello, a partir de hoy y sin desmerecer la destreza y aptitud de las pocas mentes que leen asiduamente este indescriptible blog, intentaré exponer de la forma más complicada y enrevesada que conozco las ideas y conceptos que fluyan en el interior de mi cabeza.
El objetivo de estas "elucubraciones doctorales" es dar a conocer las ideas que se me han ido ocurriendo sobre las que de alguna forma estaría interesando en trabajar y desarrollar para elaborar una tesis doctoral, o al menos perder el tiempo en algo que me entretenga y, a priori, me guste. Bueno, para que os voy a engañar, aún no me planteo si haré una tesis doctoral o no, pero los temas que trataré son ideas que se me han ido ocurriendo en diferentes momentos de mi vida y son cosas sobre las que me gustaría, al menos, pararme a reflexionar. Y aunque no se entienda nada de lo que diga por lo concreto que es contenido que voy a tratar cualquier aportación en forma de idea o comentario será bien recibida. En cualquier caso intentaré exponer algunos conceptos básicos de las ramas de la inteligencia artificial que más me atraen para que se pueda entender más o menos mi idea y como puede suponer un posible avance en el campo.
Los verdaderos héroes nunca quieren serlo, y son elegidos en contra de su voluntad.
...o mejor dicho los robots se cucarachizan.
Leo en Tendencias 21 que un grupo de científicos minirobot (InsBot) capaz de infiltrarse en una colonia de cucarachas sin llamar la atención. Como veis en la foto el robot poco se parece simple vista a una cucaracha, sin embargo, a ojos de una cucaracha el robot es otra cucaracha. Sus movimientos, su olor y su patrón de comportamiento ha sido diseñado para que logre pasar desapercibido entre sus "hermanas cucarachas".
Pero el estudio de este equipo de científicos no se queda ahí, infiltrar el robot es solo el primer paso. El siguiente es realizar un estudio de sociedad mixtas de animales y agentes artificiales para poder desarrollar modelos y herramientas para dichas sociedades. Una vez se obtengan dichos modelos se intentará desarrollar métodos para alterar el comportamiento de la sociedad y así poder controlarla. Y en un futuro algo más lejano intentar llevar las técnicas aprendidas a otros animales y a las plantas.
Más información en:

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:
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).
Lo he visto en mil sitios no pensaba decir nada, pero si Víctor dice que es digno de mi blog tengo que ponerlo.
SigGraph es un grupo con interés en infografía o computación gráfica de la ACM, también es el nombre de la feria más importante de diseño por ordenador. En la feria de este año parece ser que ha llamado la atención un novedoso método para escalar imágenes. La técnica se basa en buscar caminos de píxeles que son menos relevantes en la imagen para eliminarlos y así poder reducir el tamaño de la imagen, o repetirlos si lo que se quiere es agrandarla. En el vídeo se ve mucho mejor todo esto (atención a cuando elimina a una persona de la foto, los artistas del photoshop seguros que están encantados con estas cosas):
Hace unos años tuve que crear un fractal y me dio por hacer un árbol, el resultado fue siguiente:
La forma de hacerlo es bastante sencilla, básicamente se coge un patrón simple y se va copiando a escalas más pequeñas. Lo único que hay que hacer para darle un efecto más "natural" o más "realista" es añadir algo de aleatoriedad en cada copia. En la siguiente imagen se aprecia mejor el proceso:
Hace unas semanas me dio por intentar volver a hacer un árbol, pero esta vez tenia que parecer más natural, al menos en la forma (no quería entretenerme mucho con los colores, la iluminación y las texturas). El resultado es este:
Si queréis os podéis descargar el código fuente, esta hecho para ser renderizado con POV-Ray. Y ya de paso podéis echar un vistazo al Hall of Fame de la página del POV-Ray, es bastante impresionante.
Yo me quedo con el último... pero aquí van unos cuantos.
Impresionante aterrizaje en la isla de St. Marteen:
La palabra fractal aparecio en 1975, propuesta por el matemático Benoît Mandelbrot. En sus propias palabras:
Quería recoger la impresión de una piedra que golpeas, y se fractura. De ese fractus latín surgió el fractal. La terminación se debió a que quería que funcionara en inglés y francés.El objetivo de los fractales fue intentar representar las figuras geométricas de la naturaleza que la geometría clásica, euclidiana, era incapaz de abordar. En contraposición a la geometría euclidiana, donde todos los elementos siguen unas bases matemáticas bien definidas, la geometría fractal se presenta como un modelo donde se pretender romper la armonía de los elementos y donde se busca la regularidad en las relaciones entre un objeto y sus partes a diferentes escalas. Es decir, es un modelo donde un objeto puede ser expresado como el límite de un proceso geométrico iterativo, donde en cada iteración se produce una ruptura de la forma original.
Actualmente los fractales tiene diferentes aplicaciones de las cuales voy a destacar tres:
Vista aérea de unas montañas a diferentes alturas (gracias google maps):
El conjunto de Mandelbrot a diferentes escalas:
Enlaces:El éxito no es para los que piensan que pueden hacer algo sino para quienes lo hacen.
¿Qué es el RSS?