Una mente inmortal

Esta temporada, desde el magnífico programa Redes (La 2, los martes a la 1:30) nos proponían, por medio de su sección titulada «La cuestión», que imagináramos cómo serán los ritos funerarios en el futuro, en el contexto de una cultura regida por la ciencia.

neural0.jpg

Hace unos días leía en el foro de Smart Planet la respuesta ganadora, enviada por Luis Congil, y que viene a proponer algo, que aún siendo ciencia-ficción me parece perfectamente posible, y de hecho, creo que lo será salvo que nos matemos unos a otros (eso me parece más probable, por desgracia…)

Luis Congil imaginó un futuro donde toda la información del cerebro podía ser informáticamente registrada y compartida en la red «Interbrain», permitiendo a las personas perpetuar su conciencia tras la muerte. El texto ganador puede leerse aquí. Les recomiendo que no se lo pierdan por nada del mundo.

La idea de Interbrain me parece absolutamente fascinante… ¿se imaginan las implicaciones que tendría? Sin duda me parece mucho más interesante investigar este aspecto que el de el retraso del envejecimiento físico… personalmente, creo que no me importaría tanto morir si pudiera seguir viviendo a un nivel intelectual. Por otro lado, pienso que librarse del cuerpo podía ser una enorme liberación y, al mismo tiempo, una terrible condena.

En cualquier caso, me temo que nos lo vamos a perder. Siempre llego tarde a todo :-P

Gracias por su cooperación

Es la frase que salía de boca de mi ídolo de la infancia, RoboCop, cuando arrestaba a un delincuente, ya fuera con cooperación o sin ella… La primera entrega de lo que luego fue una olvidable saga me encanta por varios motivos. En particular, creo que da una esperanzadora aplicación a la robótica, y presenta un drama humano muy interesante, con muchas connotaciones filosóficas. Supongo que cuando era pequeño todas estas consideraciones no me importaban en absoluto… pero se trata de un personaje que me divertía y me emocionaba a partes iguales…

gracias.jpg

Hoy tengo que decirles a mis lectores «gracias por su cooperación». El post anterior retándoles a realizar un diagnóstico sobre un problema intrigante ha desbordado mis espectativas por la respuesta masiva y el enorme nivel de conocimientos que se aprecia en los comentarios. Ya puedo revelar que mi diagnóstico básico es el de un fallo en la controladora del USB, y la reparación requerida, sustituir la placa base.

No obstante, muchos lectores aportaron ideas muy interesantes sobre el problema, así que en cuanto tenga un poco de tiempo libre, revisaré el equipo a fondo para completar mi hipótesis sobre el tema. Y les mantendré informados.

Por cierto, que RoboCop tenía grabadas en su circuitería cuatro directrices, que eran:

  1. Servir a la confianza pública
  2. Proteger al inocente
  3. Defender la ley
  4. Clasificada

La cuarta directiva, de la que en principio Robocop no era consciente, le impedía detener a cualquier miembro de la OCP (la organización que en la película controla la policía de Detroit), y quedaba paralizado si lo intentaba. Eso de las directivas está relacionado con las tres leyes de la robótica enunciadas por Asimov, que son:

  1. Un robot no puede hacer daño a un ser humano o, por inacción, permitir que un ser humano sufra daño.
  2. Un robot debe obedecer las órdenes dadas por los seres humanos, excepto si estas órdenes entrasen en conflicto con la Primera Ley.
  3. Un robot debe proteger su propia existencia en la medida en que esta protección no entre en conflicto con la Primera o la Segunda Ley.

Hay que decir que esto es ciencia ficción y hay que tomárselo como lo que es. Isaac Asimov escribió historias fantásticas sobre robots que sienten y que razonan, pero lo cierto es que estos procesos nos quedan aun demasiado lejos: Estudiemos primero si las redes neuronales nos pueden ayudar a romper el límite computacional. Apuesto a que sí. Una vez hayamos conseguido esto, veamos dónde está el nuevo límite. Comprendamos entonces el funcionamiento de la mente y diseñemos un modelo de la misma.

Creo que moriré sin haber visto a un RoboCop de verdad…

El test de Turing

Allá por el 1950, Alan Turing propuso una prueba, con el objetivo de proporcionar una definición práctica de inteligencia… No es ninguna broma: puede ser que un día nos encontremos ante la situación de tener que decidir si algo es inteligente o no… Nuestro científico computacional favorito sugirió una especie de examen: los sistemas que lo superasen podrían considerarse inteligentes.

Para hacer esta prueba, Turing propuso que un humano interactuase con el sistema (un ordenador, por ejemplo). Si la persona no fuera capaz de saber si está interactuando con un humano o una máquina, entonces el computador a prueba podría considerarse inteligente. El examen consistiría en una serie de preguntas y respuestas.

Desgraciadamente, un computador que supere esta prueba es muy complicado de construir, aunque no imposible. Se supone que un equipo, para pasar este test, necesitaría:

  • Comprender el lenguaje natural y comunicarse satisfactoriamente.
  • Saber cómo guardar sus conocimientos y lo que siente
  • Ser capaz de razonar, utilizando la información que tiene guardada para responder a preguntas o extraer conclusiones
  • Poseer aprendizaje automático, para adaptarse a nuevos contextos

El lector puede pensar «qué tontería, yo sé distinguir perfectamente un ordenador de una persona»… y de hecho es así, de modo que Turing evitó incluir la interacción física en su prueba. A fin de cuentas, no hace falta simular a una persona para poder medir la inteligencia. Hay otra prueba, llamada la Prueba Global de Turing que incluye estos aspectos: el computador debe, además, ser capaz de ver y de manipular objetos. Pero esa es otra historia…

Sin embargo, a muchos nos parece muy discutible que un ordenador pueda ser considerado inteligente por superar esta prueba… Anoche estuve entreteniéndome con un programa llamado Doctor Abuse, que permite mantener conversaciones con él. Incluso podemos descargar el sintetizador para escucharle. Por ejemplo, este es un fragmento de la conversación que mantuve con él:

Abuse > Conozco a algunas personas que se llaman Pau.
Yo > ¿Ah si? Yo no conozco a nadie llamado Abuse
Abuse > Pues quizá deberías de conocerlo.
Yo > Bueno, en realidad ya conozco a alguien ;)
Abuse > Je, je, je :-].
Yo> Bien, me gustaría comentarte un problemilla
Abuse > ¿Pero qué supondría para ti si lo consiguieras?
Yo> Quizá podrías ayudarme
Abuse > ¿De qué forma?
Yo> Dándome consejos, ¿no?
Abuse > ¿Qué tipo de consejos?
Yo> No sé… yo te cuento mi problema y tú me dices cómo podría solucionarlo…
Abuse > Dame más datos acerca de ese asunto.
Yo> Bien. Verás, se trata de un problema que tengo con los ordenadores
Abuse > Ya veo, estamos hablando de un problema que tienes con los ordenadores.

Fascinante, ¿no? Al principio cuesta que nos responda de forma coherente, pero no es más que aprender a tratar con él… Sin embargo, si somos un poco exigentes, en seguida aparecerán respuestas ilógicas o irrelevantes… hay muchas formas de confundir al Doctor Abuse: utilizando dobles sentidos, ironías, sobreentendidos… Así que no podemos decir que éste programa supere el Test de Turing.

Sin embargo (y aqui viene lo más curioso a mi parecer) es que los investigadores de inteligencia artificial apenas se han esforzado en superar esta prueba… y yo estoy de acuerdo con su postura: es más importante entender en qué se basa la inteligencia que duplicar un ser inteligente… Peter Norvig, en su libro Inteligencia Artificial: un enfoque moderno (lectura que recomiendo) lo explica tan bien que me voy a permitir citar:

La búsqueda de un ingenio que «volara artificialmente» tuvo éxito cuando los hermanos Wright, entre otros, dejaron de imitar a los pájaros y comprendieron los principios de la aerodinámica. Los textos de ingeniería aeronaútica no definen el objetivo de su campo como la construcción de «máquinas que vuelen como palomas de forma que puedan incluso confundir a otras palomas»

Fantástico :-)

Sobre la memoria (humana)

Este no es mi campo, pero mis colegas de CPI y de Tempus Fugit me van a permitir la intrusión… Hace unos días hablábamos sobre la inteligencia artificial, y de paso hacíamos algunas reflexiones sobre la mente. Lo cierto es que es un tema fascinante, que nos recuerda lo lejos que estamos en la IA de la inteligencia humana…

El pasado martes 21 (bueno, en realidad el miércoles 22) se emitía un nuevo programa de Redes en La 2. El tema: la memoria. Impresionante.

Eduard Punset entrevistaba, en la primera parte del programa, a Douwe Draaisma, profesor de historia y psicología en la Universidad de Groningen, y una parte de la entrevista llamó poderosamente mi atención (por cierto, estará disponible dentro de una semana en la web del programa)

Draaisma explicaba por qué a veces percibimos que el tiempo se dilata. Yo he tenido un accidente de circulación sin importancia, y recuerdo esa sensación de que todo sucede más despacio. Por lo visto, la velocidad a la que transcurre el tiempo es algo subjetivo, relacionado con nuestra actividad mental… se supone que en los instantes previos a la colisión, mi cerebro buscaba soluciones a toda velocidad, y esa aceleración de mis procesos mentales provoca que el tiempo pase más despacio.

Una consecuencia de este hecho parece ser que nuestra vida pase ante nuestros ojos cuando nos acercamos a la muerte de forma traumática… el profesor comentaba que es un hecho del que hay suficientes datos a lo largo de la historia como para suponer que es cierto.

dejavu0.gif

También aportaba una explicación (una de las más razonables desde mi óptica) al fenómeno del Déjà vu. Según Draaisma, este fenómeno se explica por una falta temporal de concentración: es decir, estamos en una situación, y por un instante, desconectamos y pensamos en otra cosa… cuando volvemos, tenemos la impresión de que ha pasado mucho tiempo, porque nuestro cerebro almacenó la situación como un recuerdo reciente…En el transcurso de la entrevista se hicieron más reflexiones… ¿por qué el tiempo pasa más lentamente en la juventud y se acelera segun pasan los años? todo fue tan interesante que no me siento capaz de explicarlo ni de resumirlo. Pero no se pierdan la entrevista cuando la publiquen, y si pueden (la hora es prohibitiva) vean el programa…

… es fascinante :-)

Consultorio SF (II). Las redes neuronales

Nuestro lector de honor, Patxi (¡gracias!) nos enviaba esta consulta:

Mola la consultoría. Aquí va una pregunta: ¿llegarán nunca los ordenadores a intepretar imágenes? ¿y vídeo?

Yo me quedaré perplejo el día que a un ordenador le enseñes un video y te lo explique: «se ve un hombre corriendo sobre una playa y ahora rompe una ola…» o algo equivalente.

En realidad aquí se plantean muchas preguntas, así que voy a intentar ir por partes… Nos enfrentamos a un problema decisivo: no conocemos casi nada sobre el funcionamiendo del cerebro. El acto de interpretar es una actividad muy humana, en la medida que precisa de la subjetividad y de la experiencia… tendríamos que preguntarnos cómo percibimos nosotros al hombre que corre por la playa (magnífica excusa para plantar la foto :-P) y cómo sabemos que se trata de una persona… es mucho más complejo de lo que nos parece, porque estamos acostumbrados a interpretar constantemente.

Así que, en cierto sentido, podemos responder que los ordenadores, tal como los conocemos, no serán capaces nunca de interpretar nada… la cuestión aquí es si realmente necesitamos que ellos interpreten de la misma forma en que lo hacemos nosotros… (pero no se desanimen, no todo es lo que parece)

Los ordenadores sólo son capaces de resolver, en principio, los problemas para los cuales conocemos una serie de pasos que nos llevan a su resolución. Pues bien, no existe (no se conoce) una secuencia de este tipo que haga comprender a un computador que lo que se ve en el vídeo es un perro, o una persona, y que lo haga en general (es mucho más complejo que reconocer una letra)

La respuesta tenemos que buscarla en la Inteligencia Artificial. Hay que decir que la IA no es sólo un tema de películas de ciencia-ficción: funciona y sus resultados son prometedores, pero no es la gran revolución que se creía en un principio.

Existe un tipo de computación basada en redes de neuronas. Una red de neuronas imita el funcionamiento de la mente humana: la idea es simular un montón de unidades independientes que pueden funcionar como pequeñas calculadoras, y que interactúan entre sí, tal y como lo hacen las neuronas en nuestro cerebro… puede parecer increíble, pero esto existe…

Hace unos días veíamos cómo los ordenadores pueden reconocer texto y proponíamos una solución sencilla paso a paso. Ahora bien, en cuanto se distorsionaban las letras, el programa no era capaz de comprender nada… Sin embargo, existe una forma de aplicar redes de neuronas al reconocimiento de texto, utilizando [modo experto] una red de Hopfield, que es capaz de soportar una modificación de hasta el 25% de un caracter a reconocer… ¿Cómo lo hace?

Las redes de neuronas aprenden. La forma del aprendizaje es muy parecida a la nuestra: se le da a red un conjunto de datos inicial y se le pide que de un resultado, el que sea. Si es el que esperábamos, hemos terminado. Si no, ajustamos cómo se comunican las neuronas entre ellas y volvemos a probar… es como un entrenamiento. Parece complicado, y de hecho lo es. No obstante, funciona :-)

Sabiendo esto no puedo decir que un ordenador no vaya a ser capaz nunca de reconocer a un hombre corriendo en la playa, pero desde luego que si lo llega a hacer, será mediante un mecanismo de este tipo… (De hecho, nosotros reconocemos a otro humano caminando en la distancia bastándonos sólo en cinco o seis puntos que se mueven a cierto ritmo… es fascinante)

Ahora mismo podríamos tomar una red de neuronas y entrenarla para que reconociera un hombre corriendo (esto existe, de hecho, en algunos sistemas de seguridad, aunque es bastante primitivo). También podríamos lograr que reconociera en un vídeo como rompe una ola (dosis extra de dificultad). Los límites de este tipo de estructuras no están nada claros, para bien o para mal.

El problema surge al generalizar: el querer una red que estudie un vídeo o una imagen y que identifique lo que sea, cualquier cosa, un perro, un gato, un calamar gigante o un humano… yo me atrevería a decir que no parece posible, salvo que el sistema aprenda todos los objetos que pueden aparecer: sus formas, su comportamiento y sus variantes… lo cual implicaría un entrenamiento largo, como el que podamos tener las personas… pero no veo por qué no podría hacerse.

En conclusión, considero que sí es posible que los ordenadores reconozcan fenómenos concretos en imágenes o en vídeo. Serán necesarias, eso sí, estructuras más avanzadas que la computación tradicional, y que estas estructuras hayan sido entrenadas con cierto volumen de datos. No obstante, será muy complicado que reconozcan todas las situaciones posibles sin que hayan sido previstas, tal y como hacemos nosotros, y en grados variables de detalle… Pero sin duda, más tarde o más temprano, la respuesta a la pregunta de Patxi será un S?.

Cuando aparecieron los primeros ordenadores, hubo quien dijo que jamás tendrían éxito por el increíble coste que tendrían… es mejor tener la mente abierta, uno siempre se lleva sorpresas ;-)

PD: Perdón por el post kilométrico, pero el tema lo merece…

La verificación de texto…

Si es aficionado al mundo bloguero y además comenta de vez en cuando los posts, seguro que ha visto ésto más de una vez:

Como posiblemente sepa, la verificación de palabra sirve para que nadie pueda enviar publicidad, utilizando programas que manden comentarios de forma automática… ¿el truco? que sólo un humano podrá reconocer texto en esa imagen distorsionada. Es una consecuencia directa de lo que nos diferencia de los ordenadores

Sin embargo, esto no está tan claro… la idea funciona bien en la práctica, pero con cierto esfuerzo se puede hacer que los ordenadores reconozcan texto. Por ejemplo, pongamos que escribimos un «2» de nuestro puño y letra:

¿Sí? Un bonito y gran número. Ahora pensemos en un ordenador que almacena este 2 en memoria y le superpone una cuadrícula, así:

Parece ridículo, pero acabamos de dar un gran salto: en este momento un ordenador ya puede tratar este número, no como un trazo, sino como una tabla donde una casilla puede tomar dos valores: blanco o negro (0 ó 1… qué curioso :P). Ahora, pongamos que el ordenador tiene grabado el siguiente gráfico en su memoria (y que tiene también la «tabla» con el valor de cada casilla)

Hasta aquí no hemos hecho magia… quizá el paso más complicado es que el ordenador lea la imagen original y construya la tabla con el color de cada casilla… pero es bien posible, se lo aseguro. El siguiente paso es fantástico:

compa.jpg

Bueno, no es tan fantástico, pero ¿se imaginan qué podemos hacer ahora? Comparemos las dos tablas que tenemos en memoria, con las casillas que están a negro o a blanco… Bien, no van a coincidir todas, pero quizá sí el 80%… y si hacemos los cuadros muy muy pequeños podremos tener aun más precisión. Luego lo único que nos faltaría es hacer una comparación entre las tablas utilizando estadística… y eso sí lo sabe hacer el ordenador :)Así que nuestro estúpido armatoste de silicio terminará comprendiendo que eso que alguien escribió es, efectivamente, un «2»… Con esto tal vez pueda hacerse una idea de lo extremadamente estúpidos que son los ordenadores si los comparamos con un humano…

¿Y qué pasa entonces con la verificación de palabra? Pues fíjese atentamente en la imagen que pusimos como ejemplo antes:

Las letras están retorcidas y en contacto para despistar al ordenador. Es todo extremadamente sutil: para diferenciar las letras como la ‘t’, la ‘j’ y la ‘i’, podríamos recortar valiéndonos de los espacios en blanco, pero entonces no sabríamos separar la ‘b’, la ‘x’, la ‘z’ y la ‘a’… cualquier programa informático se haría un verdadero lío con estos trucos tan infantiles. Si no se lo cree compruébelo.

Este tipo de tecnología ha sido ampliamente estudiada, por ejemplo, para el reconocimiento de texto de los escáneres con tecnología OCR (Reconocimiento óptico de caracteres). Hoy en día no lo hacen nada mal, siempre que no se les líe a conciencia ;-)

El hombre contra la máquina

Tal vez en alguna ocasión se haya preguntado qué nos diferencia de los ordenadores en nuestra forma de pensar que nos hace tan especiales a unos y a otros… Los grandes ordenadores actuales tienen una enorme potencia y una velocidad que hace sólo unos años era inconcebible… aunque, como decíamos en este artículo, máquinas son y máquinas serán…

homer_cerebro.jpgSintiéndolo mucho por los ordenadores, el más estúpido de los humanos es más inteligente que el mejor computador. Aunque no estemos siendo muy justos. Por ejemplo, somos mucho mejores que las máquinas realizando trabajos abstractos, como reconocer patrones y todos los que se nos plantan en los tests de inteligencia.

Por ejemplo, en la sucesión 2, 4, 6, 8, 10… rápidamente vemos que cada número es el anterior más 2, pero a un ordenador le costaría bastante más: si le diéramos varias sucesiones con un incremento cualquiera no podría en principio reconocer la forma general, salvo utilizando tanteo. La cuestión es que quizá el ordenador tarde menos en dar la respuesta por tanteo que nosotros intuitivamente…

Decía más arriba que no es muy justo porque, en sentido estricto los ordenadores no están dotados de inteligencia tal y como la conocemos, aunque hay avances muy interesantes sobre ésto. Si nos rebajamos un poco y planteamos nuestro cerebro como un tipo de sistema computacional (que nadie se rasgue las vestiduras) veremos que hay diferencias muy interesantes:

tabla_ia7.jpg

En la tabla anterior hay conceptos, como la arquitectura, que son términos heredados de la informática. Los ordenadores sólo pueden ejecutar una instrucción en cada instante de tiempo, aunque tengamos la ilusión de hacer muchas cosas a la vez… Sin embargo nosotros podemos cantar a la vez que escuchamos música, trabajamos con el ordenador y bebemos café (propia experiencia).

El número de procesadores quiere simbolizar la cantidad de elementos de cálculo. En nuestro cerebro acumulamos del orden de varios cientos de miles de millones de neuronas (incluso billones). Sin embargo los ordenadores sólo tienen, a lo sumo unas cuantas decenas de procesadores. En el caso de los PC, tienen sólo uno (aunque se pueden comprar con varios). Con este esquema, el cerebro humano puede tener varios miles de conexiones frente a las pocas que tiene un ordenador medio.

El almacenamiento es otro punto interesante. En los computadores convencionales se realiza en memoria volátil y en memoria persistente, según interese conservar los datos. El cerebro humano distribuye el almacenamiento en diferentes áreas, lo cual le hace ser mucho más resistente ante los fallos… Los accidentes pueden producirnos amnesias parciales algunas de las cuales pueden incluso recuperarse. Sin embargo, el almacenamiento computacional es enormemente delicado. Acerque un imán a un disquete, pase una lija sobre un CD… ¿se imagina que nos sucediera lo mismo? :-P

El tema de la inteligencia es muy controvertido y sin duda seguirá dando que hablar durante muchos años… Pero habrá cosas que seguiremos haciendo mejor que ellos, de la misma forma que los computadores se mueven con soltura en terrenos en los que somos manifiestamente torpes, como la simulación, el cálculo matemático, el procesamiento de grandes cantidad de datos…

Un ordenador no habría sido capaz de escribir esta entrada sin una mente diciéndole que tiene que hacer (aunque yo no lo habría publicado jamás de no ser por él…) Qué mundo éste, ¿eh?