FUNDAMENTOS E HISTORIA DE LA INTELIGENCIA ARTIFICIAL La Inteligencia Artificial es un campo relativamente joven, es heredera de diversas ideas, puntos de vista y técnicas de otras disciplinas. Durante mas de de 2000 años de tradición en filosofía han surgido diversas teorías del razonamiento y del aprendizaje, simultáneamente con el punto de vista que la mente se reduce al funcionamiento de un sistema físico. Durante mas de 400 años de matemática. Han surgido teorías formales relacionadas con la lógica, probabilidad, toma de decisiones y la computación. La psicología ofrece herramientas que permiten la investigación de la mente humana, así como un lenguaje científico para expresar las teorías que se van obteniendo. La lingüística ofrece teorías sobre la estructura y significado del lenguaje. Y por ultimo la ciencia de la computación, de la que se toman las herramientas que permiten que la IA sea una realidad. Filosofía (desde el 428 a.C.) Todo empieza con el nacimiento de Platón en 428 a.C. La Temática de su obra es diversa: política, matemáticas, física, astronomía y diversas ramas de la filosofía. Juntos, Platón, Sócrates, su maestro y Aristóteles, su alumno, sentaron las bases de gran parte del pensamiento y cultura occidentales. El filosofo Hubert Dreyfus (1979, p.67) afirma que: “Bien podría afirmarse que la historia de la inteligencia artificial comienza en el año 450 a.C.”, cuando Platón cita un dialogo en el que Sócrates le pregunta a Eutidemo: “Desearía saber cual es la característica de la piedad que hace que una acción se pueda considerar como pía… y así la observe y me sirva de norma para juzgar tus acciones y las de otros.” . En otras palabras, lo que Sócrates deseaba era un algoritmo que le permitirá diferenciar la piedad de la impiedad. Aristóteles dio un paso mas al formular con mayor precisión las leyes que gobiernan la parte racional de la mente. Concebió un sistema informal de silogismos para el razonamiento adecuado, los que en principio permiten generar mecánicamente conclusiones, asumiendo ciertas premisas iniciales. Aristóteles consideraba que no todas las partes de la mente estaban gobernadas por procesos lógicos. Consideraba también la noción de una razón intuitiva. Ahora que se tiene la idea de un conjunto de reglas mediante las que se explica el funcionamiento de la mente (o por lo menos, de una parte de ella), el siguiente paso consiste en considerar la mente como un sistema físico. Habría que esperar hasta Rene Descartes (1596-1650) para contar con un estudio claro de la diferencia entre mente y materia y los problemas que originan. El problema de concepción meramente física de la mente es que en ella parece no caber el libre albedrío: si la mente esta sujeta por completo a leyes físicas, no tiene mas libre albedrío que una roca al “decidir” caer hacia el centro de la tierra. No obstante ser un denodado defensor de la capacidad del razonamiento. Descartes propuso la noción de dualismo. Sostenía que existe una parte de la mente (o del alma o del espirito) que esta al margen de la naturaleza, exenta de la influencia de las leyes físicas. Por el contrario, consideraba que en los animales no había tal dualidad; se les podría concebir como si fueran máquinas. Una alternativa al dualismo es el materialismo, que considera que todo el mundo (cerebro y mente incluidos) funciona sujeto a leyes físicas. Probablemente haya sido Wilhelm Leibnitz (1646-1716) quien llevara por primera vez el punto de vista materialista a una conclusión lógica y construyera un dispositivo mecánico cuyo propósito era la realización de operaciones mentales. Desafortunadamente, la formulación de su lógica resulto ser muy débil, por lo que el generador mecánico de conceptos no logro dar ningún resultado interesante. Es posible optar por una posición intermedia, la que permite aceptar que la mente tiene una base física, pero que rechaza que esta pueda explicarse reduciéndola a un mero proceso físico. Es decir, procesos mentales y conciencia forman parte del mundo físico, pero inherentemente no se les puede llegar a aprehender, están más allá de la comprensión racional. Algunos filósofos que critican la IA han asumido esta posición. Matemáticas (aproximadamente desde el año 800) Los filósofos delimitaron las más importantes ideas relacionadas con la IA, pero para pasar de allí a una ciencia formal era necesario contar con una formalización matemática en tres áreas principales: computación, lógica y probabilidad. La idea de expresar un calculo mediante un algoritmo formal se remonta a la época de al-jwarizmi, matemático árabe del siglo IX, con cuyas obras se introdujeron en Europa los números arábigos y el algebra. La lógica data, por lo menos, desde Aristóteles; su naturaleza era más filosófica que matemática, hasta que George Boole (1815-1864) introdujo su lenguaje formal para hacer inferencias lógicas en 1847. El método de Boole no estaba del todo completo, pero era bastante bueno, pues basto con la contribución de otros para llenar huecos faltantes. En 1879, Gottlob Frege (1848-1825) creo una lógica que, excepto por algunos cambios en la notación, constituye la lógica de primer orden que se utiliza actualmente como sistema básico de representación del conocimiento. Alfred Tarski (1902-1983) introdujo una teoría de referencia que enseña como relacionar objetos de una lógica con los objetos del mundo real. El paso siguiente consistió en definir los limites de lo que podría hacerse con la lógica y la computación. A David Hilbert (1862-1943), gran matemático por derecho propio, se le recuerda más bien por los problemas que no pudo resolver. En 1900 propuso una lista de 23 problemas que acertadamente predijo ocuparían a los matemáticos durante todo ese siglo. En el último de ellos se pregunta si existe un algoritmo que permita determinar la validez de cualquier proposición lógica en la que figuren los números naturales: el famoso Entscheidungsproblem, o problema de decisión. Básicamente, lo que Hilbert preguntaba es si había límites fundamentales en la capacidad de los procedimientos efectivos de demostración. En 1930, Kart Godel (1906-1978) demostró que existe un procedimiento eficiente para demostrar cualquier aseveración verdadera en la lógica de primer orden de Frege y Rusell; sin embargo, con la lógica de primer orden no era posible capturar el principio de la inducción matemática necesario para la caracterización de los números naturales. En 1931 demostró que en efecto existen límites reales. Mediante su teorema de incompletez demostró que en cualquier lenguaje que tuviera la capacidad suficiente para expresar las propiedades de los números naturales, existen aseveraciones verdaderas indecidibles: no es posible definir su validez mediante ningún algoritmo. El fundamental resultado anterior se puede interpretar también como la indicación de que existen algunas funciones de los números enteros que no se pueden representar mediante un algoritmo, es decir, no se pueden calcular. Lo anterior motivo a Alan Turing (1912-1954) a tratar de caracterizar exactamente aquellas funciones que si eran susceptibles de ser calculadas. La noción anterior en realidad es algo problemática, porque no es posible dar una definición formal a la noción de un calculo o de un procedimiento efectivo. No obstante lo anterior, la tesis Church-Turing (en la que se afirma que la maquina de Turing (Turing, 1936) puede calcular cualquier función calculable) goza de aceptación generalizada en cuanto definición suficiente. Turing demostró también que existen algunas funciones que no es posible calcular mediante la máquina del mismo nombre. Por ejemplo, ninguna maquina puede decidir en general si un programa dado producirá una respuesta a determinada entrada, o si seguirá calculando definitivamente. Si bien la indecidibilidad y la incalculabilidad son importantes para comprender el proceso del cálculo, la noción de la intratabilidad tuvo repercusiones más importantes. En términos generales, se dice que una clase de problema se denomina intratable si el lapso necesario para la resolución de casos particulares de dicha clases crece al menos exponencialmente con el tamaño de tales casos. La diferencia entre crecimiento polinominal y exponencial de la complejidad fue destacado por vez primera a mediados de la década de los años 60 (Cobham, 1964; Edmons, 1965). Es importante porque un crecimiento exponencial implica la imposibilidad de resolver en un tiempo razonable casos de tamaño reducido. Es por ello que deberá optarse por dividir el problema general de la producción de la conducta inteligente en subproblemas que si sean tratables en vez de manejar problemas intratables. El segundo concepto importante en la teoría de la complejidad es la reducción, también surgido en la década de los 60 (Dantzing, 1960; Edmonds, 1962). Una reducción es la transformación general de una clase de problemas a otra, de manera que la solución de la primera clase se obtenga reduciendo esta a problemas que pertenecen la segunda y resolviendo estos. ¿Cómo saber que se trata de un problema intratable? Mediante la Teoría de la completez NP, propuesta por vez primera por Steven Cook (1971) y Richard Kart (1972). Estos demostraron la existencia de grandes clases de problemas canónicos de razonamiento y búsqueda combinatoria que son NP completos. Toda clase de problemas a la que una clase de problema NP completo pueda reducirse posiblemente sea intratable. (Si bien aun no se ha demostrado que los problemas NP completos sean necesariamente intratables, pocos son los teóricos que opinarían lo contrario). Los resultados anteriores contrastan notoriamente con el entusiasmo por los “supercerebros electrónicos” tan característico con la aparición de las computadoras. A pesar de cada vez mayor velocidad de las computadoras, una prudente y esmerada utilización de recursos caracterizara a los sistemas inteligentes. De manera sucinta: el mundo es un ejemplo de problema de dimensiones colosales. Además de la lógica y del cálculo, la tercera gran contribución de las matemáticas a la IA es la teoría de la probabilidad. Fue el italiano Gerolamo Cardano (1501-1576) quien concibiera primero la noción de probabilidad y la presento como posibles resultados de los juegos de apuesta. Antes de el, se veía el resultado de estos juegos como consecuencia de la voluntad de los dioses, mas que producto del azar. La probabilidad se convirtió pronto en parte invaluable de las ciencias cuantitativas, al ayudar en el manejo de mediciones con incertidumbre y teorías incompletas. Pierre Fermat (1601-1665), Blas Pascal (1623-1662), James Bernoulli (1654-1705), Pierres Laplace (1749-1827) y otros más hicieron avanzar esta teoría e introdujeron nuevos métodos estadísticos. Bernoulli concibió otra forma de considerar la probabilidad, como un “grado subjetivo de creencia”, más que como un índice objetivo de resultados. De esta forma, las probabilidades subjetivas se van actualizando conforme surgen nuevas evidencias. Thomas Bayes (1702-1761) propuso una regla para la actualización de las probabilidades subjetivas a la luz de las nuevas evidencias (publicada póstumamente en 1763). La regla de Bayes y el campo del análisis bayesiano, constituyen el fundamento sobre el que se apoya el enfoque moderno de abordar el razonamiento incierto en los sistemas de la IA. Ambas versiones se basan en el mismo conjunto de axiomas. La obra Foundations of Statistics (Fundamentos de estadísticas) de Savage (1954) es un útil guía para introducirse en el tema. Al igual que en el caso de la lógica, es necesario establecer una conexión entre razonamiento probabilística y acción. En la teoría de las decisiones, propuesta por vez primera por John Von Neumann y Oskar Morgenstern (1944), se combinan la teoría de la probabilidad con la teoría de la utilidad (que ofrece un marco de referencia formal y completo para especificar las preferencias de un agente) y se cuenta así con la primera teoría general que permite discernir entre acciones buenas y acciones malas. La teoría de las decisiones es la sucesora matemática del utilitarismo y constituye la base teórica de muchos de los diseños de agente de la presente obra. Psicología (desde el año 1879) Se afirma que la psicología científica se inicio con los trabajos del medico alemán Hermann Von Helmholtz (1821-1894) y su discípulo Wilhelm Wundt (1832-1920). Helmholtz utilizó el método científico en el estudio de la vista humana, y su Handbook of Physiological Optics (Manual de óptica fisiológica) todavía en nuestros días se considera como “el único tratado mas importante actual sobre la física y la fisiología de la vista humana” (Nalga, 1993, p. 15). En 1879, el mismo año que Frege dio a conocer su lógica de primer orden, Wundt inicio el primer laboratorio de psicología experimental en la Universidad de Leipzig. Wundt ponía mucho énfasis en la realización de experimentos controlados cuidadosamente en los que sus operarios realizaban tareas de percepción o asociación al tiempo que sometía a introspección sus procesos mentales. Los meticulosos controles evolucionaron durante un buen trecho hasta convertir a la psicología en una ciencia; vale la pena observar que, al irse difundiendo su metodología, se produjo un curioso fenómeno: se observo que lo datos obtenidos de las introspecciones en un laboratorio dado coincidan con las teorías prevalecientes en dicho laboratorio. El movimiento conductista de John Watson (18781958) y de Edward Lee Thordike (1874-1949) fue una respuesta contra el subjetivismo y rechazada sistemáticamente toda teoría en la que intervinieran procesos mentales, arguyendo que la introspección no aportaba una evidencia confiable. Los conductistas se abocaron en el estudio exclusivo de mediciones objetivas de las percepciones (o estímulos) experimentadas por animales y de los resultados obtenidos (o respuestas). Elaboraciones de tipo mental como el conocimiento, creencias, objetivos y pasos del razonamiento quedaron descartados por considerarlos “psicología popular” no científica. El conductismo hizo muchos descubrimientos en relación con las ratas y los pichones, pero tuvo menos éxito en la comprensión de los seres humanos. Aun así, su influencia en la psicología fue notable (especialmente en EUA) desde aproximadamente 1920 hasta 1960. La noción de que el cerebro posee y procesa información, característica principal de la psicología cognoscitiva, se remonta, por lo menos, a las obras de William James (1842-1910). Helmholtz ponía énfasis en que la percepción entrañaba cierto tipo de inferencia lógica inconsciente. Esta posición cognoscitiva se vio empañada por el conductismo hasta 1943, año de la publicación de la obra de Kenneth Craik, The Nature of Explanation (La naturaleza de la explicación). Craik encontró la pieza faltante entre el estimulo y la respuesta. Afirma que creencias, objetivos y pasos del razonamiento son validos y útiles elementos en una teoría del comportamiento humano y son tan científicos como, por ejemplo, las nociones de presión y temperatura para describir los gases, no obstante que estos estén formados por moléculas que no tienen ni presión ni temperatura. Craik establece tres condiciones fundamentales para los agentes basados en el conocimiento: (1) el estimulo deberá ser traducido a una representación interna, (2) esta representación se debe manipular mediante procesos cognoscitivos para así derivar nuevas representaciones internas y (3) estas, a su vez, se retraducen en acciones. Dejo muy claro por qué consideraba que eran los requisitos idóneos del diseño de un agente: Si el organismo contiene en su cabeza un “modelo a pequeña escala” de la realidad externa y de todas sus posibles acciones, será capaz de probar diversas opciones, decidir cual es la mejor, preparar su reacción ante situaciones futuras antes de que estas surjan, emplear lo aprendido de experiencias pasadas en situaciones del presente y del futuro y, en toda situación, reaccionar ante los imponderables que tenga que enfrentar de manera satisfactoria, eficiente y sin riesgos. (Craik, 1943). Un agente diseñado de esta manera podría, por ejemplo, planificar un prolongado viaje considerando varias rutas posibles, comparándolas y eligiendo la mejor, antes de emprender el viaje. A partir de la década de los años 60 la posición afín al procesamiento de la información ha dominado la psicología. Actualmente muchos psicólogos aceptan casi de manera táctica que “una teoría cognoscitiva deberá ser como un programa de computadora” (Anderson, 1980). Es decir, que tal teoría deberá definir la cognición que transportan las señales de entrada. En los inicios de ambas, no existía una distinción tajante entre IA y ciencia cognoscitiva. Era frecuente ver programas de IA caracterizados como si fueran resultados psicológicos, sin aclarar exactamente que tipo de conducta humana estaban modelando. Sin embargo, ya durante la década anterior, existe una mas clara delimitación metodológica y el objetivo de los estudios esta definido en un campo o en otro. Ingeniería computacional (desde el año 1940) Para que la inteligencia artificial pueda ser una realidad se necesitan dos cosas: inteligencia y un artefacto. La computadora se reconoce unánimente como el artefacto con mayores posibilidades de manifestar inteligencia. La computadora electrónica digital moderna fue inventada de manera independiente y casi simultáneamente por científicos de tres países enfrascados en la segunda guerra mundial. La primera computadora moderna que se echo a andar fue la Health Robinson, construida en 1940 por el equipo de Alan Turing y cuyo propósito era el desciframiento de los mensajes de los alemanes. Cuando estos cambiaron el código por uno mas complicado, los reveladores electromecánicos de la Robinson resultaron demasiado lentos y se construyo una nueva maquina con bulbos, la Colossus. Estaba terminada en 1943 y para el fin de la guerra, ya se empleaban cotidianamente diez Colossus. La primera computadora programable en operación fue la Z-3, inventada por Honrad Zuse en Alemania, en 1941. Zuse invento números de punto flotante para utilizarlos en la Z-3. En 1945 invento el Plankalkul, primer lenguaje de programación de alto nivel. No obstante que Zuse tenia el apoyo del Tercer Reich para que aplicase su maquina en el diseño de aeronaves, la jerarquía militar no concedió tanta importancia a la computación como su contraparte británica. En Estados Unidos, John Atanasoff y su discípulo de postgrado, Clifford Berry, armaron la primera computadora electrónica, la ABC, entre 1940 y 1942 en la universidad del estado de Iowa. El proyecto no recibió mucho apoyo y quedo abandonado luego de que Atanasoff se volcara a la investigación militar en Washington. En calidad de investigación secreta militar se iniciaron otros dos proyectos de computación: un equipo bajo la dirección de Howard Aiken diseño en Harvard las computadoras Mark I, II y III; mientras en la universidad de Pennsylvania, un equipo que incluía a John Mauchly y John Eckert diseño la ENIAC. Se trataba de la primera computadora digital, electrónica, para uso general. Uno de sus primeros trabajos fue el calculo de tablas de disparos de artillería; en su versión posterior, llamada EDVAC, se atendió la sugerencia hecha por John Von Neumman de usar un programa almacenado, para que los técnicos no tuvieran que estar apresuradamente moviendo clavijas de conmutación cada vez que tuvieran que correr un nuevo programa. Quizás el avance más notable fue la aparición de la IBM 701, construida en 1952 por Nathaniel Rochester y su grupo. Fue la primera computadora que rindiera dividendos a su fabricante. La IBM se convirtió así en una de las compañías mas grandes del mundo y sus ventas de computadoras ascendieron a $1.5 billones de dólares estadounidenses por año. Actualmente, en Estados Unidos, la industria de la computación (incluyendo software y servicios) representa aproximadamente 10% de su producto interno bruto. Con cada nueva generación de hardware de computación se han logrado aumentos en velocidad y capacidad y descensos en precio. La ingeniería computacional ha experimentado un notable éxito y por lo general, logra duplicar eficiencia cada dos años, sin que prevea un fin de esta tendencia a corto plazo. Los grandes volúmenes de maquinas en paralelo prometen la adición de muchos ceros mas al rendimiento global alcanzable. Desde luego que antes de que apareciera la computadora ya había dispositivos de cálculo. El ábaco tiene una antigüedad aproximada de 7000 años. A mediados del siglo XVII, Blas Pascal construyo una maquina para sumar y restar llamada Pascalina. En 1694, Leibnitz la mejoro y construyo un dispositivo mecánico que multiplicaba mediante la adición repetida. Los progresos se interrumpieron durante un siglo hasta que Charles Babbage (1792-1871) aspiraba a lograr que los logaritmos se calcularan mediante maquina. Diseño una para este propósito, pero nunca logro concluir su proyecto. En vez de este se dedico al diseño de la maquina analítica, para la que Babbage invento las nociones de memoria direccionable, programas almacenados y saltos condicionales. No obstante que la idea de las maquinas programables no era nueva (en 1805 Joseph Marie Jacquard invento un telar que se podía programar utilizando tarjetas perforadas), la maquina de Babbage era el primer artefacto que tenia las características necesarias para la computación universal. La colega de Babbage, Ada Lovelace, hija del poeta lord Byron, diseño programas para la maquina analítica e incluso especulo sobre la posibilidad de que la maquina jugara ajedrez o compusiera música. Lovelace fue así el primer programador del mundo y la primera de los muchos que tuvieron que absorver enormes déficits por exceso de costos y que también tuvieron, finalmente, que abandonar un ambicioso proyecto. Doron Swade y sus colegas demostraron que el diseño básico de Babbage era viable, y echaron a andar un modelo recurriendo solo a las técnicas mecánicas disponibles en la época de Babbage (Swade, 1993). La idea de Babbage era correcta, pero el carecía de los recursos de una organización que le hubieran permitido construir su maquina. La IA debe mucho también al área de software de la informática, pues la ha dotado de sistemas operativos, lenguajes de programación y herramientas necesarias para escribir programas modernos (así como disertaciones sobre estos). Sin embargo, tal deuda esta compensada: la investigación en el área de la IA ha producido muchas ideas novedosas que han ido a parar a la informática, como es el caso del tiempo compartido, los interpretes interactivos, los datos tipo lista vinculada, la administración automática de memoria y algunos de los conceptos clave de la programación orientada a objetos y los entornos de desarrollo de programa integrado con graficas de interfaces de usuario. Lingüística (desde el año 1957) En 1957, B. F. Skinner publicó Verbal Behavior (Conducta verbal), una vasta y detallada explicación del enfoque conductista al aprendizaje del lenguaje, escrito por el más destacado experto de este campo. Curiosamente, una reseña sobre este libro obtuvo tanto público como la obra misma y, además, provoco el casi total desinterés por esta. El reseñista era Noam Chomsky, quien acababa de publicar un libro sobre su propia teoría, Syntactic Structures (Estructuras sintácticas). Chomsky demostró como la teoría conductista no abordaba el tema de la creatividad en el lenguaje: no explicaba como es posible que un niño sea capaz de entender y construir oraciones que nunca antes ha escuchado. La teoría de Chomsky (basada en modelos sintácticos que se remontaban al lingüista hindú Panini, aproximadamente 350 A.C.) si podía explicar lo anterior y, a diferencia de teorías anteriores, poseía la formalidad suficiente como para permitir su programación. Estudios posteriores en el campo de la lingüística hicieron patente que los problemas eran mas complejos que lo considerado en 1957. El lenguaje es algo ambiguo; son muchas las cosas que, aunque no se expresen, se interpretan tácitamente. Es decir, para comprender un lenguaje se necesita también comprender el tema y contexto de lo que se esta hablando, no basta con comprender la estructura de las oraciones empleadas. Lo anterior podrá parecer obvio, pero a principios de la década de los 60 era algo que no se había ponderado. Gran parte de los primeros trabajos de investigación en el área de la representación del conocimiento (el estudio de cómo poner el conocimiento en una forma con la cual la computadora pueda razonar) estaban vinculados al lenguaje y sus fuentes de información eran las investigaciones realizadas por los lingüistas, a su vez relacionadas con décadas de trabajo en el análisis filosófico del lenguaje. La lingüística moderna y la IA “nacieron” al mismo tiempo, por lo que la primera no desempeño un papel determinante en el desarrollo de la IA. Más bien ambas crecieron juntas y se cruzaron en un campo híbrido denominado lingüística computacional o procesamiento del lenguaje natural, y que se concentra en el problema del uso del lenguaje.