Etiquetas

, , , , , , , , ,

Hanover es una pequeña población situada en New Hampshire, muy a noreste de los Estados Unidos. Es un sitio muy bonito, plagado de bosques, lagos y montañas nevadas. A pesar de su pequeño tamaño tiene una universidad, elDartmouth College, una de las más antiguas del país (fundada en 1769) y, según dicen ellos, una de las más prestigiosas y exclusivas del mundo. El caso es que, a pesar de esa fama, nada hacía presagiar lo que allí ocurriría durante el verano de 1956.

El plan era sencillo: diez investigadores pasarían dos meses debatiendo y compartiendo ideas sobre una cosa que se llamaba “Inteligencia Artificial”, expresión que fue acuñada por el organizador, John McCarthy, y que allí aparece por primera vez. El tema principal de las conferencias era cómo desarrollar computadoras que pudieran simular la mente humana, y como temas secundarios estaba hablar de programación, automatización, capacidad de cómputo, redes neuronales, self-improvement, aleatoriedad y creatividad… Es decir, allí se postularon todos y cada uno de los grandes temas que iban a desarrollarse a lo largo de los siguientes sesenta años.

Y es que ya, si miramos quiénes eran los organizadores, el asunto era cosa de titanes. El organizador, John McCarthy será el creador del lenguaje de programación LISP (el más antiguo lenguaje de alto nivel después de Fortran), cofundador del laboratorio de inteligencia artificial del MIT y de la Universidad de Stanford, Premio Alan Turing en 1971

Claude E. Shannon, que por aquel entonces trabajaba para la Bell Telephone Laboratories, fue el padre de la moderna teoría estadística de la información. Eso que nos enseñaban en clases de lengua de emisor, receptor, mensaje, código… todo de Shannon (Nótese que su teoría tendrá tanta influencia que llegará a materias tan distantes de la informática con la lingüística).

Marvin Minsky, que por aquel entonces solo tenía 29 años (es el único de los organizadores que sigue aún vivo) creó en 1951 SNARC (el primer simulador de redes neuronales), escribió, junto con Seymour Papert, el libro “Perceptrons“, una de las obras más influyentes en la disciplina y de la que hablaremos más adelante; y en fin, sus aportaciones al campo son inmensas: semántica computacional, percepción y aprendizaje mecánico, ingeniería del conocimiento… Su último libro “La máquina de las emociones” fue hace poco editada en español por Debate. Recomiendo leerla, es una obra muy curiosa.

Nathaniel Rochester, quien trabajó para la IBM toda su vida, escribió el primer ensamblador, diseñó la IBM 701 (en la que simuló redes neuronales artificiales), ayudó a McCarthy a desarrollar LISP, diseñó radares y supervisó un montón de importantes proyectos en IA para la IBM. Sus aportaciones a la disciplina son, igual que en los anteriores, casi incontables.

Y luego están los seis alumnos asistentes a las conferencias: Ray Solomonoff(otro genio), Oliver Selfridge, Trenchard More, Arthur Samuel, Herbert A. Simon, y Allen Newell (sobre todo, estos dos últimos, de los que hablaremos enseguida). Todos hicieron grandes aportaciones a la disciplina, pero ya no os quiero aburrir más con biografías intelectuales.

Es muy curioso, a la par que injusto, que cuando a la gente le preguntan por los grandes genios del siglo XX, suelen hablar de grandes físicos como Einstein, Bohr, Heisenberg, Feynman… pero nadie suele conocer a los grandes pioneros de la IA. Espero que el tiempo y la posteridad les hagan justicia. Hay un libro maravilloso: “Máquinas que piensan” de Pamela McCorduck (difícil de encontrar en castellano) donde se cuenta la apasionantemente historia de esta gente.

Dos grandes hitos: GPS y SHRLDU. El programa simbólico

Si nos tenemos que remontar algo más en el tiempo en la historia de la IA, tenemos que irnos a la figura de Alan Turing. No vamos a contar aquí sus grandes aportaciones a la materia (que me lío y no terminamos nunca), sino que solo nos vamos a centrar en un concepto fundamental: la máquina de Turing.

Es algo relativamente sencillo: una cinta de papel dividida en celdas que pueden tener impreso un símbolo cada una; una “cabeza lectora” que puede leer lo que pone en la cinta, y escribir y borrar en ella; y un programa, es decir, el conjunto de instrucciones sobre qué hacer en la cinta. Sencillo, ¿no? Pues esta simplona máquina es capaz de realizar, según la hipótesis Church-Turing, cualquier operación computable.

El ordenador desde el que ahora mismo estás leyendo es una máquina universal de Turing, lo mismo que hemos descrito pero mucho más complejo. Turing había inventado un ordenador primitivo que sería la base de todos los demás ordenadores.

Entonces, ya teníamos una máquina que podía realizar cualquier cálculo pensable. Si aceptamos, que el pensamiento puede reducirse a lógica y la lógica es, a fin de cuentas, matemáticas, podríamos tener máquinas que pudieran pensar. Y así comenzó todo: había que diseñar programas que realizan conductas que todos consideraríamos como inteligentes.

Vamos a ver dos de los programas pioneros en este ámbito que fueron dos hitos en la historia de la IA y que, además, representan muy bien su futura problemática: GPS y SHRLDU.

En 1957 (un año después de Dartmouth, donde ya lo presentaron), Newell y Simon (junto con Shaw) construyeron General Problem Solver (GPS), un programa diseñado para solucionar problemas de carácter general. Hasta el momento ya se habían construido magníficos programas para propósitos específicos (una calculadora de bolsillo, por ejemplo, es un muy eficaz programa para resolver cálculos, pero no hace otra cosa).

El reto consistía ahora en hacer un programa que pudiera enfrentarse a una cantidad indefinida de problemas y solucionarlos. A fin de cuentas, si queremos simular la mente humana, ésta soluciona un montón de problemas de muy diversa índole, por lo que habrá que diseñar programas de propósito general.

Implementado en IPL, el GPS era capaz de resolver problemas sencillos siempre que se le presentaran suficientemente formalizados. Por ejemplo, resolvía muy bien el problema de las torres de Hanói. Además, su forma de actuar era muy nueva e ingeniosa: se le indicaba un objetivo y él establecía la diferencia entre su estado actual y el objetivo a cumplir.

Se ponía a realizar tareas heurísticas (sub-objetivos), para luego comprobar si éstas le habían acercado al objetivo final. Si no era así volvía a empezar, y así sucesivamente. Si queréis una explicación muy sencilla aunque algo más desarrollada del funcionamiento de GPS, la escribí hace ya tiempo aquí.

La gran limitación de este prodigio de la informática es que podía resolver cualquier cosa, siempre y cuando le diésemos previamente un montón de información muy precisa acerca de las características de los objetos inmiscuidos en el problema y las operaciones que podían hacerse con ellos. Resultaba muy decepcionante que GPS no fuera ni remotamente capaz de enfrentarse a ningún problema del mundo real por sí solo. Ahora veremos por qué.

El segundo gran hito de la IA que analizaremos es SHRDLU de Terry Winograd. Mucho más avanzado que GPS, fue desarrollado en los últimos años de la década de los 60. Estaba diseñado para comprender el lenguaje natural. Era otro de los grandes retos de la IA.

Muchos predijeron que desde hace ya bastantes años, dispondríamos de traductores simultáneos o, en general de programas con los que podríamos conversar alegremente de cualquier tema. De hecho, Turing sostuvo que, si a la hora de mantener una conversación escrita a través de la terminal de un ordenador, no podíamos distinguir si hablábamos con una máquina o con un ser humano, esa sería una prueba inequívoca de que esa máquina piensa. Es el famosísimo Test de Turing. Sin embargo, se equivocaban.

Todos los años se celebra el Premio Loebner (actualmente en la Universidad de Reading) en donde se premia al programa que sea capaz de superar el Test de Turing. Se considera que la prueba se ha superado si el programa consigue engañar al menos a un 30% de los interlocutores con los que conversa.

Desgraciadamente el test aún no se ha conseguido pasar. Tuvimos un espejismo en el 2014, cuando un programa llamado Eugene Goostman, consiguió engañar a un 33% de los interlocutores. Sin embargo, haydemasiados puntos oscuros en la prueba para aceptar el resultado.

Pues bien, a SHRDLU se le implementó un pequeño mundo de formas geométricas (small block world), un entorno tridimensional en el que existían cubos, pirámides, esferas, etc. sobre el cual se le podían dar instrucciones como, por ejemplo, “Coge el cono y ponlo entre el cubo y la pirámide”. SHRDLU realizaba la acción propuesta y te preguntaba si tenía algún problema. Después podías preguntarle sobre el historial de sus acciones y la justificación de su conducta.

El caso es que SHRDLU presentaba una notable comprensión del lenguaje que utilizaba. Aquí transcribo una de las conversaciones que tuvo con su programador, extraída de otra obra que recomiendo muchísimo: “Inteligencia Artificial” de Jack Copeland. En cursiva las palabras de SHRDLU.

¿Puede una pirámide sostener otra pirámide?
No lo sé.

Apila dos pirámides
(SHRDLU lo intenta y fracasa). No puedo.

La pirámide azul es mía.
Entiendo.

Yo poseo los bloques que no son rojos pero no poseo nada que sostenga una pirámide.
Entiendo.

¿Poseo la caja?
No

¿Poseo algo que esté dentro de la caja?
Sí, dos cosas: el bloque azul y la pirámide azul.

¿Hay algo que sea mayor que cualquier pirámide que no sea tan ancho como la cosa que lo sostiene?
Sí, el bloque azul.

¿Sostiene algo verde la cosa más corta que sostiene el soporte de la pirámide más alta?
Sí, la pirámide verde.

¿De qué color es?
Supongo que te refieres a la cosa más corta que sostiene el soporte de la pirámide más alta. Rojo.

Una torre.
Lo siento, no conozco la palabra torre.

Una “torre” es un apilamiento que contiene dos cubos verdes y una pirámide.
Entiendo.

¿Hay alguna torre ahora?
No.

¿Puedes apilar, por favor, los dos bloques rojos y un cubo verde o una pirámide?
De acuerdo (SHRDLU hace lo que le ordenan).
[…]

¿Has tocado alguna pirámide antes de poner una sobre el bloque verde?
Sí, la verde.

¿Cuándo la cogiste?
Cuando estaba apilando un cubo rojo, un cubo verde grande y un bloque rojo grande.

¿Por qué?
Para quitarla.

¿Por qué hiciste eso?
Para despejar el cubo rojo.
[…]

¿Por qué hiciste eso?
Porque me lo pediste tú.

La conversación tiene algo de hipnótica y fascinante. Estamos ante una de las primeras veces que un hombre se comunica con una máquina mediante lenguaje natural de modo totalmente coherente.

Sin embargo, las ambiciones que se ocultaban tras GPS y SHRDLU fueron, rápidamente truncadas. Se diseñaron como el comienzo de algo grandioso. Winograd pensaba que la única dificultad para que su programa consiguiera manejar plenamente la totalidad del lenguaje natural era ir progresivamente agrandando su mundo.

Sencillamente habría que ir añadiendo objetos y propiedades a su, inicialmente pequeño universo, para que, poco a poco, SHRDLU consiguiera poder conversar sobre cualquier cosa. Ingenuo error. Pronto se topó con uno de los grandes problemas de la IA, todavía no superado en la actualidad: el problema del sentido común.

Aprendiendo de los expertos

Battle_Angel_by_tariq12

Si las máquinas de propósito general no habían sido fructíferas todavía quedaba otro camino que ya llevaba tiempo demostrando sus frutos: las depropósito específico. Nuestro mundo se está llenando cada vez más de artefactos que nos asisten espléndidamente en un montón de tareas concretas. El ejemplo paradigmático es el ordenador personal, una máquina que vale para infinidad de cosas y que ha sido una total revolución en nuestras sociedades.

Entonces se pensó en diseñar sistemas expertos, que no es más que hacer una máquina altamente especializada en hacer algo, de tal modo que su maestría sea equiparable al de un experto en la materia. Para programarlos se consultaba a tales expertos, se les introducía todo el conocimiento especializado en su materia, luego se les implementaba un motor de inferencia para que sacaran conclusiones a partir de los datos, y, por último, se les dotaba de un módulo de justificación para que explicaran el porqué de sus conclusiones.

Así, se fabricaron varios: Dendral (experto en química), Mycin (experto en diagnósticos de enfermedades sanguíneas) o XCon (experto en producción industrial). Y, la verdad es que funcionaron bastante bien en muchos casos, pero tenían problemas muy graves: eran muy costosos de mantener, fallaban estrepitosamente ante datos inusuales, no eran capaces de manejar conocimiento poco estructurado, era muy complicado hacer que aprendieran, y, en general, seguían careciendo de sentido común (algo no solo necesario para ir a un restaurante, sino por lo visto, también para afrontar tareas específicas) y no podían simular aspectos no formalizables de la conducta de un experto.

Por ejemplo, un especialista humano opera, muchas veces, guiado únicamente por su intuición ¿Cómo diablos implementamos en un ordenador la intuición?

A principios de los 90, la mayoría de las empresas dedicadas a diseñar sistemas expertos buscaron nuevos mercados y nuevos paradigmas de software. Otro nuevo invierno de la IA.

Construyendo bichejos

Una floreciente vía de investigación en los últimos tiempos es la llamada IA bioinspirada: aprender de los seres vivos. Se crean entornos virtuales en los que se sitúan “organismos” con distintas características para ver cómo evolucionan. La gran idea está en lo que se denomina algoritmo genético o evolutivo. Se propone un objetivo y se ponen a infinidad de “bichos” a intentar conseguirlo.

Luego se introduce en cada uno de ellos una variación aleatoria (una mutación). A los que la variación no les mejore para conseguir el objetivo o, incluso, les perjudique, se eliminan. Los que mejoren siguen y se les introduce una nueva mutación aleatoria. Así, tras muchas generaciones, obtendremos seres altamente especializados en lo que queremos obtener. Todo consiste en copiar la selección natural darwiniana, pero acelerarla tanto como nos permiten hoy nuestros computadores.

Las aplicaciones de los algoritmos genéticos van mucho más allá de formas de vida artificial. Un caso muy significativo ocurrió en 2006 cuando la NASA lanzó al espacio tres microsatélites. Para esta misión en concreto había un gran problema con las comunicaciones, ya que la naturaleza de los campos electromagnéticos implicados en ellas, hacían muy difícil el diseño de antenas para los satélites.

Después de probar varios diseños fallidos, los ingenieros de la NASA recurrieron a un algoritmo evolutivo. Diseñaron un programa que iba generando diseños de antenas de modo aleatorio. Las que mejor funcionaban, dados los problemas antes mencionados, se iban seleccionando y las que no se desechaban. Después de muchas generaciones de antenas, la vencedora fue la de la imagen. Un curioso espantajo que jamás se le hubiera ocurrido a ningún ingeniero humano.

Quizá el programa más paradigmático en este campo sea Animat, presentado por Stewart W. Wilson en su artículo “Knowledge Growth in an Aritificial Animal” de 1985. Animat es un autómata celular, es decir, es un asterisco que “vive” en una malla cuadriculada. La malla representa su entorno, su ecosistema. En ella podemos introducir todo lo que queramos, si bien, en un principio solo se introdujeron dos elementos: comida y obstáculos.

En los primeros experimentos Animat tenía que obtener comida moviéndose y evitando los obstáculos. Cada movimiento que hacía gastaba su “energía” por lo que le era urgente conseguir la máxima comida posible moviéndose lo menos posible. Progresivamente, se fueron ensayando en él un montón de interesantes posibilidades: se le dotó de percepción (al principio, era solo capaz de saber lo que había en las ochos casillas que lo rodeaban) y de múltiples estrategias inteligentes para lograr sus objetivos.

Se implementó memoria, aprendizaje de diversos tipos (por refuerzo, por inducción, mediante sistemas de clasificadores o por algoritmos genéticos) e incluso se llegaron a ensayar modelos de proto-conciencia en él. En cualquier caso, Animat es un interesantísimo proyecto que puede servirnos para conocer mucho mejor el funcionamiento de los seres vivos en su entorno.

Otro tema que se ha movido mucho en la IA bioinspirada es la llamadainteligencia colectiva o de enjambre. Con las hormigas como referente natural, la idea consiste no ya tanto en diseñar un único organismo inteligente, sino en hacer muchos, digamos “tontos”, pero que, operando en conjunto y colaborando, son capaces de una conducta muy inteligente. Si lo pensamos bien, es lo que ocurre en el cuerpo humano. Nuestras células, por sí solas, no parecen demasiado inteligentes, pero todas ellas trabajando en equipo producen cosas tan sensacionales como que puedas estar leyendo este artículo ahora mismo.

El reto de esta forma de programación es que el funcionamiento de un sistema así no está jerarquizado, es decir, no hay un módulo maestro que diga a los demás lo que tienen que hacer. Hay que programar a cada “pequeño idiota”, para que cooperando con otros muchos iguales, hagan algo inteligente. Es complicado.

Se han ensayado ya un buen número de algoritmos llamados de optimización, basándose en este principio que van siendo utilizados con cierto éxito en problemas de tráfico aéreo o de telecomunicaciones.

En el presente y más allá

prueba locicima XD

Tanto por la importancia cultural de la sci-fi, como por tener esforzados defensores como Ray Kurzweil, Hans Moravec o Rodney Brooks, el entusiasmo hacia las posibilidades de la IA sigue siendo bastante alto. Otros, sin embargo, afirman que la IA no ha salido todavía de su casi eterno invierno.

El caso es que si nos alejamos de las ensoñaciones más futuristas, los, digamos, logros intermedios de la IA han sido bastante notables. La lógica difusa, desarrollada en 1960 por Lofti Zadeh, ha resultado muy exitosa al aplicarse a la AI y ya tiene muchas aplicaciones industriales: lavadoras que regulan el uso de agua de modo supereconómico, máquinas de fotos que enfocan de forma muy inteligente o cajas de cambios automáticas (el Audi TT de 2006 ya utilizaba fuzzy logic).

Luego están todas las estrategias heurísticas desarrolladas por la IA y que, en Internet, un mundo repleto de ingentes cantidades de información, son tremendamente útiles. El mismo motor de búsqueda de Google es un ejemplo de IA. En todo lo que sea búsqueda y análisis de datos (data minning), la IA está resultado muy útil y tiene un prometedor futuro.

También han mejorado muchísimo los sistemas de traducción automática y reconocimiento de voz. Los usuarios podemos disfrutar de órdenes de voz en la mayoría de nuestros dispositivos y la verdad es que van funcionando cada vez mejor. El mismo traductor de idiomas de Google, con todos sus errores, es una herramienta muy válida.

EL MISMO MOTOR DE BÚSQUEDA DE GOOGLE ES UN EJEMPLO DE IA. EN TODO LO QUE SEA BÚSQUEDA Y ANÁLISIS DE DATOS (DATA MINNING), LA IA ESTÁ RESULTADO MUY ÚTIL Y TIENE UN PROMETEDOR FUTURO.

En general, la mayoría de las empresas de IA se han centrado en proyectos más realistas y rentables. Hay que tener en cuenta que la Inteligencia Artificial, aparte de una ciencia o una tecnología es, ante todo, una industria. Esos costosos sistemas expertos de los años setenta se han redireccionado hacia las demandas de unos usuarios que quieren máquinas que les faciliten más su vida.

Así, los sistemas expertos se han ido haciendo expertos, precisamente, en ti. De este modo, los iPhone traen consigo a Siri, todavía algo rudimentaria yWindows 10 trae a Cortana, algo más avanzada. Son asistentes virtuales especializados en servirte y cuya IA reside en aprender más y más sobre tus gustos y costumbres.

Diseñar esclavos virtuales parece otra rama prometedora de la IA. Pero, desagraciadamente, en lo que respecta a fabricar una mente artificial similar o superior a la humana, las cosas siguen bastante glaciares. Aunque se han dado ciertos avances, no se ha solucionado el problema del sentido común y las computadoras siguen sin poder enfrentarse a entornos poco formalizados. Hemos descubierto que la inteligencia no se reduce a mero cálculo (en lo cual las máquinas son las campeonas), sino que hay muchos tipos de inteligencias muy interconectadas: hay inteligencia social, emocional, creativa… ¿Cómo implementar en una máquina algo parecido a una emoción? No hay ingeniero en el mundo que tenga la más remota idea de cómo hacerlo.

Podemos simular conducta emocional, pero de hacer que un ordenador sienta realmente dolor o pena, cero patatero. Y ya ni hablar de consciencia, de que una máquina se dé cuenta realmente de lo que hace. A pesar de que en los últimos tiempos hay bastante literatura al respecto, nada de nada.

Lo siento amigos, tendremos que esperar muchos, muchos años para poder jugar al ajedrez con HAL 9000, mientras hablamos con él del sentido de la vida. Algunos dicen que en la IA está a punto de llegar una nueva primavera. Ojalá sea cierto.

El artículo completo lo encontrarán en el siguiente enlace: http://m.xataka.com/robotica-e-ia/el-gran-debate-sobre-si-sera-posible-o-no-una-inteligencia-artificial

 

Anuncios