Turing y la inteligencia de lo no computable

Por Colaborador Invitado, el 27 agosto, 2019. Categoría(s): Divulgación • Historia • Tecnología

Computadoras lógicas, mecánicas, electromecánicas… y humanas

La más notable contribución científica de Alan Turing es su noción de computabilidad, publicada en 1936 en su famosísimo artículo Sobre los números computables, con una aplicación al Entscheidungsproblem [3]. Cuando Turing se plantea los problemas de la computabilidad, tiene ciertamente en mente la posibilidad de fabricar máquinas reales que realicen (o “implementen”, como decimos los informáticos) el comportamiento mecánico basado en reglas. Por tanto, no se trata de meras elucubraciones caprichosas, sino de la vocación de un matemático-ingeniero visionario. De hecho, el interés por construir calculadoras mecánicas es mucho más antiguo. Las primeras e ingeniosas máquinas de calcular datan del siglo XVII: la Pascalina inventada por Blaise Pascal en 1641, que sumaba y restaba, y la Staffelwalze de Gottfried Leibniz en 1671, que añadió la capacidad de multiplicar y dividir mediante cilindros escalonados (que eso significa el nombre en alemán).

La pascalina de Pascal (1641) y la Staffelwalze de Leibniz (1671)

Un hito significativo lo marcó la Máquina Analítica de Charles Babbage, que usaba tarjetas perforadas para la entrada de datos y programas, y que con razón es considerada la primera computadora programable de la historia; fue inicialmente descrita en 1837, aunque nunca terminó de construirse. Ada Lovelace, gran amiga de Babbage, escribió los primeros programas para esta máquina en 1843, y además entrevió la posibilidad de utilizar las máquinas para manipular entidades diferentes a los números, tales como letras, notas musicales, etc.

Máquina Analítica de Babbage (1837) y el primer programa, por Ada Lovelace (1843)

El siguiente hito, a principios del siglo XX, fue la introducción de la tecnología electromecánica, que dio un fuerte impulso a las posibilidades de construcción de máquinas calculadoras: menos energía requerida para su funcionamiento, menos desgaste de piezas, mayor rapidez… Aquí ocupa un lugar destacado el español Leonardo Torres Quevedo, que diseñó y construyo en 1920 el primer computador electromecánico, el Aritmómetro.

Aritmómetro de Torres Quevedo (1920)

Este es el ambiente en el que Turing concibe sus ideas sobre la computabilidad, y el estallido de la Segunda Guerra Mundial convierte en apremiante la necesidad de construir más y mejores máquinas automáticas de cálculo y manipulación de símbolos. Así son las máquinas Enigma desarrolladas por los alemanes para cifrar sus comunicaciones militares, y así son las máquinas Bombe de los Aliados para descifrarlas.

Las máquinas Enigma y Bombe

Estas “bombas criptológicas” fueron concebidas inicialmente en Polonia por Marian Rejewski, pero alcanzaron su máximo desarrollo en el cuartel general de Bletchley Park, gracias al talento de Alan Turing, Gordon Welchman, y otros. En esta mansión de la campiña inglesa llegaron a trabajar al final de la guerra casi 10.000 personas, que trabajaban en distintos turnos, y con el apoyo de más de 200 bombas [2].

El cuartel general de Bletchley Park

La tecnología electromecánica posibilitó el funcionamiento eficiente de estas primeras computadoras de uso militar, pero Turing siempre tuvo claro que lo esencial no es la tecnología subyacente (el hardware), sino el diseño formal de la máquina, es decir, el conjunto de reglas lógicas que definen su funcionamiento (el software). Las reglas –el programa– pueden ser ejecutadas en un dispositivo mecánico o electromecánico, o incluso por una persona que sigue esas instrucciones sin cuestionarlas. En uno de sus trabajos posteriores a la guerra escribe [5]:

Un hombre provisto de papel, lápiz y goma de borrar, y sujeto a disciplina estricta, es en efecto una máquina universal.

Es bastante notable que la organización interna de los grupos de trabajo en Bletchley Park se ajustaba exactamente a esta descripción: los analistas se distribuían en “unidades de procesamiento” que conocían solo una pequeña parte del programa global de desciframiento, y esas unidades estaban conectadas por canales de comunicación perfectamente definidos; cada unidad realizaba su tarea con disciplina estricta, sin saber qué hacían las demás. De hecho, por motivos de seguridad, eran muy pocos los que sabían a ciencia cierta el alcance de lo que estaban haciendo en aquel apartado conjunto de oficinas (es más, el secreto no se desveló completamente hasta los años 70 del siglo XX). Bletchley Park era una inmensa computadora humana programada y manejada por Turing a su antojo.

Una computadora programable, entonces, es una máquina que procesa información, y cuyo funcionamiento es variable porque está codificado en un programa que es relativamente fácil de cambiar. De esta manera resulta ser una máquina muy flexible, cuyo propósito puede cambiar una y otra vez. Al final de la guerra esta idea se combinó con otra que resultó ser tremendamente fructífera: la computadora de programa almacenado, cuya autoría se atribuía comúnmente a John von Neumann, aunque más recientemente se ha convertido en una cuestión disputada [1]. El mismo Turing fue precursor de esta idea, pues su Máquina Universal era capaz de ejecutar cualquier programa.

Anverso y reverso del tablero de conexiones de la máquina de contabilidad programada IBM 402 (1949)

Hasta entonces, incluyendo las máquinas Enigma y Bombe, la separación entre programa y datos había sido conceptualmente estricta; la programación se realizaba enchufando y desenchufando cables en un tablero de conexiones, o modificando otras partes móviles, tales como interruptores o rotores; o bien, mediante la lectura del programa grabado en tarjetas o cinta perforada, pero sin almacenarlo en la memoria de la máquina. En cambio, de acuerdo con esta nueva y genial concepción, el propio programa que describe el funcionamiento de la máquina se almacena y procesa como cualquier otra pieza de información. Esto abrió la puerta a la idea de computadora autoprogramable, cuya importancia veremos más adelante.

Inteligencia y computabilidad

Turing es conocido principalmente por dos contribuciones científicas: la primera es la ya mencionada noción de computabilidad, publicada en 1936, y en nuestros días reconocida universalmente; la segunda, mucho más controvertida, pero aún hoy fuente continua de inspiración, es su noción de inteligencia, tal como se manifiesta en los seres humanos y en las máquinas. Por eso, con razón, se le considera fundador no solo de las ciencias de la computación en general, sino de la inteligencia artificial en particular. Esta segunda noción la expuso en su artículo de 1950, Máquinas computacionales e inteligencia [6], donde propone su famoso experimento (el Test de Turing) para determinar si una máquina puede o no puede pensar. El artículo comienza con estas palabras, que plantean la dificultad de definir qué sea una “máquina pensante”:

Propongo que consideremos la siguiente cuestión: “¿Pueden pensar las máquinas?” Deberíamos comenzar con las definiciones del significado de los términos “máquina” y “pensar”.

No obstante, en lugar de proceder a definir estos términos, Turing plantea inmediatamente la cuestión de una forma diferente, puramente operacional, mediante una prueba: un juego, semejante a otros que la aristocracia victoriana había inventado para entretenerse en su ociosidad. Se llamaba el “juego de imitación” y consistía en descubrir si, en una conversación a ciegas, y mediante el intercambio de mensajes manuscritos, un sujeto podía adivinar si su interlocutor era una mujer o un hombre.

El test de Turing como “juego de imitación”

Turing concibe su test como un procedimiento metódico, un “experimento”, para determinar de manera verificable si una máquina puede o no pensar. El experimento, como es bien sabido, consiste en que el Examinador hace una serie de preguntas, y debe comparar las respuestas de la máquina con las de una persona, y así tratar de distinguir cuál es cuál. Si no es posible distinguirlas, si desde el punto de vista del Examinador la máquina responde igual que la persona, entonces es que la máquina “piensa”. En otras palabras: consideramos de partida que las personas pueden “pensar”, sea eso lo que sea; y entonces, si no podemos distinguir operacionalmente (por sus “entradas y salidas”, podríamos decir) el comportamiento de una persona del de una máquina computacional, deberemos concluir que la máquina es igualmente un ser pensante.

Aunque Turing no lo define en este artículo, sabemos bien qué entiende por “máquina computacional”, puesto que es la esencia de su primer trabajo publicado: aquella que puede llevar a cabo computaciones conforme a algoritmos bien especificados. Por otra parte, aunque tampoco lo define, podemos inferir a partir de sus descripciones lo que Turing entiende por “ser pensante”: esencialmente, un ser capaz de “resolver problemas”. Uno de los ejemplos preferidos de Turing es el juego del ajedrez, que según él requiere de la capacidad de pensamiento abstracto, paradigmática del intelecto humano. Pero el ajedrez, como el desciframiento de claves, o la resolución de problemas matemáticos, es en el fondo un problema “cerrado”, es decir, un problema en el que se busca un determinado resultado, tal que, cuando lo encontremos, sabremos que lo hemos resuelto.

Así pues, en esencia, Turing traza una equivalencia entre pensar y resolver problemas cerrados, computables, maquinizables. Turing sabe mejor que nadie que no todos los problemas cerrados pueden resolverse metódicamente (no todos son computables), pero es significativo que su noción de inteligencia esté tan estrechamente ligada a la resolución de problemas. De hecho, esta noción de inteligencia hace que el mismo juego de imitación sea un problema cerrado (con un objetivo bien definido), tanto desde el punto de vista del Imitador (tiene que lograr engañar) como del Examinador (tiene que evitar ser engañado). Por eso no es en modo alguno inconcebible que una máquina supere el Test de Turing: cuanto mejor definido esté el problema, más fácil será programar una máquina que lo resuelva. Para que un test funcione de forma efectiva y repetible, se requiere una definición rigurosa y formal; pero es justamente el rigor y formalidad de la definición lo que permite diseñar una máquina que pase el test. Cuando pasar el test se convierte en un problema cerrado, entonces se hace factible intentar resolverlo de modo mecánico.

Aprendizaje, originalidad y creatividad

Turing analiza a continuación, en su artículo de 1950, una serie de nueve objeciones que se pueden plantear a la posible existencia de máquinas pensantes y, por ende, a su noción de inteligencia. La más interesante es la sexta objeción: las computadoras son incapaces de originalidad y creatividad, es decir, son incapaces de aprender por sí mismas. El propio Turing cita palabras de Ada Lovelace, que había anticipado esta dificultad:

La Máquina Analítica no tiene ninguna pretensión de originar nada. Puede hacer tan solo aquello que sepamos cómo ordenarle que haga.

Turing interpreta estas palabras en el sentido de que la máquina “no puede tomarnos por sorpresa”. Está claro que esta objeción de Lady Lovelace le preocupaba desde hacía tiempo. Tres años antes había escrito [4]:

Se ha dicho que las máquinas computacionales solo pueden llevar a cabo las tareas que se les han ordenado. Ciertamente es así en el sentido de que, si hacen algo diferente a aquello para lo que se les instruyó, entonces es que cometieron un error. También es cierto que la intención al construir estas máquinas es primeramente tratarlas como esclavas, dándoles solo trabajos que han sido pensados en detalle, trabajos tales que el usuario de la máquina entiende perfectamente en su ejecución de principio a fin. Hasta ahora las máquinas solo se han utilizado de esta manera. ¿Pero es necesario que siempre se usen así?

Y entonces pasa a describir cómo podría funcionar una máquina autoprogramable (recordemos que estamos todavía en 1947):

Supongamos que hemos configurado una máquina con ciertas tablas de instrucciones iniciales, construidas de manera que estas tablas podrían ocasionalmente, si surgiera una buena razón, modificarse a sí mismas. Podemos imaginar que, después de que la máquina haya estado operando por algún tiempo, las instrucciones se habrán alterado hasta el punto de ser irreconocibles, pero aun así serán tales que tendremos que admitir que la máquina todavía está haciendo cálculos muy valiosos. Posiblemente estará todavía obteniendo resultados del tipo deseado cuando se configuró la máquina por primera vez, pero de una manera mucho más eficiente. En tal caso, tendremos que admitir que el progreso de la máquina no se había previsto cuando se introdujeron sus instrucciones originales. Sería como un alumno que hubiera aprendido mucho de su maestro, pero que hubiera agregado mucho más con su propio trabajo. Cuando esto sucede, siento que uno está obligado a considerar que la máquina muestra inteligencia.

Podemos entrever tal vez aquí al joven Turing que ve cómo él mismo supera a sus maestros, demostrando así su inteligencia superior. Ciertamente, los desarrollos de la inteligencia artificial (una de cuyas subdisciplinas es el “aprendizaje automático”) han demostrado que las máquinas sí pueden tomarnos por sorpresa. Es posible –y hoy día rutinario– programar máquinas que “descubren” formas nuevas, inimaginadas hasta entonces, de resolver un problema dado. Son máquinas que incorporan hasta cierto punto la capacidad de modificar su propia programación (computadora autoprogramable), gracias a que el programa está almacenado en ellas mismas (computadora de programa almacenado). Y así es como una máquina puede aprender a jugar al ajedrez mejor que su maestro-programador; no obstante, siempre será una máquina que juega al ajedrez…

En definitiva, Turing cifra la inteligencia en la capacidad de resolver problemas, y más aún, en la capacidad de aprender a resolver problemas. No obstante, en mi opinión, en su análisis del aprendizaje en relación con la originalidad y la creatividad, Turing no distingue adecuadamente entre aprender las estrategias para resolver problemas, y aprender a reconocer los objetivos deseables, la cual es, por la propia definición de computabilidad, una tarea no computable. Pienso que esta crítica a las ideas de Turing nos ayuda a descubrir un elemento esencial de la inteligencia y de la humanidad: la consideración de los problemas que vale la pena resolver nos introduce en el mundo de los fines y los valores, cuyo conocimiento Turing –a mi modo de ver, equivocadamente– deja fuera de las posibilidades de la inteligencia, porque reduce ésta a “lo computable”. Pienso que no es descabellado afirmar que aquí Turing es profundamente deudor de la tradición empiricista anglosajona, que solo admite la posibilidad de conocer racionalmente hechos y relaciones entre hechos.

 

Este artículo nos lo envía Gonzalo Génova, profesor de la Universidad Carlos III de Madrid. Aparte de mis clases de informática, también imparto cursos de humanidades en los que trato temas de filosofía de la tecnología y pensamiento crítico.

Además de usar las redes sociales de Naukas, si quieres comentar y debatir más a fondo puedes visitar mi blog De máquinas e intenciones (reflexiones sobre la tecnología, la ciencia y la sociedad), donde esta entrada estará disponible en un par de días.

 

Referencias científicas y más información

[1] Copeland, J. (2000). A Brief History of Computing. http://www.alanturing.net/turing_archive/pages/Reference Articles/BriefHistofComp.html

[2] Hinsley, F.H., Stripp, A., eds. (1993). Codebreakers: The inside story of Bletchley Park. Oxford: Oxford University Press.

[3] Turing, A.M. (1936). On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 2(42): 230–265.

[4] Turing, A.M. (1947). Lecture to the London Mathematical Society, 20 February 1947. In Carpenter, B.E., Doran, R.W. (eds), A.M. Turing’s ACE Report of 1946 and Other Papers, Cambridge, Mass.: MIT Press (1986).

[5] Turing, A.M. (1948). Intelligent Machinery. National Physical Laboratory Report. In Meltzer, B., Michie, D. (eds), Machine Intelligence 5. Edinburgh: Edinburgh University Press, 1969. Digital facsimile viewable at http://www.AlanTuring.net/intelligent_machinery.

[6] Turing, A.M. (1950). Computing machinery and intelligence. Mind 59: 433-460, 1950.

 

Créditos de las imágenes

https://es.wikipedia.org/wiki/Pascalina

https://es.wikipedia.org/wiki/Rueda_de_Leibniz

https://es.wikipedia.org/wiki/Máquina_analítica

https://es.wikipedia.org/wiki/Ada_Lovelace

https://es.wikipedia.org/wiki/Aritmómetro

https://es.wikipedia.org/wiki/Enigma_(máquina)

https://es.wikipedia.org/wiki/Bomba_criptológica

https://es.wikipedia.org/wiki/Bletchley_Park

https://es.wikipedia.org/wiki/Tablero_de_conexiones

https://es.wikipedia.org/wiki/Test_de_Turing

 



Por Colaborador Invitado, publicado el 27 agosto, 2019
Categoría(s): Divulgación • Historia • Tecnología