You are on page 1of 89

La Inteligencia Artificial y la Inteligencia Natural

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 1: La Inteligencia Artificial y la Inteligencia Natural 1. Objetivo de la Lectura. El alumno al finalizar la lectura comprender la dificultad que existe para definir el concepto de Inteligencia debido a sus diferentes manifestaciones, adems de que se cuestionar sobre la posibilidad de crear Inteligencia Artificial y cmo debera de ser sta. 2. Relacin con la asignatura. Esta lectura se recomienda al inicio del curso en la Unidad 1 en donde el alumno se le ensea un panorama general de la Inteligencia Artificial . 3. Fuente Cair, O., Inteligencia Artificial e Inteligencia Natural, Soluciones Avanzadas, Noviembre 1999. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Comentarios de la Lectura. En el artculo Osvaldo Cair se cuestiona sobre las diferentes manifestaciones de la inteligencia humana y a travs de ejemplos proporciona un marco para que se visualice la dificultad de definir el concepto. 3. Evaluacin de aprendizaje. 1. 2. 3. 4. Lee el artculo completo Investiga quin es Osvaldo Cairo Investiga tres definiciones adicionales de Inteligencia Investiga el significado de las siguientes palabras o conceptos a. Heliocentrismo b. Fortuito c. Acepcin d. Formalismo e. Heterogneo f. Meta 5. Investiga la bibliografa breve de a. Marvin Minsky b. Kasparov

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial y la Inteligencia Natural

6. Lee nuevamente el artculo con la informacin recopilada en los puntos anteriores 7. Escribe en un parrafo el objetivo general de la lectura (Qu es lo que el autor quiere transmitir a sus lectores) 8. Escribe en que estas de acuerdo con el autor, en que estas en desacuerdo, que te hizo reflexionar la lectura, la comparacin de las diferentes definciones de Inteligencia 9. Escribe tus conclusiones acerca de la lectura 10. Reacomoda la informacin de los puntos 5, 6 y 7 para elaborar una reflexin acerca de la lectura y entrega tu trabajo en forma profesional

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial y la Inteligencia Natural

INTELIGENCIA ARTIFICIAL E INTELIGENCIA NATURAL


Osvaldo Cair
cairo@lamport.rhon.itam.mx Coprnico con el heliocentrismo, Darwin con la teora de la evolucin, y Freud con el psicoanlisis, en distintas pocas nos han hecho reflexionar sobre la naturaleza y posicin que ocupa el hombre en el universo. Actualmente la ciberntica, aunque todava en una fase de pensamiento y desarrollo, otra vez nos vuelve a hacer reflexionar sobre el sitio que ocupa el hombre en esta tierra. Las preguntas derivadas de la ciberntica, refieren al sentido y la medida en que los seres humanos pueden ser entendidos como mquinas. Marvin Minsky, uno de los primeros estudiosos de la inteligencia artificial expres con optimismo una dcada atrs, que para los noventa prcticamente pocos compartimentos del intelecto humano quedaran fuera del dominio de la mquina: el problema de crear inteligencia artificial quedara resuelto en gran medida. En nuestros das, aunque podemos observar una gran cantidad de programas y mquinas que exhiben caractersticas que los humanos podramos asociar con inteligencia, y adems con un alto valor comercial, debemos reconocer que estamos an muy lejos de lograr lo que Minsky mencion una dcada atrs. En parte, porque existen aspectos de los procesos mentales que no se conocen suficiente como para poder formalizarlos. La versatilidad de la mente humana est lejos an de poder encontrarse en una computadora. La inteligencia artificial se aboca a la simulacin de un cierto tipo de inteligencia en mquina. Es decir, se trata de lograr que las mquinas puedan pensar y procesar en ciertas ocasiones como lo hace un humano. Muchas actividades que realizan los humanos, tales como resolver cierto tipo de problemas o teoremas, jugar ciertos juegos como ajedrez o damas, o simplemente manejar un automvil, requieren de cierto grado de inteligencia. Si las computadoras pueden realizar con xito estas actividades entonces tambin le debemos atribuir un cierto grado de inteligencia. Pero qu es inteligencia? Sin duda esta es una palabra muy difcil de definir. Etimolgicamente procede de intelligere, lo mismo que entendimiento -intellectus-. La filosofa clsica la utiliza para designar las sustancias puramente espirituales. La psicologa experimental la define como conocimiento superior o racional, ya esencialmente, ya por cierta participacin [2]. Nosotros definimos inteligencia como la capacidad de realizar con xito operaciones mentales. Lo que es cierto, por otra parte, y considerando las diferentes acepciones, es que nadie hasta la fecha ha podido establecer una lnea divisoria entre la conducta inteligente y la conducta no inteligente. Ms an, el slo hecho de pensar que
Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial y la Inteligencia Natural

existe una lnea divisoria entre estas conductas es probablemente una estupidez. Lo que s se puede afirmar es que existen ciertas caractersticas que los humanos podemos reconocer como propias de la inteligencia. Por ejemplo: responder muy flexiblemente a las situaciones, sacar provecho de situaciones fortuitas, hallar sentido en mensajes ambiguos o contradictorios, reconocer la importancia relativa de los diferentes elementos de una situacin, encontrar semejanzas entre varias situaciones pese a las diferencias que puedan separarlas, descubrir diferencias entre varias situaciones pese a las semejanzas que puedan vincularlas, sintetizar nuevos conceptos sobre la base de conceptos viejos que se toman y reacomodan de nuevas maneras, tener ideas novedosas, etc. [1]. Estas caractersticas, sin embargo, que se podran utilizar para aclarar el concepto de inteligencia, a veces tambin nos pueden confundir. Por ejemplo, si los lectores opinaran sobre la inteligencia de Kasparov -el campen mundial de ajedrez-, seguramente llegaran rpidamente a un consenso sobre tal cuestionamiento. Nadie dudara de la inteligencia de Kasparov. Si el mismo auditorio fuera consultado sobre la inteligencia de un cientfico que puede enviar una nave al espacio y controla su desempeo desde la tierra, el resultado sera prcticamente similar. Si el auditorio, en cambio, fuera consultado sobre la inteligencia de Maradona, casi con seguridad la opinin estara tambin centralizada, pero podra ocurrir un error de apreciacin. Lo mismo sucedera si fueran consultados sobre la inteligencia de un artesano Oaxaqueo, que no ha tenido las condiciones necesarias para cursar estudios primarios. Lo que es cierto, es que el concepto de inteligencia se relaciona con la capacidad de realizar con xito operaciones mentales, tener ideas novedosas, etc. Se han realizado estudios sobre las jugadas de Maradona en un partido de ftbol, y se pudo observar que ante mltiples alternativas que se le presentaban en tiempo real, en diferentes momentos, y tena que decidir en cuestin de microsegundos; en forma reiterada siempre escoga la mejor. El artesano Oaxaqueo, por otra parte, si bien no curs estudios primarios, construye en forma continua innumerables obras maestras, lo que requiere un gran ingenio e ideas novedosas. Finalmente, cabe destacar, que tambin es cierto que si bien Kasparov es el campen mundial de ajedrez, seguramente no podra construir ninguna de las obras maestras que construye el artesano Oaxaqueos y adems, no podra enviar la nave al espacio. Al cientfico que enva la nave al espacio, muchos de los lectores le podran ganar una partida de ajedrez. Los comentarios sobre la posibilidad de que Maradona juegue al ajedrez o envi una nave al espacio corren por cuenta del lector. Lo que es claro es que la inteligencia no es autnoma. El hombre, no la inteligencia, es el que piensa y lo hace segn su peculiar modo de ser y el mundo en que vive. La inteligencia depende de la personalidad total. Una inteligencia superior seguramente puede ser sntoma de una personalidad superior [2]. Luego de haber analizado la inteligencia desde diferentes acepciones, se puede definir entonces a la inteligencia artificial como la disciplina que estudia como programar inteligencia en mquina. Pero esto es algo que suena a paradoja. Por su naturaleza misma, las mquinas son los animales ms inflexibles, los ms privados de deseos, los ms seguidores de reglas, los ms carentes de iniciativa propia. Cmo podemos entonces programar inteligencia en mquina?. Esto es justamente lo que persiguen los investigadores que trabajan en el rea de inteligencia artificial. Construir formalismos estrictos basados en
Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial y la Inteligencia Natural

un conjunto de reglas para decirles a esto animales inflexibles que son las mquinas como deben ser flexibles. Pero, nos podramos preguntar: qu clases de reglas deberamos tener? Bueno, la respuesta es simple. Deberamos tener diferentes clases de reglas para diferentes niveles. La razn de tantas reglas es que el ser humano se encuentra en la vida con millones de situaciones completamente heterogneas, en las que debe actuar muchas veces en tiempo real. En algunos casos con reglas llanas y simples alcanza para resolver el problema. En otras ocasiones tendr que utilizar metareglas (reglas que puedan seleccionar otras reglas). En otras situaciones, meta-metareglas (reglas que puedan seleccionar metareglas, que sirvan para seleccionar reglas llanas y simples), y as hasta nunca acabar. Debemos recordar, por otra parte, que el cerebro es un mecanismo creador. Por lo tanto, si faltan nuevas reglas, stas se podran generar en tiempo real. Comprender el concepto de inteligencia puede ser tan complejo, que pensar a veces en formular un conjunto de reglas para gobernar la conducta inteligente puede resultar un problema insoluble. Finalmente, pienso que as como el hombre se inspir el vuelo de los pjaros para disear aparatos tales como planeadores, aviones, etc., o en el movimiento de los peces para el diseo de submarinos o barcos, creo que se debe inspirar en este modelo natural que es el cerebro para conseguir resultados importantes y aplicarlos en la solucin de diferentes tipos de problemas, para el beneficio de la humanidad. Referencias 1. Hofstadter, D., Gdel, Escher, Bach: Una Eterna Trenza Dorada, CONACYT, 1987. 2. Rialp, Gran Enciclopedia Rialp, Ediciones Rialp, S. A., 1973.

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 2: La Inteligencia Artificial: Enfoques, herramientas y aplicaciones. 1. Objetivo de la Lectura. El alumno al finalizar la lectura comprender la diferencia entre tcnica, herramienta y metodologa en el rea de Inteligencia Artificial y conocer las principales tcnicas, herramientas y metodologas que se aplican en el rea. 2. Relacin con la asignatura. Este artculo es recomendable que se lea al finalizar la unidad 1 para que alumno tenga un panorama general de lo que se va estudiar en el curso. 3. Fuente. ]. Brena R., La Inteligencia Artificial: Enfoques, herramientas, aplicaciones, Soluciones Avanzadas, Septiembre 1994. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Comentarios de la Lectura. En el artculo Brena hace una diferenciacin entre todos los trminos que oimos cotidianamente y que sabemos que son parte del rea de Inteligencia Artificial pero que muchas veces nos confunden debido a que el rea es muy extensa.. 5. Evaluacin de aprendizaje. 1. Investiga quin es Ramon Brena 2. Lee el artculo completo 3. Investiga el significado de las siguientes palabras a. Inherentemente b. Prototipaje c. Contradiccin d. Teorema e. Refutacin f. Deduccin g. Heurstica 6

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

4.

5. 6. 7. 8. 9.

h. Mstica i. Ntida j. Visin k. Representacin l. Factual m. Lgica n. Inferencia Investiga los siguientes conceptos (adicionales al artculo) a. Redes Neuronales b. Clculo Proposicional c. Programacin simblica d. Sistemas Expertos e. Lenguaje Natural Investiga en qu consiste la prueba de Turing Investiga la bibliografa breve de Alan Turing Lee nuevamente el artculo con esta informacin adicional Realiza un mapa conceptual de la informacin proporcionada en el artculo acerca de la Inteligencia Artificial Escribe tus conlusiones acerca de la lectura

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

LA INTELIGENCIA ARTIFICIAL; ENFOQUES, HERRAMIENTAS, APLICACIONES


Ramn Brena Centro de Inteligencia Artificial ITESM - Monterrey rbrena@omega.mty.itesm.mx Pueden las mquinas pensar? Esta es la pregunta que la Inteligencia Artificial... NO se plantea hoy en da, contrariamente a una creencia popular bastante difundida. Este no es el nico mito sobre la Inteligencia Artificial (IA), y en aos recientes los vaivenes de la moda han colocado sobre esta rama de la ciencia una aureola mstica que, explotada comercialmente, ha dado lugar a que hasta ciertas videocaseteras se anuncien con "Inteligencia Artificial". Todo esto crea cierta confusin sobre lo que REALMENTE podramos esperar de la IA. Cuando eventualmente alguien descubre la falsedad de alguno de estos mitos, la desilusin que resulta recae sobre la IA en su conjunto, lo cual distorsiona igualmente la verdad. Los malos entendidos han acompaado a la IA desde sus orgenes. La IA, disciplina de las Ciencias Computacionales, ha arrastrado uno de los nombres ms imprecisos en todos los dominios tecnolgicos: en efecto, no se cuenta con definiciones suficientemente precisas de la "inteligencia", y al agregarle el adjetivo "artificial" solamente se aumenta la confusin. Varios aos de polmica al respecto no han contribuido a clarificar la cuestin; en cambio, se han delineado varias corrientes de pensamiento o enfoques, entre los que citaremos dos: Los que ven a la IA como un intento de reproducir el comportamiento inteligente, o simplemente la "inteligencia" que se aprecia en la naturaleza. Este enfoque recibe fuertes influencias de las ciencias naturales, como la psicologa [1], la neurologa [2], etctera. Los que utilizan tcnicas desarrolladas en el mbito de la IA para resolver problemas prcticos. Esta corriente se deriva directamente del enfoque ingenieril de solucin de problemas. Desde luego, la divisin no es ntida, y en muchos trabajos de IA confluyen ambos enfoques. Dentro del primer enfoque hay trabajos que tratan de modelar la inteligencia tal como se produce en el ser humano (interconexin de neuronas) [2,3], mientras que otros tratan de reproducir el comportamiento inteligente, independientemente de los mecanismos que producen dicho comportamiento [1]. Curiosamente, el modelado de la interconexin de las

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

neuronas, que no pareciera ser de utilidad a corto plazo, ha alcanzado resultados prcticos de gran importancia, en los populares modelos de redes neuronales [6]. El "comportamiento inteligente" fue definido por primera vez por A. Turing en su famoso "juego de la imitacin", versin moderna de un juego de saln del siglo XVIII [4]. Dicho juego consiste en que una persona -el rbitro- "conversa" con alguien -el incgnito- situado en otro cuarto, a travs de mensajes escritos llevados por un mensajero. Ahora bien, el incgnito puede ser una persona o una computadora, y el rbitro trata de determinar de cul de las dos se trata, nicamente con base en las preguntas y respuestas de los mensajes. El rbitro gana si acierta a adivinar qu tipo de interlocutor tiene, y pierde en caso contrario. Se supone que los mensajes estn mecanografiados, de manera que el rbitro no se puede guiar por la escritura, sino nicamente por el contenido. Evidentemente, el juego de la imitacin supone una gran capacidad por parte de las computadoras para entender el lenguaje natural, as como capacidad de razonamiento con sentido comn y una amplia cultura general. A pesar de la gran dificultad para dominar todas estas reas, recientemente se han elaborado sistemas computacionales que han jugado exitosamente el juego de la imitacin, en un concurso llamado "Turing Test" [5]. En lo que resta de este escrito vamos a inclinarnos por el enfoque ingenieril de la IA, en el que lo importante no es la inteligencia en general, sino la forma en que ciertas tcnicas computacionales desarrolladas en el mbito de la IA pueden resolver efectivamente problemas reales. Este enfoque prctico se ha vuelto predominante en la comunidad de IA porque ha sido necesario justificar con resultados econmicos las grandes inversiones que se han destinado a la investigacin en IA. Las Tcnicas de la IA y su Aplicacin Dentro del enfoque ingenieril de la IA, se resalta la importancia de un conjunto de tcnicas que pueden ser usadas como herramientas en la solucin de problemas. Con objeto de organizar las tcnicas y aplicaciones de la IA, podemos distinguir las categoras siguientes: 1. Tcnicas bsicas, as llamadas por encontrarse a la base de diversas aplicaciones de IA. En esta categora podemos ubicar: Bsqueda Heurstica de Soluciones, Representacin del Conocimiento, Deduccin Automtica, Programacin Simblica (LISP) y Redes Neuronales, entre otras. Estas tcnicas proveen los ingredientes ms fundamentales de los que se hacen las aplicaciones (ver [7]). 2. Tecnologas, o combinaciones de varias tcnicas bsicas, orientadas a resolver familias de problemas. Las tecnologas son ms especializadas que las tcnicas bsicas y estn ms cerca de las aplicaciones finales. Encontramos en esta categora: Robtica y Visin, Lenguaje Natural, Sistemas Expertos. Por ejemplo, los sistemas de Robtica (una tecnologa) utilizan -entre otras tcnicas- la Representacin del Conocimiento, la Deduccin Automtica y la Bsqueda de Soluciones, y pueden estar programados en el lenguaje de programacin LISP (que son tcnicas bsicas).

Karla M. Olmos Snchez IIT/UACJ

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

3. Clases o tipos de aplicaciones: Diagnstico, Prediccin, Secuenciamiento de operaciones ("Scheduling"), Diseo, Identificacin de Sistemas, Interpretacin de datos. Son familias de problemas tipo; por ejemplo, el diagnstico se refiere a encontrar las causas de fallas, ya sea que se trate de fallas en una lnea de produccin o de enfermedades en una persona. 4. Campos de aplicacin: Ingeniera, Medicina, Sistemas de Manufactura, Administracin, Apoyo a la Toma de Decisiones Gerenciales, etc. Estas son reas que caen fuera de la IA, pero a las cuales esta ltima ha aportado soluciones. Podemos ver a los campos de aplicacin como "clientes" de la IA. As, por ejemplo, un Sistema Experto para diagnstico de enfermedades intestinales sera una aplicacin de tipo diagnstico al rea de la medicina, aplicando la tecnologa de Sistemas Expertos, la cual utiliza las tcnicas bsicas de Representacin del Conocimiento, Deduccin y Bsqueda de soluciones. En este nmero de Soluciones Avanzadas dedicado a la IA presentamos artculos referentes a las tcnicas bsicas y las tecnologas, aunque siempre explicando cules son las tcnicas bsicas que ponen en juego y cules los campos en que han encontrado aplicacin. A continuacin explicaremos muy brevemente -y hasta en forma simplista- los trminos usados ms arriba, referentes a las tcnicas bsicas y a las tecnologas. Para ilustrarlas, nos apoyaremos en un ejemplo, que consiste en el problema de encontrar rutas entre dos ciudades. Bsqueda de Soluciones Uno de los grupos de tcnicas ms bsicas de la IA es el de mtodos de bsqueda de una solucin. Se parte de un problema en que se sabe cmo generar posibles soluciones al problema. Por ejemplo, en el problema de encontrar la ruta ms corta entre dos ciudades A y B enlazadas por una red de carreteras, cada ruta va a ser una lista de carreteras recorridas. As, para el mapa de la figura 1, una posible ruta de A a B es la lista (A, C, G, D, E, F, G, C, B). Una solucin aparentemente simple consiste en obtener todas las rutas posibles en la grfica, tomar aquellas que unan A con B, y finalmente seleccionar entre stas a la de menor costo. La desventaja de este mtodo es que requiere una gran cantidad de clculos, de los cuales la mayor parte se desperdician. A esta explosin de soluciones posibles a examinar se le llama "combinatoria", y es el enemigo a vencer por excelencia en la mayora de los problemas de IA. Una idea "inteligente" podra ser buscar, a partir de la ciudad A, solamente los caminos que "acerquen" a B, lo cual requiere conocer el mapa para saber si nos acercamos o nos alejamos de B. El defecto de esta solucin es que tal vez la solucin ms corta requiere momentneamente alejarse de B para despus llegar a ella por una mejor ruta (esto ocurre en el mapa de la figura 1). Es decir, la idea "inteligente" -que se acostumbra llamar "heurstica" en el jargn de la IA- no garantiza encontrar la mejor solucin, pero s una de

Karla M. Olmos Snchez IIT/UACJ

10

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

las mejores. Para muchos problemas de gran complejidad, es preferible sacrificar el ptimo absoluto con tal de reducir drsticamente la cantidad de posibles soluciones a revisar. Representacin del Conocimiento El agente que acta "inteligentemente" requiere para ello tener una representacin del ambiente sobre el que acta -o por lo menos de los aspectos de ella que son relevantes para el problema de resolver. Por ejemplo, en el prrafo anterior se citaba el conocimiento necesario sobre la geografa y la red de carreteras que unen a A y B. De toda esta geografa hay muchos detalles que son irrelevantes para el problema, como el tipo de vegetacin predominante a cada regin, y podemos restringir nuestra atencin a las informaciones que afectan directamente la solucin al problema. Podemos representar el conocimiento de este problema como una tabla en la que tenemos las distancias entre las ciudades unidas por la red carretera (Figura 2). Dicha tabla puede ser vista como una funcin distancia_directa(X,Y) que nos da la distancia de X a Y, que son dos ciudades directamente comunicadas por carretera. En general las representaciones del conocimiento usadas en IA son colecciones estructuradas de datos simblicos, como en este ejemplo, aunque hay casos en los que se usan representaciones que incluyen nmeros reales y datos contnuos en vez de datos discretos y smbolos; estos se producen sobre todo en los sistemas de reconocimiento de formas y anlisis geomtrico de la rbotica, as como en las redes neuronales. Las representaciones del conocimiento usadas en la tecnologa de los Sistemas Expertos [8] han llegado a ser ms conocidas que otras representaciones. Entre ellas encontramos principalmente las llamadas "reglas de produccin", que son estructuras de la forma "Si la condicin C es cierta, se ejecuta la accin A". Otra representacin que se ha abierto paso recientemente es la de los "frames" [9], relacionada con la estructuracin orientada a objetos de los sistemas computacionales. Consiste en declarar estructuras de "objetos" que tienen atributos ("slots"); las acciones a ejecutar son lanzadas al momento de acceder algunos de los atributos.

A A B C D 150 250 0

C 150

D 250

0 650

650 0 0 200 400 210

Karla M. Olmos Snchez IIT/UACJ

11

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

E F G 400

200

0 200

200 0 210 210 0

210

Figura 2. Distancia entre ciudades conectadas directamente por carreteras

A A B C D E F G 0 800 150 250 600 620 460

B 800 0 650 610 410 210 430

C 150 650 0 400 600 620 400

D 250 610 400 0 200 400 210

E 600 410 600 200 0 200 410

F 620 210 620 400 200 0 210

G 460 430 400 210 410 210 0

Figura 3. Distancia mnima entre dos ciudades dadas Para cada problema en particular se puede buscar una representacin "adecuada" del conocimiento existente. La adecuacin de la representacin elegida depende de cmo se vaya a explotar el conocimiento. Por ejemplo, en el caso de la red de carreteras, la tabla de la Figura 2 representa las distancias de las ciudades conectadas directamente por carretera, pero no las distancias entre las ciudades pasando por puntos intermedios. En este caso, como puede haber muchas maneras de llegar de una ciudad a otra, se puede pensar en representar la distancia mnima entre dos ciudades dadas, como en la figura 3. Si se va a consultar frecuentemente la distancia entre dos ciudades no vecinas, la representacin de la figura 3 es preferible a la de la figura 2, mientras que si se desea una representacin que requiera menos espacio en memoria, puede ser preferible almacenar solamente las distancias directas (como en la figura 2) y calcular las distancias indirectas en el momento
Karla M. Olmos Snchez IIT/UACJ

12

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

en que se requiera. Por cierto, se puede economizar espacio aprovechando el hecho de que la tabla es simtrica, almacenando slo la mitad inferior izquierda de ella. Cada representacin del conocimiento est asociada a una manera de explotar dicho conocimiento, y la eficiencia de cualquier representacin no puede juzgarse independientemente del mecanismo de explotacin. As, las reglas de produccin "Si condicin entonces conclusin", estn ligadas a los mecanismos estndares de "encadenamiento hacia adelante" y "encadenamiento hacia atrs", que son discutidos en otros artculos de este nmero. Similarmente, las representaciones basadas en objetos estn asociadas a mecanismos que explotan la herencia de propiedades. En muchos "shells" comerciales (paquetes computacionales especializados para el desarrollo y explotacion de los sistemas expertos) se ofrecen combinaciones de mecanismos de representacin y explotacin del conocimiento, buscando aumentar la flexibilidad para el usuario, pero muchas veces reduciendo la solidez formal del sistema resultante. Podemos distinguir diversas formas de conocimiento, segn el problema a atacar y el punto de vista que se adopte, siendo las principales las siguientes: Conocimiento factual.- hechos, como en el caso de las tablas de distancias. Conocimiento procedural.- secuencias de acciones a seguir; se puede representar mediante diagramas de flujo, algoritmos, etctera. Conocimiento general.- leyes que se cumplen sobre un conjunto de objetos. Puede presentarse como frmulas matemticas o lgicas, o de manera informal, en lenguaje hablado/escrito; sin embargo, la informalidad y la imprecisin obstaculizan la automatizacin del uso del conocimiento. Metaconocimiento.- conocimiento sobre el conocimiento (por ejemplo "s que no conozco suficiente sobre inteligencia artificial"). Puede ser una forma extremadamente importante de conocimiento, sobre todo en sistemas que aprenden. Deduccin Automtica Una de las capacidades del comportamiento "inteligente" que han sido capturadas ms eficazmente por la computadora es la capacidad de efectuar "razonamientos" correctos. Esto puede querer decir en algunos casos obtener conclusiones que se desprenden como consecuencia de datos existentes, o bien verificar si un dato no contradice los datos existentes. Por ejemplo en el mapa de carreteras podemos decir que si existe una ruta que me permite llegar de A a B y tambin puedo llegar de B a C, entonces podemos "concluir" que se puede llegar a A y C por la red de carreteras. Para poder hacer que la computadora realice tales "razonamientos" es necesario precisar muy detalladamente la manera en que se pueden obtener soluciones a partir de las premisas. Tambin se requiere expresar las informaciones en un lenguaje muy preciso.

Karla M. Olmos Snchez IIT/UACJ

13

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

Uno de los lenguajes ms utilizados para efectuar razonamientos mecnicos es la Lgica [10]. Por ejemplo, en lgica podramos expresar las premisas del ejemplo de ciudades como: hay_ruta (A,B). hay_ruta (B,C). En la lgica se puede declarar casi cualquier informacin; los casos en que la lgica estndar no es suficiente son muy especficos como para verlos aqu. La forma de extraer conclusiones de las premisas es mediante las Reglas de Inferencia. Una regla de inferencia conocida desde los tiempos de los griegos es la llamada "modus ponens", que tiene la siguiente forma: Si se sabe que siempre que P es cierto entonces Q es cierto, y se sabe que actualmente P es cierto Entonces Q es cierto. Adems de las reglas de inferencia y de las informaciones elementales puede ser necesario contar con unas premisas de uso general, conocidas como Axiomas. En el ejemplo de las carreteras, un axioma podra ser como sigue: Para cualquier X y Y, si hay_ruta(X,Y) y hay_ruta (Y,Z) entonces hay_ruta(X,Z). Es muy sencillo aplicar el axioma de las carreteras y el modus ponens para obtener, a partir de hay_ruta(A,B) y hay_ruta(B,C) la conclusin hay_ruta(A,C); simplemente tenemos que reemplazar los datos reales por las variables, esto es, A por X, B por Y y C por Z. Puede parecer curioso que con mecanismos tan simples como los que hemos descrito se puedan hacer sistemas de razonamiento mecnico de utilidad prctica. De hecho, el modus ponens es slo un ejemplo de reglas de inferencia; hay muchas reglas de inferencia propuestas y muchas estrategias para hacer eficiente el proceso de razonamiento. Otros trminos relacionados con el razonamiento automtico son: Inferencia, deduccin: Son trminos que denotan el proceso de extraer una conclusin a partir de las premisas. Clculo proposicional: Es el lenguaje ms primitivo de la lgica, en que los smbolos representan afirmaciones completas; por ejemplo el smbolo PerroAnimal puede significar

Karla M. Olmos Snchez IIT/UACJ

14

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

que es cierto que el perro es un animal. Cada smbolo es atmico (no tiene estructura interna), y slo puede ser cierto o falso (pero no ambos). Contradiccin: Un conjunto de proposiciones es contradictorio cuando se considera cierta tanto una afirmacin P como su negacin (indicada como -P). Clculo de predicados: Es un lenguaje ms sofisticado que el clculo proposicional; se distingue el sujeto y el predicado de las afirmaciones; por ejemplo animal(perro) indicara que "perro" es un animal. Prueba automtica de teoremas: Es una forma de razonamiento mecnico en que la conclusin ya est dada, y hay que encontrar una secuencia de pasos para llegar a la conclusin. Cada paso es una aplicacin de alguna de las reglas de inferencia. Prueba por refutacin: Para probar que una conclusin C es consecuencia de unas premisas P, se supone falsa la conclusin, y se prueba que P junto con -C es contradictorio. Actualmente existen sistemas computacionales que efectan deducciones automticas en forma sumamente eficiente [11], y que pueden ser integrados como componentes dentro de otros sistemas. Adems de los sistemas de razonamiento automtico de uso general, existen sistemas deductivos para un propsito en particular, como por ejemplo, ingeniera de software [12]. Otros sistemas de deduccin automtica se especializan en efectuar razonamiento que involucran al tiempo (razonamiento temporal) o al espacio fsico (razonamiento espacial); ambas formas encuentran aplicacin en la robtica, que se discute en otro artculo de este nmero. De hecho los Sistemas Expertos utilizan formas restringidas de razonamiento automtico, que varan segn la representacin del conocimiento que haya sido utilizada (reglas, objetos, etc.). Aprendizaje Automtico Una de las capacidades ms importantes en un sistema inteligente es que no dependa exclusivamente de lo que el programador ponga en l, sino que sea capaz de mejorar su comportamiento con base en su propia experiencia; esto es lo que se llama "aprendizaje automtico" [13]. Cabe decir que uno de los mitos de la IA es que las mquinas pueden aprender cosas nuevas "por simple observacin de su medio". En realidad, para que un sistema computacional sea capaz de "aprender" algo, es necesario establecer un marco restringido en el cual se desarrolle el aprendizaje. Vamos a ilustrar esto con el ejemplo de la red de carreteras.

Karla M. Olmos Snchez IIT/UACJ

15

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

Supngase que un robot trata de encontrar, por ensayo y error, la ruta de A a B, y que despus de dar algunas vueltas lleg al objetivo. Sea (A, C, G, D, E, F, G, C, B) la ruta seguida por el robot. Entonces, si el robot fue memorizando la ruta seguida, puede luego procesarla de manera "inteligente"; lo menos que puede hacer es eliminar de ella los ciclos. Haciendo esta operacin se llega a la ruta (A, C, B), que es lo que el robot "aprendi". Para regresar de B a A ya no tiene que hacer ensayos, y puede seguir la ruta (A, C, B) invertida, esto es, (B, C, A). Este ejemplo, aunque caricaturalmente simple, nos muestra una caracterstica esencial del aprendizaje: es necesario memorizar partes de la realidad, pero tambin hay que olvidar otras. En el ejemplo, el robot "olvida" los ciclos. Como se ve en el ejemplo, es necesario saber el tipo de informaciones que va a aprender el sistema, y mediante cules mecanismos va a adquirir esas informaciones. An cuando hay investigacin en IA tendiente a un aprendizaje de conceptos nuevos, de mtodos nuevos, etc., estos estudios estn an muy lejos de producir resultados prcticos. El aprendizaje simblico no es la nica forma posible, y es frecuente encontrar sistemas de IA en que el aprendizaje consiste en ajustar los valores numricos de ciertos parmetros. Un caso muy comn en IA es el ajuste de coeficientes en las funciones que evalan qu tan "propicia" o favorable es una situacin dada. Este problema es importante cuando se quiere examinar qu accin, entre varias alternativas posibles, lleva a una situacin ms favorable. Un caso tpico es el de los juegos competitivos (ajedrez, backgammon, etc.). En este sentido es pionero el programa de juego de damas de Samuel [14], que mejoraba su rendimiento "aprendiendo" de sus mismos juegos, mediante simple ajuste de coeficientes. Programacin Simblica Ante la necesidad de probar sus ideas en sistemas computacionales que arrojaran resultados observables, los investigadores de la IA se enfrentaron a la falta de adecuacin de las herramientas de desarrollo existentes en la poca (los 60's). La solucin consisti en desarrollar sus propias herramientas. En particular, el grupo lidereado por John Mc Carthy desarroll un lenguaje de programacin llamado LISP, as como su intrprete computacional [15]. Aunque hoy en da se presenta al lenguaje LISP como parte de una tendencia "moderna" en programacin, a saber, la programacin llamada "funcional" [16], en realidad es tan antiguo como FORTRAN. Debemos hacer notar que el lenguaje LISP no fue creado con la intencin de proponer un lenguaje funcional, sino crear un ambiente de desarrollo apropiado para la IA. En este sentido ha sido extremadamente til, habindose programado hasta la fecha miles de programas de IA en LISP, en campos tan diversos como robtica y visin y el diagnstico mdico. El lenguaje LISP es adecuado para aplicaciones de IA porque permite el manejo de smbolos en forma simple; de hecho no hay la barrera entre el smbolo y su representacin, como ocurre en lenguajes como Pascal o C. Por otra parte, LISP es un intrprete que permite ejecutar inmediatamente ("evaluar") las expresiones que constituyen los programas, facilitando el prototipaje. Adems, usa una misma estructura de datos (las listas, o Sexpresiones) tanto para datos como para programas, lo que permite una mayor generalidad y uniformidad.

Karla M. Olmos Snchez IIT/UACJ

16

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

El uso de LISP para programar los sistemas de IA trajo consigo la necesidad de una mayor capacidad de cmputo, pues el intrprete de LISP tiende a funcionar ms lentamente que un programa objeto en lenguaje de mquina (esto es, compilado). En un intento por resolver este problema, se desarrollaron plataformas de hardware especializadas en ejecucin de LISP, llamadas "mquinas LISP", las cuales en cierta forma tienen a LISP como su lenguaje de mquina y tambin como su lenguaje de comandos. Estos sistemas (p.e. Symbolics) han llegado a un grado de rendimiento y sofisticacin notables. Otra solucin para mejorar el rendimiento en problemas que requieren de un gran poder de clculo es el uso de arquitecturas paralelas: al ejecutar simultneamente un gran nmero de operaciones, se incrementa el rendimiento global. Desde luego, el uso del paralelismo es ms eficaz cuando se aplica a problemas que son inherentemente paralelos, como es el caso de anlisis de imgenes. Sin embargo, el problema de la eficiencia de ejecucin de LISP ha sido paliado con la llegada de sistemas computacionales de alto rendimiento a precios accesibles (las llamadas "estaciones de trabajo" o "workstations" con procesadores RISC). En el campo de la IA, actualmente LISP no es la nica alternativa apropiada para el desarrollo de aplicaciones, y debemos considerar tanto otros lenguajes simblicos de propsito general como Prolog [17] (programacin lgica), como lenguajes especficos orientados a ciertas aplicaciones o formas de desarrollo, como los "shells" de los Sistemas Expertos. Por otra parte, en un afn de eficiencia computacional, as como de portabilidad, varios sistemas recientes de IA han sido programados en el lenguaje C (por ejemplo, [11]). En otros nmeros de Soluciones Avanzadas se ha venido (y se continuar) discutiendo esta cuestin de los lenguajes de programacin. Otras Tcnicas El rea emergente de las redes neuronales [6] ser presentado con amplitud en otro nmero de Soluciones Avanzadas; por esta razn no lo discutiremos aqu. En los artculos de este nmero de Soluciones Avanzadas, presentaremos artculos describiendo varios aspectos y tcnicas de la IA, incluyendo los Sistemas Expertos y sus arquitecturas, el Razonamiento Basado en Casos, as como un trabajo sobre la Robtica. Tambin presentaremos una descripcin de la situacin de la IA en el caso de Mxico. Conclusin La IA cuenta a la fecha con una trayectoria de ms de 30 aos, por lo que no se puede decir que sea una disciplina "acabada de nacer". En este tiempo, los logros en los laboratorios han sido grandes, desde los sistemas de visin por computadora hasta las mquinas jugadoras de ajedrez a nivel de maestro internacional. Sin embargo, la IA ha tenido grandes dificultades para pasar al dominio propiamente tecnolgico, es decir, para salir de los laboratorios hacia la industria.

Karla M. Olmos Snchez IIT/UACJ

17

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

El caso de los Sistemas Expertos es una feliz excepcin. Otra tecnologa que est encontrando amplia aplicacin es la de las Redes Neuronales. Sera de esperarse que en los prximos aos los sistemas de visin computacional, as como los de lenguaje natural, empiecen a ser aplicados ampliamente en la industria y los negocios. Es previsible que, con el crecimiento de la automatizacin industrial, la importancia de la robtica vaya en aumento en los prximos aos. Lo que es seguro es que la fuerza motriz de las tendencias futuras de la IA estar dada por factores econmicos; por ejemplo, el desarrollo de sistemas de traduccin automtica se hace urgente en una situacin de mercados globales, en que es imposible dedicar traductores humanos a procesar el inmenso volumen de informaciones financieras, tcnicas, etc., y se hace imprescindible la automatizacin. Como otro ejemplo, la existencia de mercados globales permite amortizar la inversin en los costossimos robots industriales, al aumentar los volmenes de produccin, y esto debe tender a impulsar la investigacin en robtica. Para una introduccin ms detallada al rea de la IA, recomendamos al lector las referencias [7, 18]. En [19] se encuentra un compendio de las principales reas de la IA. Referencias [1] Dehn N, Shank R, "Artificial and Human intelligence", en Handbook of Human Intelligence, R. Stenberg (editor), Cambridge University Press. [2] Kandel E, Schwartz J (eds), "Principles of Neuronal Science", Elsevier North Holland, 1981. [3] Arbib M, "Toward an automata theory of brains", CACM, Julio 1972. [4] Turing A, "Computing Machinery and Intelligence", Mind Journal, Vol.LIX, No.236, Octubre 1950. [5] Epstein R, "Can Machines Think?", AI Magazine, Vol.13, No.2, 1992. [6] Freeman J, Skapura D, "Neural Networks", Addison-Wesley, 1991. [7] Winston P, "Artificial Intelligence", Addison-Wesley, 1984 [8] Hayes-Roth F, "Expert Systems", en Encyclopedia of artificial intelligence , S. Shapiro (ed), Vol. 1, John Wiley, 1987. [9] Maida A, "Frame Theory", en Encyclopedia of artificial intelligence, S. Shapiro (ed), Vol. 1, John Wiley, 1987.

Karla M. Olmos Snchez IIT/UACJ

18

La Inteligencia Artificial en Mxico: Una Visin Personal

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 3: La Inteligencia Artificial en Mxico, Una Visin Personal. 1. Objetivo de la Lectura. El alumno al finalizar la lectura comprender la importancia de la Inteligencia Artifical en Mxico y conocer lo que se est desarrollando en el pais en cuestin del rea. 2. Comentarios de la Lectura. En el artculo el Doctor Christian Lematre compila los trabajos que se han desarrollado en Mxico en el rea de Inteligencia Artificial y realiza una reflexin acerca del futuro del rea en Mxico. 3. Fuente ]. Lematre C., La Inteligencia Artificial en Mxico: Una Visin Personal, Soluciones Avanzadas, Septiembre 1994. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Relacin con la asignatura Este artculo se recomienda en la Unidad II, cuando el alumno ya tiene un panorama general de lo que es la Inteligencia Artificial y que se de cuenta de lo que se hace en Mxico en esta rea. 5. Evaluacin de aprendizaje. 1. Investiga quin es Christian Lematre 2. Lee el artculo completo 3. Investiga el significado de las siguientes palabras a. Concluencia b. Efervesencia c. Investiga las caractersticas de la computadora Buroughs B-5500 4. Investiga la bibliografa breve de Norbert Weiner y John MacCarthy 5. Investiga lo que representan las siguientes siglas: ONUDI, INEGI, SMIA, UNAM, LISP, MIT, IIMAS, FAR, AEPIA, CONACYT, ITAM, AAAI, UDLA, LANIA, CINVESTAV, BYTEC

Karla M. Olmos Snchez IIT/UACJ

19

La Inteligencia Artificial en Mxico: Una Visin Personal

6. Realiza un cuadro sinptico que incluya fecha, autores y hechos relevantes de la historia de la Inteligencia Artificial en Mxico segn el artculo 7. Busca dos proyectos de investigacin en el rea de Inteligencia Artificial que se estn desarrollando actualmente en Mxico 8. Escribe tus conlusiones acerca de la lectura

Karla M. Olmos Snchez IIT/UACJ

20

La Inteligencia Artificial en Mxico: Una Visin Personal

LA INTELIGENCIA ARTIFICIAL EN MXICO; UNA VISIN PERSONAL


Dr. Christian Lematre Presidente de la SMIA Investigador de LANIA

En un reciente encuentro de investigadores de computacin de Estados Unidos y Mxico, llevado a cabo en la Ciudad de El Paso Texas, algunos colegas norteamericanos se mostraron extraados del alto porcentaje de investigadores mexicanos que se dedican a la Inteligencia Artificial (IA) y temas afines. En efecto, en Mxico la proporcin de investigadores dedicados a estos temas es mucho mayor que la de los pases altamente desarrollados. En una encuesta realizada para la ONUDI y el INEGI en 1991 [1,2] con 28 grupos de investigacin y desarrollo del pas en informtica y microelectrnica, se report que el 21% de los grupos tenan una actividad sistemtica de investigacin en IA que abarcaba el 35% del total de los proyectos de investigacin contabilizados. Estos eran por mucho los porcentajes ms altos de las distintas especialidades reportadas. A estos datos habra que agregar que la comunidad acadmica de IA es quiz la ms organizada en el pas en el campo de la computacin con diez congresos nacionales, tres iberoamericanos y seis internacionales; con una sociedad cientfica de la especialidad, la SMIA, con siete aos de existencia y un promedio de 150 miembros. Este conjunto de hechos amerita una explicacin. En lo que sigue tratar de presentar mi visin de cmo es que la IA en Mxico ha logrado tener una presencia tan relevante en el campo de la informtica nacional. La Prehistoria La prehistoria de la IA en Mxico se confunde en gran medida con la de la IA en el mundo. En ambos casos la IA surge de la confluencia de la ciberntica de Norbert Weiner de los aos cuarenta y cincuenta con el desarrollo de la computacin electrnica del mismo periodo. La ciberntica en Mxico la introdujo Arturo Rosenblueth quien particip en su gestacin dentro del grupo interdisciplinario dirigido por Norbert Weiner a fines de los aos cuarenta. La primera computadora electrnica en Mxico se instal en la UNAM en 1958, en el recin creado Centro de Cmputo Electrnico (CCE) cuyo primer director fue Sergio Beltrn [3].

Karla M. Olmos Snchez IIT/UACJ

21

La Inteligencia Artificial en Mxico: Una Visin Personal

A principios de la dcada de los sesenta, Sergio Beltrn organiz en el CCE las primeras actividades de IA en Mxico con una serie de conferencias de LISP, en las que participaron destacados investigadores como Marvin Minsky y John McCarthy. Como resultado de estas conferencias, uno de los participantes norteamericanos, Harold McCintosh, decidi establecerse en Mxico y trabajar, entre otras reas, la de diseo de lenguajes para programacin simblica. La Historia En el pas la formacin de investigadores de IA tuvo hasta hace unos aos dos fuentes tradicionales: 1) el envo de estudiantes al extranjero a hacer algn posgrado en la especialidad, y 2) la llegada de investigadores formados en disciplinas afines que deciden cambiar de rea de inters y dedicarse a la IA. En los ltimos aos la importancia de esta segunda fuente ha disminuido y ha aparecido una tercera opcin: la de los estudiantes formados por la propia comunidad nacional de IA. A partir de mediados de los aos sesenta es posible rastrear con un poco ms de precisin cmo se preparan los primeros investigadores de IA. Durante la primera mitad de la dcada de los sesenta fueron enviados los primeros estudiantes mexicanos a hacer doctorados y maestras en computacin en el extranjero. El primero en doctorarse en el rea de IA fue Adolfo Guzmn, quien haba sido alumno en el IPN de Harold McCintosh. Su tesis doctoral realizada en el MIT se convirti rpidamente en un clsico del rea de visin. A su regreso a Mxico, Adolfo Guzmn se alej durante varios aos de los temas de IA. En cuanto a los investigadores formadores de grupo y que llegaron a la IA provenientes de otros campos, el caso ms ejemplar fue sin duda el de Alejandro Medina, qumico de profesin, fsico y ciberntico de corazn, quien inici en 1967 una serie de cursos y seminarios de posgrado en la Facultad de Ciencias de la UNAM, bajo el ttulo de Simulacin y Control. El contenido de estos seminarios variaba de semestre en semestre entre control, investigacin de operaciones, optimizacin y temas de inteligencia artificial. Estos ltimos, se impartieron entre 1968 y 1969, y fueron seguramente los primeros cursos regulares de IA impartidos en una universidad mexicana. Su principal virtud fue sin duda la de abrir las mentes de los jvenes estudiantes de fsica y matemticas hacia nuevas reas de investigacin. Otro ejemplo relevante de un investigador proveniente de otras reas de la ciencia es el de Jos Negrete, quien provena de la medicina y la ciberntica. J. Negrete se iniciaba en esos aos dentro del IIMAS en el diseo y la programacin de un sistema de diagnstico mdico bayesiano, ancestro de los sistemas expertos mdicos de la siguiente dcada. A finales de los sesenta sali a estudiar al extranjero un numeroso grupo de jvenes de la UNAM que haban sido captados por el Centro de Clculo Electrnico, que diriga en esas fechas Renato Iturriaga. De ese grupo, al menos tres salieron a estudiar IA; eran los primeros en hacerlo despus del regreso de Adolfo Guzmn: Armando Jinich, Cristina

Karla M. Olmos Snchez IIT/UACJ

22

La Inteligencia Artificial en Mxico: Una Visin Personal

Loyo y Christian Lemaitre. Los tres a su regreso se incorporaron al Centro de Cmputo Electrnico, que para entonces haba cambiado de nombre a IIMAS. En 1973, dentro del programa de materias optativas de la carrera de matemticas de la Facultad de Ciencias de la UNAM, se establece formalmente un curso de IA. El primer profesor de este curso fue Robert Yates, quien era investigador del IIMAS de la UNAM y anteriormente haba sido investigador del Stanford Research Institute, uno de los centros de investigacin ms importante de esos aos. En esas fechas, otros dos investigadores del IIMAS, Raymundo Segovia y Mario Magidin, terminaban un intrprete de LISP que corra en la Buroughs B 5500 de la UNAM. A mediados de los setenta el IIMAS era el principal centro de investigacin en computacin en el pas, lo que le permiti abrir la primera maestra propiamente de Ciencias de la Computacin en Mxico. En el plan de estudios de esta maestra se incluy un curso de IA que fue impartido durante varios aos por Christian Lemaitre. En esa poca Adolfo Guzmn se incorpor al IIMAS y abri una lnea de investigacin de Percepcin Remota. Esos aos fueron pocas difciles para la IA en el mundo. Los principales grupos de investigacin en IA de Estados Unidos y Europa haban resentido drsticos recortes presupuestales en los proyectos que presentaban; de alguna forma, las promesas exageradas de los proyectos de robots de los aos sesenta haban provocado una gran incredulidad de los organismos que financiaban la ciencia y tecnologa de Estados Unidos e Inglaterra, principalmente. En Mxico se resenta igualmente el clima adverso hacia la IA. Los jvenes que regresaban con sus posgrados en IA no se sentan a gusto de trabajar en IA y se dedicaban a otras reas de la computacin. Durante varios aos la actividad en IA se concentr alrededor de unos pocos grupos principalmente en la UNAM, en particular alrededor de Jos Negrete y Christian Lemaitre. Para finales de la dcada de los setenta, el nmero de estudiantes mexicanos estudiando programas de doctorado en IA y reas afines iba en aumento, entre otros habra que mencionar a: Carmen Lpez Laiseca, Miguel Tomasena y Yolanda Fernndez en Francia, y a Juan Ludlow, Antonio Snchez Aguilar y Pablo Noriega en Estados Unidos. Con el cambio de dcada el ambiente alrededor de la IA empieza a mejorar; los primeros xitos comerciales de los sistemas expertos atraen la atencin de un pblico ms extenso. En Mxico cada vez ms universitarios se sienten atrados por ese novedoso tema de los sistemas expertos. En 1983, por iniciativa de Enrique Caldern, director de la Fundacin Arturo Rosenblueth (FAR), de Jos Negrete del Instituto de Investigaciones Biomdicas y de Jos Luis Mora de la Facultad de Ingeniera de la UNAM, se organiz una primera Reunin Nacional de IA dentro de la III Semana de Computadoras en la Educacin en la ciudad de Xalapa [4]. El resultado ms importante fue sin duda la decisin de consolidar una reunin anual en IA. Este fue el origen de las actuales Reuniones Nacionales de IA. La segunda reunin tuvo lugar en Guanajuato bajo los auspicios de la Universidad de Guanajuato, de la UAM-I y de la FAR; estuvieron representadas la UNAM, el IPN, la UAM-I, la UDLA, el ITESM, la U. Anhuac y el IIE. En 1985 la reunin fue en Monterrey

Karla M. Olmos Snchez IIT/UACJ

23

La Inteligencia Artificial en Mxico: Una Visin Personal

bajo el auspicio de ITESM y la FAR, asistieron a esta reunin cerca de 100 participantes. El ao siguiente la reunin tuvo lugar en Oaxaca con una asistencia de ms de 120 personas. Para mediados de la dcada de los ochenta exista una verdadera efervescencia alrededor de la IA, la mayora buscaba conocer ms del tema, no eran profesionales de la IA. Los grupos propiamente de investigacin seguan siendo pocos, CINVESTAV, FAR, UAM-I, U. Anhuac, Facultad de Ciencias de la UNAM, ITESM de Monterrey, UDLA. El siguiente paso en esta historia lo constituye la organizacin de esta comunidad cientfica en la Sociedad Mexicana de Inteligencia Artificial (SMIA). Este hecho inicia lo que se puede concebir como la etapa presente de la IA en Mxico. El Presente En la reunin de Oaxaca, un nmero significativo de participantes consider que era el momento de organizar una sociedad cientfica que se encargara de convocar a la reunin nacional anual de IA y que buscara promover los trabajos de investigacin y de aplicacin de la IA en general. Esta idea de conformar una sociedad cientfica nacional de IA se vi reforzada por una reunin organizada en mayo de 1986, por la Direccin de Polticas y Normas en Informtica del INEGI, de tres representantes espaoles de la Asociacin Espaola para la IA (AEPIA): Felisa Verdejo, Jos Cuena y Jaume Agusti, con un grupo representativo de investigadores mexicanos de IA. La experiencia de los espaoles que acababan de formar la AEPIA y la necesidad de contar del lado mexicano con una contraparte que pudiese ser el interlocutor privilegiado, no slo de la AEPIA, sino tambin de asociaciones equivalentes de otros pases, as como del INEGI y del CONACYT, permiti acelerar la convocatoria de la reunin constitutiva de la SMIA. Dicha reunin se llev a cabo en junio de 1986 en las instalaciones de la FAR con una asistencia de 25 investigadores que eligieron la primera mesa directiva encabezada por Jos Negrete. La constitucin de la SMIA le di una mayor solidez y difusin a los trabajos de IA en nuestro pas. Las siguientes reuniones nacionales fueron cada vez ms grandes: en Cholula Puebla, en 1987, hubo 180 participantes, y el ao siguiente, en Mrida Yucatn, hubo 250. En las siguientes reuniones de Quertaro, Morelia, Ensenada, Veracruz, y el D.F., el nmero de asistentes se ha mantenido alrededor de 200 por ao. La tradicin de la SMIA, que es prctica comn de otras sociedades cientficas nacionales, es llevar a cabo sus congresos en distintas ciudades de provincia. Con ello se busca ayudar a la difusin de la especialidad en pblicos ms amplios de estudiantes y profesionistas, as como apoyar los grupos locales interesados en trabajar en IA. Para celebrar el dcimo aniversario de las reuniones nacionales de IA, la SMIA decidi romper la tradicin y efectu su dcima reunin en el DF bajo el auspicio del ITAM. En cada Reunin Nacional se incluye como parte medular del programa las conferencias magistrales de dos o ms renombrados investigadores extranjeros. En ocasin de la dcima Reunin Nacional la SMIA hizo un esfuerzo especial e invit a siete conferencistas de gran renombre: Michael Arbib de la U. de Southern California, Ronald Arkin del Instituto
Karla M. Olmos Snchez IIT/UACJ

24

La Inteligencia Artificial en Mxico: Una Visin Personal

Tecnolgico de Georgia, Alain Colmerauer de la U. de Aix-Marselle, Peter Bock de la U. de George Washington, Jaime Carbonell de la U. de Carnegie Mellon, Donald Steiner del Centro de Investigaciones de Siemens y Jacek Zurada de la U. de Louisville. Desde su nacimiento la SMIA plante, junto con la AEPIA, la necesidad de llevar a cabo un congreso bienal iberoamericano de inteligencia artificial, con el fin de servir de vehculo de promocin y de encuentro a las comunidades de habla hispana y portuguesa de IA. A estos congresos se les llam IBERAMIA, y hasta la fecha se han llevado a cabo tres, el primero en Barcelona, Espaa, y los otros en Morelia, Mxico, y en la Habana, Cuba. En el mes de octubre de 1994 se realizar el IBERAMIA-94 en Caracas, Venezuela. En el terreno de los congresos hay que agregar a la lista ya mencionada los seis Simposia Internacionales de IA que lleva organizados el ITESM de Monterrey, y particularmente el Centro de Inteligencia Artificial, con la participacin de las sociedades de IA de Mxico, la SMIA, y de Estados Unidos, la AAAI. En 1994 tendrn lugar los tres congresos que se han mencionado: La XI Reunin Nacional de IA en la Universidad de Guadalajara, del 12 al 15 de septiembre; el VII Simposio Internacional de IA en ITESM de Monterrey, del 18 al 21 de octubre; y el IBERAMIA-94 en Caracas Venezuela, del 25 al 28 de octubre. El dinamismo de la comunidad de IA en Mxico ha sido sorprendente durante estos ltimos diez aos. Adems de estos eventos se han realizado en los ltimos siete aos innumerables conferencias, escuelas de verano, cursillos, etc. Gracias a este entusiasmo y actividad de la comunidad de IA, se ha logrado mantener una actividad de excelente nivel acadmico a pesar de la profunda crisis econmica de Mxico de la dcada pasada y su secuela en todo el sistema cientfico tecnolgico del pas. La situacin financiera de las principales universidades pblicas del pas provoc que muchos grupos de IA, y en general de Ciencias de la Computacin, ya establecidos o de reciente creacin se diezmaran entre 1987 a la fecha. A pesar de ello, otros grupos han nacido y, en particular, en las instituciones privadas de investigacin y de docencia, los grupos han logrado mantenerse y crecer. Este ha sido el caso de Centro de Inteligencia Artificial del ITESM, del grupo de IA del ITAM, del grupo de la UDLA y la creacin en 1991 del Laboratorio Nacional de Informtica Avanzada, LANIA, centro de investigacin privado con una fuerte componente en IA. A partir de un anlisis de las ponencias presentadas en las diferentes Reuniones Nacionales de IA hasta 1991 [4], se desprende por ejemplo que el grupo de la Universidad de las Amricas, Puebla, es el que ms trabajos ha presentado, con cerca de un 20% del total; le sigue el Instituto de Investigaciones Biomdicas de la UNAM con un 12%, el Centro de IA del ITESM con 9%, el CINVESTAV del Instituto Politcnico Nacional con 7%, as como el Instituto de Investigaciones Elctricas, el Instituto de Ingeniera de la UNAM y el Instituto de Investigaciones en Matemticas Aplicadas y Sistemas (IIMAS) de la UNAM, cada uno de ellos con 5%.

Karla M. Olmos Snchez IIT/UACJ

25

La Inteligencia Artificial en Mxico: Una Visin Personal

Los temas con ms trabajos presentados a lo largo de las distintas Reuniones Nacionales son por orden de importancia: Sistemas Expertos con un 22% del total de trabajos presentados, Lenguaje Natural con un 16 %, Representacin de Conocimiento con un 10 %, y Programacin Lgica con un 6 %. Los cambios habidos en los diferentes grupos de trabajo, as como la aparicin de nuevos temas de moda, ha hecho, por ejemplo, que en las ltimas Reuniones Nacionales hayan bajado notablemente el nmero de trabajos en temas como Lenguaje Natural y Representacin de Conocimiento, y que hayan aumentado otros como Redes Neuronales y Algoritmos Genticos. Otro aspecto importante de la IA en Mxico en la actualidad es su componente de aplicacin al sector productivo. El acercamiento de la industria a la IA se puede rastrear a partir de los aos 1986 - 87 con los primeros desarrollos de BYTEC y de Bancomer. El sistema de BYTEC entr en operacin, mientras que el de Bancomer qued a nivel de primer prototipo. De entonces a la fecha se han venido desarrollando sistemticamente diversos sistemas de aplicacin, principalmente en el campo de los sistemas expertos. En trminos generales la aproximacin de las empresas a la IA ha sido tmida y recelosa. En cierta forma esa actitud no es nueva ni privativa de la IA. De alguna forma las empresas mexicanas hasta muy recientemente no haban enfrentado la innovacin tecnolgica en forma sistemtica. En los pases desarrollados existe una larga tradicin empresarial de invertir y arriesgar en desarrollos de nuevas tecnologas; en Mxico esta variable ha empezado a manejarse slo recientemente con la creciente apertura comercial de nuestras fronteras. A pesar de todo esto, a lo largo de los ltimos ocho aos se han venido desarrollando distintas aplicaciones comerciales de IA en nuestro pas, ya sea por grupos de investigacin de instituciones como el ITESM, el ITAM, la UDLA o el LANIA, as como por empresas de servicios como Softtek, o por consultores independientes. Actualmente la tecnologa de Sistemas Expertos es una tecnologa madura y existen en nuestro pas grupos profesionales bien preparados para desarrollar soluciones que incorporen este tipo de sistemas. Est claro que estos grupos no sern suficientes cuando la demanda de la industria se despierte en Mxico. Es indispensable, por lo tanto, reforzar los grupos existentes y propiciar la creacin de nuevos. En resumen, la IA es quiz una de las reas de la informtica ms organizadas y con grupos de investigacin y desarrollo mejor establecidos en Mxico. Esto sita a la comunidad nacional de IA en una posicin ventajosa para ofrecer al sector productivo un apoyo en su esfuerzo modernizador en la introduccin de aplicaciones de IA. Sin embargo, los retos modernizadores que enfrenta la sociedad mexicana son enormes, y est claro que no slo la comunidad de IA nacional, sino la comunidad informtica en su conjunto son todava pequeas para las necesidades del pas. Se requiere urgentemente fortalecer los grupos de investigacin y desarrollo, los programas de posgrado nacionales, as como fomentar la creacin de grupos profesionales de alta calidad para hacer frente a la demanda nacional de este fin de siglo.

Karla M. Olmos Snchez IIT/UACJ

26

La Inteligencia Artificial en Mxico: Una Visin Personal

Referencias [1] "La Situacin de la Informtica en Mxico", Edicin 1992, INEGI, Mxico [2] Lematre, C., "Investigacin y Desarrollo en Informtica y Microelectrnica en Mxico: Situacin y Perspectivas", Reporte Tcnico de LANIA, Lania-RI-92-2 [3] Soriano, M., y Lematre, C., "Primera dcada de la computacin en Mxico: 19581968", Ciencia y Desarrollo, Nos. 60 y 61, enero y marzo de 1985, CONACYT, Mxico [4] Lemaitre, C., y Snchez-Aguilar, A., "Las Reuniones Anuales de la Sociedad Mexicana de Inteligencia Artificial", en Inteligencia Artificial en Mxico, Universidad Tecnolgica de la Mixteca, Huajuapan de Len, Mxico, 1992

Karla M. Olmos Snchez IIT/UACJ

27

La Inteligencia Artificial desplaza a los Genios? Deep Blue vence a Kasparov

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 4: La inteligencia Artificial Desplaza a los Genios?. Deep Blue vence a Kasparov 1. Objetivo de la Lectura. El alumno al finalizar la lectura comprender la importancia de los juegos en el rea de Inteligencia Artifical en Mxico y conocer cmo se han ido desarrollando con el tiempo. 2. Comentarios de la Lectura. En el artculo se comenta del partido de ajedrez que sostuvieron el camen Kasparov y la mquina (diseada para ese propstio especfico) Deep Blue. Adems, el autor reflexiona acerca de la derrota del humano y de que si esto nos da una idea de la posibilidad de que las mquinas pudieran a llegar a ser ms inteligentes que el hombre 3. Fuente La Inteligencia Artificial desplaza a los genios?: Deep Blue vence a Kasparov , Red, Julio 1997. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Relacin con la asignatura En el artculo se habla acerca de juegos, que se relaciona con la Unidad III del curso en el que se ensean las tcnicas para juegos y su importancia en la Inteligencia Artificial. 5. Evaluacin de aprendizaje. 1. Lee el artculo completo 2. Investiga el significado de las siguientes palabras a. Autonomasia b. Trivial 3. Investiga la bibliografa breve de Garry Kasparov 4. Investiga lo que representan las siguientes siglas: ENIAC 5. Realiza una reflexin de la lectura

Karla M. Olmos Snchez IIT/UACJ

28

La Inteligencia Artificial desplaza a los Genios? Deep Blue vence a Kasparov

LA INTELIGENCIA ARTIFICIAL DESPLAZA A LOS GENIOS?: DEEP BLUE VENCE A KASPAROV


Muchos se habrn desgarrado las vestiduras, el mes de mayo pasado, por la derrota de Garry Kasparov frente a Deep Blue, la computadora de 1.4 toneladas y 256 procesadores especialmente orientados al clculo de posiciones ajedrecsticas. Quienes as lo hicieron se sorprenden de que, la criatura -la mquina- haya derrotado al creador, el hombre. La realidad sorprendente no es que lo haya vencido, sino que no lo hubiese hecho antes. Nadie se sorprende hoy de ver que un automvil Frmula Uno, o hasta una motocicleta, derrote al campen de los cien metros planos. Menos aun se extraar alguien de que una mquina venza en una prueba de resistencia como el maratn. La diferencia es probablemente que lo que est en juego, en el caso de la confrontacin ajedrecstica, es algo ms directamente relacionado con el orgullo humano. Es la creatividad y su inteligencia. Muchas veces se ha dicho, como consuelo, que la computadora es slo una estpida de alta velocidad, y a una tonta as se le puede perdonar que nos gane en cualquier cosa menos en el juego que es la antonomasia de la inteligencia. Eso ms que otra cosa es lo que explica el inters un tanto morboso en la revancha entre Kasparov y Deep Blue, y la tristeza por la derrota del campen mundial. En realidad, aunque el ajedrez es un juego apasionante y bastante complejo para el hombre, se presta fcilmente para ser jugado por una computadora. Ya en 1950, apenas 4 aos despus del nacimiento de ENIAC, la primera computadora, Claude Shannon, uno de los padres de la teora de la informacin, deca que el ajedrez era un problema ideal para ser sometido al anlisis de las computadoras: "Est claramente definido tanto en las operaciones permitidas (las reglas del juego), como en su finalidad: dar mate al rey enemigo. No es demasiado simple como para resultar trivial; ni tan complicado como para que no sea posible obtener una solucin satisfactoria". Es ese sentido, otros varios problemas son ms difciles de resolver por parte de las computadoras; por ejemplo, el reconocimiento de patrones, relacionado con la capacidad de reconocer visualmente los objetos, y otros problemas relacionados con la inteligencia artificial, como el aprendizaje, no han sido an resueltos de manera satisfactoria por las computadoras. Cuando una mquina como Deep Blue "juega" al ajedrez, en realidad no est pensando, como lo hace su contrincante humano. Est realizando, de acuerdo con un conjunto de instrucciones programadas previamente, una serie de clculos numricos que le permiten decidir de entre varias posiciones posibles cul es la mejor. Es decir, a cada posicin

Karla M. Olmos Snchez IIT/UACJ

29

La Inteligencia Artificial desplaza a los Genios? Deep Blue vence a Kasparov

potencial se la asigna mediante un algoritmo una valor numrico, segn distintos criterios como la seguridad del propio rey, el peligro en que se encuentran las piezas, etc. La mquina "decide" por la posicin que tiene un valor ms alto. A este enfoque donde la computadora no trata de emular los procesos del pensamiento humano en la solucin de problemas ajedrecsticos, se le conoce como la solucin de la "fuerza bruta". Desde que Shannon sugiri que la creacin de programas de cmputo capaces de jugar al ajedrez llevara al desarrollo de tcnicas que se podran usar tambin en la solucin de aplicaciones prcticas, se elaboraron varios de ellos. En 1967, Mac Hack fue el primer jugador artificial de ajedrez en competir con buenos resultados en un torneo con humanos. Debido a que el mtodo de la fuerza bruta produce una manera diferente de jugar al ajedrez, por algn tiempo los enfrentamientos hombre-mquina, a un nivel de grandes maestros, no resultaron interesantes. Las computadoras, al no pensar, presentaban una serie de debilidades fcilmente explotables por el humano. Fue el antecesor de Deep Blue, llamado Deep Thought, la primera computadora (en realidad, programa y computadora) en derrotar en 1989 a un gran maestro en un torneo. Deep Thought era una computadora con dos procesadores capaz de analizar ms de 750 mil posiciones por segundo. En octubre de ese mismo ao, una nueva versin de esa mquina, con seis procesadores y la posibilidad de buscar ms de 2 millones de posiciones por segundo, jug y perdi un par de encuentros frente al campen del mundo Garry Kasparov. Sin embargo, en agosto de 1995, Deep Thought derrot a la jugadora hngara Judith Polgar, quien dicho sea de paso, ha sido el jugador ms joven en acceder al ttulo de Gran Maestro. Deep Blue fue pensada para mejorar algunas de las "deficiencias" de Deep Thought en cuanto a poder y velocidad de cmputo. Para eso el equipo encargado de su diseo y construccin ide un procesador orientado al clculo de posiciones ajedrecsticas que es capaz de analizar tres millones de posiciones por segundo. Con 256 de estos procesadores, distribuidos en 32 mdulos de ocho, ensamblaron una mquina a la que adems dotaron de una base de datos de aperturas y de finales de partidas. Esta computadora fue la que el ao pasado perdi un encuentro de seis partidas con el campen del mundo. Sin embargo, ya en esa ocasin, logr ganarle en la primera partida. Despus de esa derrota, Kasparov se repuso y fue capaz de explotar las debilidades de la computadora. Un ao ms tarde, el equipo de Deep Blue volvi a la carga en busca de la revancha, ahora con una "nueva" Deep Blue equipada con mejoras en la arquitectura de la mquina, procesadores ms rpidos y mejor uso de la memoria, a la que haban "enseado" a jugar al ajedrez mediante reformas en el programa de cmputo que se benefici del anlisis de las lneas de juego que sigui Kasparov en la primera confrontacin.

Karla M. Olmos Snchez IIT/UACJ

30

La Inteligencia Artificial desplaza a los Genios? Deep Blue vence a Kasparov

Durante el desarrollo de su segundo encuentro de seis partidas, Kasparov estuvo empatado con la computadora hasta la partida nmero cinco y perdi la sexta, en menos de una hora, al realizar una jugada que es reconocida como incorrecta por todos los buenos ajedrecistas. La razn por la cual un jugador de su talla comete una falla como esa, est en la base de lo que son las confrontaciones hombre-mquina en el juego de ajedrez. La causa pudo haber sido resultado del cansancio, un factor que no afecta a Deep Blue; puede haber sido tambin producto de la bsqueda desesperada de lneas de juego que explotaran las debilidades de la computadora. Es decir, en este encuentro, Kasparov no jug como lo hace contra cualquier ser humano, donde la sicologa tiene un rol importante, sino tratando de entender la forma como la computadora toma sus decisiones para llevarla por lneas de juego donde la imaginacin y el talento del campen del mundo puedan desentraar los problemas que se presentan sobre el tablero, de mejor manera que la mquina. Pero eso es el ajedrez, al menos desde el punto de vista humano, una confrontacin donde tratamos de que nuestras ideas resulten mejores que las del adversario y en la que a veces se gana y a veces se pierde. El mismo Kasparov, que ha sido campen del mundo desde 1984, ha perdido varias partidas, aunque ningn encuentro en el que haya estado en juego su ttulo. Ahora habr que olvidarse un poco del ajedrez y reconocer el trabajo de Feng-Hsuing Hsu y Murray Campbell, miembros del equipo original de Carnegie Mellon, que en 1988 empez a trabajar en la construccin de Deep Thought y de quienes se agregaron despus Joseph Heane, Gershon Brody, Chung-Jen Tan y Jerry. Habr que recordar lo dicho por Shannon acerca de que el estudio del ajedrez ayuda a desarrollar tcnicas tiles en la solucin de problemas prcticos y alegrarnos de las perspectivas que el cmputo en paralelo puede abrir a la solucin de problemas de simulacin de dinmica molecular, de inters en la industria farmacutica, al estudio del comportamiento de los mercados financieros, o a la regulacin y programacin del trfico areo en los aeropuertos ms grandes del planeta. En fin, la derrota de Kasparov en el sexto juego podra resultar anecdtica si no fuera por que necesaria, aunque errneamente, pasar a la historia como la primera vez en que una mquina derrota al ser humano en una confrontacin de inteligencias, aun cuando haya sido el hombre nicamente quien gan.

Karla M. Olmos Snchez IIT/UACJ

31

Agentes Inteligentes

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 5: Agentes Inteligentes: mquinas pensantes aplicadas a la vida cotidiana del hombre? 1. Objetivo de la lectura El alumno al finalizar la lectura comprender qu son los agentes inteligentes, qu tipos de agenetes inteligentes existen y cmo pueden ayudar stos en la vida cotidiana del hombre. 2. Comentarios de la Lectura. En el artculo se comenta acerca de las caractersticas de los agentes inteligentes, su comportamiento y de cmo pueden ser utilizados en funciones que consideramos cotidianas en la vida humana. 3. Fuente ]. Maruri, E., Agentes Inteligentes: mquinas pensantes aplicadas a la vida cotidiana del hombre?, Red, Marzo 2000. . < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Relacin con la asignatura Este artculo se recomienda que se lea en la unidad VI referente a tcnicas avanzadas para que alumno visualice lo que son lo agentes inteligentes 5. Evaluacin de aprendizaje. 6. Lee el artculo completo 7. Investiga el significado de las siguientes palabras a. Resolucin b. Autnomos c. Discontinuidad d. Inferencia e. Cognitivo f. Heterogneo g. Amalgama 8. Investiga la bibliografa breve de Eduardo Maruri 9. Investiga lo que representan las siguientes siglas: ENIAC

Karla M. Olmos Snchez IIT/UACJ

32

Agentes Inteligentes

10. Realiza un mapa conceptual de la informacin proporcionada en la lectura acerca de los agentes inteligentes.

Karla M. Olmos Snchez IIT/UACJ

33

Agentes Inteligentes

AGENTES INTELIGENTES: MQUINAS PENSANTES APLICADAS A LA VIDA COTIDIANA DEL HOMBRE


Eduardo Maruri

La principal aplicacin de los agentes es el filtrado de informacin. - Los agentes inteligentes en el Web proporcionan al usuario diversos servicios de gran utilidad. - Difcilmente se podrn convertir en un producto de consumo comn. Recuerda cuando era pequeo y miraba los Supersnicos deseando que alguien pudiera inventar un robot para que hiciera diversas actividades por usted? Dcadas ms tarde, todava no se ha cumplido definitivamente el sueo de una mquina que ponga a funcionar la aspiradora o que levante los platos de la mesa, pero hoy en da existen algunos robots tiles que se encuentran en la red de redes, listos para ayudarle con las compras y recopilar informacin, as como en otro tipo de tareas. Una innovacin significativa en la concepcin de las aplicaciones de la Inteligencia Artificial (IA) -aqulla que reproduce a travs de mquinas las operaciones humanas que suelen utilizarse para la resolucin de asuntos prcticos- es la de los agentes inteligentes en la informtica, generalmente agentes de software, a menudo autnomos y mviles. Normalmente estos agentes hacen uso de operaciones que permiten la cooperacin y la distribucin del trabajo, tal y como se resuelven los problemas cotidianamente, mediante su segmentacin y la intervencin en varios niveles; as se obtiene provecho de conceptos como cooperacin, interaccin y comunicacin entre entidades de diferentes tipos. Inteligencia Artificial Distribuida La Inteligencia Artificial Distribuida (IAD) integra los conceptos de dos campos de conocimiento: la inteligencia artificial y los sistemas distribuidos. Por un lado, la inteligencia artificial intenta comprender y construir las entidades inteligentes. Por su parte, el campo de los sistemas distribuidos estudia las propiedades de conjuntos de procesadores autnomos que no comparten memoria primaria, pero s cooperan comunicndose por medio del envo de mensajes sobre una red de comunicacin. "La IAD es un subcampo de la IA, la cual se dedica al estudio de sociedades de solucionadores de problemas o agentes, interactuando para resolver un problema comn: computadoras y personas, sensores, aviones, robots, etctera. Tal sociedad es llamada un sistema multiagente (SMA) y se define como una red de solucionadores de problemas que trabajan juntos para solucionar problemas que rebasan sus capacidades individuales",

Karla M. Olmos Snchez IIT/UACJ

34

Agentes Inteligentes

explica Jacobo Hernndez, acadmico de la Fundacin Arturo Rosenblueth e investigador de la compaa Sly Softw@re. A partir de los conceptos de inteligencia artificial y sistema distribuido, la Inteligencia Artificial Distribuida puede ser definida como un campo del conocimiento que estudia e intenta construir conjuntos de entidades autnomas e inteligentes que cooperan para desarrollar un trabajo y se comunican por medio de mecanismos basados en el envo y recepcin de mensajes. Los tres ejes fundamentales que se estudian en la IAD son: - Sistemas MultiAgente (SMA): Esta rama de la IAD estudia el comportamiento de agentes inteligentes que resuelven un problema de manera cooperativa. - Resolucin Distribuida de Problemas (RDP): Esta rama de la IAD trabaja con las formas de dividir un problema, para asignar las partes a un conjunto de entidades independientes y cooperantes, para que en grupo se halle la solucin. - Inteligencia Artificial en Paralelo (IAP): Esta rama de la IAD se centra en el desarrollo de lenguajes y algoritmos paralelos para sistemas concurrentes en IAD. "Existen pronsticos de que en las prximas dcadas una posible discontinuidad a nivel mundial en la mejora del desempeo de la tecnologa de la informacin provendr del software, por lo que muchos especialistas esperan avances modestos en campos como los de la Inteligencia Artificial, en donde la bsqueda de software con capacidad de pensamiento autnomo y de respuestas, mediante inferencias y creatividad, continuar hacia la mitad del siglo prximo. No obstante, actualmente se comienza a disponer de agentes inteligentes que colaboran con sus usuarios con base en la capacidad de acumular datos acerca de sus gustos y patrones de comportamiento individuales; de ah que la Asociacin Americana para la Inteligencia Artificial (American Association for Artificial Intelligence) haya publicado el reporte The role of intelligent systems in the national information infraestructure (El papel de los sistemas inteligentes en la infraestructura nacional de informacin), firmado por cerca de 30 acadmicos e investigadores del mximo nivel, adscritos a las principales universidades y centros de investigacin estadounidenses, y en el cual proponen promover la investigacin en diversas reas clave de dicho campo, las cuales tendrn un papel central al responder a los desafos planteados por dicha infraestructura", detall Juan Jos Carren Granados, profesor del departamento de Computacin de la divisin de Ingeniera Elctrica de la Facultad de Ingeniera de la UNAM (Universidad Nacional Autnoma de Mxico). Clasificacin de los agentes inteligentes Las entidades inteligentes que conforman un SMA son llamadas agentes, los cuales son una entidad fsica o abstracta que puede percibir su ambiente a travs de sensores. Son capaces de evaluar tales percepciones y tomar decisiones por medio de mecanismos de razonamientos sencillos o complejos, comunicarse con otros agentes para obtener informacin y actuar sobre el medio en el que se desenvuelven a travs de ejecutores.
Karla M. Olmos Snchez IIT/UACJ

35

Agentes Inteligentes

Un agente puede ser clasificado por su rol en una sociedad de agentes (SMA al que pertenece), por su especialidad o actividad en la que es experto, por sus objetivos o metas en el SMA, por su funcionalidad o lo que es capaz de hacer, por su creencias, por su capacidad de comunicacin y por su capacidad de aprendizaje. En trminos generales, los agentes se clasifican en dos tipos: 1. Agentes cognitivos: aqullos capaces de efectuar operaciones complejas. Son individualmente inteligentes (son sistemas ms o menos expertos, con capacidad de razonamiento sobre su base de conocimiento), pueden comunicarse con los dems agentes y llegar a un acuerdo con todos o algunos de ellos, sobre alguna decisin. Un sistema cognitivo est compuesto por un pequeo nmero de agentes cognitivos. 2. Agentes reactivos: son agentes de bajo nivel y no disponen de un protocolo ni de un lenguaje de comunicacin; su nica capacidad es responder a estmulos. Los agentes reactivos son globalmente inteligentes y, por lo general, estn compuestos por un gran nmero de agentes reactivos que realizan acciones entre todos. Para ello es necesario tener en cuenta nuevas teoras de cooperacin y comunicacin que permitan el desempeo de estas acciones. Cabe destacar que es posible concebir sistemas heterogneos cuyo comportamiento se derive de las dos clasificaciones de agentes mencionados, y tengan caractersticas de ambos. Esto significa que es posible dotar a los agentes cognitivos de capacidades de reaccin a los eventos. A tales agentes se les puede llamar agentes hbridos. Dentro de la clasificacin de los agentes tambin podemos encontrar diversos tipos de agentes inteligentes con distintas caractersticas y funciones: Agente de reflejo simple. Agente informado de todo lo que pasa. As como interpreta la nueva percepcin a la luz del conocimiento disponible sobre el estado, este agente tambin utiliza la informacin referente a la manera como evoluciona el mundo, y de esta manera puede mantenerse informado acerca de esas partes no visibles de l. Adems, debe estar enterado en cmo las acciones del agente estn afectando al estado del mundo. Agente basado en metas. Para decidir qu hay que hacer, no siempre basta con tener informacin acerca del estado que prevalece en el ambiente. Por ejemplo, pueden darse en cierto momento varias opciones como "siguiente estado", y la decisin adecuada depender de su meta, la cual es informacin que detalla las situaciones deseables. El programa del agente puede combinar lo anterior con la informacin relativa al resultado que produciran las posibles acciones que se emprendan, y de esta manera elegir aquellas acciones que respondan con una sola accin. Otras veces es ms complicado, cuando el

Karla M. Olmos Snchez IIT/UACJ

36

Agentes Inteligentes

agente tiene que considerar largas secuencias de giros y vueltas hasta que logra encontrar la va que lo lleva a la meta. La diferencia de decisiones de este tipo difieren radicalmente de las reglas condicin-accin en que implican tomar en cuenta el futuro: Qu sucedera si hago tal cosa? Eso me har feliz? En el caso del diseo del agente reflejo esta informacin no se utiliza explcitamente, puesto que el diseador calcula previamente la accin correcta correspondiente a diversos casos. Si bien el agente basado en metas es menos eficiente, tambin es cierto que es ms flexible. Agente basado en utilidad. La palabra "utilidad" hace referencia a la calidad de ser til. Por lo tanto, es una funcin que correlaciona un estado y un nmero real mediante el cual se caracteriza el correspondiente grado de satisfaccin. La completa especificacin de la funcin de utilidad permite la toma de decisiones racionales en dos tipos de casos en los que las metas se encuentran con problemas. El primero, cuando el logro de algunas metas implica un conflicto, y slo en algunas de ellas se puede obtener la funcin de utilidad en donde se definir cul es el compromiso adecuado por el que hay que optar. Segundo, cuando son varias las metas que el agente podra desear obtener, pero no existe la certeza de poder lograr ninguna de ellas, la utilidad es una va para ponderar la posibilidad de tener xito considerando la importancia de las diferentes metas. "Las aplicaciones de los agentes son diversas, pero la principal es el filtrado de informacin, ya que son capaces de averiguar qu temas le interesan al usuario y van escogiendo sitios Web o noticias para presentrselas. Otra funcin es la automatizacin del trabajo en grupo, por ejemplo, concertar citas en el momento preciso para todo un grupo de trabajo. Hoy en da, los agentes inteligentes se usan principalmente a nivel de investigacin, pero no se puede hablar de verdaderos agentes trabajando para su uso comn", explica Jos Merelo, investigador del departamento de Electrnica y Tecnologa de los Computadores de la Universidad de Granada, Espaa. Bots de charla La palabra "bot" se deriva de "robot" y se refiere a un programa de computadora que recopila informacin o realiza un servicio, generalmente en algn horario ordinario. Un bot, tambin llamado agente, tpicamente explora Internet, recopila informacin relativa a sus intereses, y se la ofrece al usuario en trminos diarios o peridicos. Los bots obtuvieron notoriedad en IRC (grupos de chat en Internet) donde realizaban funciones tales como saludar a nuevos participantes, controlar el uso de lenguaje ofensivo, y algunas veces estar abiertamente molestos. Hoy retoman informacin y responden a sucesos en Usenet, el Web y otras cosas del ciberespacio. Mientras que algunos bots deambulan por Internet silenciosamente a su orden, otros son interactivos, como por ejemplo chatterbot -la clase de robot al que se le puede hablar. El primer bot, Eliza, fue creado en 1966 por el profesor Joseph Weizenbaum del Instituto de Tecnologa Massachusetts (MIT), para estudiar la comunicacin con lenguaje natural entre el hombre y la computadora. Eliza remeda a una terapeuta al responder preguntas con preguntas. Aqu est una conversacin de un usuario con Eliza:
Karla M. Olmos Snchez IIT/UACJ

37

Agentes Inteligentes

Usuario: Hola! Tengo unas preguntas que hacerte. Eliza: Por favor contine. Usuario: Bueno, creo que tengo un problema con las bebidas. Eliza: Pero no est seguro si tiene un problema con las bebidas? Usuario: Estoy seguro. Todas mis camisas estn manchadas adelante. Eliza: Por qu dice que sus camisas estn manchadas adelante? Usuario: Porque es all donde dejo regar mi jugo de tomate. Eliza: No se le ocurren otras razones? Aunque Eliza tiene 33 aos de edad, todava puede visitarse en: http://www-ai.ijs.si/eliza/eliza.html. Por su parte, ALICE (Ente de Computadora de la Lingstica Artificial en Internet) es un programa un poco ms sofisticado que crea la ilusin de conversacin natural. Inclusive, ALICE puede mentir, "chismosear", y se dice que ha tenido influencia en varios eventos del mundo real. Este programa se encuentra en: http://206.184.206.210. Actualmente hay muchos ms robots de charla interesantes, otros ejemplos son: BRIAN (un programa de computadora que piensa que es un estudiante universitario de 18 aos), Erin el camarero, o MegaHal. Estos y otros 50 robots de charla pueden ser visitados en: http://botspot.com/search/s-chat.htm. Otros agentes inteligentes Alguna vez ha visto que hacen la misma pregunta a un motor de bsqueda con mucha frecuencia? Deje que un robot tome el control. Se cans de mirar en los clasificados o los sitios de compras para buscar el mejor negocio? Entonces lo ms cmodo sera mandar un robot para que vaya de compras por usted. A continuacin se listan algunos robots que pueden hacer cosas tiles por usted: TracerLock. Controlan los motores de bsqueda y notifican a los usuarios por e-mail cuando aparecen nuevas pginas en Internet que contienen sus palabras claves. http://peacefire.org/tracerlock. Reference.com. Busca informacin en las listas de correo y los grupos de noticias Usenet. Mandan los resultados diariamente por e-mail a mltiples usuarios. http://www.Reference.com

Karla M. Olmos Snchez IIT/UACJ

38

Agentes Inteligentes

ITrack. Este servicio de rastreo de subasta vigila las principales subastas en lnea y notifica a los usuarios cuando el objeto que desean est colocado en el bloque de ofrecimientos. http://www.itrack.com JavElink. Deja controlar a los usuarios un grupo de pginas Web. Si la pgina cambia, el usuario recibe un e-mail con detalles. http://www.javelink.com NetMind. Deja rastrear cualquier pgina Web a cualquier nivel de detalle. Este servicio ha estado alrededor por varios aos y puede proporcionar funciones que no se pueden encontrar en javElink. http://www.netmind.com RememberIt. Este servicio ayuda a los usuarios a recordar fechas importantes como cumpleaos o aniversarios. Solamente reciben un correo para recordarles del evento en la fecha que especificaron. http://www.rememberit.com EYES. Ayuda a encontrar libros recin publicados de un tema especfico. http://www.amazon.com/exec/obidos/subst/search/eyes.html Shopping Bots. Quiere encontrar el precio ms bajo sin visitar docenas de sitios de compras? Mire en ms de 70 robots y agentes inteligentes que estn esperando para ayudarle. http://bots.internet.com/search/s-shop.htm. TheTrip.com. Reciba una notificacin por e-mail de las tarifas ms bajas en viajes por avin a su destino. http://www.thetrip.com AdHound. Busque diariamente los clasificados de centenares de peridicos estadounidenses. Cualquier clasificado relevante le es enviado por e-mail. http://sar.adone.com/cgi-bin/adhound. Infobeat. Noticias, clima, nieve, acciones, deportes, entretenimiento. Sus noticias personalizadas entregadas cotidianamente por email. http://www.infobeat.com Pero si gusta aprender ms acerca de los robots, BotSpot es el lugar en donde se clasifican los robots y los agentes inteligentes por tema, con reseas y perspectivas histricas. Quizs encontrar un robot que pueda automatizar alguna actividad en lnea, lo cual se puede hacer hoy en da (http://www.botspot.com). Tendencias de la Inteligencia Artificial Realmente podemos imaginar que puedan existir agentes inteligentes aplicados a realizar funciones comunes del hombre, es decir, mquinas

Karla M. Olmos Snchez IIT/UACJ

39

Agentes Inteligentes

que hagan las actividades cotidianas de la gente? Ante esta pregunta, Jacobo Hernndez coment: "Creo que es un planteamiento que se ha hecho sobre todo en el rea de robtica por muchos autores de ciencia-ficcin y cientficos renombrados. Sin embargo, no significa que los agentes sean la solucin. Son una nueva tecnologa que permitir que muchas funciones (caseras, industriales, etctera) se automaticen, pero esto tiene que ver ms con el cmputo ubicuo". El progreso de esta tecnologa se realiza en varias partes del mundo, pero en Estados Unidos existen varios grupos de investigacin, de entre los que destaca el MIT. Sin embargo, la apertura de Internet ha permitido que numerosos equipos de investigacin y entusiastas cooperen para llevar esta tecnologa a nuevos niveles de desarrollo. "El desarrollo de todo tipo de agentes est financiado principalmente por el Ministerio de Defensa de Estados Unidos y sus diversas oficinas, y se desarrolla en universidades estadounidenses tales como el MIT, as como en corporaciones tales como IBM (el proyecto 'aglets'), y Microsoft (proyecto 'persona')", manifest Jos Merelo. Por su parte, en Mxico los grupos que desarrollan esta tecnologa son: LANIA, el Tecnolgico de Monterrey, la Universidad Nacional Autnoma de Mxico, el Instituto Politcnico Nacional, y la Fundacin Arturo Rosenblueth. "En el desarrollo de comunidades colaborativas en Internet, software del tipo agente inteligente se est volviendo indispensable, as lo sealan diferentes investigaciones que se realizan en Mxico; por ejemplo, la investigacin que explora la aplicacin de dichos agentes en el manejo de espacios de informacin grandes, complejos y dinmicos, como los caractersticos de las enormes bibliotecas digitales distribuidas empleadas en procesos sociales de aprendizaje e investigacin colaborativos a nivel global. Ejemplos de ello son los impulsados por Alfredo Snchez y Gerardo Ayala, investigadores del Laboratorio de Tecnologas Interactivas y Cooperativas del Centro de Investigacin en Tecnologas de Informacin y Automatizacin, de la Universidad de las Amricas en Puebla", seala Juan Jos Carren. De alguna manera, esta tecnologa complementar a los diversos sistemas de informacin y aplicaciones de escritorio y de Internet, por lo que su introduccin puede ser calificada inicialmente de discreta (un ejemplo es el asistente de Office, el cual no es propiamente un agente inteligente, sino una interfase, pero al fin y al cabo un agente). Incluso, posiblemente la comercializacin no se dar de forma convencional, sino que, de la misma manera como se contratan los servicios de un especialista o ayudante para determinada tarea, as se "consumirn" los servicios provistos por los agentes. "Los agentes son una amalgama de tecnologas que vienen a cambiar el enfoque de hacer software, distribuirlo, utilizarlo, aprovecharlo e interactuar con l. La complejidad en el uso de programas (la famosa curva de aprendizaje) ser mucho menor, y muchas bondades relativas a la eficiencia sern descubiertas. No obstante, esto no debe hacer creer a la gente que sus programas son inteligentes. Todava distamos mucho de eso. Lo que s podr lograrse pronto es que trabajen por s mismos, y que aprendan de sus usuarios", declara Jacobo Hernndez.
Karla M. Olmos Snchez IIT/UACJ

40

Agentes Inteligentes

Finalmente, el investigador del departamento de Electrnica y Tecnologa de los Computadores de la Universidad de Granada, apunta que "esta tecnologa difcilmente se podr convertir en un producto de consumo comn, al menos en el sentido que lo es un programa como Office. Posiblemente, al generalizarse las computadoras y los telfonos mviles, cada persona tendr un agente que le est informando puntualmente al mvil de lo que le interese, e incluso que estos agentes se puedan comunicar de un mvil a otro sin necesidad de que intervenga el usuario. Asimismo, creo que los agentes plantean un serio problema de confianza: uno debe confiar que la informacin que tienen de uno mismo se quede en ellos, y no se mande a otros lados o personas. Por otro lado, ser interesante cuando sea posible la evolucin de agentes; esto es, que poblaciones de agentes sean capaces de evolucionar para conseguir un fin determinado, tal como el filtrado de informacin".

Karla M. Olmos Snchez IIT/UACJ

41

Introduccin a las Redes Neuronales Artificales

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 6: Introduccin a la Redes Neuronales Artificiales 1. Objetivo de la lectura El alumno al finalizar la lectura comprender el funcionamiento bsico de las redes neuronales, sus aplicaciones y su historia. 2. Comentarios de la Lectura. Las redes neuronales son un paradigma alternativo de la computacin. Inspirado en sencillos modelos elementales de la neurona y funciones cerebrales, la red neuronal naci en un intento mas de comprender el complejo cerebro humano. En este artculo se describen algunos de los eventos mas importantes en la historia de la redes neuronales y las dos corrientes filosficas que han determinado el actual estado del arte. Se describen tambin algunas de sus aplicaciones y los mecanismos que permiten la capacidad de aprendizaje de una red neuronal. 3. Fuente Hernndez, A., Introduccin a las Redes Neuronales Artificiales , Soluciones Avanzadas, Noviembre 1998. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Relacin con la asignatura. Este artculo se relaciona con la unidad VI de tpicos avanzado en donde se da un panorama bsico de qu son y cmo funcionan las redes neuronales artificiales 5. Evaluacin de aprendizaje. 1. Lee el artculo completo 2. Investiga el significado de las siguientes palabras a. paradigma b. alternativo c. modelos d. neurona e. factible f. conversin

Karla M. Olmos Snchez IIT/UACJ

42

Introduccin a las Redes Neuronales Artificales

g. simulacin h. adaptacin i. analoga j. soma k. aron l. dendritas m. plasma n. filamentos o. sinapsis p. inhibir q. umbral r. sigmoide s. retroalimentacin t. infructuoso u. perceptrn v. convergencia 3. Realiza un cudro sinptico que incluya fecha, autores y hechos relevantes de la historia de las Redes Neuronales 4. Realiza un mapa conceptual de la informacin proporcionada en la lectura acerca de las redes neuronales. 5. Elabora tus comentarios acerca de la lectura

Karla M. Olmos Snchez IIT/UACJ

43

Introduccin a las Redes Neuronales Artificales

INTRODUCCIN A LAS REDES NEURONALES ARTIFICIALES


Arturo Hernndez Aguirre
Las redes neuronales son un paradigma alternativo de la computacin. Inspirado en sencillos modelos elementales de la neurona y funciones cerebrales, la red neuronal naci en un intento mas de comprender el complejo cerebro humano. En este artculo se describen algunos de los eventos mas importantes en la historia de la redes neuronales y las dos corrientes filosficas que han determinado el actual estado del arte. Se describen tambin algunas de sus aplicaciones y los mecanismos que permiten la capacidad de aprendizaje de una red neuronal. 1. Introduccin Los tipos de problemas que pueden resolverse en una computadora digital suelen descomponerse en una serie de pasos muy especficos (el algoritmo) que se describen a la computadora usando un lenguaje de programacin (el programa) el cual define la forma en que se procesarn los datos de entrada para producir los datos de salida que deseamos. Esta metodologa se utiliza para resolver la mayor parte de los problemas que requieren del uso de una computadora, desde el clculo de una simple sumatoria hasta las simulaciones ms complejas de un tomo. Sin embargo, no cualquier actividad factible de ser desarrollada por una computadora puede ser descrita por un conjunto de reglas codificadas en un programa. Todos estamos familiarizados con actividades que resultan sumamente difciles (o imposibles) de describir de manera especfica. Un ejemplo tpico es andar en bicicleta. No importa cuntas veces nos digan cmo hacerlo, mientras no nos subamos a una (y nos caigamos al menos una vez) nunca lograremos aprender a conducirla adecuadamente. Son precisamente estos problemas que no podemos describir de forma especfica los que resultan ideales para ser resueltos empleando Redes Neuronales Artificiales (RNAs). Las RNAs son una forma alternativa de computacin que, inspiradas en la actividad neuronal del cerebro humano, simulan ciertos rasgos propios de la inteligencia, principalmente la facultad de aprendizaje y adaptacin. Para facilitar la siguiente comparacin entre las RNAs y una computadora digital, le llamaremos "transformacin funcional" al proceso de conversin de los datos de entrada de un problema en datos de salida. En las RNAs, la "transformacin funcional" es aprendida mediante un proceso de adaptacin que modifica internamente a la RNA sin requerir de la intervencin de un ser humano. Por su parte, cuando se emplea una computadora digital, es un ser humano el que codifica la "transformacin funcional" de los datos en un programa.

Karla M. Olmos Snchez IIT/UACJ

44

Introduccin a las Redes Neuronales Artificales

Usualmente, el mtodo de aprendizaje empleado por una RNA simula una situacin maestro-alumno, donde la red (alumno) modifica sus controles (adaptacin) para aprender la "transformacin funcional" con la gua de un maestro (medidor de error) que le informa qu tan correcto es lo que ha aprendido. Este tipo de aprendizaje se llama supervisado, pero como es de esperarse con base en la analoga con el mundo real, existe una gran variedad de maestros, de alumnos, y de reglas de adaptacin. En este artculo se describen los paradigmas ms importantes de aprendizaje, las RNAs que lo utilizan y las reglas de aprendizaje utilizadas en el proceso de adaptacin. Por ltimo, se presentan las reas de aplicacin ms importantes de las RNAs y algunos de los problemas que pueden presentarse al usarlas. 2. Conceptos de la neurona cerebral Una neurona es una clula que procesa informacin [3,7]. Est compuesta de un cuerpo o soma, y de dos tipos de ramificaciones: el axn y las dendritas. En el soma se localizan: el ncleo, que contiene la informacin hereditaria, y el plasma, que es la maquinaria molecular que produce los elementos necesarios para la vida de la clula. La neurona recibe seales (impulsos elctricos) provenientes de otras neuronas a travs de sus dendritas (receptores) y transmite seales generadas por el cuerpo de la clula por medio del axn (transmisor), el cual se ramifica varias veces hasta convertirse en pequeos filamentos. En las terminales de estos filamentos se encuentran las sinapsis. Una sinapsis es una estructura elemental de pseudocontacto (sin contacto fsico), entre el axn y la dendrita de dos neuronas. Cuando un impulso llega a la terminal de la sinapsis se liberan varias sustancias qumicas llamadas neurotransmisores. stas se difunden en el espacio de la sinapsis para permitir o inhibir, dependiendo del tipo de sinapsis, la emisin de un nuevo impulso. Se dice que la neurona "dispara" cuando emite un nuevo impulso. La efectividad de la sinapsis se ajusta dependiendo de la frecuencia con que las seales pasan a travs de ella, de forma que la sinapsis "aprende" a liberar mayor o menor cantidad de neurotransmisores dependiendo de las actividades en las cuales participa. Esta dependencia actividad-neurotransmisor sirve para retener informacin, y posiblemente es responsable de la memoria humana. La corteza cerebral del ser humano es como una sbana plana, de entre 2 y 3 milmetros de espesor, con una superficie de aproximadamente 2200 cm2. En total contiene del orden de 1011 neuronas, cada una interconectada con otras 1,000 a 10,000 neuronas, formando una compleja red con aproximadamente 1014 a 1015 interconexiones [3]. Las neuronas se comunican por medio de breves "trenes de impulsos", del orden de unos cuantos milisegundos de duracin. El "mensaje" es modulado en la frecuencia de transmisin del impulso. La frecuencia puede variar de unos cuantos a varios cientos de Hertz (ciclos por segundo). Comparando con la frecuencia de reloj de las computadoras actuales (del orden de millones de Hertz), la frecuencia de trabajo de las RNAs es insignificante. Sin embargo, el cerebro realiza complejas operaciones de percepcin, como el reconocimiento de un rostro, en unos cuantos cientos de milisegundos. Se sabe tambin que el cerebro no utiliza ms de 100 etapas de clculo, lo que significa que el cerebro
Karla M. Olmos Snchez IIT/UACJ

45

Introduccin a las Redes Neuronales Artificales

"corre" programas en paralelo de unas 100 instrucciones de largo para realizar una operacin de reconocimiento, y dada la tremenda rapidez con que se realiza la tarea, resulta obvio que los algoritmos que el cerebro utiliza son mucho ms complejos y eficientes que aquellos que la ciencia moderna ha podido producir. Adems, la cantidad de informacin enviada de una neurona a otra es muy pequea, lo que implica que la informacin crtica no se transmite directamente, sino que sta es capturada y distribuda en las interconexiones. De ah que al modelo usado para describir las RNAs se le llame "conexionista". 3. Conceptos de la neurona artificial La neurona artificial solamente captura las funciones ms elementales de la neurona biolgica y sin embargo, los resultados que se han logrado hasta ahora con este modelo son tan prometedores que actualmente se realiza extensa investigacin en RNAs en todo el mundo. En la figura 1 se ilustra el modelo general de la neurona artificial. La neurona se representa por medio de un crculo, que se denomina nodo, celda, o neurona artificial. La sinapsis de la neurona biolgica se representa mediante una conexin que entra a un nodo, y se indica con una flecha. La eficiencia de la sinapsis se modela mediante un nmero real (positivo, negativo o cero), que recibe el nombre de factor de conexin o peso. El axn se representa con una flecha saliendo del nodo. El nmero que acompaa a esta flecha modela el impulso elctrico producido durante el disparo de la neurona. Para determinarlo, el nodo aplica una funcin no lineal, denominada funcin del nodo, sobre la suma total de los valores de entrada multiplicados por el peso particular de la conexin. Esta funcin puede disearse de tal forma que produzca resultados estrictamente binarios. Por ejemplo, una funcin Heaviside (funcin de umbral), produce valores de salida +1 y 0, +1 y 1. Otras funciones de nodo capturan con cierto grado la frecuencia de disparo (no slo el disparo) de la neurona biolgica, como la sigmoide (literalmente, en forma de "S") y la tangente hiperblica. Figura 1. La neurona artificial y tres posibles funciones del nodo 4. Historia de las redes neuronales artificiales Hemos dicho antes que las RNAs estn inspiradas biolgicamente, es decir, que buscan reproducir las funciones de la neurona cerebral. En esta seccin relataremos tambin cmo un segundo paradigma, fundamentado en la ciberntica, tom su propia lnea de investigacin y a la postre se convirti en otra corriente fundamental de las RNAs. Como punto de inicio de la historia de las RNAs, fijaremos arbitrariamente 1943, partiendo del hecho de que en ese ao se public el reporte de Warren S. McCulloch y Walter Pitts [10] (MyP). Para entender mejor su importancia, tratemos de ubicarnos en el contexto de la poca: las primeras computadoras estaban construyndose, se hablaba de la fabricacin de "gigantescos cerebros mecnicos" y se especulaba con la idea de crear mquinas inteligentes [4]. En el medio flotaban los primeros resultados de Rashevsky [15], quien recin haba descrito matemticamente ciertos procesos biolgicos, particularmente los relacionados con la fisiologa neuronal. La figura estelar la ocupaba, sin embargo, el
Karla M. Olmos Snchez IIT/UACJ

46

Introduccin a las Redes Neuronales Artificales

prodigioso matemtico Norbert Wiener, quien en su libro Ciberntica [22] establecera la teora matemtica de los procesos retroalimentados, y reconocera que la idea central en ellos es la informacin. Wiener [22] especulaba que todo comportamiento inteligente es, esencialmente, producto de mecanismos retroalimentados. No debe extraarnos entonces que MyP [10] emplearan en gran medida el concepto de "ciclos de retroalimentacin" (a los que llamaron crculos), para obtener sus resultados. La contribucin de MyP es muy importante porque muestra, mediante un riguroso anlisis matemtico, cmo las neuronas interconectadas entre s, transmitiendo impulsos elctricos, pueden desarrollar operaciones lgicas. Es decir, por primera vez se vislumbraba un modelo matemtico que poda explicar la capacidad de computacin del cerebro humano. Una segunda contribucin de MyP es la definicin de las caractersticas de las neuronas que emplearon en su trabajo (llamadas desde entonces "neuronas de MyP"). MyP compararon tambin las semejanzas en la capacidad de computacin entre el cerebro y la mquina de Turing. Desafortunadamente, estas comparaciones dieron la falsa impresin de que el cerebro humano funcionaba como una computadora digital, y peor an, que slo bastaran computadoras ms grandes y rpidas para construir verdaderos cerebros pensantes. MyP aclararon esta situacin en ms de una ocasin. En el Coloquio Internacional " Las mquinas de calcular y el pensamiento humano", celebrado en Pars en 1951 [1], MyP comenzaron la presentacin de su trabajo "Una comparacin entre las mquinas de calcular y el cerebro humano" estipulando: "El hecho de tener en el nombre del coloquio las expresiones mquinas de calcular y pensamiento humano juntas, nos inquieta. Los cerebros son 'mquinas' que calculan, pero las mquinas de calcular fabricadas por el hombre no son reproducciones de cerebros ..." Pero los intentos de MyP por aclarar estas especulaciones fueron infructuosos, y la falsa idea se esparci rpidamente por todo el mundo. En 1949, slo 6 aos despus de que MyP haban mostrado cmo las RNAs podran computar, el fisilogo Donald O. Hebb, sugiri cmo podran aprender. En su libro The Organization of Behavior (La Organizacin del Comportamiento), Hebb [5] sostuvo que las conexiones entre las neuronas cambian conforme el cerebro aprende nuevas actividades. Fundamentalmente, Hebb describi el fenmeno como sigue [5] : "si dos neuronas participan repetidamente en cierta actividad cerebral, entonces su interconexin se fortalece". Esta idea es fundamental para las RNAs de nuestros das, pero 7 aos despus de ser publicada por Hebb, todava no era muy claro cmo deba emplearse en la prctica. En 1956, Rochester y Holland realizaron simulaciones de RNAs en una computadora IBM 704 [17], y en su reporte se aprecian claramente las dificultades para implementar correctamente la idea de "fortalecer las conexiones" que Hebb haba sugerido. La simulacin funcionaba incorrectamente cuando el fortalecimiento de las conexiones creca sin lmite, as que optaron por mantener constante la suma total de los valores sinpticos (los pesos), que se tena en el sistema en cualquier momento dado. Esto significa que
Karla M. Olmos Snchez IIT/UACJ

47

Introduccin a las Redes Neuronales Artificales

cuando una interconexin se vea incrementada, otra ms era decrementada, a fin de mantener balanceado el sistema. Esta ingeniosa solucin logra resultados similares a los que se producen al emplear una funcin sigmoide (ver Figura 1). Figura 2. Esquema del perceptrn de Rosenblatt En el verano de 1951, Marvin Minsky y Dean Edmonds construyeron en la Universidad de Harvard la primera RNA. Utilizando sobrantes del piloto automtico de un avin B-24, 300 bulbos y otros circuitos, construyeron la SNARC ( Stochastic Neural-Analog Reinforcement Computer), la cual consista de 40 neuronas artificiales que simulaban el cerebro de una rata buscando el camino de salida de un laberinto [2]. El papel del piloto automtico era precisamente realizar el ajuste de las interconexiones entre las neuronas, cada vez que la "rata" lograba una secuencia correcta de movimientos que la llevara a encontrar la salida del laberinto. La SNARC funcion exitosamente desde el punto de vista tcnico, pero no aport nada particularmente interesante o til a la teora del procesamiento de informacin utilizando RNAs. Prueba de ello es que cuando se realiz la ahora clebre conferencia que vio nacer a la Inteligencia Artificial en el Dartmouth College, en el verano de 1956, slo el equipo integrado por Herbert Simon y Alan Newell pudo mostrar resultados concretos [2]. Poco despus de esta conferencia, Frank Rosenblatt dio a conocer (en 1958), la primera red neuronal que producira resultados prcticos: el Perceptrn. Primero como un modelo simulado en una IBM 704, y despus construda y bautizada con el nombre de Mark I, el perceptrn consista de un conjunto de 512 unidades de asociacin (neuronas tipo MyP), que reciban informacin del exterior a travs de un conjunto de unidades sensoras (fotoceldas), colocadas en un arreglo matricial de 20x20 denominado retina. Los resultados del perceptrn se desplegaban sobre otro conjunto llamado unidad de respuestas o activacin (vese la Figura 2). Una demostracin usual del perceptrn consista en la identificacin de las letras del alfabeto [6]. Enormes letras se colocaban frente a la retina y se ajustaban los pesos siguiendo la estrategia de entrenamiento vislumbrada por Rosenblatt [16]. Cuando el entrenamiento del perceptrn haba terminado, comenzaba la etapa de reconocimiento de la letras. Una pequea lmpara se encenda, iluminando la letra correspondiente sobre la unidad de respuestas. Rosenblatt no pudo contener su entusiasmo, y comenz a atribuirle sofisticadas cualidades al perceptrn, a pesar de que ninguna de ellas era comprobable. Con el ttulo "Sern reemplazados los cerebros humanos?", la prestigiosa revista Science report el invento diciendo: "... no es una mente mecnica ordinaria que almacena informacin y la regurgita. Los perceptrones pueden con el tiempo aprender a leer, a tomar decisiones y a traducir idiomas" [8]. Finalmente, Rosenblatt [16] logr probar el teorema de la convergencia del perceptrn, el cual establece que "si un problema tiene solucin usando el perceptrn, el algoritmo de entrenamiento garantiza que sta se encontrar". Pero lo que preocupaba a Frank Rosenblatt era explicar por qu haba problemas (algunos de ellos muy simples) en los que fallaba el perceptrn, y cul era realmente su funcionamiento interno. Figura 3. Esquema de la Adaline de Widrow
Karla M. Olmos Snchez IIT/UACJ

48

Introduccin a las Redes Neuronales Artificales

Otros investigadores disearon dispositivos similares a principios de los 60's. De entre ellos, destaca el trabajo realizado por Bernard Widrow y su estudiante Ted Hoff, quienes a fines de 1959 trabajaban en el problema del diseo de un filtro. Widrow conoca el procedimiento ideado por Norbert Wiener para hallar la solucin ptima del filtro, pero saba que ste requera del conocimiento de la estadstica del ruido que se deseaba eliminar, y de un elevado nmero de muestras de la seal, ya que el filtro funciona mejor con un mayor nmero de muestras. Lo que Widrow buscaba era un mecanismo capaz de aproximar la solucin de Wiener sin disponer de informacin previa; es decir, que el mecanismo se "adaptara" a un cierto patrn de entrada. La solucin de Widrow-Hoff se bas en el concepto de retroalimentacin de Wiener, e hizo que el error entre la entrada y la salida se usaran para ajustar los pesos del sistema. Widrow construy la Adaline ( Adaptive Linear Neuron) para mostrar sus hallazgos, y escribi al respecto: "adaptacin es un proceso de retroalimentacin multidimensional" [19,20]. La Adaline constaba slamente de una neurona, aunque luego se construy tambin una versin con mltiples neuronas llamada Madaline (vese la Figura 3). Conceptualmente no hay diferencia entre el perceptrn y la Adaline. Al igual que Rosenblatt, Widrow demostr la convergencia del mtodo de aprendizaje de la Adaline, pero anlogamente, fall tambin en su intento por explicar por qu sta no poda aprender a reconocer ciertos patrones. Sin embargo, a pesar de las similitudes entre los 2 modelos, stos se basaron en conceptos muy diferentes. Rosenblatt se inspir en la biologa, en su intento por encontrar una forma de relacionar la psicologa con la estructura neuronal del cerebro. Widrow tena tras de s la fuerte corriente de la Ingeniera Ciberntica impulsada por Wiener. Rosenblatt no pensaba que el cerebro calculara funciones lgicas, sino ms bien que ste descubra cmo conectar dos estmulos del mundo exterior mediante un "aprendizaje asociativo". Para Rosenblatt [16], el cerebro y el perceptrn estaban diseados para crear categoras. Durante la dcada de los 60's floreci la investigacin sobre RNAs. El libro de Nils Nilsson [14] resume en gran parte el trabajo realizado hasta este perodo. Rosenblatt todava trataba de resolver el problema del perceptrn cuando su ex-compaero de clases de la preparatoria, Marvin Minsky, apareci de nuevo en escena. Minsky termin su doctorado en matemticas en la Universidad de Princeton en 1954, escribiendo posblemente la primera disertacin doctoral sobre redes neuronales de todo el mundo. Pese a la "falla" de la SNARC y a su creciente desencanto con las RNAs, Minsky [12] describi claramente en su libro Computacin: Mquinas Finitas e Infinitas , que era ciertamente posible efectuar procesos computacionales con las RNAs. Sin embargo, Minsky vea a Rosenblatt con enfado. Aos despus confesara: "estaba irritado con los excesos de Rosenblatt y la forma en que ste entretena a la gente con las falsas expectativas del perceptrn" [8]. De tal forma, no debiera resultar sorprendente la despiadada crtica que el libro Perceptrons [13] hizo del modelo de Rosenblatt. Utilizando un OR-exclusivo, Minsky y Papert demostraron que las capacidades de clasificacin del perceptrn simple (de una sola neurona) eran nfimas, pues ste no era capaz de aprender correctamente esta sencilla funcin Booleana. Desafortunadamente, a partir de este ejemplo, Minsky y Papert se aventuraron a comentar, sin probarlo, que una capa ms de neuronas no sera la solucin para clasificar correctamente aquellos patrones que a la Mark I, con sus 512 nodos, le
Karla M. Olmos Snchez IIT/UACJ

49

Introduccin a las Redes Neuronales Artificales

resultaba imposible de clasificar. Aunque el tiempo mostrara ms tarde que esta aseveracin era errnea, el desconocimiento de un algoritmo que permitiera entrenar un perceptrn con ms de una capa de nodos slo empeor an ms las cosas. Resulta difcil poder evaluar el papel histrico de Perceptrons en nuestros das, pues si bien sirvi para fundamentar varios aspectos de las RNAs que se haban enunciado informalmente hasta entonces, su devastadora conclusin era un tanto amarillista, y dado que muchos de los investigadores de la poca ni siquiera se preocuparon por revisar la validez de sus aseveraciones, sus repercusiones fueron fatales, sobre todo en los Estados Unidos, pues signific la muerte de la investigacin en esta disciplina durante 20 aos. En otros pases del mundo el efecto de Perceptrons fue mucho menor. Sobresalen en este perodo el trabajo de Teuvo Kohonen, de la Universidad de Helsinky, sobre memoria asociativa y auto-organizacin de redes neuronales; Kunihiko Fukushima, de los Laboratorios NHK en Tokio, sobre redes especializadas para el reconocimiento de caracteres: el cognitrn y el neocognitrn; y James Anderson, de la Universidad de Brown, Stephen Grossberg y Gail Carpenter, de la Universidad de Boston, quienes desde la dcada de los 70's han realizaron importantes contribuciones derivadas de la neurona biolgica [6], a pesar de no haber contado con suficiente apoyo financiero para su investigacin durante un largo tiempo. Entre 1983 y 1986, un fsico del Instituto de Tecnologa de California llamado John Hopfield se convirti en un factor clave para persuadir a cientos de cientficos de todo el mundo a continuar la investigacin en RNAs. Sin embargo, el problema del perceptrn no se poda pasar por alto. Fueron Rumelhart, Hinton y Williams [18] quienes vislumbraron un mtodo general de entrenamiento para un perceptrn con ms de una capa de neuronas. Irnicamente, el algoritmo se conoca desde 1969 y fue "re-descubierto" en ms de una ocasin. Este algoritmo, llamado retropropagacin, marc el renacimiento de las redes neuronales. 4. Aplicaciones de las Redes Neuronales Los problemas donde las RNAs se aplican tienen algo en comn: son difciles de describir cuantitativamente y usualmente slo se dispone de informacin parcial sobre ellos. Algunas de sus principales reas de aplicacin son las siguientes: a) Clasificacin. El objetivo es encontrar la clase a la que pertence cada elemento de un conjunto de patrones. Ejemplos bien conocidos son el reconocimiento de caracteres y el reconocimiento de voz. Otra aplicacin importante consiste en el anlisis de seales de sonar y radar para determinar el contenido de petrleo en el sub-estrato terrestre. b) Aglomeramiento. En este caso el objetivo es agrupar objetos o patrones que son similares entre s. Mediante un parmetro de similitud la RNA crea los grupos. El nmero de grupos identificados es variable dependiendo del grado de sensibilidad del parmetro de similitud. Un ejemplo de esta rea es la compresin de datos.

Karla M. Olmos Snchez IIT/UACJ

50

Introduccin a las Redes Neuronales Artificales

c) Aproximacin de funciones. El objetivo es que la RNA aprenda o construya una funcin que genere razonablemente bien los mismos datos de salida que con los datos de entrada produce el proceso siendo modelado. Se aplica a muchos problemas cientficos y de ingeniera que requieren de la aproximacin de funciones. d) Prediccin y pronstico. Dada una serie de valores en el tiempo, el objetivo es predecir el conjunto de valores subsecuentes, es decir, predecir valores futuros con base en su historia. Ejemplos de esta rea son la prediccin de valores futuros de la bolsa de valores y el pronstico del clima. e) Sistemas de control. Un control se utiliza para modificar a discrecin la relacin entradasalida de un proceso. Cuando esta relacin es difcil de identificar, una RNA puede aprender a controlar un proceso a partir del conjunto de datos de entrada-salida. En la figura 4 se muestran grficamente las aplicaciones antes descritas. Figura 4. Aplicaciones de las redes neuronales. 1) clasificacin, 2) aglomeramiento, 3) aproximacin de funciones, 4) prediccin y pronstico, 5) sistemas de control 5. Arquitectura de redes neuronales artificiales Hemos dicho en una seccin previa que la conexin entre dos neuronas se representa mediante una flecha. La arquitectura (o topologa) de una RNA se define a travs de los patrones genricos que siguen las flechas. De tal forma, existen dos categoras: a) redes no retroalimentadas, en las cuales las conexiones no forman ciclos, y b) redes retroalimentadas o recurrentes, en las que los ciclos son permitidos. El perceptrn de mltiples capas es el miembro de la familia de las redes sin retroalimentacin de uso ms general y diverso. Algo ms restringido es el espectro actual de aplicacin de las redes de arquitectura recurrente, como la red Hopfield, la Kohonen, y la ART (Adaptive Resonance Theory). 6. Paradigmas de aprendizaje de redes neuronales artificiales El aprendizaje de una RNA consiste esencialmente en encontrar los pesos correctos que producen la funcionalidad deseada. Existen tres mtodos bsicos de aprendizaje: a) Aprendizaje supervisado o aprendizaje con un maestro. Se proporcionan a la red los datos correctos de salida para cada patrn de entrada. La red inicia un proceso de entrenamiento en el que los valores de los pesos son ajustados siguiendo una regla de aprendizaje especfica. En cada aproximacin (cambio en los pesos) que el alumno hace, el maestro le informa la diferencia entre el valor correcto y el valor aproximado. Las RNAs empleadas para clasificacin son usualmente entrenadas con aprendizaje supervisado. b) Aprendizaje no supervisado o aprendizaje sin maestro. La red no requiere aprender una respuesta correcta para cada patrn de entrada. Analizando la estructura de los datos, la RNA agrupa los patrones en diferentes categoras o clases. Las RNAs usadas en

Karla M. Olmos Snchez IIT/UACJ

51

Introduccin a las Redes Neuronales Artificales

aplicaciones de aglomeramiento son usualmente entrenadas con aprendizaje no supervisado. c) Aprendizaje hbrido. Se aplica usualmente a RNAs cuya estructura consiste de dos o ms etapas que tienen diferente arquitectura. Por ejemplo, la red counterpropagation consiste de una red Kohonen seguida de una red Grossberg. En su conjunto la red requiere de aprendizaje no supervisado en la primera etapa, y supervisado en la segunda. Otro ejemplo es el de las RNAs de funcin de base radial. Aunque su arquitectura es homognea y similar a la del perceptrn de mltiples capas, el algoritmo de entrenamiento se considera hbrido porque consiste de dos partes completamente dismiles. 7. Reglas de Aprendizaje Una regla de aprendizaje define la manera en que los pesos deben de ser modificados en la RNA. Mediante estos cambios es que sta se adapta paulatinamente durante el proceso de entrenamiento y produce, la mayor parte de la veces, los resultados deseados. Hay cuatro reglas de aprendizaje bsicas: a) Reglas de correccin de error. En aprendizaje supervisado la RNA es entrenada para producir los valores de salida que corresponden a los patrones de entrada. El error o diferencia entre el valor correcto y el conseguido por la red se utiliza para modificar los pesos y as disminuir gradualmente el error. El algoritmo de retropropagacin empleado para entrenar el perceptrn de mltiples capas utiliza una instancia de esta regla, llamada la regla delta generalizada. Para entrenar la Adaline y la Madaline, Widrow utiliz aprendizaje supervisado con base en una regla de correccin de error precursor de esta ltima, llamada regla delta o regla de Widrow-Hoff. b) Reglas para aprendizaje competitivo. En este tipo de reglas, las neuronas compiten entre s mismas para disparar. Por lo tanto, en cualquier momento slo la neurona ganadora est activa y es la nica que consigue tener sus pesos actualizados. Este fenmeno se conoce como el ganador toma todo. En estas reglas se modifican los pesos en forma proporcional a la diferencia entre el patrn de entrada y la suma de los pesos de la neurona ganadora. Con sto se consigue que el patrn almacenado en la neurona ganadora (los pesos) se acerque al patrn de entrada. La red Kohonen utiliza este tipo de regla. c) Regla de aprendizaje de Hebb. Derivada del postulado de Hebb sobre aprendizaje, la regla consiste en incrementar el factor de conexin entre dos neuronas que participan en la misma actividad. El algoritmo ideado por Rosenblatt para entrenar el perceptrn est basado en esta regla. d) Regla de aprendizaje de Boltzmann. Con base en principios de termodinmica estadstica, una RNA tiene un cierto nivel de energa proporcional a sus pesos, llamado equilibrio trmico. El aprendizaje consiste en reforzar los pesos de la red cuando existe alta probabilidad de que stos participen en la generacin de un patrn de salida.

Karla M. Olmos Snchez IIT/UACJ

52

Introduccin a las Redes Neuronales Artificales

8. El Perceptrn, la Adaline y Separabilidad Lineal Cuando son usados para clasificacin, el perceptrn y la Adaline producen resultados prcticamente idnticos. Ambas redes son no recurrentes, de una sola capa (en el diseo original) y sus algoritmos de entrenamiento supervisado son muy similares aunque existe una ligera diferencia: al perceptrn se le actualizan los pesos slo cuando comete un error en la clasificacin de un patrn, mientras que a la Adaline se le deben ajustar para todos los patrones, sin importar si stos resultan bien o mal clasificados. Si bien los algoritmos son casi iguales, sus reglas de aprendizaje son diferentes: la regla de Hebb se usa para entrenar el perceptrn, mientras que la Adaline usa la regla de correccin de error. Rosenblatt [16] define el perceptrn como una mquina que aprende, mediante ejemplos, a clasificar diferentes patrones de entrada. Para Widrow, la Adaline es un sistema de clasificacin que, mediante la modificacin de los pesos, busca disminuir el error cuadrtico medio. El perceptrn busca disminuir el nmero de clasificaciones incorrectas; la Adaline siempre busca disminuir el error cometido en la clasificacin. Para disminuir el error, la regla de reduccin de error se implementa mediante una estrategia de gradiente descendente. De aqu que, a diferencia del perceptrn, la Adaline pueda ser usada para aproximacin de funciones. Ya entrenada, la funcionalidad de la Adaline es idntica al mtodo que en estadstica se conoce como regresin lineal [11]. La separabilidad lineal de dos patrones de entrada se realiza colocando una lnea recta entre ellos dos, separando a todos los elementos de cada patrn (en el caso de dos dimensiones). La Figura 5 muestra ejemplos de clases linealmente separables y linealmente no separables por un perceptrn simple. Figura 5. Separabilidad de dos clases por medio de un perceptrn simple. 1) Separabilidad lineal, 2) Separabilidad No Lineal La meta del proceso de entrenamiento es encontrar los pesos que correctamente separan a las clases. Por ejemplo, en la figura 6 se tienen muestras de dos clases con las que se desea entrenar un perceptrn. Los pesos encontrados son +1 para la primera entrada y -1 para la segunda. Figura 6. Clasificacin de dos patrones por medio de un perceptrn simple Con estos pesos, el perceptrn de un nodo clasifica correctamente las dos clases, particionando el espacio en dos regiones de decisin. Cuando la complejidad de los patrones a clasificar aumenta, se debe de incrementar el nmero de nodos del perceptrn para aumentar su capacidad de clasificacin (recordemos que la Mark I usaba 512 nodos para clasificar las letras del alfabeto). An as, no todos los problemas de clasificacin pueden resolverse mediante la separacin lineal de las clases, esto es, mediante un perceptrn con una sola capa. 9. Redes No Recurrentes. El perceptrn de mtiples capas

Karla M. Olmos Snchez IIT/UACJ

53

Introduccin a las Redes Neuronales Artificales

Una de las RNAs ms estudiadas y mejor entendidas es el perceptrn de mltiples capas (PMC). Esta red tiene dos caractersticas muy importantes: primero, es un aproximador universal, es decir, tiene la capacidad de aproximar cualquier funcin analtica. Segundo, puede formar regiones de clasificacin cuyos contornos son extremadamente complejos. Usualmente un PMC de dos capas resuelve la mayora de los problemas, pero es comn que se utilicen tres o cuatro. La capa de nodos ubicada entre la capa de entrada y la capa de salida se conoce con el nombre de capa escondida. El papel que juegan estas capas en la creacin de regiones de decisin se ilustra en la figura 7 [9]. El PMC es una red no recurrente que se entrena con el algoritmo de retropropagacin basado en la regla de correccin de error. Esencialmente consiste de dos etapas: primero, se calcula la salida correspondiente a un patrn de entrada y se calcula la diferencia entre el valor real y el aproximado (salida) producido por la red. Segundo, con esta diferencia o error se ajustan los pesos de la ltima capa; despus, con la ltima capa ya ajustada, se calcula el error entre sta y la capa previa para ajustar los pesos de sta ltima, y as sucesivamente hasta llegar a la primera capa. Existen varios problemas al trabajar con el PMC. Las propiedades fundamentales de ste provienen de teoremas existenciales, es decir, de estos teoremas se derivan su capacidad de computacin y su capacidad universal para aproximar funciones, pero no sabemos con certeza de qu es capaz cada configuracin (con diferente cantidad de nodos y capas). Los problemas que a continuacin se enlistan son tpicos del PMC y comunes en casi todas las RNAs [11]: a) Tamao de la muestra. Una red aprende su funcin o actividad especfica mediante el entrenamiento basado en las muestras de entrada-salida obtenidas del problema. Sin embargo, informacin duplicada o irrelevante slo prolonga el tiempo requerido para lograr el aprendizaje de los pesos. Entonces, cuntos elementos debe de tener el conjunto de datos con el que se va a entrenar una red? b) Tamao de la red. Sabemos que el PMC es un aproximador universal pero desconocemos la topologa especfica que se requiere para resolver cierto problema. Es decir, cuntas capas de nodos debe de tener una red? Y, cuntos nodos deben haber en cada capa? c) Pesos iniciales de la red. Es aceptable suponer que el tiempo de entrenamiento de una red ser menor si sta se inicializa con pesos aproximados a los de la solucin. Es decir, qu conjunto de pesos es el ms convenientes para comenzar el entrenamiento? Figura 7. Intepretacin geomtrica de la funcionalidad de la capa escondida Se conocen gran cantidad de heursticas y resultados tericos (de problemas muy particulares) para determinar estas variables. Por ejemplo, se recomienda que el nmero de patrones de entrenamiento sea de aproximadamente 10 veces el nmero de pesos de la red. En cuanto al nmero de capas, se sabe (tericamente) que el PMC de una sola capa escondida es suficiente para resolver cualquier problema, aunque no se sabe cuntos nodos se requieren. Para inicializar los pesos de un PMC que usa la funcin sigmoide o la
Karla M. Olmos Snchez IIT/UACJ

54

Introduccin a las Redes Neuronales Artificales

tangente hiperblica, la recomendacin ms usual es generar los pesos aleatoriamente en el rango de -1.0 a +1.0, alejados de la zona de saturacin de la funcin (los extremos de sta). Con esto se garantiza la mxima variabilidad de los pesos al iniciar el entrenamiento. Pese a que la investigacin ha progresado en esta direccin, en la gran mayora de las aplicaciones del PMC se procede mediante ensayo y error para determinar sus parmetros ms adecuados. Una de las deficiencias mas criticadas del PMC es la lenta velocidad de convergencia de su algoritmo de aprendizaje (retropropagacin). Esto se debe en gran medida a que los pesos son ajustados con cada patrn de la muestra de entrenamiento, y a que la estructura de la red es esttica. Pero si la red "creciera al aprender", esto es, que su estructura creciera dinmicamente de acuerdo a las circunstancias particulares de cada problema, entonces evitaramos el dimensionamiento a priori de la red y el excesivo trabajo de cmputo que implica entrenar nodos superfluos, o peor an, el entrenar una red que no podra encontrar nunca una solucin. El algortmo llamado cascade correlation (correlacin-cascada) est dirigido a resolver la mencionada deficiencia del PMC. El entrenamiento se inicia con una estructura mnima a la cual se le agregan nuevas neuronas conforme stas van siendo requeridas para minimizar el error. Neuronas ya entrenadas permanecen sin cambio en sus pesos, y slo las recin agregadas son entrenadas. 10. La Inspiracin Biolgica en el Aprendizaje El PMC es finalmente una red creada con la misma inspiracin ciberntico-ingenieril que predomina en la Adaline de Widrow. Sus neuronas son inspiradas biolgicamente, pero se requiere de una buena dosis de matemticas para entender el aprendizaje supervisado. Adems, es bastante improbable que el cerebro humano realice alguna forma de aprendizaje supervisado cuando esencialmente no tenemos control sobre las sinapsis. De este modo se considera que el aprendizaje no supervisado tiene fundamentos biolgicos mucho mejor sustentados que el supervisado, ya que el cerebro realiza de manera persistente "y no supervisada" el reconocimiento de todo tipo de patrones, principalmente los visuales. Por otra parte, el cerebro humano no olvida experiencias pasadas mientras aprende nuevos conceptos, situacin que es imposible de modelar con un PMC. Rosenblatt tena razn en su bsqueda. Cmo es posible aprender un nuevo concepto sin olvidar los que ya sabemos? Y cmo sabemos que aprender cierto concepto es irrelevante? (ya sea porque ya lo conocemos o porque no modifica a otros conceptos) Estas preguntas se conocen en RNs como: dilema de la plasticidad-estabilidad. Plasticidad es la habilidad de adaptacin (modificacin) ante nuevos conceptos; estabilidad es la habilidad de no modificarse ante conceptos irrelevantes. En 1987, Carpenter y Grossberg [21] presentaron su Teora de la Resonancia Adaptiva (ART, por sus siglas en ingls), dirigida a resolver este dilema. Una red ART est esencialmente diseada para resolver problemas de reconocimiento de patrones mediante aglomeramiento o cmulos de conceptos similares (vese seccin 4). Aqui la plasticidad consiste en aprender a formar nuevos conglomerados con nuevos patrones, si no hay cmulos dnde asignarlos. La estabilidad ocurre cuando el cmulo ya existe y el nuevo patrn debe ser asignado a ste.

Karla M. Olmos Snchez IIT/UACJ

55

Introduccin a las Redes Neuronales Artificales

El algoritmo de entrenamiento de una red ART est basado en una simple ecuacin diferencial que modela la memoria de largo plazo a travs de los componentes sinapticos de la neurona biolgica. Conclusiones En este artculo se ha tratado de proporcionar un panorama general de las redes neuronales artificiales, analizando las dos corrientes ms importantes en la actualidad (la de Rosenblatt y la de Widrow) desde una perspectiva histrica. Conforme a la escuela del primero, la neurona biolgica es estudiada detenidamente para reproducir sus funciones y eventualmente construir una "mquina pensante". La escuela de Widrow se ha apartado de este movimiento y busca aplicar y disear RNAs cuyo funcionamiento est ya muy lejos de ser inspirado biolgicamente pero que producen resultados prcticos de alta calidad. Hemos visto tambin cules son los paradigmas principales de aprendizaje de las RNAs, as como sus aplicaciones ms comunes. Es importante hacer notar que como tcnica heurstica, las RNAs son entrenadas en vez de ser programadas. Las RNAs aprenden a partir de muestras, lo cual les permite desarrollar fcilmente tareas que con dificultad sabramos cmo programar en una computadora digital. Sin embargo, aprender en base a muestras tambin es una debilidad. La inmensa mayora de las RNAs todava se disean mediante ensayo y error, y debido su naturaleza heurstica, actan como "cajas negras", ya que no sabemos la forma en que este aprendizaje se lleva a cabo en su interior. Esto ha motivado numerosos ataques de cientficos que trabajan con tcnicas clsicas de Inteligencia Artificial (la llamada escuela "simblica), que argumentan que una tcnica que funciona pero sin que sepamos por qu es tan buena como una que no funciona. Mucho queda todava por explorar en esta disciplina, e indudablemente son muchas las incgnitas an por despejar a fin de hacer ms sencillo el uso de esta tcnica de aprendizaje. Hasta ahora, su uso ha estado en gran medida sujeto al ensayo y error. Como bien expresara Marvin Minsky en 1955: "uno construye una RNA con la esperanza de que haga lo que debe de hacer" [2]. Bibliografa [1] Les Machines Calculer et la Pense Humaine. Editions du Centre National de la Recherche Scientifique, XXXVII, Pars, 1953. [2] Crevier, D. AI: The tumultuos history of the search for artificial intelligence . Basic Books. New York, 1993. [3] Churchland, P.S. The Computational Brain. MIT Press. Cambridge, Massachusetts, 1992. [4] Hawkins, J. K. Self Organizing SystemsA Review and Commentary. Proceedings of the IRE, Vol. 49, No. 1, 1961.

Karla M. Olmos Snchez IIT/UACJ

56

Introduccin a las Redes Neuronales Artificales

[5] Hebb, D. O. The Organization of Behavior. Captulo 4, reimpreso en J. Anderson y E. Rosenfeld, Eds., Neurocomputing, Foundations of Research. MIT Press. Cambridge, Massachusetts, 1949. [6] Hecht-Nielsen, Robert. Neurocomputing. Addison-Wesley. Reading, Massachusetts [7] Jain A. K., Mao J. Artificial Neural Networks: A Tutorial. Computer. Vol. 29, No. 3, 1996. [8] Jubak J. In the Image of the Brain . Little, Brown and Company. Boston, Massachusetts, 1992. [9] Lippmann, R.P. An Introduction to Computing with Neural Nets. IEEE ASSP, ejemplar del mes de abril, pp. 4-22. Reimpreso en V. Vemuri., Ed., Artificial Neural Networks. IEEE Computer Society Press, 1988. Washington, D.C. pp. 36-54, 1988. [10] McCulloch, W. S., Pitts W. A logical calculus of the ideas immanent in nervious activity. Reimpreso en J. Anderson y E. Rosenfeld, Eds., Neurocomputing, Foundations of Research. MIT Press, Cambridge, Massachusetts, 1943. [11] Mehrotra K., Mohan C.K., Ranka S. Elements of Artificial Neural Networks . MIT Press, Cambridge, Massachusetts, 1997. [12] Minsky, M. L. Computation: finite and infinite machines. Prentice Hall. Englewood Cliffs, New Jersey, 1967. [13] Minsky, M. L., Papert S. Perceptrons. MIT Press. Cambridge, Massachusetts, 1969. [14] Nilsson, N. J. Learning Machines. McGraw-Hill. New York, 1965. [15] Rashevsky, N. Mathematical Biophysics. University of Chicago Press. Chicago, Illinois, 1938. [16] Rosenblatt, R. Principles of Neurodynamics. Spartan Books. New York, 1959. [17] Rochester N., Holland J. H., Haibt L. H., Duda W. L. Tests on a cell assembly theory of the action of the brain, using a large digital computer. Reimpreso en J. Anderson y E. Rosenfeld, Eds., Neurocomputing, Foundations of Research. MIT Press. Cambridge, Massachusetts, 1956. [18] Rumelhart, D. E., G. E. Hinton, R. J. Williams. Learning Internal Representations by Error Propagation. En D. E. Rumelhart, J.L. McClelland, Eds., Parallel Distributed Processing, Vol 1: Foundations. MIT Press, 1986. [19] Symposium : The Design of Machines to Simulate the Behavior of the Human Brain. IRE Transactions on Electronic Computers, Vol. 5, No. 4, 1956.

Karla M. Olmos Snchez IIT/UACJ

57

Introduccin a las Redes Neuronales Artificales

[20] Widrow, B. y Hoff, M. Adaptive Switching Circuits. Reimpreso en J. Anderson y E. Rosenfeld, Eds., Neurocomputing, Foundations of Research. MIT Press. Cambridge, Massachusetts, 1960. [21] Carpenter, Gail y Grossberg, S. The ART of Adaptive Pattern Recognition by a SelfOrganizing Neural Network. Computer. No. 3. March, 1988

Karla M. Olmos Snchez IIT/UACJ

58

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 7: Avances y perspectivas del Procesamiento Automtico del Lenguaje Natural 1. Objetivo de la lectura El alumno al finalizar la lectura comprender la importancia de las investigaciones realizadas en el campo de Lenguaje Natural y entender que es un rea en la cual se requiere de mucha investigacin. 2. Comentarios de la Lectura. En este artculo, se hablar de cmo las computadoras nos pueden ayudar a los seres humanos en nuestra ocupacin principal: pensar y comunicar. Qu es el procesamiento automtico de textos? Para qu sirve? Es simple? Es posible? Cul es su futuro y qu se est haciendo al respecto? 3. Fuente. Gelbukh, A., Bolshakov, I., Avances y perspectivas de Procesamiento Automtico de Lenguaje Natural, IPN Ciencia, Arte: Cultura, Mayo 2000. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001] 4. Relacin con la asignatura. Se recomienda que este artculo se lea en la unidad V de Tpicos Selectos. 5. Evaluacin de aprendizaje. 6. Lee el artculo completo 7. Investiga el significado de las siguientes palabras a. inferencia b. mtodo c. lingstica d. gramtica e. relativo f. leible g. ambiguo h. inconsistente i. coherencia

Karla M. Olmos Snchez IIT/UACJ

59

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

j. interfaces k. parser 8. Realiza un mapa conceptual de la informacin proporcionada en la lectura acerca del procesamiento automtico del lenguaje natural. 9. Elabora tus comentarios acerca de la lectura

Karla M. Olmos Snchez IIT/UACJ

60

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

AVANCES Y PERSPECTIVAS DE PROCESAMIENTO AUTOMTICO DE LENGUAJE NATURAL


Alexander Gelbukh e Igor Bolshakov

Cuento de una Mquina Parlante En los cuentos para nios viven los animales que hablan... hasta si no pronuncian una sola palabra: de hecho, en los cuentos, los animales que hablan son los que pueden pensar como las personas, no los que pronuncian palabras como los pericos. Los seres humanos no pueden hablar sin pensar y saber muchas cosas; y parece que no pueden pensar sin hablar en su mente con ellos mismos. Y las computadoras? En este artculo, hablaremos de cmo las computadoras nos pueden ayudar a los seres humanos en nuestra ocupacin principal: pensar y comunicar. Qu es el procesamiento automtico de textos? Para qu sirve? Es simple? Es posible? Cul es su futuro y qu se est haciendo al respecto? El tesoro ms valioso de la raza humana es el conocimiento, es decir, la informacin. Existen en el mundo volmenes inmensos de informacin en forma de lenguaje natural: los libros, los peridicos, los informes tcnicos, etctera. Pero la posesin verdadera de este tesoro implica la habilidad de hacer ciertas operaciones con la informacin: * Buscar la informacin necesaria, * Comparar las fuentes diferentes, y hacer inferencias lgicas y conclusiones, * Manejar los textos, por ejemplo, traducirlos a otros idiomas. En realidad, las computadoras son ms capaces de procesar la informacin que las personas. Es ms grande el volumen que un individuo puede leer en su vida. A base de sta, pueden hacer inferencias lgicas tomando en cuenta ms hechos y fuentes. Todo parece estar preparado para el uso de las computadoras para procesar volmenes grandes de informacin: los mtodos lgicos ya son muy fuertes, los procesadores muy rpidos, muchos textos ya estn disponibles en forma digital, tanto en las casas editoriales como en Internet. El nico problema para la computadora al procesar los textos es que simplemente no los entiende! Hasta ahora, stos son solamente cadenas de letras sin cualquier sentido y no una informacin til para el razonamiento lgico. Para convertir la computadora en nuestro verdadero ayudante en el procesamiento de textos, se necesita pasar un largo camino de aprendizaje de la estructura de textos y de su

Karla M. Olmos Snchez IIT/UACJ

61

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

formalizacin; ms adelante vamos a hablar de algunos problemas en este camino. Pero si es tan largo el camino, existe una razn prctica para trabajar en esta rea ahora? S, existe, porque con cada paso obtenemos las herramientas que ya tienen gran valor prctico, que ayudan en nuestras tareas cotidianas. 1. TAREAS Y APLICACIONES DE PROCESAMIENTO DE LENGUAJE NATURAL Para qu sirve el procesamiento automtico de lenguaje natural? En la prctica, se puede emplear en un rango muy amplio de tareas, desde las ms simples a las muy complejas. Las primeras ya se pueden hacer con el estado actual de la ciencia, aunque no perfectamente, mientras que las ms complejas son las metas a alcanzar en el futuro. Sin embargo, las simples tambin aprovechan los avances de la ciencia, como vamos a ver ms adelante. Con cada una de estas tareas, mencionaremos sus problemas lingsticos, es decir, en qu puede aprovechar el avance de la ciencia y la tecnologa. 1.1 Ayuda en Preparacin de Textos Este tipo de aplicaciones es conocido hoy en da por toda la gente que por lo menos ha usado una vez la computadora. Hablamos de las herramientas que proporcionan los procesadores de palabras como Microsoft Word. Aqu, slo nos interesan las que emplean el procesamiento complejo de texto y requieren conocimiento lingstico. Guiones: La tarea de determinar los lugares donde las palabras se pueden romper para empezar una nueva lnea es una de las ms simples en procesamiento de textos. Por ejemplo, se puede romper la palabra como mara-villoso o maravillo-so, pero no maravilloso o maravillos-o. A pesar de ser un problema simple, a veces requiere una informacin bastante profunda. Por ejemplo, se debe saber cules son el prefijo y la raz de la palabra: su-bir y sub-urbano, pero no sub-ir o su-burbano. O bien, a veces se debe saber el idioma del origen de la palabra: Pe-llicer, pero Shil-ler. Tambin se debe saber la estructura del documento ya que quizs no se deben usar guiones en los ttulos y encabezados. Ortografa: La tarea de averiguar si una palabra est escrita correctamente o con un error ortogrfico es un poco ms difcil que la de los guiones. Por lo menos se debe saber todas las palabras del idioma dado. Ya que no es posible saber literalmente todas las palabras, se debe saber en primer lugar las formas de palabras, como inteligentsimas, satisfechos, piensen, etctera Pero para detectar los errores de ortografa o simplemente de escritura, se debe considerar el contexto de la palabra de una manera a veces bastante complicada. Ejemplos: S que piensen en el futuro. El terremoto caus una gran hola en el mar. Se iba a cazar con su

Karla M. Olmos Snchez IIT/UACJ

62

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

novia en la iglesia bautista. Para detectar este tipo de errores, la computadora necesita hasta entender en cierto grado el sentido del texto. Gramtica: Los correctores de gramtica detectan las estructuras incorrectas en las oraciones, aunque todas las palabras en la oracin estn bien escritas en el sentido de que son palabras legales en el idioma, por ejemplo: Quiero que viene maana. El maestro de matemticas, se fue. Me gusta la idea ir a Europa. Fuera magnfico si l vena a la fiesta. El problema de detectar los errores de este tipo es que hay una gran variedad de estructuras permitidas y enumerarlas todas resulta muy difcil. Para describir las estructuras de las oraciones en el idioma, se usan las llamadas gramticas formales los conjuntos de reglas de combinacin de palabras y su orden relativo en las oraciones. Estilo: Una tarea ya ms complicada es detectar los problemas en el texto, es decir que las palabras estn correctamente escritas y las oraciones bien estructuradas, pero que es poco leble, ambiguo, mal estructurado, inconsistente en el uso de palabras de diferentes estilos. Por ejemplo, el texto cientfico no debe usar las palabras de jerga; una carta a un amigo no debe usar las oraciones muy largas, profundamente estructuradas, con muchas palabras cientficas. Un ejemplo de una oracin ambigua es Detectar los errores en el texto con estructuras complejas: sera mejor decir Detectar los errores en el texto que tiene estructuras complejas o Detectar en el texto los errores que tienen estructuras complejas o bien Detectar a travs de las estructuras complejas los errores en el texto. Para este tipo de procesamiento, en ciertas circunstancias hay que emplear un anlisis bastante profundo. Hechos y coherencia lgica: Probablemente en el futuro los correctores de texto sern capaces de encontrar los errores en los textos como stos: Cuando voy a Inglaterra, quiero visitar Pars, la capital de este pas. Primero vino Pedro y despus Jos; ya que Jos lleg antes de Pedro, tom el mejor asiento. Sin embargo, en el estado actual de procesamiento de lenguaje natural, no se puede todava crear herramientas de este tipo suficientemente desarrolladas para ser tiles en la prctica. 1.2 Bsqueda y Minera de Texto La bsqueda y el uso de la informacin contenida en el texto es una de las aplicaciones principales del anlisis de texto. stas varan desde las herramientas de bsqueda que simplemente ayudan al usuario a encontrar los documentos probablemente relevantes hasta las computadoras investigadoras que descubren el conocimiento nuevo que no est escrito en ninguno de los documentos disponibles. Bsqueda de documentos: Los motores de bsqueda permiten encontrar en un montn de documentos aquellos que satisfagan una necesidad del usuario descrita en su peticin. En el caso simple, la peticin contiene las palabras clave, como pensar y futuro, que quiere decir que el usuario necesita los documentos que contengan ambas de estas dos palabras. Hasta en este caso simple, se necesita un anlisis bastante complejo: los documentos que contienen las palabras futuras, piensan y probablemente pensador y pensamiento tambin
Karla M. Olmos Snchez IIT/UACJ

63

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

son relevantes. Si el usuario indica que necesita los documentos que dicen sobre la accin pensar en futuro, entonces el documento que contiene la frase como piensan en las futuras aplicaciones probablemente es relevante, mientras que en el futuro prximo voy a pensarlo probablemente no lo es. Para hacer esta decisin es necesario un anlisis profundo del texto. Adems de los problemas lingsticos, la bsqueda eficaz de documentos depende de las soluciones tcnicas. No es posible analizar todos los documentos cada vez que el usuario hace su pregunta. Entonces, se hace y se maneja un ndice de los documentos, es decir, una representacin corta, simple y formal de los documentos. La representacin de este ndice, el tipo de informacin incluida en l y los mtodos matemticos que se emplean en la bsqueda en l afectan mucho los resultados y eficiencia del proceso. Responder preguntas: En lugar de buscar los documentos para encontrar en ellos la respuesta a su pregunta, el usuario podra desear directamente hacer su pregunta a la computadora: Cmo se llama la reina de Espaa? Por supuesto se espere que la computadora encuentre en todos los artculos de peridicos la informacin sobre el rey de Espaa, detecte cules de stos tratan del ltimo rey, y dnde se dice como se llama su esposa. Los sistemas de razonamiento lgico ya son capaces de este tipo de inferencia, pero el estado actual de la ciencia lingstica no es suficiente bueno para la realizacin de semejantes sistemas a gran escala. Extraccin de informacin: Lo que es ms prctico hacer en el estado actual es encontrar en el texto proposiciones elementales, bastante simples, para compilar una base de datos a partir de un conjunto grande de texto. Por ejemplo, a partir de los peridicos, compilar una base de datos de las compras y ventas de compaas, o de los precios de abarrotes en las diferentes ciudades del pas, etctera. Claro est que para esta tarea es necesario cierto entendimiento del lenguaje. Minera de texto: La minera de texto consiste en descubrir, a partir de cantidades de texto grandes, el conocimiento que no est literalmente escrito en cualquiera de los documentos. Esto incluye buscar tendencias, promedios, desviaciones, dependencias, etctera. Es una rea emergente, y muy interesante, del procesamiento de texto y minera de datos. Por ejemplo, con los mtodos de minera de texto, a partir de los textos de peridicos mexicanos encontrados en Internet, se podra investigar preguntas como las siguientes: Es la opinin promedio en la sociedad sobre el asunto del FOBAPROA positiva o negativa?, Aumenta o disminuye el inters en este asunto en los ltimos meses? Hay diferencias en la actitud hacia este asunto en el D.F. y en Monterrey? Cmo la noticia de privatizacin de la industria elctrica afecta el inters social hacia el FOBAPROA? 8. Las tareas de este tipo necesitan un grado de comprensin de texto, aunque en muchos casos basta con una comprensin parcial, de algunos pedazos de las oraciones.

Karla M. Olmos Snchez IIT/UACJ

64

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

1.3 Comprensin del Lenguaje La comprensin verdadera del texto es, en cierto sentido, la tarea final de la ciencia del anlisis de texto. Qu es comprensin? Cmo podemos averiguar si una computadora comprende un texto? Hay varias opiniones, pero parece que la opinin ms comn entre la gente tcnica es la siguiente: comprensin de texto es la transformacin del mismo a una representacin formal, ya sea a una red de conceptos y sus relaciones, o a un conjunto de predicados lgicos, etctera. Como se discutir ms adelante, esta representacin formal luego puede ser usada por los sistemas existentes de razonamiento lgico para contestar preguntas, compilar resmenes, etctera. En el presente estado del arte, los resultados prcticos en comprensin de texto son relativamente modestos, pero hay gran avance en los sistemas de laboratorio, el esfuerzo principal en lingstica computacional est dirigido a esta tarea global. 1.4 Interfaces en Lenguaje Natural Tradicionalmente, las personas manejan las computadoras con lenguajes especiales lenguajes de programacin que son entendibles para las computadoras, pero... no para las personas! Cada uno de nosotros tiene que aprender un idioma extranjero ms el idioma de las computadoras. No es cmodo, no es fcil de aprender, la educacin computacional cuesta mucho dinero, pero es el nico modo para comunicarse con las esas mquinas. Ahora lleg el tiempo para que las computadoras aprendan nuestro lenguaje humano. Esto permitir usarlas a la mayora de la gente no especialista. Adems, es ms simple ensearle a una sola computadora nuestro idioma y copiar el programa a todas las computadoras, que ensear a todas las personas como usar las computadoras. Tambin habilita a usar los medios de comunicacin ms comunes, por ejemplo, el telfono, para usar los sistemas de informacin. Los sistemas de interface en lenguaje natural tienen una historia de ms de treinta aos, pero slo ahora, con los avances tanto en modelos de dilogo como en reconocimiento de voz, se hizo posible construir los sistemas que se usan en la prctica, por ejemplo, el sistema reciente TRAINS de J. Allen. Los sistemas de este tipo usualmente se concentran en un dominio se dice el mundo muy simple: uno de los primeros programas de T. Winograd tuvo como dominio el mundo de figuras geomtricas sobre una mesa, mientras que en el sistema TRAINS se trata del horario de trenes y planificacin de las rutas de ferrocarriles. El propsito del sistema es el uso en las centrales de informacin: la gente podr llamar al sistema por telfono y preguntar sobre cmo ir de Nueva York a Los Angeles, cules clases de trenes hay, dnde comprar los boletos, etctera. Evidentemente, los sistemas de interface se van a desarrollar muy rpido y probablemente las computadoras del futuro prximo sern manejadas ms con la voz que con el teclado y el ratn.

Karla M. Olmos Snchez IIT/UACJ

65

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

1.5 Traduccin Automtica En los ltimos aos, la calidad de la traduccin automtica ha mejorado dramticamente. En el caso ideal, el traducir un texto consiste en entender este texto en el sentido de transformarlo en una representacin formal y luego generar el texto, segn el sentido entendido, en el otro idioma. En el estado actual, generalmente no es posible entender todo el texto, con todas las relaciones entre los conceptos mencionados en l. Entonces, los traductores automticos entienden algunas partes del texto, ms grandes o ms pequeas, y las traducen en el orden en que aparecen en el texto fuente. En muchos casos ste no es suficiente. Por ejemplo, para traducir las oraciones como John took a cake from the table and ate it. John took a cake from the table and cleaned it. se necesita realmente entender qu hizo John: tom un pastel de la mesa y lo comi o la comi? lo limpi o la limpi? Al revs, para traducir el texto Juan le dio a Mara un pastel. Lo comi, hay que elegir entre las variantes He ate it, She ate it, It ate him, She ate him, etctera. 1.6 Procesamiento de Voz De qu fuente viene la informacin para el procesamiento de lenguaje natural? Anteriormente, hablamos de la informacin en lenguaje natural y del texto como si fueran conceptos sinnimos: el conocimiento es algo escrito en un libro o archivo, no es algo hablado, verdad? En la etapa contempornea de la civilizacin s, as es, pero no por la naturaleza del lenguaje. El modo ms natural de comunicacin para un ser humano es hablar y escuchar, no es escribir y leer. Tenemos que escribir y leer porque en esta forma podemos realizar las tareas principales de procesamiento de informacin: buscarla y compararla. Tambin, la voz representa ms informacin que el texto escrito: con entonaciones de la voz expresamos el nfasis, propsitos, relaciones lgicas que se pierden en el texto. Hoy en da en los sistemas prcticos para los usuarios generales, cada vez ms se utiliza la fuente alternativa de informacin: la voz. A pesar de los grandes problemas tcnicos de convertir los sonidos de la voz a las palabras, hay grandes avances en este campo, y ya existen los sistemas capaces de hablar con los usuarios, incluso por ejemplo a travs de telfono. Si en el futuro remoto ser fcil buscar y manejar la informacin en forma de lenguaje hablado, quin sabe si los libros de aquel tiempo no sern dispositivos que nos contarn con la voz su contenido?

Karla M. Olmos Snchez IIT/UACJ

66

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

1.7 Generacin de Texto Cmo puede la computadora comunicarle al usuario sus opiniones o pedirle informacin? El complemento natural a la capacidad de entender el lenguaje es el segundo componente de la comunicacin, que es la capacidad de producir el texto o bien el habla. En cierto grado es una tarea ms simple que la comprensin, ya que por lo menos la computadora puede elegir las expresiones que sabe producir. Uno podra pensar que para la generacin de texto slo es suficiente saber las reglas de gramtica, es decir, saber palabras de cuales nmeros, tiempos y gneros hay que usar en la oracin y en que orden ponerlas. Sin embargo, hay algunos problemas en la generacin de texto. Uno reside en la necesidad de elegir las palabras y expresiones que se usan en el contexto dado. Por ejemplo, hay que saber que para expresar la idea 'muy, mucho', hay que usar palabras diferentes: t cargado, voz alta, borracho como cuba, trabajar duro 3. El otro problema es que el texto producido con los mtodos de fuerza bruta es aburrido, incoherente y a veces no entendible. Hay que saber en qu ocasiones se deben usar los pronombres y en qu otras las palabras completas, en qu ocasiones hay que explicar, de qu se trata la oracin y en qu otras es entendible para el lector. Esto se refiere a los mtodos de la nombrada planificacin textual. 1.8 Conduccin de Dilogo Bueno, si la computadora aprende a entender y producir el texto, ya puede conversar con las personas? El problema es que en las situaciones de conversacin no hablamos con los textos, es decir, con los prrafos, captulos y documentos. Lo hacemos con rplicas cortas, la mayora de la informacin omitida es clara en el contexto previo, en la situacin, en las acciones de los participantes y en el conocimiento general sobre estos tipos de situaciones. Un dilogo en una cafetera podra ser: De manzana? Pia. Por favor! Este? El otro. Dos pesos ms. Claro que entender este tipo de conversacin y participar en ella es una tarea muy diferente, y por supuesto ms difcil, que entender un artculo con la introduccin, definiciones de los trminos y un flujo lgico de las ideas. 2 PROBLEMAS DE PROCESAMIENTO DE LENGUAJE NATURAL Ya hemos visto que el procesamiento automtico de lenguaje natural tiene gran importancia y utilidad. Entonces por qu no se ha hecho? Cules problemas existen en esta rea? Cmo se abordan?

Karla M. Olmos Snchez IIT/UACJ

67

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

2.1 Niveles de Lenguaje y Estructura del Procesador Lingstico El propsito del lenguaje es transferir conocimientos de una persona a otra. El conocimiento es una estructura compleja, multidimensional, que usualmente se representa como una red o grafo, de conceptos. Pero el modo que usamos para transferir el conocimiento es unidimensional: en cada momento slo podemos decir un sonido, una letra. Entonces, el trabajo del lenguaje es codificar el conocimiento multidimensional en una cadena de letras, y despus, en el cerebro del escuchante o el lector, decodificar esta secuencia en el conocimiento original, como se muestra en la Ilustracin 1. El lenguaje es una estructura muy compleja. Afortunadamente, el codificador y decodificador funcionan en pasos, construyendo las estructuras ms complejas de ladrillos ms simples: * Palabras de letras, * Oraciones de palabras, * Textos de oraciones. Como ya hemos mencionado, un programa para anlisis automtico de textos desempea un papel semejante: traduce el texto a las estructuras lgicas o bien formales. Semejante programa puede modelar, en cierto grado, el efecto del procesamiento de texto en el cerebro humano no su estructura fsica y los procesos fsico-qumicos que acompaan la actividad del cerebro-, sino la lgica de su procesamiento de texto y conocimiento. Un programa que traduce el texto a la representacin lgica y viceversa, se llama procesador lingstico. El procesador lingstico no hace razonamiento lgico alguno, no busca informacin, no maneja las bases de datos; slo traduce la informacin entre la representacin textual y la representacin formal equivalente, para que los programas de razonamiento, los sistemas expertos, etctera, hagan todas las operaciones lgicas mencionadas. La estructura del lenguaje se refleja en la estructura del procesador lingstico. Tradicionalmente se considera dividido en mdulos independientes: * El mdulo morfolgico reconoce las palabras y las convierte de cadenas de letras a nmeros en el diccionario y a marcas de tiempo, gnero, nmero, etctera. Toma como entrada el texto y pasa su salida representacin morfolgica al mdulo siguiente. * El mdulo sintctico reconoce las oraciones y las convierte de cadenas de palabras marcadas a las estructuras grficas de oraciones, con las marcas de sujeto, objeto, etctera y las relaciones entre las palabras en la oracin. Toma como entrada la representacin morfolgica y pasa su salida representacin sintctica al mdulo siguiente.

Karla M. Olmos Snchez IIT/UACJ

68

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

* Los mdulos semntico y pragmtico reconocen la estructura completa del texto y lo convierten a una red semntica. Resuelven las relaciones entre los pronombres y sus antecedentes, restauran los sujetos cero, etctera, reconocen las intenciones del autor. Toman como entrada la representacin sintctica y generan la salida del procesador lingstico. En cada paso existen problemas tcnicos y tericos, algunos ya resueltos en cierto grado y algunos por resolver en el transcurso del desarrollo de la ciencia. 2.2 El Problema de Ambigedad Uno de los problemas ms grave es la ambigedad del texto: un pedazo del texto puede tener ms de una interpretacin. Se presenta a menudo en casi cada oracin. Aqu estn unos ejemplos de la ambigedad lxica, es decir, de palabras: habla, aviso verbo o sustantivo? hablamos presente o pasado? Aqu est un ejemplo de ambigedad sintctica, es decir, de la estructura de la oracin: Veo al gato con el telescopio. 'uso telescopio para ver al gato' o 'veo al gato que tiene el telescopio'? En casi cada oracin que tiene una preposicin se presenta la ambigedad de este tipo: no es claro si la preposicin est ligada con el verbo, con el objeto o con el adjetivo, etctera. En cierto grado podemos decir que el problema principal del anlisis automtico de texto es resolver las ambigedades. Para hacerlo, se emplean varias consideraciones sobre la posibilidad y probabilidad de una variante u otra, y las oportunidades de las variantes se comparan. Por lo general, la calidad de la resolucin de ambigedades es proporcional a la informacin disponible, de varias naturalezas y desde varias fuentes 9. 2.3 Complejidad del Conocimiento Lingstico Hay dos tipos de conocimiento necesario para el reconocimiento de las estructuras en el texto y para la resolucin de sus ambigedades: el conocimiento general y el conocimiento lxico. El conocimiento general son los algoritmos y las gramticas, es decir, lo que se aplica a todo el lenguaje, a cualquier oracin o texto. Gramticas detalladas y algoritmos muy sofisticados, con una profunda base matemtica pueden mejorar mucho la eficiencia de anlisis de texto. Pero aunque los buenos algoritmos pueden aumentar la rapidez del proceso, en pocos casos pueden ellos mejorar la calidad de los resultados. Jams un algoritmo astuto podr entender el lenguaje sin un inmenso conocimiento sobre las palabras individuales. El conocimiento lxico es especfico para cada palabra o a veces para grupos de palabras. Dependiendo de la calidad de anlisis necesario, se puede requerir mucha informacin: cmo se conjuga la palabra, qu significa y qu relaciones impide a otras palabras en la oracin, qu preposiciones usa para marcar sus objetos, cules palabras se emplean para expresar los sentidos como 'muy', 'hacer', 'resultado', etctera. La mayora de esta informacin es especfica para cada idioma: por ejemplo, casarse en espaol requiere la preposicin con, en ingls el equivalente de a, en ruso de sobre; papel (rol) en espaol usa desempear para expresar el sentido de 'hacer', y en ingls el equivalente de jugar.
Karla M. Olmos Snchez IIT/UACJ

69

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

Uno de los problemas contemporneos del procesamiento de texto es que la cantidad del conocimiento lxico necesario es tan inmensa que resulta muy difcil alcanzar el grado necesario de conocimiento en un sistema especfico. La compilacin, ya sea manual o semiautomtica, de los diccionarios de varios tipos morfolgicos, sintcticos, semnticos es una de las ms importantes tareas de hoy en la lingstica computacional. El Sistema CLASSIFIER. Lo bueno es que esto no parece ser un problema insoluble: con el tiempo la humanidad los acumular y cada nuevo diccionario o mtodo de aprendizaje semiautomtico de stos a partir de los textos nos acerca a la tarea final. 2.4 Conocimiento Extralingstico Sin embargo, los diccionarios de las propiedades gramaticales de las palabras no son el nico conocimiento necesario para entender el lenguaje. Lo que falta es el conocimiento de las propiedades de las cosas y de las situaciones en el mundo real. El problema es que el texto no comunica toda la informacin necesaria para entenderlo, sino que omite muchas ideas obvias, las cules se pueden simplemente restaurar por el humano que escucha... pero no por la computadora. Consideremos una analoga. Cuando explicamos a alguien cmo ir al Metro, le decimos algo como esto: Del Angel vas por Reforma, dos paradas en la direccin opuesta a la Diana, bajas en el Caballito y das vuelta a la derecha. Tenemos en nuestra mente un mapa, y estamos seguros que el que oye tiene uno igual al nuestro; lo nico que necesitamos es darles unas pistas sobre su trayectoria, unos puntos clave. Ahora bien, qu suceder si el que oye es un extranjero y no sabe ni qu son el Angel o la Diana, ni cmo llegar all, ni siquiera cmo usar los peseros, cmo se ven, dnde subir, ni que hay que pagar y cunto? sta es la situacin de las computadoras: son extranjeras en nuestro mundo, no saben cmo usarlo, cmo se comportan las cosas en l. Las personas lo aprenden observando las cosas y participando en las situaciones. Las computadoras no tienen esta oportunidad. El Sistema PARSER. Entonces, nuestro texto es una lnea de puntos, no es una trayectoria completa. Es el modo humano de hablar. No lo podemos cambiar. Siempre suponemos que hablamos con alguien que sabe del mundo casi todo lo que nosotros sabemos. Ahora el problema es comunicarles a las computadoras este conocimiento humano del mundo real, por supuesto en la forma de diccionarios de relaciones entre objetos y de escenarios de las situaciones tpicas. Estos diccionarios sern mucho ms grandes de lo que hablamos en la seccin anterior y su compilacin es una tarea a largo plazo, aunque ya existen unos diccionarios de este tipo. Como una alternativa posible, se pueden desarrollar mtodos de aprendizaje semiautomtico de esta cantidad enorme de conocimiento a partir de grandes colecciones de textos.

Karla M. Olmos Snchez IIT/UACJ

70

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

3 PROCESAMIENTO DE LENGUAJE NATURAL EN EL CIC En 1996, el Director del Centro de Investigacin en Computacin, el doctor Guzmn Arenas fund el Laboratorio de Lenguaje Natural y Procesamiento de Texto del CIC. Para qu? Qu se hace ahora en el Laboratorio? 3.1 El Camino al Futuro Como hemos visto, el procesamiento de texto tiene gran importancia tanto terica como prctica. El procesamiento de lenguaje natural se usa para tomar decisiones econmicas, para buscar e intercambiar el conocimiento tecnolgico, en toda clase de tareas de publicacin y uso de documentos, libros, peridicos. Los pases que disponen de buenas herramientas para el anlisis y generacin de texto tienen en nuestro mundo competitivo una gran ventaja econmica, tecnolgica y quizs militar sobre los dems pases. Desgraciadamente, ahora la mayora de las investigaciones y el esfuerzo prctico en el mundo, en el rea de la lingstica computacional est orientada al ingls. El Sistema Text Classifier. La tarea de nuestro laboratorio es compilar los recursos las gramticas y sobre todo los diccionarios que facilitan el procesamiento de texto en espaol y desarrollar los sistemas para la bsqueda, clasificacin y comprensin de documentos escritos en este idioma. A continuacin mencionamos algunos de los programas desarrollados recientemente en el laboratorio. 3.2 Hallando los Temas Principales del Documento Uno de los primeros pasos para clasificacin, bsqueda y comprensin de documentos es determinar de qu temas trata un documento dado. En la Ilustracin 2 se muestra el sistema desarrollado segn las ideas del doctor Guzmn Arenas, que usa un diccionario jerrquico para hallar los temas principales del documento, para comparar los documentos con un aspecto temtico, y para buscar los documentos por sus temas 1, 2. 3.3 Anlisis Sintctico Conducido por un Diccionario de Subcategorizacin El anlisis sintctico es el ncleo de los sistemas contemporneos de anlisis de texto. En la Ilustracin 3 se muestra el analizador sintctico para el espaol desarrollado en nuestro laboratorio. Una de las lneas de investigacin es la compilacin de un diccionario grande del uso de las preposiciones (y de algunas caractersticas de las palabras) para resolver las ambigedades sintcticas 5, 6, 7. Esta lnea de investigacin incluye tambin otros varios mtodos de estimacin de las variantes de la estructura sintctica, tal como el uso de un diccionario semntico grande, con el fin de elegir las variantes ms probables 4. El Sistema Text Recognizer.

Karla M. Olmos Snchez IIT/UACJ

71

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

3.4 Clasificacin e Investigacin de Conjuntos de Documentos El otro sistema que se est desarrollando en el laboratorio es un conjunto de herramientas para la investigacin de colecciones de documentos de forma tanto automtica como semiautomtica. Para la segunda se usa la representacin grfica del conjunto de documentos. 4 EL FUTURO DEL PROCESAMIENTO AUTOMTICO DE LENGUAJE NATURAL Ya hay mucho avance en el rea de procesamiento automtico de lenguaje natural. Cules son las lneas de su desarrollo en el futuro? Cul es su papel en la tecnologa del futuro? 4.1 Semntica y Pragmtica Hoy en da, la rama de la lingstica computacional que se desarrolla ms dinmicamente es la sintaxis. Creemos que en el futuro prximo el nfasis se mover a la teora de semntica y pragmtica del texto. La primera estudia el significado del texto y desarrolla los mtodos para formar este significado a travs de una serie de representaciones sintcticas de las oraciones. La segunda estudia cmo las intenciones del autor del texto estn expresadas en el texto. Cuando uno en la mesa hace la pregunta Me podra pasar la sal?, la respuesta S, soy capaz tcnicamente de pasarle la sal. no es la debida Cmo puede la computadora saber la intencin o la necesidad del usuario en los casos donde no estn muy claramente y directamente expresadas en el texto? Esto es la materia de la pragmtica. 4.2 Lingstica de Texto Se considera la ciencia del siglo veintiuno la lingstica de texto. sta estudia los medios de conexin de las oraciones en un flujo integral de texto. Cmo estn expresadas las ideas cuando estn divididas entre varias oraciones? Cmo las personas saben en qu pedazos hay que dividir una idea compleja para expresarla en oraciones distintas, porque no la expresan en una sola oracin largusima? Cmo reunir estos pedazos del sentido para restaurar el sentido original? Esto es la materia de la lingstica de texto, la ciencia lingstica de este siglo. 4.3 Hablar es: Saber ms Pensar Ahora bien, si desarrollamos todos los diccionarios, las gramticas, los algoritmos lingsticos ya es suficiente para que la computadora nos entienda y hable como nosotros hablamos? No. Para entender y hablar, el brillante dominio del idioma no es suficiente: hay que saber mucho y pensar. En el futuro se necesita una sntesis de las ciencias de lenguaje y las ciencias de razonamiento. En este camino lograremos nuestra tarea: convertir las computadoras en nuestros verdaderos ayudantes en la ocupacin principal de la raza humana, pensar y comunicar.

Karla M. Olmos Snchez IIT/UACJ

72

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

4.4 Las Computadoras Hablan con Nosotros La tarea final de lingstica computacional es el desarrollo de los robots que pueden actuar en el mundo real el mundo de las cosas y de las personas, en el modo parecido al que actuamos las personas. Para vivir en el mundo de las cosas, un robot necesita poder distinguirlas y afectarlas con sus acciones. Pero para vivir en el mundo de las personas, tambin necesita entenderlas y afectarlas... pero en este caso, a travs de lenguaje, pues ste es nuestra manera de entender y afectar a la gente. El desarrollo de tales sistemas tiene grandes ventajas, tanto para la practica como para la ciencia. Para la primera, habilitar a todas las personas obtener la ayuda de las mquinas sin aprender manejarlas, regularlas y programarlas. Es mucho ms barato desarrollar una, aunque sea muy compleja, y copiar su programa a millones de las mquinas iguales a sta, que educar a millones de personas cmo programar una simple. Para la ciencia, el desarrollo de los robots autnomos permitir verificar las teoras de lenguaje en su funcionamiento real, observando cmo los programas que entienden y producen el lenguaje logran sus tareas, en qu situaciones tienen problemas y cmo las resuelven. 4.5 Las Computadoras Hablan... Entre S! De todo lo que hemos hablado, produce la impresin de que el uso de lenguaje natural tan natural para nosotros! es un agobio totalmente innecesario para las computadoras; tienen que aprender nuestro lenguaje el espaol, ingls o el que sea slo porque somos demasiado perezosos para aprender su lenguaje: Java o C++. Acaso as es? Slo nuestro lenguaje es bueno para las criaturas de protenas y no es til para todos los dems? Miremos al desarrollo de programacin en su retrospectiva. Con cada nuevo paradigma de programacin, del ensamblador, a travs de la programacin estructural y hasta la programacin orientada a objetos, los programas o partes de los mismos, fueron cada vez ms autnomos, aislados, mientras sus interfaces se hicieron cada vez ms desarrolladas y complejas. Un objeto complejo en C++ ya tiene una interfaz semejante a un lenguaje, y el uso del objeto parece a un dilogo con l. El siguiente paso en el desarrollo de los mtodos de programacin es el emergente paradigma de programacin orientada a agentes. Un agente es parecido a un objeto, pero en lugar de muchos rdenes (mtodos) de un objeto, tiene slo una entrada entiende un mensaje en un lenguaje especial, y slo tiene una salida puede enviar mensajes a otros agentes. ste permite mucho ms flexibilidad en la comunicacin con/entre los agentes que los rdenes de formato fijo de los objetos. Ahora bien, como los agentes tpicamente son programas muy complejos, algunos de stos se desarrollan por equipos grandes de programadores y lo que es ms importante, equipos diferentes. Para que los agentes comuniquen, requieren usar el mismo lenguaje. Entonces, se necesita un estndar para el lenguaje de comunicacin entre los objetos un estndar fijo, exacto, rgido, para todas las tareas que los agentes hacen o van a hacer en el futuro-. Ya es un crculo vicioso: buscamos la flexibilidad y llegamos a un estndar fijo, por supuesto
Karla M. Olmos Snchez IIT/UACJ

73

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

muy complejo, que, adems, todos los equipos que desarrollan los objetos lo deben aprender? Pero ya contamos con un lenguaje muy flexible (aunque complejo), especialmente bueno para la comunicacin en las situaciones complejas y lo mejor ya conocido por todos los desarrolladores: el lenguaje natural. Por eso hay mucho inters entre los cientficos de la ciencia de computacin y los programadores prcticos al lenguaje natural, en primer lugar, a su semntica y las ontologas de las palabras10. Probablemente en el futuro, aunque no muy prximo, las computadoras lo van a hablar entre s. 5 CONCLUSIONES El procesamiento de lenguaje natural es difcil, pero es posible y tiene una gran importancia para los pases hispanohablantes en nuestro mundo competitivo, en la poca de la informacin. Es un rea de la ciencia que se desarrolla dinmicamente, con grandes inversiones, con miles de investigadores involucrados en los pases industriales, en primer lugar, en los Estados Unidos y en la Comunidad Europea. Ahora en el Politcnico, en el CIC, se conduce investigacin en la lingstica computacional en el Laboratorio de Lenguaje Natural y Procesamiento de Texto. Los investigadores de este Laboratorio usted los puede contactar en la siguiente direccin electrnica: gelbukh@cic.ipn.mx. *Profesores Investigadores del Laboratorio de Lenguaje Natural, Centro de Investigacin en Computacin, Instituto Politcnico Nacional. gelbukh@cic.ipn.mx Bibliografa 1. Adolfo Guzmn-Arenas. Hallando los temas principales en un artculo en espaol. Soluciones Avanzadas. Vol. 5, No. 45, p. 58, No. 49, p. 66, 1997. 2. Adolfo Guzmn-Arenas. Finding the main themes in a Spanish document. Journal Expert Systems with Applications, Vol. 14, No. 1/2. Jan/Feb 1998, pp. 139-148. 3. I. A. Bolshakov, A. Gelbukh. Lexical functions in Spanish. CIC-98 - Simposium Internacional de Computacin, November 11 - 13, 1998, Mxico D.F., pp. 383 - 395. 4. Alexander Gelbukh. Using a semantic network for lexical and syntactic disambiguation. Proc. of Simposium Internacional de Computacin: Nuevas Aplicaciones e Innovaciones Tecnolgicas en Computacin, November 1997, Mxico.

Karla M. Olmos Snchez IIT/UACJ

74

Avances y Perspectivas del Procesamiento Automtico de Lenguaje Natural

5. A.Gelbukh, I. Bolshakov, S. Galicia-Haro. Statistics of parsing errors can help syntactic disambiguation. CIC-98 - Simposium Internacional de Computacin, November 11 - 13, 1998, Mxico D.F., pp. 405 - 515. 6. I.A. Bolshakov, A.F. Gelbukh, S.N. Galicia-Haro. Syntactical managing patterns for the most common Spanish verbs. CIC'97, Nuevas Aplicaciones e Innovaciones Tecnolgicas en Computacin, Simposium Internacional de Computacin, 12-14 de noviembre, pp. 367 - 371, 1997, CIC, IPN, Mxico D.F. 7. I. A. Bolshakov, A. Gelbukh, S. Galicia Haro, M. Orozco Guzmn. Government patterns of 670 Spanish verbs. Technical report. CIC, IPN, 1998. 8. Manuel Montes y Gmez, Aurelio Lpez Lpez, Alexander Gelbukh. Text Mining as a Social Thermometer. Text Mining Workshop (forthcoming) at IJCAI'99, Stockholm, August, 1999. 9. A. Gelbukh, S. Galicia-Haro, I.Bolshakov. Three dictionary-based techniques of disambiguation. TAINA-98, International Workshop on Artificial Intelligence, CIC-IPN, Mxico D.F., pp. 78 - 89. 10. Adolfo Guzmn Arenas. Colaboracin Dirigida entre Agentes con Propsito. Memorias del Congreso Internacional de Computacin CIC-99, CIC, IPN, 1999, Mxico.

Karla M. Olmos Snchez IIT/UACJ

75

La Programacin Lgica y el Prolog

UNIVERSIDAD AUTONOMA DE CD. JUAREZ


INSTITUTO DE INGENIERA Y TECNOLOGA
DEPARTAMENTO DE INGENIERA ELCTRICA Y COMPUTACIN

Lectura 8: La programacin lgica y el Prolog 1. Objetivo de la lectura El alumno al finalizar la lectura comprender el funcionamiento del lenguaje Prolog asi como sus bases asi como su importancia en el rea de la Inteligencia Artificial. 2. Comentarios de la Lectura. En este artculo, se explica a grandes rasgos el funcionamiento de Prolog y la lgica de Primer Orden que es en lo que se basa el lenguaje, adems de explicar la regla de resolucin. 3. Fuente Gelbukh, A., Bolshakov, I., Avances y perspectivas de Procesamiento Automtico de Lenguaje Natural, IPN Ciencia, Arte: Cultura, Mayo 2000 < <http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001 4. Relacin con la asignatura Este artculo se relaciona con la unidad VI (Lenguaje Prolog). 5. Evaluacin de aprendizaje. 1. Lee el artculo completo 2. Investiga el significado de las siguientes palabras a. teorema b. intrprete (Computacin) c. formalismo d. somera e. resolucin f. relegados g. inferencia h. demostracin (lgica) i. clasulas (Lgica) j. reduccin al absurdo (Lgica)

Karla M. Olmos Snchez IIT/UACJ

76

La Programacin Lgica y el Prolog

k. relegados l. axiomas (Lgica) m. cuantificador (Lgica) n. disyuncin o. acotada p. contradiccin q. unificacin r. sustitucin 3. Realiza un mapa conceptual de la informacin proporcionada en la lectura acerca del lenguaje Prolog. 4. Investiga en otras 3 fuentes bibliogrficas informacin sobre Prolog 5. Realiza tus comentarios tomando en cuenta las diferentes especificaciones de Prolog segn las fuentes bibliogrficas que investigaste

Karla M. Olmos Snchez IIT/UACJ

77

La Programacin Lgica y el Prolog

LA PROGRAMACIN LGICA Y EL PROLOG


Cristina Loyo Varela Laboratorio Nacional de Informtica Avanzada, LANIA Olga M. Padrn Prez Universidad de la Habana, Cuba Resumen Una de las preocupaciones ms tempranas de la computacin de los aos cincuenta fue la posibilidad de hacer programas que llevaran a cabo demostraciones automticas de teoremas. As empezaron los primeros trabajos de inteligencia artificial que ms de veinte aos despus dieron lugar al primer lenguaje de programacin que contempla, como parte del intrprete, los mecanismo de inferencia necesarios para la demostracin automtica. Este primer lenguaje est basado en el formalismo matemtico de la Lgica de Primer Orden y ha dado inicio a un nuevo y activo campo de investigacin entre las matemticas y la computacin que se ha denominado la Programacin Lgica. Se intenta en este artculo presentar las bases conceptuales de este tipo de programacin y una somera descripcin del funcionamiento del lenguaje PROLOG. Introduccin La Programacin Lgica tiene sus orgenes ms cercanos en los trabajos de prueba automtica de teoremas de los aos sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llama resolucin, mediante la cual la demostracin de un teorema puede ser llevada a cabo de manera automtica [1]. La resolucin es una regla que se aplica sobre cierto tipo de frmulas del Clculo de Predicados de Primer Orden, llamadas clusulas y la demostracin de teoremas bajo esta regla de inferencia se lleva a cabo por reduccin al absurdo. Otros trabajos importantes de esa poca que influyeron en la programacin lgica, fueron los de Loveland [2], Kowalski [3] y Green [4]. Este ltimo, por ejemplo, disea un probador de teoremas que extrae de la prueba el valor de las variables para las cuales el teorema es vlido. Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante una poca, pero, por su ineficiencia, fueron relegados hasta el nacimiento de PROLOG, ocurrido en 1971 en la Universidad de Marsella, Francia, en el seno de un grupo de investigacin en el campo de la Inteligencia Artificial [5].

Karla M. Olmos Snchez IIT/UACJ

78

La Programacin Lgica y el Prolog

Actualmente, la programacin lgica ha despertado un creciente inters que va mucho ms all del campo de la Inteligencia Artificial (IA) y sus aplicaciones. Los japoneses, con sus proyecto de mquinas de la quinta generacin, dieron un gran impulso a este paradigma de programacin. Sin embargo, antes que ellos existan ya en Estados Unidos y en Europa grupos de investigacin en este campo, en pases como Inglaterra, Holanda, Suecia y, desde luego, Francia. La Lgica de Primer Orden y la lgica de PROLOG La Lgica de Primer Orden, es uno de los formalismos ms utilizados para representar conocimiento en IA. La Lgica cuenta con un lenguaje formal mediante el cual es posible representar frmulas llamadas axiomas, que permiten describir fragmentos del conocimiento y, adems, consta de un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento. El Alfabeto del Lenguaje de la Lgica de Primer Orden contiene dos tipos de smbolos: a) Smbolos lgicos, entre los que se encuentran: - los smbolos de constantes proposicionales: true y false - los smbolos de operadores proposicionales como la negacin (), la conjuncin (), disyuncin () y las implicaciones (=>, <=) - los smbolos de operadores de cuantificacin como el cuantificador universal () que significa para toda y el cuantificador existencial () que significa existe - los smbolos auxiliares de escritura como corchetes [], parntesis () y coma "," b) Smbolos no lgicos, agrupados en: - el conjunto de smbolos constantes - el conjunto de smbolos de variables individuales - el conjunto de smbolos de funciones n-arias - el conjunto de smbolos de relaciones n-arias. A partir de estos smbolos se construyen las expresiones vlidas en el Lenguaje de Primer Orden: los trminos y las frmulas. Un trmino es cualquiera de las tres expresiones siguientes: - una constante

Karla M. Olmos Snchez IIT/UACJ

79

La Programacin Lgica y el Prolog

- una variable - una expresin de la forma f(t1,...,tn) donde "f" es un smbolo de funcin n-aria y t1,...,tn son trminos. Ejemplos de trminos constantes son el nmero 100; la palabra alfredo y la letra c; X, Y son variables; y f(100,X), padre(Y), sucesor(X) son funciones. Las frmulas atmicas o elementales son expresiones de la forma: R(t1,...,tn) donde R es un smbolo de relacin n-aria y t1,...,tn son trminos. Ejemplo de frmula atmica es: recibe(maria,beso) en donde recibe es un smbolo de relacin binaria (recibe/2) y, maria y beso son trminos constantes. La frmula anterior establece el hecho de que maria es besada, mientras que dar(X, beso, maria) establece que alguien, representado por la variable X, besa a Mara, representada por la constante maria. A partir de estas frmulas es posible construir otras ms complejas como: recibe(maria,beso)<=dar(x,beso,maria) que establece que maria recibe un beso si existe una X que se lo da. Otros ejemplos de frmulas no elementales son: positivo(3) igual(4,doble(2)) mayor(padre(juan), juan) edad(luis,X) mayor(X,20) => adulto(luis) (X) [recetar(X,aspirina)<= tiene(X,fiebre)tiene(X,cefalea)] Esta ltima frmula establece una regla que dice que para toda "X", si "X" tiene fiebre o cefalea (dolor de cabeza), "X" debe tomar una aspirina. En general las frmulas en la Lgica de Primer Orden pueden generarse haciendo uso de las siguientes reglas de formacin de frmulas:

Karla M. Olmos Snchez IIT/UACJ

80

La Programacin Lgica y el Prolog

1)Toda frmula elemental es una frmula 2)Si A es una frmula, entonces A es una frmula 3)Si A y B son frmulas, entonces (AB), (A B), (A=>B), (A<=B) son frmulas 4)Si A es una frmula y X una variable, entonces (X)A, que indica que para toda X se cumple A, y (X)A, que indica que existe una X tal que A, son frmulas. El Lenguaje de Primer Orden posee un amplio poder de expresin, los trminos permiten nombrar los objetos del universo, mientras que las frmulas permiten afirmar o negar propiedades de stos o bien establecen las relaciones entre los objetos del universo. La Programacin Lgica utiliza la Lgica de Primer Orden como lenguaje de programacin [6,7,8]. PROLOG es lenguaje basado en la PL [9,10,11] y aunque toma su nombre de este trmino ("PROgramming in LOGic"), no abarca toda la riqueza de la Lgica de Primer Orden para resolver problemas, pues est restringido al uso de cierta clase de frmulas denominadas clusulas definidas o clusulas de Horn. Una clusula se definen en general como una disyuncin de frmulas atmicas y frmulas atmicas negadas, en donde toda variable que aparezca en la disyuncin est acotada por un cuantificador universal. Ejemplo de clusulas generales son las siguientes frmulas: (X) positivo(X) (X,Y) [amigo(X,Y) enemigo(X,Y) conoce(X,Y)] Las clusulas definidas son clusulas que tienen, a lo sumo una frmula no negada dentro de la disyuncin. Es decir, tienen la forma: A B1...Bn (1) en donde A, B1, ..., Bn son frmulas atmicas. En los ejemplos anteriores, la frmula: (X,Y) [amigo(X,Y) enemigo(X,Y) conoce(X,Y)] no es una clusula definida porque tiene dos frmulas atmicas no negadas. Mientras que la frmula: (X) [recetar(X,aspirina) tiene(X,fiebre) tiene(X,cefalea)] (2) s es una clusula definida.

Karla M. Olmos Snchez IIT/UACJ

81

La Programacin Lgica y el Prolog

Dado que todas las clusulas definidas estn cuantificadas universalmente para todas sus variables, omitiremos de ahora en adelante el cuantificador. Veamos ahora cmo haciendo uso de equivalencias conocidas de la Lgica de Primer Orden, la frmula (1) puede transformarse en una frmula equivalente y rescribirse como: A <= B1... Bn (3) Por lo tanto la frmula (2) es equivalente a: recetar(X,aspirina) <= tiene(X,fiebre) tiene(X,cefalea) Utilicemos ahora una variante de la notacin en donde el smbolo "<=" es sustituido por el smbolo ":-" y la conjuncin "" por la coma. Entonces (3) pueden rescribirse como: A :- B1,..., Bn. (4) a la cual se denomina clasula de programa. En esta clusula A se denomina cabeza de la clusula y B1,..., Bn son el cuerpo de la misma. Igualmente la clusula (2) puede rescribirse como clusula de programa de la siguiente forma: recetar(X,aspirina) :- tiene(X,fiebre) tiene(X,cefalea). Veamos ahora las tres formas distintas que una clusula de programa puede tomar en PROLOG: - Hechos: A. - Reglas: A :- B1,..., Bn. - Objetivos o Metas: :- B1,...,Bn. Si n=0 entonces (4) se denomina un hecho. Los hechos son clusulas sin cuerpo, o sea la afirmacin de una frmula atmica, la cual es incondicionalmente verdadera. Si n>0 entonces (4) se denomina regla. Las reglas tienen como cabeza o consecuente una frmula atmica que se establecer como verdadera si el cuerpo de la clusula es verdadero. Si n>0 y falta la cabeza de la clusula, entonces (4) se dice que es una meta o el objetivo a alcanzar. Ejemplo de Hecho: tiene(olga, fiebre).

Karla M. Olmos Snchez IIT/UACJ

82

La Programacin Lgica y el Prolog

Ejemplo de Regla: recetar(x,aspirina):-tiene(x,fiebre),tiene(x,cefalea). Ejemplo de Meta: :- tiene(olga,fiebre). La clusula sin cabeza y sin cuerpo se denomina clusula vaca, y se denota como . PROLOG distingue la clusula vaca como un tipo especial de clusula que denota una contradiccin lgica. Ntese que no toda clusula puede ser escrita como clusula de programa. Por ejemplo, la clusula: animal(X)perro(X)gato(X) derivada de la frmula lgica: animal(X)perro(X)gato(X) no puede transformarse en una clusula de programa pues no es del tipo definida, ya que tiene dos frmulas atmicas no negadas en la disyuncin y ms de un consecuente. Los programas en PROLOG Un programa lgico est formado por un conjunto finito de clusulas de programa que son hechos o reglas. Veamos algunos ejemplos de programas en PROLOG. Programa P1: madre(maria, olga). hija(olga, maria) :- madre (maria, olga). Est formado por dos clusulas de programa, la primera un hecho que define la relacin madre/2 y la segunda una regla que define la relacin hija/2. Programa P2: padre(luis,miguel). padre(miguel,jose). padre(jose,juan). abuelo(X,Y) :- padre(X,Z), padre(Z,Y). Est formado por cuatro clusulas de programa, las tres primeras son hechos que definen la relacin padre/2 y la cuarta una regla que define la relacin abuelo/2. Ntese el uso de las

Karla M. Olmos Snchez IIT/UACJ

83

La Programacin Lgica y el Prolog

variables X,Y y Z en esta clusula, las cuales permiten definir de manera general en PROLOG la relacin "ser abuelo de", pues la lectura declarativa de dicha clusula es la siguiente: Para cualesquiera X,Y,Z se cumple que: X abuelo de Y, si X padre de Z y Z padre de Y. Programa P3: miembro(X, [X|Y]). miembro(X, [Z|Y]) :- miembro(X,Y). Est formado por dos clusulas de programa que definen la relacin miembro/2, que es la relacin de pertenencia de un elemento a un conjunto. En este programa se hace uso de un tipo de trmino muy importante en PROLOG, la lista, que permiten representar una secuencia ordenada de trminos PROLOG cualesquiera, utilizando la notacin: [t1,...,tn] donde t1,...,tn son trminos. Si algn trmino de la lista es variable entonces estamos en presencia de una lista patrn, la cual representa muchas listas. Una lista patrn muy importante en la programacin lgica es: [X|Y] en donde X es el primer elemento o trmino de la lista, "|" es un separador y, Y es la lista que contiene el resto de los elemento de la lista sin el primer elemento X. La lista [X|Y] representa a todas las listas con uno o ms elementos. Luego, en el programa P3, la primera clusula es un hecho que establece que " X es miembro de toda lista donde X ocurra como primer elemento" y la segunda clusula es una regla recursiva que establece que "X es miembro de una lista que tiene como primer elemento a Z y resto Y, si se cumple que X es miembro de la lista Y". Respuesta a objetivos o metas En PROLOG es posible hacer preguntas sobre objetos y relaciones del dominio y estas preguntas se formulan como objetivos o metas, que son evaluadas por el intrprete del lenguaje utilizando su mecanismo de inferencia interno, el cual determina si el objetivo es una consecuencia lgica del programa, aplicando reglas de deduccin, y as se obtiene la respuesta. Los objetivos o metas se utilizan para extraer informacin de un programa lgico. Supongamos que el problema que queremos resolver a partir del programa P1 es saber si Mara es madre de Olga. Luego, la meta u objetivo a determinar o alcanzar es:

Karla M. Olmos Snchez IIT/UACJ

84

La Programacin Lgica y el Prolog

:- madre(maria, olga). Ntese que en las clusulas de programa los nombres son representados por smbolos constantes, que deben escribirse con una secuencia de letras que inicia con minsculas. Para hablar de que una clusula C es consecuencia lgica de un conjunto de clusulas S, ser necesario probar que existe una deduccin lgica de C a partir del conjunto S. Una forma de demostrar esto es por reduccin al absurdo, es decir, suponer que el conjunto formado por S y C es vlido, y generar a partir de l una contradiccin lgica (la clusula vaca en Programacin Lgica). De esta forma se podr afirmar que C s es consecuencia lgica de S. El mtodo de deduccin utilizado por PROLOG, para dar respuesta a los objetivos, se basa en el uso de una nica regla de inferencia: el Principio de Resolucin [1]. Los primeros trabajos de prueba automtica de teoremas utilizaban la resolucin, aplicada a clusulas cualesquiera. El problema de las deducciones con clusulas generales es el nmero explosivo de combinaciones que pueden generarse para llevar a cabo las resoluciones. Realmente, en PROLOG se hace uso de una estrategia de refinamiento de dicho principio, denominada Resolucin-SLD, la cual se aplica a clusulas definidas. Veamos ahora en qu consiste esta regla utilizada por PROLOG: La Resolucin-SLD, en su forma ms simple, se aplica a una meta u objetivo de la forma :-A y una clusula de programa de la forma A :- B1,...,Bn. para obtener una nueva meta :B1,...,Bn. a la que se le denomina resolvente. A la meta y a la clasula de programa a las que se les aplica la resolucin se les llama clusulas padres. Y al proceso de aplicar la resolucin a dos clusulas se le llama resolver y se muestra en la figura 1. Si aplicamos la resolucin a una meta y al mismo hecho no negado, como en la figura 2, se infiere como resolvente la clusula vaca [ ], que es la contradiccin buscada y por tanto, se puede afirmar que se cumple A. Si aplicamos la resolucin a una meta con varios literales y a una regla como en la figura 3, el resolvente inferido tiene siempre la forma de una nueva meta. El objetivo de la computacin de una meta M a partir de un programa P en PROLOG, es entonces generar la clusula vaca a partir de M y P. Luego, a partir del programa P1, visto anteriormente, y la meta :- hija(olga,maria), el intrprete de PROLOG realiza, como se muestra en la figura 4, el proceso de deduccin aplicando resolucin-SLD. En el primer paso, la resolucin se aplica a la meta inicial y la regla que define la relacin recibe/2, obtenindose como resolvente una nueva meta, a la que se le aplica nuevamente la resolucin con el hecho madre(maria,olga), obtenindose la clusula vaca y as queda

Karla M. Olmos Snchez IIT/UACJ

85

La Programacin Lgica y el Prolog

demostrado que hija(olga,maria) es una consecuencia lgica del programa P1, aunque explcitamente no aparezca como un hecho dentro del programa. Las sustituciones y unificaciones No siempre las clusulas de programas estn libres de variables. Por ejemplo, en el programa P2 la regla que define la relacin abuelo/2 hace uso de las variables X,Y y Z. En este caso, para dar respuesta a la meta :-abuelo(luis, jose), ser necesario asociar dos individuos especficos a las variables X y Y de la regla. Si les damos valores X=luis y Y=jose, obtendramos una nueva regla: abuelo(luis, jose) :- padre(luis,Z), padre(Z,jose). que es una variante de la regla original. Ahora, la meta :-abuelo(luis, jose). la podemos resolver con la regla anterior y obtenemos una nueva meta: :- padre(luis,Z), padre(Z,jose). En este caso, se debe sustituir la variable Z de la meta por la constante miguel y as el proceso de deduccin contina resolviendo con el hecho padre(luis,miguel), de aqu se obtiene la meta: :- padre(miguel,jose). y sta se resuelve con el segundo hecho de P2, obtenindose finalmente la clusula vaca y con ello la demostracin de la meta inicial :- abuelo(luis,jose). El mecanismo deductivo que ejecuta el intrprete de Prolog, basado en la resolucin-SLD, va realizando las sustituciones, de variables por trminos, que se requieran en cada paso de resolucin. En la figura 5 se muestra el rbol de deduccin de la meta :-abuelo(luis,jose) a partir del programa P2, haciendo uso de la resolucin-SLD, note que en cada paso se especifica la sustitucin realizada. En el ltimo paso no fue necesario aplicar ninguna sustitucin, en este caso se dice que la sustitucin utilizada es la vaca. Formalmente una sustitucin es un conjunto finito de asignaciones, en donde a cada variable se le asigna, de manera nica, un trmino. Una sustitucin tiene la siguiente forma: ={X1/t1,...,Xn/tn} donde Xi/ti indica el reemplazo de la variable Xi por el trmino ti y todas las Xi son distintas entre s. Ejemplo de sustitucin: ={X/luis,Y/jose,Z/miguel}

Karla M. Olmos Snchez IIT/UACJ

86

La Programacin Lgica y el Prolog

Cuando aplicamos una sustitucin a una expresin cualquiera, obtenemos una nueva expresin, llamada instancia o ejemplo de sustitucin de la expresin original y en esta instancia, en lugar de las variables Xi de , aparecern los correspondientes trminos ti (vase el ejemplo en la figura 6). La sustitucin vaca se denota por {} y a cualquier frmula A que se le aplique se obtiene la propia A, es decir, A{}=A. Se dice que dos expresiones son unificables si pueden ser llevadas a una misma expresin, llamada instancia comn, mediante la aplicacin de una sustitucin. A dicha sustitucin se le llama unificador de ambas expresiones. En el ejemplo anterior, la sustitucin ={X/luis,Y/jose}, es un unificador de abuelo(luis,jose) y abuelo(X,Y), pues se tiene que aplicada a ambas clusulas: abuelo(luis,jose) {X/luis,Y/jose} = abuelo(X,Y) {X/luis,Y/jose} genera clusulas idnticas: abuelo(luis,jose) = abuelo(luis,jose) El concepto de unificacin es de extraordinaria importancia en PROLOG, pues realmente en cada paso de resolucin-SLD lo que se hace es buscar el unificador ms general (aquel unificador que hace el menor nmero de sustituciones de variables por trminos) que permite igualar el objetivo a probar con la cabeza de alguna clusula de programa, para entonces obtener el resolvente o nuevo objetivo a probar. En la figura 7 se ilustra el rbol de deduccin que genera el intrprete de PROLOG para deducir o probar el objetivo :-miembro(1,[2,1,4]). a partir del programa P3. En cada paso de resolucin-SLD se especifica el unificador ms general encontrado. Adems, las clasulas de programa que participan en la resolucin, realmente son variantes de las clusulas del programa original, cuyas variables han sido renombradas. La resolucin es un mecanismo de demostracin poderoso que permite extraer, a partir de un programa, toda la informacin que puede deducirse como consecuencia lgica de ese programa. Luego, a partir del programa P3, adems de dar respuesta a objetivos como el anterior, que tratan de establecer la pertenencia de un elemento a una lista, es posible pedir un elemento de una lista dada. En la figura 8 se muestra un ejemplo que trata de obtener un elemento de la lista [2,1], utilizando las clusulas y sustituciones indicadas en la tabla 1. Variantes de clusulas de programas Unificadores ms generales utilizadas C11: miembro(X11,[X11|Y11]). 11={X/2,X11/2,Y11/ [1]} C21: miembro(X21,[Z21|Y21]):- 21={X/X21, Z21/2, Y21/ [1]}

Karla M. Olmos Snchez IIT/UACJ

87

La Programacin Lgica y el Prolog

miembro(X21,Y21). C12: miembro(X12,[X12|Y12]). 12={X21/1, X12/1, Y12/[ ]} Tabla 1 Ms informacin sobre la Programacin Lgica y el lenguaje Prolog puede consultarse [12] y [13]. Conclusiones Prolog result un avance decisivo en la Programacin Lgica, por ser el primer lenguaje operativo del rea. Sin embargo, Prolog no resuelve todos los problemas inherentes a este paradigma. Como hemos visto, las clusulas definidas no abarcan todo el poder expresivo de la Lgica de Primer Orden y, por otro lado, el manejo de la negacin no es totalmente satisfactorio, los algoritmos de unificacin de la mayora de los intrpretes no hacen chequeo de ocurrencia, lo que puede generar una iteracin infinita del intrprete bajo algunas sustituciones, etc. Todos estos problemas y otros, que incluyen el manejo de tipos, de objetos, de funciones, de restricciones, de concurrencia y de paralelismo, son objetos de mltiples trabajos de investigacin en la actualidad. La ventaja de Prolog radica en su naturalidad para expresar problemas y en su poder de deduccin, implcito en el algoritmo de resolucin programado dentro de cada intrprete del lenguaje. En la Programacin Lgica, como en la funcional, el trabajo pesado se ha dejado a los expertos en disear y escribir intrpretes y compiladores, proporcionando as herramientas cada vez ms poderosas a los investigadores y programadores de sistemas. Pero es necesario reconocer que la construccin de programas en Prolog requiere de un buen entrenamiento en la especificacin de problemas. Sin embargo, aunque la programacin en Prolog pudiera parecer complicada en una primera instancia, sta puede resultar muy natural para la definicin de problemas que requieran expresar conocimiento y reglas, como es el caso particular de los problemas de comprensin del lenguaje natural y otros del campo de la inteligencia artificial, como la construccin de sistemas expertos. De esto ltimo se hablar en otro artculo de este mismo nmero. Referencias [1]Robinson J.A., "A Machine Oriented Logic Based on the Resolution Principle", Journal of the ACM 12, pp 23-41, 1965. [2]Loveland, D.W., "Mechanical Theorem Proving by Model Elimination", Journal of the ACM 15, pp. 236-251, abril, 1968. [3]Kowalski R., "Predicate Logic as a Programming Languague", Proceedings IFIP-74, Stockholm, North-Holland, 1974.

Karla M. Olmos Snchez IIT/UACJ

88

La Programacin Lgica y el Prolog

[4]Green, C.C., "Theorem Proving by Resolution as a Basis for Question-Answering System", Machine Intelligence 4, Edinburgh University Press, New York, Meltzer y Michie editores, pp. 183-205, 1969. [5]Colmerauer A. et al., "Un systeme de communication homme-machine en francaise", Research Report, Groupe d'Intelligence Artificiel, Universite Aix- Marseille II, 1973. [6]Lloyd J.W., "Foundations of Logic Programming", Springer Verlag, 1985. [7]Kowalski R., "Logic for Problem Solving", Artificial Intelligence series, North Holland, 1979. [8]Hogger C.J., "Introducction to Logic Programming", Academic Press, 1984. [9]Kowalski R., "PROLOG as a logic programming language", Proceedings of the AICA congress, Pavia, Italia, septiembre, 1981. [10]Clocksin and Mellish, "Programming in Prolog", Spriger Verlag, Nueva York, 1984. [11]Sterling L. and Shapiro E., "The Art of Prolog", MIT Press, Londres, 1986. [12]Garca, L., Padrn, O.M., Campdesuer, R., "Programacin Lgica: Notas de Conferencias", Libro de texto. Ministerio de Educacin Superior. Universidad de la Habana. Cuba, 1993. [13]Loyo C., "Notas de Introduccin a la Programacin Lgica, Parte I : Fundamentos de Prolog", Revista del Seminario de Enseanza y Titulacin , UNAM, Fac. de Ciencias, Ao IV, Nm. 14, pg 68-85, octubre de 1985. -------------------Cristina Loyo, investigadora y directora general del Laboratorio Nacional de Informtica Avanzada, LANIA, Email: clv@xalapa.lania.mx Olga M. Padrn, Candidato a doctor y Profesora del Departamento de Ciencia de la Computacin de la Universidad de la Habana, Cuba.

Karla M. Olmos Snchez IIT/UACJ

89

You might also like