MÁQUINAS COMO HOMBRES

Está claro que un ordenador electrónico es capaz de realizar sumas, restas y otras muchas operaciones mecanizables y reiterativas (algorítmicas) con una rapidez mucho mayor que la del hombre mismo. Pero esto no significa que sea especialmente inteligente, pues hay que reconocer que ninguna de estas operaciones repetitivas precisa del ejercicio de capacidades intelectivas superiores, ya que es posible construir maquinas capaces de realizarlas compuestas únicamente por ruedas dentadas y dispositivos similares.

En este caso, ¿cuándo podrá hablarse con estricta justicia de inteligencia artificial?. La contestación a esta pregunta no es nada fácil. Uno de los pioneros de la investigación teórica en el campo de los ordenadores, el matemático británico Alan Mathison Turing (1912-1954) propuso en 1947 un criterio (llamado en su honor "la prueba de Turing") que permitiría decidir cuando una máquina podría considerarse por fin inteligente.

La prueba de Turing nos presenta la siguiente situación: dos contertulios de un investigador son un ser humano y un ordenador que trata de pasar por un humano. El investigador y sus interlocutores se encuentran en salas separadas y dialogan mediante terminales de computadora. ¿Podrá la maquina engañarle? Según Turing, podemos hablar de inteligencia artificial, y se podrá decir que la maquina piensa, cuando el interrogador sea capaz de distinguir cual es la estación terminal conectada a un ser humano y cual es la conectada a una computadora después de un numero razonable de preguntas y respuestas.

Hasta ahora, a pesar de los años transcurridos desde que Turing formuló su famosa prueba, ninguna máquina ha sido capaz ni siquiera de aproximarse a cumplirla.

No es difícil descubrir, tras un breve dialogo que estamos hablando con un ser humano. Estrictamente, por tanto, no se puede decir que la inteligencia artificial se halla conseguido nunca, pero si que ha habido diversos intentos de lograrla que pueden catalogarse bajo ese nombre si aplicamos al termino una definición más amplia y menos restrictiva.

CEREBRO VS. MICROPROCESADOR

Los microprocesadores son circuitos electrónicos integrados encargados del procesamiento de la información en las computadoras. Las arquitecturas más comunes incluyen:

La computadora funciona como una unidad de procesamiento, recibiendo los datos a procesar mediante los dispositivos de entrada, y entregando el producto elaborado mediante los dispositivos de salida. Esta actividad la desempeñan con notable precisión y velocidad, y en esto supera seguramente a nuestro cerebro.

A diferencia del chip de silicio, nuestro cerebro ha evolucionado durante millones de años. Al intentar simularlo en las computadoras se ha revelado lo difícil que es realizar algunas operaciones que aquél realiza con facilidad. Las operaciones referidas son tareas que realizamos cotidianamente y sin esfuerzo pero requieren ciertas característica que las computadoras no poseen.

Velocidad de transmisión

Cuando comparamos el funcionamiento del cerebro y el de la computadora, la primera gran diferencia que hallamos es la de la manera de que en ambos se transmite la información.

El ordenador maneja datos codificados en códigos binarios, que se representan físicamente mediante dos niveles distintos de energía eléctrica. Esto hace que la velocidad de propagación de los mismos sea muy alta y se mejore con cada nuevo diseño de microporcesador.

Por el contrario, la transmisión de la información en el sistema nervioso, se realiza mediante un proceso electroquímico en la membrana de la neurona y mediante la sinapsis, que es el proceso químico con el cual se comunica una neurona con otra. Ambos procesos son mucho más lentos que el paso de energía por los circuitos del ordenador.

¿Cómo se explica entonces que el cerebro sea más eficiente en resolver algunas tareas, si emplea tiempos de transmisión mayores?

Proceso serie y paralelo

La paradoja de cómo se consiguen soluciones rápidas en el cerebro, empleando un circuito que opera lento, se explica mediante una técnica denominada proceso paralelo. Éste consiste en descomponer una sola tarea compleja en varias subtareas que pueden ser resueltas simultáneamente por distintos grupos de neuronas, en lugar de sucesivamente. El resultado es que el tiempo total del proceso se reduce.

El proceso paralelo es posible por la extraordinaria ramificación de las conexiones entre las neuronas, cosa que es técnicamente imposible de lograr en los ordenadores.

La ramificación es tan extensiva que, cada neurona de la corteza, pueden realizarse contactos con al memos 3.000 sinapsis y cada milímetro cuadrado de corteza cubre más de 100.000 células nerviosas.

La actividad de cada sinapsis produce sólo un pequeño cambio en el potencial de la célula a la que se conecta, y debido a que cada célula tiene un umbral que debe ser alcanzado antes de que se excite, hay que sumar la actividad unida de cientos de sinapsis para que la célula conduzca una señal eléctrica a través de su axón.

El alto grado de excitación convergente que se necesita para activar una célula, hace que el proceso sea muy diferente del de los ordenadores con los cuales intentamos compararlo. A diferencia del ordenador, que está organizado de forma fuertemente jerárquica, la corteza cerebral parece operar como una sociedad democrática. Sólo cuando un número suficiente de células considera que un hecho ha tenido lugar, actúan de manera conjunta para producir un impulso nervioso en la célula en la cual convergen.

Actualmente se desarrollan supercomputadoras que emplean proceso paralelo de la información, emulando al cerebro.

KASPAROV VS. DEEP BLUE

Uno de los primeros programas de ajedrez fue el llamado Hitech, creado por Hans Breliner, el que domino el campo durante los años ochenta y alcanzo una clasificación de 2400 puntos en el sistema de clasificación internacional, pero fue a su vez superado por Deep Thought, desarrollado por un grupo de estudiantes de la Universidad Carnegie-Mellon que en 1990 rebasa los 2600 puntos, lo que le convierte en el primer ordenador, que alcanza la categoría de gran maestro internacional de ajedrez. Como punto de comparación, un campeón mundial suele estar situado por encima de los 2700 puntos.

En mayo de 1997, la computadora Deep Blue superó al campeón mundial del ajedrez Garry Kasparov.

Deep Blue es una supercomputadora que puede analizar 200 millones de jugadas por segundo, pesa 600 kilos y tiene 64 microprocesadores. En una posición determinada, Deep Blue visualiza todas las estrategias posibles y las posiciones que se van derivando hasta un alcance de 24 movidas.

El debate entre Kasparov y Deep Blue es una episodio más en el tradicional enfrentamiento de dos formas distintas de pensamiento.

Pensamiento heurístico vs. pensamiento algorítmico

Tradicionalmente se reconoce en las computadoras un pensamiento algorítmico. Éste consiste en la resolución de problemas siguiendo un estricto programa, en el cual se han considerado todas las posibles eventualidades que se puedan presentar. Así, la solución a la que se arriba es óptima.

En cambio en el hombre se da otro tipo de pensamiento llamado heurístico. La heurística consiste en arribar a la solución de un problema siguiendo reglas dictadas por la experiencia, sin necesidad de analizar todos los posibles caminos de solución. La solución obtenida no siempre es la mejor, pero se halla más rápidamente.

En contraste con esta diferencia cualitativa entre ambas formas de pensamiento, otros científicos opinan que habría sólo una diferencia de grado entre el pensamiento humano y el proceso computacional. Sugieren que no somos conscientes de todos nuestros pensamientos y, por lo tanto, lo que interpretamos como solución heurística podría deberse a un proceso algorítmico subconsciente.

Pero esto no resuelve la cuestión de quién es más que quién: el ajedrez es un juego estrictamente lógico y en eso las computadoras pueden superarnos. No sólo por la velocidad de cálculo sino porque carecen de perturbaciones emocionales.

Sin embargo, no puede afirmarse que la inteligencia artificial haya logrado superar a la humana, porque la inteligencia humana es mucho más que lógica, y es en éste sentido que puede decirse que "el ajedrez no es un juego inteligente".

DESARROLLO HISTÓRICO DE LA I. A.

El termino "inteligencia artificial" fue propuesto por primera vez por John McCarthy, con ocasión de una conferencia internacional de informática celebrada en el Dartmouth College de Hanover (E.E.U.U) en 1956. Inicialmente se aplicó el nombre a todas aquellas ramas de informática que parecían relacionada con la emulación de las actividades mentales superiores del hombre ¿cuáles serán estas?.

Esencialmente, las siguientes: demostración automática de teoremas matemáticas; comprensión por las maquinas del lenguaje humano hablado y escrito; programas capaces de aprender de su propia experiencia; y los que pueden jugar con decoro a los llamados "juegos inteligentes": las damas y el ajedrez.

Juegos inteligentes

Por aquellas fechas y a pesar que los ordenadores electrónicos tenían a sus espaldas una historia muy corta y aun se encontraban en la primera generación, se habían conseguido ya algunos logros notables en estos campos. En 1956 el norteamericano Herbert Gelernter, del laboratorio de IBM en Poughkeepsee (Nueva York), había construido uno de los primeros casos auténticos de inteligencia artificial: un programa que podía resolver teoremas sencillos de geometría plana. En ese mismo año Arthur Samuel construyo otro capaz de jugar a las damas, que además guardaba información sobre las partidas jugadas y la utilizaba para evitar cometer los mismos errores en partidas posteriores. Hasta cierto punto, por lo tanto, se podía decir que el programa "aprendía". Y lo hizo tan bien que, en unos pocos años, jugaba razonablemente bien, ganaba sistemáticamente a su propio autor y desempeñaba un papel decoroso en los campeonatos oficiales.

Las damas fue el primer juego inteligente abordado por los programadores porque es relativamente sencillo, comparado con el ajedrez (solo existen dos tipos de piezas y el numero de casillas aprovechables en un tablero de ocho por ocho es igual a treinta y dos). Desde el primer momento, sin embargo, se comprendió que el ajedrez iba a ser un hueso más duro de roer: son seis tipos diferentes de piezas, los movimientos son mucho más complejos y hay sesenta y cuatro casillas accesibles, lo que multiplica considerablemente el numero de jugadas posibles en cada momento y, por ende, la complicación del juego. Sin embargo, más o menos por la fecha del congreso internacional en que se bautizó la inteligencia artificial, ya se había dado el primer paso para vencer todas las dificultades: Alex Bernstein, de la Divison de Ciencias Aplicadas de IBM, había sido el primero en construir un programa capaz de jugar al ajedrez al nivel de un principiante, cuya aparición fue profusamente aireada por la prensa especializada.

Como consecuencia de estos avances, aparentemente arrolladores, los participantes en el congreso formularon predicciones extraordinariamente optimistas. "En diez años – decían - tendremos programas capaces de ganar sistemáticamente al campeón del mundo del ajedrez. Podremos hacer, gracias a los ordenadores, traducciones automáticas perfectas, entre dos lenguas humanas cuales quiera. Y eso será sólo el principio: los avances se aceleraran progresivamente y pronto podrá resolverse de forma satisfactoria el viejo sueño de la ciencia-ficción: la construcción de hombres artificiales, robots humanoides, o como se les quiera llamar."

Pero las cosas no salieron como estos optimistas preveían. En 1968, tras diez años de esfuerzos constantes, los programas que jugaban al ajedrez seguían al nivel de un principianta y las traducciones automáticas entre lenguas humanas eran dignas de risa.

Traducción automática

Hay una famosa anécdota, posiblemente apócrifa, que cuenta como se construyeron por aquella época dos programas traductores, el primero de los cuales vertía los textos del ingles al ruso, mientras el segundo realizaba la traducción opuesta. Para probarlos, se proporciono al primero el texto bíblico siguiente: "The espirit is ready, but the flesh is weak" ("el espíritu esta pronto, pero la carne es débil"). La versión rusa obtenida volvió a verterse al ingles, gracias al segundo programa traductor, obteniéndose al final de este viaje en dos direcciones el texto siguiente: "The vodka is good, but the meat is spoiled" ("el vodka es bueno, pero la carne esta estropeada"). Naturalmente, todo gira alrededor del doble sentido de algunas palabras: spirit, que en ingles significa a la vez "espíritu" y "bebida alcohólica", flesh, que posee los dos sentidos de su equivalente español "carne" (alimento y cuerpo), weak, que puede significar débil de fuerzas o débil de calidad. Como se aprecia fácilmente, cualquier parecido de la traducción con el original era pura coincidencia. El ejemplo, sin embargo, deja muy claras las dificultades reales del problema, que proceden de que las lenguas humanas son intrínseca y esencialmente ambiguas, y esto hace muy difícil interpretarlas correctamente sin un conocimiento previo muy amplio sobre el mundo, conocimiento del que los ordenadores carecen.

La consecuencia de este fracaso en las predicciones de los avances de la inteligencia artificial fue la práctica detención de las investigaciones en todos estos campos durante casi una década. La disciplina fue abandonada por los principales centros de investigación informática y quedó relegada a unos pocos departamentos universitarios más o menos perdidos. Sin embargo, sin demasiada publicidad, comenzaron a surgir nuevas investigaciones que sólo mucho más tarde pasaron a considerarse parcelas propias de la inteligencia artificial. Estos campos nuevos fueron, esencialmente, dos: la visión de las máquinas y los sistemas expertos.

Redes neuronales

Paralelamente a todo esto, otra línea de investigación, que acabó por considerarse también parte de la inteligencia artificial, y que también hundía sus raíces en los años cincuenta, había pasado por vicisitudes muy semejantes a los campos clásicos. Su objetivo era la construcción de máquinas distintas de los ordenadores electrónicos que deberían alcanzar comportamientos más o menos inteligentes por métodos más semejantes a los que utilizamos los seres humanos. Y puesto que nuestro cerebro está formado por neuronas, se intento construir una neurona electrónica que simulara el comportamiento de las células nerviosas. Se creía que estas neuronas artificiales, conectadas entre si, podrían llegar a pensar.

Las maquinas en cuestión, llamadas perceptrones, estaban constituidas por dos capas de neuronas simuladas, cada una de las cuales se conectaba con las de su misma capa y las de la siguiente, pero no con las de la anterior. El problema era que la construcción real de los perceptrones presentaba dificultades, pues cada neurona requería un circuito complejo y el numero de neuronas necesario era muy grande.

En consecuencia, se recurrió a simular estos dispositivos en ordenadores electrónicos ordinarios, lo que resultaba mucho más barato y, por lo tanto, factible, pero también considerablemente más lento. Se creía por entonces que a medida que los ordenadores fueran más rápidos, se podrían simular circuitos de perceptrones más complicados, que tal vez acabaran por pensar.

Uno de los primeros problemas que se trato de resolver con perceptrones fue la construcción de una retina artificial que actuara frente a la luz de una forma parecida a la de nuestros ojos, que realizan un procesamiento notable de la información visual antes de enviarla al cerebro. Desgraciadamente, en 1965 los norteamericanos Marvin Minsky y Seimour Papert demostraron teóricamente que los circuitos con perceptrones jamas serán capaces de resolver ciertos problemas muy sencillos. Como consecuencia de esto, la investigación en esta rama desapareció casi por completo durante muchos años.

Sistemas expertos

A finales de los años setenta, la inteligencia artificial revivió, saliendo del marasmo en que había caído. La causa remota fue el avance logrado en esos años por los nuevos sistemas expertos, el primero de los cuales (Dendral) fue diseñado en 1965 por los norteamericanos Edward A. Feigenbaum y Joshua Lederberg, que utilizaron un camino diferente y original. Su objetivo era construir un programa que fuera capaz de obtener la formula de ciertos compuestos orgánicos, realizando deducciones inteligentes a partir de los datos del análisis químico. Después de bastantes años de trabajo, el programa Dendral llego a convertirse en un verdadero sistema experto en la estructura de las moléculas químicas.

El proyecto quinta generación

Pero la causa inmediata del resurgir de la inteligencia artificial fue el lanzamiento, por el gobierno de Japón, del proyecto de la quinta generación de ordenadores, que comenzó oficialmente en 1982, y que en diez años, al decir de sus diseñadores, debía obtener maquinas totalmente nuevas, que utilizarán las técnicas de la inteligencia artificial y de los sistemas expertos para conseguir un comportamiento inteligente y serian capaces de comunicarse con los seres humanos en su propia lengua, realizando además traducciones prácticamente perfectas entre idiomas tan diferentes como el ingles y el japonés.

Como se observara, el proyecto de la quinta generación era en el fondo una repetición de las previsiones de 1958, con las que coincidía incluso en el plazo previsto para su cumplimiento. Como en aquel caso, también estas previsiones fracasaron, aunque no totalmente, pues el proyecto japonés asusto a los gobiernos norteamericano y europeos, que impulsaron proyectos paralelos para impedir que Japón, en caso de tener éxito, se apoderara del comercio informático mundial. El resultado de todos estos proyectos fue un conjunto de avances en campos aislados que, aunque no se aproximaban a los objetivos previstos al principio, tampoco eran despreciables. Fueron precisamente los campos nuevos, los de la visión artificial y los sistemas expertos, junto con el procesamiento de textos en lenguas humanas y un nuevo desarrollo de las redes neuronales, los que conocieron mayores avances, que hasta el momento han impedido que la inteligencia artificial caiga de nuevo en una etapa de investigación detenida.

Los campos en los que se divide hoy la investigación en inteligencia artificial son: demostración automática de teoremas, juegos inteligentes, procesamientos del lenguaje natural, hablado y escrito, visión de maquinas, sistemas expertos, redes neuronales artificiales. A primera vista puede pensarse que esta disciplina no es más que un cajón de sastre, un revoltillo de actividades que tienen poco en común, aparte del hecho que para nosotros, los seres humanos, resultan simples, mientras que nos esta resultando muy difícil conseguir que las maquinas las realicen. Y donde lo conseguimos, ya no nos parecen tan inteligentes y se alzan voces que niegan que dichas aplicaciones deban seguir llamándose inteligencia artificial. Por eso hay quienes definen, con ironía, la inteligencia artificial como la rama de la informática que se ocupa de todo lo que todavía no sabemos hacer con un ordenador.

Definición de I.A.

¿De que manera podríamos definir la inteligencia artificial para que abarque de modo natural todos los campos anteriores, aparentemente tan dispares? Bastara con fijarnos en que, en todos los casos, la información que se procesa es de un tipo especial, muy diferente de la que utilizan los programas clásicos de ordenador. En lugar de un procesamiento predominante numérico, en todos estos casos se trabaja con información textual o simbólica. Por otra parte, los métodos utilizados para procesar la información no se basan en teorías establecidas o en algoritmos cuya eficacia se pueda demostrar o incluso deducir mediante procedimientos, digámoslo así, matemáticos, sino que se apoyan casi exclusivamente en la experiencia (reglas heurísticas). Por esta razón, la definición oficial de la inteligencia artificial puede expresarse con las siguientes palabras: "La inteligencia artificial es el conjunto de técnicas utilizadas en un ordenador que permite procesar información simbólica por medio de procedimientos heurísticos ".

Pasamos ahora a detallar algunos de los avances más importantes experimentados recientemente en los distintos campos de la inteligencia artificial.

Entre los juegos inteligentes, dominadas ya las damas desde los años 60, el chaquete o backgammon fue el segundo en caer, cuando el programa BKG 9.8, diseñado por el norteamericano Hans Berliner, logro en 1979 vencer al entonces campeón mundial (el italiano Luigi Villa). más o menos a partir de esta fecha aparecieron en las tiendas de aparatos electrónicos unas maquinas capaces de jugar al ajedrez a nivel bastante aceptable, mejor que el de la mayoría de la población. Sin embargo, no se puede hablar en este caso de inteligencia artificial, pues, aprovechando la velocidad creciente de los microprocesadores que contienen, se limitan a revisar un numero muy grande de posibilidades y a elegir la más prometedora, de acuerdo con un sistema de puntuación de situaciones totalmente preprogramados.

Sin embargo, si ha habido avances en los programas de ordenador que aprenden de sus errores, y algunos de ellos han logrado ascender muchos puestos en la calcificación mundial de jugadores de ajedrez rebasando a muchos seres humanos.

En el campo de la visión de las maquinas, los avances más espectaculares se han conseguido en la robótica, que se utiliza sobre todo para automatizar la fabricación, por medio de brazos móviles (robot), capaces de obtener información visual sobre el entorno que les rodea (por medio de cámaras de televisión) y de procesar dicha información para reconocer las piezas y componentes que necesitan utilizar en la realización de las operaciones para las que han sido programados.

Proyectos de defensa

La respuesta norteamericana al desafío del proyecto japonés de la quinta generación de ordenadores se centro sobre todo en este campo, y fue patrocinada por el Departamento de Defensa de EE.UU., y en particular por la Agencia de Proyectos de Investigación Avanzada (DARPA), que desarrollo un plan muy ambicioso cuyo objetivo es la aplicación de la inteligencia artificial a problemas críticos de la defensa.

Uno de los proyectos más avanzados, realizado en la colaboración con la Universidad Carnegie-Mellon, tiene como meta el desarrollo de un vehículo terrestre autónomo, es decir, un coche sin conductor. La versión actual de este vehículo (un camión cargado de procesadores) es capaz de planear y ejecutar rutas de varios kilómetros a través del campus de la universidad, evitando obstáculos y alcanzando velocidades moderadas (de 5 a 10 km/h). También existen proyectos paralelos que tratan de desarrollar vehículos aéreos o submarinos autodirigidos.

Mas ambicioso es el proyecto Pilot’s Associate (asociado del piloto) de un avión de caza, cuya complicación es tan grande que un ser humano ya no es capaz de mantenerlo con la máxima eficiencia, sobre todo si se encuentra en una situación hostil. Si este proyecto se lleva finalmente a la practica, el avión ira provisto de varios sistemas expertos, que asumirán determinados papeles durante el vuelo (mecánico de a bordo, navegante, oficial de contramedida, gestor táctico... ), proporcionando al piloto el equivalente de una tripulación de expertos. El mecánico de a bordo, por citar un ejemplo, comprobará el estado de los restantes sistemas y podrá modificar el funcionamiento del avión, si es necesario, de forma semiautonoma.

Finalmente, la iniciativa de Defensa Estratégica o SDI (siglas de Estrategic Defence Initiative, conocida comúnmente bajo el nombre de Star Wars o "Guerra de las galaxias") intenta construir un sistema de defensa espacial para proteger a los EE.UU. contra un ataque con misiles nucleares. El sistema es tan complejo (tiene que supervisar gran cantidad de información obtenida mediante satélites y responder en un plazo muy breve, que en la practica se reduce a minutos), que tiene que tomar automáticamente sus propias decisiones, lo que significa que será necesario utilizar técnicas de inteligencia artificial.

También la Agencia Espacial Norteamericana (NASA) ha considerado la posibilidad de utilizar estas técnicas en la exploración del espacio. Las próximas misiones y sondas planetarias (notoriamente una que podría partir hacia Titán, el mayor de los satélites de Saturno, hacia el año 2000) serán casi completamente automáticas y utilizaran la inteligencia artificial para corregir los errores que puedan surgir durante el viaje y para hacer más eficaz la exploración de lugares desconocidos del sistema solar.

SISTEMAS EXPERTOS

Un sistema experto en un tipo concreto de problema es un programa que trata de obtener resultados, a partir de los datos disponibles, de una manera semejante a como lo haría un experto humano en el mismo campo.

Del estudio de estos expertos se deduce que, a menudo, utilizan reglas heurísticas (es decir, producto de la experiencia) que pueden expresarse más o menos así:" si se cumplen estas y aquellas condiciones, podemos deducir que ocurre tal o cual cosa". O bien" cuando ocurren estas y aquellas circunstancias, hay que actuar de determinada manera". Las primeras podrían llamarse reglas de diagnostico, pues nos permite analizar e identificar la situación con la que nos enfrentamos, mientras que las segundas son regla s de actuación, que nos capacitan para responder a dicha situación. Un experto utilizara primero la regla de diagnostico y, como consecuencia de ella, pasara a aplicar la de actuación.

Los sistemas expertos se diferencian de los programas de ordenador convencionales en su estructura y en la forma en que organizan la información de que disponen. Mientras en un programa clásico existen dos niveles (las instrucciones y los datos), en los sistemas expertos podemos distinguir cuatro componentes diferentes. En primer lugar, los datos sobre el problema concreto con el que nos enfrentamos, que a veces se llama axiomas. En segundo lugar, un conjunto de reglas heurísticas de los dos tipos indicados arriba. En tercer lugar, un sistema o motor de inferencias, capaz de aplicar las reglas sobre los datos de que dispone. Finalmente, un interfaz de usuarios que permite un uso correcto y simple del sistema experto por una persona poco ducha en informática.

El papel que desempeñan las instrucciones en los programas clásicos se ve aquí dividido entre las reglas (que incorporan la información que utilizaría un experto humano en el mismo campo) y el motor inferencias, que es el mismo, cualquiera que sea la información y las reglas de que se disponga y que, por tanto, puede servir para un número ilimitado de sistemas expertos diferentes. El conjuntos de las reglas utilizadas por el sistema experto y de los datos correspondientes al problema concreto que se trata de resolver se denomina base de conocimientos del sistema experto, y esta es la parte que varia entre un sistema experto y otro diferente que utilice el mismo motor de inferencias.

Algunas veces no se hace distinción entre reglas y datos o axiomas. La razón de esto es que una regla es una afirmación condicional (B si A), mientras que un datos una afirmación incondicional, que también puede considerarse como un caso particular de regla donde A se cumple siempre (y por ello B se cumple siempre).

La interfaz del usuario no es esencial para el funcionamiento de un sistema experto, pero sí facilita considerablemente su utilización, y en el mejor de los casos debería permitir al usuario comunicarse con el sistema experto de la manera más natural posible: con frases pertenecientes a su propia lengua.

El conjunto de una interfaz de usuario, de un motor de inferencias y de un sistema de soporte de una base de conocimientos vacía (sin información) no es un sistema experto, sino un entorno de desarrollo de sistemas expertos (expert system shell). Existen en el mercado varios entornos de desarrollo de este tipo. Sólo después de introducir la información correspondiente en la base de conocimientos se podrá hablar de un verdadero sistema experto.

PROCESAMIENTO DEL LENGUAJE NATURAL

El problema del procesamiento del lenguaje natural puede dividirse en dos partes principales: el del lenguaje hablado (procesamiento de voz) y el del lenguaje escrito (procesamiento de textos en lenguaje natural); cada una de Las dos partes se divide, a su vez, en varios subproblemas diferentes. Pero procedamos con orden.

Procesamiento de voz

El primero esta esencialmente resuelto: basta disponer de una base de datos de sonidos silábicos (el numero de sílabas diferentes de una lengua hablada es relativamente pequeño algunos centenares), y de algoritmos para variar su entonación y combinarlas entre si. Ultimamente se ha hecho famoso el sistema generador de voz que utiliza el fisico Stephen Hawking para dar conferencias, dado que su enfermedad impide hablar audiblemente. En cambio, la comprensión del lenguaje hablado es un problema más arduo, que normalmente se aborda en dos etapas: en la primera, Las fases habladas se traducen al texto escrito.

La segunda (la interpretación de dicho texto) se reduce al problema de la compresión del lenguaje escrito, que veremos más adelante.

Aun no se ha conseguido la traducción correcta por ordenador de frases habladas, cualesquiera a texto escrito. Para poder abordar el problema se han introducido restricciones que lo hacen más sencillo, especialmente algunas de Las siguientes:

- Restricción del texto hablado

- Restricción de la velocidad con que se habla

- Restricción de la persona que habla

Se utiliza la primera cuando lo que se desea interpretar es un subconjunto reducido del lenguaje hablado. Por ejemplo: ordenes para el sistema operativo de la computadora. Existen en el comercio varios programas y tarjetas de procesamiento de voz que permiten a cualquier persona emitir dichas ordenes ante un microfono y ser obedecida. Ahora bien, si el texto hablado es cualquiera (como ocurre en un sistema editado por ordenador), el número de combinaciones es tan grande, y existen tantas diferencias de acento y pronunciación entre Las personas, que es prácticamente imposible construir un programa capaz de entender todo lo que hable cualquiera de ellas. Existen dos maneras de resolverlo: o se obliga al que habla a separar las palabras (es decir, a hablar despacio) o se adapta el sistema de procesamiento de voz a una persona concreta, mediante una etapa de aprendizaje.

Procesamiento del lenguaje natural escrito

El problema del procesamiento de textos en lenguaje natural puede descomponerse en otros tres:

- Generación por ordenador de lenguaje natural comprensible.

- Comprensión por el ordenador del lenguaje humano escrito.

- Traducción automática entre dos lenguas humanas diferentes.

La generación por ordenador de lenguaje natural es el más sencillo de los tres. La forma más fácil de resolverlo se reduce a dotar al programa de una biblioteca de frases prefabricadas, que utilizara tal como están cuando se presente la oportunidad correcta. Evidentemente, Las posibilidades del programa se limitan a las frases que contenga su biblioteca, que puede ser tan grande como se desee, pero más pronto o más tarde comenzaran a repetirse, como sucede en el caso del famoso programa ELIZA, que imita la conducta de un psiquiatra ante un enfermo.

En casos más complicados, se dota al generador de textos de una gramática a la que deben adaptarse las frases producidas, que no es necesario que sea tan compleja como la de los lenguajes humanos para que los resultados tengan el aspecto de frases normales, de las que usamos cada día. Estos programas disponen de un diccionario, de donde pueden extraer las palabras apropiadas para rellenar la oración que están generando. A veces, la selección de palabras es aleatoria (se realiza al azar), como en un programa construido por el poeta español Juan Ruiz de Torres, que produce poesías aceptables en lenguas castellana.

Es evidente que la comunicación con los ordenadores se facilitaría si pudiésemos utilizar para ellos un lenguaje humano (ingles, castellano, etc.), en lugar de los lenguajes artificiales especializados con los que los programamos. El problema es que nuestras lenguas maternas son muy ambiguas, pues hay palabras con doble o triple sentido, que a veces desempeñan papeles sintácticos distintos, y cuya interpretación en cada caso concreto depende del contexto en que se encuentran y, a veces, de una enorme cantidad de conocimientos sobre las cosas y el mundo que los ordenadores no poseen. Estas ambigüedades no existen en los lenguajes de programación, que han sido diseñados para facilitar el análisis. Además los lenguajes naturales tienen una característica  propia llamada polisemia, la que los diferencia, como veremos, de los códigos computacionales.

En la actualidad, el problema de la comprensión del lenguaje natural por las máquinas dista mucho de estar resuelto, pero, como en el caso del procesamiento de voz, hay aproximaciones de utilidad práctica. La primera, la menos sofisticada, que no puede considerarse inteligencia artificial, consiste en hacer que el programa dirija el dialogo, forzando al usuario a responderle dentro de unos marcos muy rígidos, ya sea por medio de selecciones en menú, o mediante preguntas escogidas que sólo puedan responderse con SI o NO. Evidentemente, tendremos un dialogo en lenguaje natural, pero el usuario no ha llegado a escribir una sola frase completa.

En una segunda aproximación, lo que el programa interpreta no es un lenguaje natural sin restricciones, sino una versión simplificada, con reglas gramaticales más estrictas que las ordinarias, para evitar la ambigüedad. Podríamos, por ejemplo, forzar al usuario a utilizar siempre oraciones de Las forma sujeto-verbo-complemento directo.

En la tercera aproximación, dejaremos libre la sintaxis del lenguaje, pero se restringe el ámbito semántico, es decir, los sentidos posibles de las palabras. Esta técnica se utiliza a menudo en la interfaz de usuario de los sistemas expertos, en los que el tema sobre el que se esta dialogando se constriñe a un campo muy concreto. Por ejemplo, en un sistema experto en diagnostico medico, las palabras posiblemente ambiguas tomaran con preferencia aquel significado que tenga algo que ver con la medicina. Además, y para ganar tiempo, el programa no suele analizar la sintaxis del texto que ha recibido, sino que se apoya únicamente en los términos más importantes para deducir el significado de la frase, en el contexto de la conversación. Por ultimo, si el sentido es aun dudoso, siempre queda el recurso de preguntar directamente al usuario "¿es esto lo que quiere usted decir? ", con lo que este se vera obligado a responder que si, o bien dará una explicación más detallada de la frase anterior. Gracias a estos artificios, algunos de los sistemas expertos que se construyen en nuestros días dan la impresión de que comprenden perfectamente el lenguaje natural, aunque sólo realizan un análisis muy parcial e incompleto.

La investigación más avanzada en este campo trata de analizar los textos como lo haría un ser humano, descubriendo sus cualidades sintácticas y traduciéndolo a un formato interno basado en algún sistema de representación del conocimiento. A continuación, el programa tratara de interpretar el sentido de la frase, utilizando para ello una base de datos que contenga información contextual, obtenida quizá progresivamente, por aprendizaje. Este tipo de análisis del lenguaje natural esta aun lejos de dar resultados prácticos apreciables.

Traducción automática

Como dijimos en la introducción, la traducción automática de textos de un lenguaje natural a otro diferente ha resultado mucho más difícil de lo que se preveía en los años cincuenta. En cierto modo, la solución completa de este problema deberá esperar hasta que se resuelva favorablemente la cuestión de la comprensión del lenguaje natural, que es más sencilla, pues en la traducción hay que tratar con dos idiomas humanos y se multiplican los sinónimos, homónimos, ambigüedades, dobles sentidos y complicaciones gramaticales. Todo el mundo sabe que la traducción literal, palabra por palabra, no produce casi nunca textos aceptables en la otra lengua.

Pero si la traducción automática perfecta no esta aun a nuestro alcance, si podemos conseguir algunos resultados prácticos aproximados que permitan mejorar la eficiencia de los traductores humanos, ya que no es posible sustituirlos.

Un programa de traducción automática podría proporcionarle una primera versión imperfecta, que le bastará corregir para eliminar los errores y mejorar el estilo lo que es evidentemente más rápido que empezar de cero. Existen ya diversos sistemas comerciales, que traducen lenguajes como el ingles, francés, castellano, alemán, italiano o japonés, algunos de los cuales procesan más de cien mil palabras por hora, con una exactitud próxima al 90%. Gracias a estos programas, el traductor humano puede fácilmente duplicar su productividad.

LENGUAJE NATURAL VS. CODIGO COMPUTACIONAL

Lenguajes de programación

Como hemos visto, toda computadora digital trabaja internamente con señales eléctricas que representan unos y ceros. Ellos forman un código binario que puede representar cualquier número, letra o símbolo. Así se expresa el único lenguaje que es capaz de interpretar la computadora y que se denomina LENGUAJE MAQUINA. Como variante del lenguaje máquina, se emplea la escritura hexadecimal, que resulta más práctica porque los números así representados tienen menos cantidad de cifras, con lo cual se escriben más rápidamente y se cometen menos errores. También podemos ver, por ejemplo cuando mostramos un programa EXE por pantalla, que el mismo está representado por varios símbolos en un código llamado ASCCI. Allí se ha utilizado este código con el fin de abreviar la representación del programa, pero internamente, es decir en la memoria, el programa se halla escrito en el lenguaje de unos y ceros.

¿Qué entendemos por lenguaje en una computadora? Simplemente un conjunto de símbolos y reglas utilizadas para intercambiar informaciones y comunicarnos con la computadora.

Se ha tratado de elaborar lenguajes de computación lo más parecidos posible al lenguaje natural. Como los desarrollos de este tipo se realizan en los países de habla inglesa, los lenguajes de computación tiene términos en inglés (por ejemplo el Pascal).

Por lo tanto, al construirse un nuevo lenguaje resulta imprescindible que, mediante algún procedimiento automático, el mismo sea traducido al único lenguaje que conoce la computadora, el lenguaje máquina.

Los lenguaje se clasifican en tres grandes grupos:

- LENGUAJE MAQUINA: ya lo mencionamos. La ventaja fundamental de los programas escritos en este lenguaje es que resultan mucho más rápidos y requieren menos memoria que los programas escritos en alto nivel.

- LENGUAJE DE BAJO NIVEL: el más conocido es el ASSEMBLER, que permite escribir un programa utilizando instrucciones nemotécnicas, en lugar de binarias. Es de hacer notar que, aprender a programar en bajo nivel requiere un mayor conocimiento de la estructura interna del microprocesador y de su modo de operar.

- LENGUAJE DE ALTO NIVEL: Más cercanos al lenguaje oral (inglés) como el Basic, Pascal, etc.

Lenguaje natural

No es correcto hablar de "lenguajes de computación", lo que usualmente se llama lenguajes de computación son, en verdad, códigos. ¿Qué es un código?. Es un sistema de obligaciones y de correspondencia biunívoco. Por ejemplo, nosotros ahora podemos establecer un código: el que levanta la mano con el índice hacia arriba expresa (significa) que quiere hablar. Y para querer hablar, sólo esta señal. Hay una correspondencia biunívoca entre el levantamiento del índice y querer hablar. Una vez que establecemos un acuerdo, y se establece con obligatoriedad, pasa a llamarse código.

Todas las lenguas modernas tienen dos grandes aspectos: código y concepto. La doble articulación se refiere a que hay un primer nivel que son los fonemas. Y estos fonemas, que en sí mismos son como partículas carentes de significado, por reglas de combinación sintácticas y semánticas, pasan a un segundo nivel como palabras y frases y sí tienen significado.

Una lengua, cualquiera sea, tiene un aspecto que es el código (la parte estable), compuesto, a su vez, del elemento fonemático.

Un segundo aspecto de lo que integra el código es el orden, el ordenamiento, es decir, la sintaxis. Hay un ordenamiento general para todas las lenguas modernas, pero a su vez cada lengua tiene algunos aspectos sintácticos diferentes: Por ejemplo, la aprobación sujeto-verbo-objeto es general, pero a la vez hay aspectos diferenciales: en inglés el adjetivo va antes que el sustantivo, en inglés, mientras que en español es distinto. Y tenemos el nivel morfológico: es decir, los ajustes que hay que hacer en los comienzos y terminaciones de las palabras (prefijos y sufijos) para que concuerden las palabras entre sí en el número y el género. El nivel morfológico no es otra cosa que una aplicación de la semántica sobre la sintaxis. No es un nivel en sí.

Pero este es el sostén de lo peculiar de la lengua humana, que es la polisemia.

Cuando se dice una palabra, no sólo el significado estará dado por la relación con las otras palabras, sino también con lo que está implícito: si digo ventana, no estoy diciendo pared, ladrillo, etc. Es decir que cuando digo explícitamente algo, lo hago sostenido sobre el bagaje implícito de lo que no expreso. Entonces: el código es el sostén, pero lo peculiar del carácter humano de la lengua es el concepto. Es esa posibilidad de cada palabra que es palabra en tanto tiene la posibilidad de combinarse, y existe en combinación con las demás implícita o explícitamente No existe la noción de palabra suelta, es siempre parte de un sistema.

Entonces, la polisemia es esta potencialidad de combinación virtual de cada palabra. Pero además cada palabra puede conectarse con las demás no sólo de manera consciente, sino, como lo descubrió el psicoanálisis, de manera inconsciente. Lo que habla de una frondosidad simbólica todavía mucho mayor. Por ejemplo, si digo que la ventana está pintada de verde, simultáneamente se producen, aunque yo no sea consciente de esto, asociaciones sobre qué tendrá que ver la ventana en mi historia, sobre todo la ventana verde, de cuando yo espiaba o me espiaban, etc.

En los lenguajes formales como el de la lógica y la matemática, desaparece el significado. Queda un puro símbolo. Las ciencias formales trabajan con símbolos que no significan, son solo referencias simbólicas para operar. Por eso las ciencias formales se manejan con lenguajes que tienen solamente la dimensión sintáctica, no la semántica.

También los lenguajes técnicos (de otras ciencias) se constituyen restringiendo polisemia. Pero al hacerlo matan al lenguaje, pues un sistema es lenguaje por ser polisemico. Por lo tanto no son lenguajes, sino "códigos".

La computadora carece de polisemia. Y no por encontrarse en una determinada etapa de su desarrollo sino por una situación estructural, que es intrínseca a la noción de las posibilidades de la computadora: que es carecer de polisemia. Y esta es una diferencia cualitativa con el psiquismo, con el ser humano. Cualquiera sean las apreciaciones que veamos en la pantalla (imágenes, letras, operaciones aritméticas) de la computadora, se traduce en solamente dos cosas: paso de electricidad y no paso de electricidad.

Para algunos científicos el pensamiento desarrolla estructuras análogas al lenguaje. Ahora bien, una característica estructural del lenguaje natural es la polisemia. Como hemos dicho, la polisemia es la potencialidad de cada palabra de combinarse de múltiples modos con las demás para establecer significados. Un término aislado no significa; sólo en relación con otros adquiere valor semántico.
Así, el lenguaje natural, y por ende el pensamiento, resulta ser un sistema abierto y como tal imposible de traducir en reglas formales programables en un ordenador. El ordenador solo maneja reglas lógicas programadas en él.
Si esto es así, el pensamiento y la inteligencia es mucho más que lógica y la inteligencia artificial, entendida como emulación total de la inteligencia humana, no será posible.

REDES NEURONALES

Los primeros intentos de crear circuitos electrónicos que emulaban a las neuronas fue el de los perceptrones. Las experiencia fallaron porque la configuración de la conexión entre neuronas artificiales era demasiado simple.

Una red neuronal es un conjunto de unidades elementales llamadas neuronas (artificiales), que están relacionadas entre sí por medio de conexiones. Cada neurona tiene una o varias conexiones de entrada y una sola de salida, que puede bifurcarse para conectarse a muchas otras neuronas. Además, a cada neurona se le asocia un número, llamado umbral, y a cada conexión otro número, su peso. Estos números pueden ser enteros o fraccionarios, positivos o negativos.

Cuando una neurona recibe estímulos procedentes de otras neuronas, puede o no enviar una señal por su conexión de salida. Si lo hace, diremos que la neurona se ha disparado. Si la señal de salida de una neurona sólo puede valer cero o uno, se dice que es digital; en caso contrario, se dice que es analógica. En las neuronas digitales, es frecuente que la neurona se dispare (produzca una señal de salida igual a uno) cuando la suma de los productos de los pesos de sus conexiones de entrada por las señales de salida de las neuronas previas, es mayor que su umbral.

Las redes neuronales no son útiles en sí mismas, sino sólo cuando se las hace capaces de aprender. Decimos que una red aprende cuando es capaz de modificar su conducta de tal manera que su salida o respuesta a ciertos estímulos (entradas) se aproxime poco a poco a un conjunto de respuestas deseadas. La modificación de la conducta se produce porque los pesos asociados a las conexiones cambian poco a poco, y precisamente de tal manera que se obtenga una salida determinada en respuesta a cierta combinación de entradas.

LOS ROBOTS: ¿NUESTRA DESCENDENCIA?

A pesar de los increíbles avances de la tecnología, las máquinas no han podido, hasta hoy, conquistar algunos de los fuertes de los seres humanos:

Hay científicos que opinan que la computadora es la fase superior de la evolución: simio – hombre – máquinas.

¿Por qué afirman esto? Porque en el futuro las máquinas podrán reprogramarse, es decir crearse a sí mismas.

Este punto de vista es defendido, por ejemplo en "El hombre mecánico" por Hans Moravec: "nuestras máquinas llegarán a tal grado de erudición que podrán dedicarse a su conservación, reproducción y perfeccionamiento sin necesidad de ayuda. Cuando suceda, se habrá terminado el relevo genético. Nuestra cultura podrá evolucionar con independencia de la biología humana y de sus limitaciones, y pasará de una generación de máquinas capaces e inteligentes a otra mucho más perfecta".