lunes, 10 de noviembre de 2014

El juego de la imitación.

Que tal si te propongo la tarea de saber si la persona con la que chateas, o con quien hablas por teléfono es inteligente. ¿Como lo harías?. ¿Sabias que muchas de las "personas" que prestan ayuda en chats de diversos tipos son en realidad programas computacionales?.

El titulo de esta columna hace referencia a un juego que consiste en determinar si un interlocutor es una persona o una maquina, solo mediante sus respuestas.

Supongamos que alguna máquina es capaz de "ganar" el juego (en realidad, bajo ciertos estándares discutibles, el año pasado, un programa de computación logro pasar el test http://es.wikipedia.org/wiki/Eugene_Goostman). Podemos decir entonces que esa máquina "piensa"?, ¿Es consciente?.

Esto nos lleva a pensar en cuán compleja ha de ser una inteligencia para ser capaz de poseer autoconciencia. Esta es una pregunta más complicada de lo que pareciera a primera vista, dado que la misma definición de conciencia es ambigua.**

Uno de los pioneros en el desarrollo de los computadores, el matemático inglés Alan Turing (1912-1954), se formuló esta misma pregunta, y fue él invento el test antes mencionado, conocido ahora como el Test de Turing. Sobre Alan, su interesante vida, sus aportes a la creación de los computadores, su rol en el segunda guerra mundial y su figura como ícono sobre la lucha contra la discriminación, hablaremos hoy en el Tocino.

Alan Turing y los inicios de la computación moderna.

Para ser precisos, la idea de máquinas automáticas capaces de hacer cálculos es una idea antigua. Basta citar por ejemplo los trabajos del matemático persa Musa al-Juarismi quien, en plena edad media, describió el procedimiento para manipular números arábigos y también una forma sistemática de resolver ecuaciones de segundo grado, usando lo que conocemos como un algoritmo (la palabra algoritmo deriva de su nombre) o el trabajo de Charles Babagge,  quien en 1822  diseñó una máquina mecánica (con poleas y engranajes), que servía como calculadora. Esta máquina fue terminada de construir en 1991 por el museo de Londres, usando los planos proyectados por Babbage y sólo métodos de su época, ya que el sólo la diseñó pero nunca la construyó
http://www.sciencemuseum.org.uk/objects/computing_and_data_processing/1992-556.aspx).

Turing se interesó en la idea de máquinas que calculan cuando trabajaba en lógica formal, en particular en la idea propuesta por David Hilbert sobre axiomatización de las matemáticas (El Entscheidungsproblem). En 1936 Turing presentó el primer modelo teórico de una máquina universal de cómputo,
que ahora lleva el nombre de Máquina de Turing, preocupándose sólo por los mínimos elementos necesarios. Estos elementos son:

- Una cinta separada en distintos cuadrados, donde en cada cuadrado puede existir un 1 o un 0 (esta cinta se supone infinita).
- Una cabeza lectora (CL), capaz de leer el estado de la cinta, moverse a la derecha o a la izquierda, borrar y escribir un número (0 o 1) sobre la cinta.
- Un registro de estado asociado con la cabeza lectora (la cabeza puede estar en 0 o 1)
- Una tabla, que asigna acciones sobre la cinta, dependiendo del estado de la cabeza lectora.

Esta simple definición incluye la más general maquina de cómputo. Esto significa que puede simular cualquier otro computador, sentando las bases teóricas de la computación, años antes de que los primeros computadores digitales aparecieran.

Diagrama de una máquina de Turing. Cinta con un input y un cabezal lector en estado q1. [Imagen tomada de Wikipedia].

Como un ejemplo, pensemos que en la cinta están los números 00[0]1000, donde el paréntesis denota la posición de la cabeza lectora. Supongamos que la cabeza lectora está en el estado 0. La tabla cumple el rol de un programa, y como ejemplo usamos la siguiente

  • Si el estado de CL es 0, y el valor leído en la cinta en 0, la cabeza se detiene.
  • Si el estado en CL es 1 y el valor leído es 0, la cabeza se mueve a la derecha y cambia su estado a 0.
  • Si CL esta en 0 y el valor leído es 1, la cabeza borra el número y escribe un cero. Luego, se mueve a la derecha y cambia su estado a 0.
  • Si CL es 1 y el valor leído es uno, la cinta se mueve a la izquierda
Es fácil ver que con esta tabla (tomando el estado de CL=1), y el input 00[0]100, CL se mueve a la derecha 000[1]00, luego cambia el 1 por 0 -> 000000 y luego se detiene (intenta jugando con otros inputs!)

Vídeo donde usando legos se replica la idea de una maquina de Turing (en Inglés).

Su trabajo durante la guerra.

Luego de la primera guerra mundial, la Alemania Nazi desarrolló una máquina, denominada Enigma, para encriptar (y desencriptar) mensajes secretos que se consideraba imposible de descifrar. Alan Turing luego de la fama adquirida por sus trabajos como matemático en el área de teoría de la computación, fue reclutado para trabajar en descifrar la encriptación de los mensajes alemanes. Para lograrlo, Alan y su equipo logran hacer ingeniería reversa a Enigma, y explotar una de sus falencias. Esto requería probar muchas combinaciones, por lo que el equipo, en búsqueda de la solución, construyó uno de los primeros computadores. Este logro permitió a los aliados descifrar las comunicaciones Nazis y se estima que ayudó a acortar la guerra al menos 2 años, salvando miles de vidas. Pese al reconocimiento oficial de su trabajo (con la Orden del Imperio Británico, el honor más alto que recibe un civil en Inglaterra), Turing y su trabajo científico no fueron  apreciados en ese momento y por el contrario, la discriminación social por su tendencia sexual lograron opacar sus grandes contribuciones.


La participación de Alan en la segunda guerra mundial, y su trabajo para decodificar los mensajes nazis serán parte de la trama de una próxima película.


Su figura como símbolo contra la discriminación.

En 1952 a la edad de 39 años, Alan fue condenado por ofensas a la moral, por su relación sentimental con Arnold Murray (en esos tiempos la homosexualidad era un crimen en Inglaterra). Como alternativa a la cárcel, Turing aceptó un tratamiento con estrógenos, el cual entre otros varios efectos lo dejó impotente y le desarrolló ginecomastia (en otras palabras, desarrolló senos). En 1954, sin poder soportar más su situación, Alan se suicidó comiendo una manzana envenenada con cianuro.

En 2009, luego de una petición ciudadana, el gobierno del Reino Unido se disculpó públicamente por el trato dado a Turing y se le agradecía su ayuda en la guerra. Finalmente,  luego de 60 años desde su muerte, en diciembre del 2013  Turing recibió el indulto de todo tipo de culpa por orden de la Reina Isabel ll.

Test de Turing.

Turing también fue uno de los primeros en proponer una prueba simple para ver si un computador (o en su defecto una inteligencia artificial) puede pensar . En una de sus primeras versiones Turing propuso un juego de tres jugadores, A un hombre, B una mujer y C un juez (de cualquier sexo). El jugador C no puede ver a A ni B, y sólo se puede comunicar con ellos mediante textos escritos. El objetivo de C es determinar quién es el hombre y quién es la mujer. El rol de A es tratar de hacer que C se equivoque, mientras el rol de B es tratar de que C acierte.
Turing propone poner a un computador en el rol de A, y al comparar los resultados entre el juego incluyendo sólo personas y el juego con un computador en la posición de A, se puede decidir si el computador es inteligente. En otras palabras, si C se equivoca tan a menudo cuando A es un hombre que cuando A es un computador, entonces podemos inferir que el computador es inteligente. 

Por supuesto este test ha sido mejorado y debatido ad infinitum, pero su aporte es el de poner un escenario concreto donde intentar responder la elusiva pregunta ¿pueden los computadores pensar?.**

Aunque a veces también me pregunto, frente a tanta calamidad, si siquiera el ser humano puede pensar. Recordar a Alan y su legado puede ayudarnos a guiar el camino.

Video explicativo del funcionamiento de Enigma y su rol en la Guerra




**Sobre la Inteligencia en computadores y el Hard problem de neurociencia.

Un lector curioso podria inmediatamente preguntar ¿Pensar o ser/parecer inteligente es sinónimo de conciencia? ¿lo era para Turing?.
Como surge la conexión entre la capacidad de cómputo y el fenómeno de la conciencia? Este último punto se conoce como el Hard Problem (Problema difícil) en Neurociencia. El intentar responder estas preguntas es uno de los  motores detrás de los estudios en Neurociencia que acá no intentaremos responder. Podemos eso si, intentar discutir que significaba la inteligencia para Turing.

Turing enfrenta algunas de estas preguntas en su artículo "Intelligent Machinery" (Máquinas Inteligentes) de 1948. En el, Alan se pregunta ¿Pueden las máquinas mostrar comportamiento inteligente?. Usando modelos matemáticos simples de redes neuronales, estableció las bases del área de "Machine Learning" que encuentra aplicaciones en Data mining o robotica, donde maquinas estan constantemente cambiando sus decisiones basadas en nuevos datos. Así, como se puede leer hacia el final de "Intelligent Machinery", para Turing "La actividad intelectual consiste principalmente en varios tipos de búsqueda" siendo para él la calificación misma de inteligencia un proceso subjetivo, como lo discute en la sección "Inteligence as an Emotional concept" (Inteligencia como un concepto Emocional).

No hay comentarios.:

Publicar un comentario