Ikealigencia Artificial

Hoy estoy feliz de la vida porque me ha llegado un correo bastante divertido con una cosilla que no conocía (y que por lo que me han dicho tiene ya unos meses…). Bien, resulta que los de Ikea han creado una especie de empleada virtual que te ayuda a moverte por su sitio web (para entendernos, es la versión moderna y usable del Clippo ese que todos odiamos).

Bien, que yo sepa está disponible al menos en esta web. Hay que seleccionar «Pregúntale a Anna» abajo a la derecha. Es un recuadrito con esta pinta:

Vamos, pregúntame, no seas tímido
Se abre una ventana donde podremos preguntarle lo que queramos: «¿cómo comprar un sofá?» y cosas así. Lo que pasa es que muchos han aprovechado para someterla a un «Test de Turing» (llamémoslo así xD) algo particular.

Yo empecé por cosas más o menos normales, como preguntarle el nombre y similares. También puedes presentarte. En general se defiende bastante bien, aunque lo mejor es, siguiendo los consejos del correo que recibí, pasar directamente al rock duro y escribirle cosas como «¿Te apetece tomar una copa?» (impresionante respuesta), «Me gustas», «Te quiero», «Sácate un pecho», «Que ojos más bonitos», «Fea», «Vaya culo», «Echar un polvo» (ésta es el mejor sin duda) y otras frases igualmente progresistas y consideradas. Tampoco hay que cortarse, al fin y al cabo es un programa…

Les recomiendo que hagan el experimento, la verdad es que es bastante curioso. Investigando un poco por mi cuenta descubrí que también responde a preguntas como «¿Quién te programó?», la particular huella de sus creadores.

Relacionado | El test de Turing (con comentarios sobre un software similar a Anna, el Doctor Abuse)

A vueltas con la información

Es complicado ponerse de acuerdo sobre una definición de lo que es la información, aunque utilizando una aproximación tecnológica podemos identificarla con un concepto que encapsula (o representa) el estado de un sistema. Desde un punto de vista práctico, hay que decir que no nos interesa la información en sí, sino la manera en que podamos compartirla.

cerebro-1.jpg

Los humanos nos transmitimos conocimientos o sensaciones de muchas maneras: podemos, por ejemplo, hacerlo a través de nuestro lenguaje corporal. Una mirada, una seña, una sonrisa… no responden a una formalidad informativa, sino a un conocimiento conceptual que compartimos, a un protocolo no escrito. Están basadas, por tanto, en habilidades de tipo cultural. Incluso podemos decir una cosa y que nuestro interlocutor entienda que en realidad pensamos lo contrario (intente ser sarcástico con su ordenador, a ver cómo le va…)

Sin embargo, otras muchas veces, escribimos ideas o pensamientos, siguiendo un esquema fonético, con lo cual estamos realizando una conversión de información a lo que llamaremos datos. Parece complicado digitalizar nuestro pensamiento como tal y enviárselo a otra persona electrónicamente, pero sí que es posible escribir ese pensamiento y digitalizar ese texto. Posiblemente gracias a esta facilidad para representar conceptos de una manera formal ha podido desarrollarse la humanidad. En el fondo, y aplicando una visión abstracta, representar la información de una manera convencional ha permitido un enriquecedor intercambio al posibilitar la transmisión de conocimiento.

Nótese que utilizamos dos términos diferentes para expresar realidades diferentes: una cosa es la información (el conocimiento en sí) y otra su representación: los datos. Para entender esto, podemos hacer una prueba: yo tengo veinte discos sobre la mesa, y es algo que sé: es la información. Ahora bien, puedo representarlo como datos, escribiendo “20?, “XX?, “10100?, o lo que desee. Insisto: información no son datos.

De esta sutil diferencia parte el abismo que nos separa de las máquinas. No se puede decir que los ordenadores sean estúpidos porque sería como decir que una batidora es antipática. Quienes menosprecien a los ordenadores por no ser inteligentes deberían intentar resolver en un segundo una operación como 129238237429 x 128223472… y entonces habría que replantearse quién es el inútil aquí.

Parece claro entonces que nos movemos en dominios distintos: los humanos podemos procesar la información como un conjunto, y los ordenadores sólo podrán manejarla si les es descompuesta en datos digitalizables. Simplificando a lo bestia, hay dos planos: humanos e información, ordenadores y datos. Para que estos dos planos puedan comunicarse es preciso establecer mecanismos capaces de convertir información en datos y viceversa. Los tenemos.

Escribo esto para poner de relieve el hecho de que los ordenadores necesitan hacer un tratamiento ordenado y sistemático de la información que les llega, para lo cual no vale todo: son necesarios unos formalismos que sirvan para ordenar los datos. Y de esos formalismos nos ocuparemos próximamente.

El problema de la parada

Terminaba el post de ayer sobre los bucles infinitos comentando más o menos que una máquina no podría leer un bucle infinito sin quedarse irremediablemente inmersa en él. En los comentarios, Trebol-A nos recordaba un chiste muy bueno sobre el tema con estas palabras:

Pocas veces me he reído tanto como con el chiste aquel del programador muerto en la ducha con un bote de champú en las manos que decía:
– Lavar
– Enjuagar
– Repetir

¿Por qué a los ordenadores se les atragantan tanto los bucles infinitos? ¿No pueden detectarse o evitarse de alguna manera? La respuesta es sencilla: no. Una explicación formal y más precisa tendremos que buscarla en el llamado «problema de la parada«.

Este problema y sus conclusiones tienen implicaciones muy importantes en la gestión de los bucles infinitos que no todo el mundo conoce. Hay que explicar antes de nada que los programadores disponemos de herramientas, conocidas como «depuradores» que nos ayudan a eliminar los errores de nuestras aplicaciones. Podíamos pensar en un depurador que nos alertara de la presencia de bucles infinitos, pero por desgracia, tal herramienta no existirá nunca.

Una de las utilidades del problema de la parada consiste en demostrar que un ordenador no es capaz de reconocer si un programa entra en un bucle infinito. ¿Por qué? Vamos a verlo: imaginemos un ordenador que mostrará un «sí» en pantalla si el programa dado tiene un bucle infinito y un «no» si no lo tiene.

El ordenador comenzaría a ejecutar el programa. Si no tiene un bucle infinito, cuando el programa termine, mostrará un «no». Supongamos ahora que el programa tarde, por ejemplo, 10 años en realizar sus tareas, sin entrar en un bucle infinito. Al final de los 10 años, el ordenador nos mostrará un bonito «no» en pantalla.

Ahora supongamos que introducimos otro programa, éste con un bucle infinito. El ordenador ejecutará el bucle un número indefinido de veces. Y ahí se quedará para siempre. Jamás podrá salir del bucle, por lo que jamás nos mostrará ese «sí» que nos indicaría precisamente la presencia de un ciclo.

Ahora podemos pensar «bueno, si el ordenador tarda mucho tiempo en mostrarnos el «sí», significará que el programa entró en un bucle infinito». Pero ¿cuánto tiempo es «mucho»? ¿Un año? ¿dos? Puede ser que nuestro programa sea complicado y tarde mucho tiempo en ejecutarse… ¿dónde está el límite? Ese el problema precisamente: no podemos predecir si obtendremos respuesta o no, no sabemos si el ordenador parará o no para poder mostrarnos el resultado por pantalla. Dicho de otro modo, si no aparece salida en pantalla, no podremos saber si el programa sigue calculando normalmente o es que ha entrado en un bucle infinito…

Sólo los humanos podemos ver un bucle infinito y no quedarnos el resto de la vida pensando en él. Una muestra más de que los ordenadores son bastante torpes… mucho más que el más estúpido de los humanos. Y eso es ser muy estúpido :-P

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 :-)

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?