Transcript
Page 1: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial y la Inteligencia Natural

UNIVERSIDAD AUTONOMA DE CD. JUAREZ INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

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, además de que se cuestionará sobre la posibilidad de crear Inteligencia Artificial y cómo debería de ser ésta.

2. Relación con la asignatura.

Esta lectura se recomienda al inicio del curso en la Unidad 1 en donde el alumno se le enseña 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 artículo Osvaldo Cairó se cuestiona sobre las diferentes manifestaciones de la inteligencia humana y a través de ejemplos proporciona un marco para que se visualice la dificultad de definir el concepto.

3. Evaluación de aprendizaje.

1. Lee el artículo completo2. Investiga quién es Osvaldo Cairo3. Investiga tres definiciones adicionales de Inteligencia4. Investiga el significado de las siguientes palabras o conceptos

a. Heliocentrismob. Fortuitoc. Acepciónd. Formalismoe. Heterogéneof. Meta

5. Investiga la bibliografía breve dea. Marvin Minskyb. Kasparov

Karla M. Olmos Sánchez IIT/UACJ 1

Page 2: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial y la Inteligencia Natural

6. Lee nuevamente el artículo con la información recopilada en los puntos anteriores7. 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 comparación de las diferentes definciones de Inteligencia9. Escribe tus conclusiones acerca de la lectura10. Reacomoda la información de los puntos 5, 6 y 7 para elaborar una reflexión acerca

de la lectura y entrega tu trabajo en forma profesional

Karla M. Olmos Sánchez IIT/UACJ 2

Page 3: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial y la Inteligencia Natural

INTELIGENCIA ARTIFICIAL E INTELIGENCIA NATURAL

Osvaldo Cairó

[email protected]

Copérnico con el heliocentrismo, Darwin con la teoría de la evolución, y Freud con el psicoanálisis, en distintas épocas nos han hecho reflexionar sobre la naturaleza y posición que ocupa el hombre en el universo. Actualmente la cibernética, aunque todavía 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 cibernética, refieren al sentido y la medida en que los seres humanos pueden ser entendidos como máquinas.

Marvin Minsky, uno de los primeros estudiosos de la inteligencia artificial expresó con optimismo una década atrás, que para los noventa prácticamente pocos compartimentos del intelecto humano quedarían fuera del dominio de la máquina: el problema de crear inteligencia artificial quedaría resuelto en gran medida.

En nuestros días, aunque podemos observar una gran cantidad de programas y máquinas que exhiben características que los humanos podríamos asociar con inteligencia, y además con un alto valor comercial, debemos reconocer que estamos aún muy lejos de lograr lo que Minsky mencionó una década atrás. 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 aún de poder encontrarse en una computadora.

La inteligencia artificial se aboca a la simulación de un cierto tipo de inteligencia en máquina. Es decir, se trata de lograr que las máquinas 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 automóvil, requieren de cierto grado de inteligencia. Si las computadoras pueden realizar con éxito estas actividades entonces también le debemos atribuir un cierto grado de inteligencia.

¿Pero qué es inteligencia? Sin duda esta es una palabra muy difícil de definir. Etimológicamente procede de intelligere, lo mismo que entendimiento -intellectus-. La filosofía clásica la utiliza para designar las sustancias puramente espirituales. La psicología experimental la define como conocimiento superior o racional, ya esencialmente, ya por cierta participación [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 línea divisoria entre la conducta inteligente y la conducta no inteligente. Más aún, el sólo hecho de pensar que existe una línea divisoria entre estas conductas es probablemente una estupidez. Lo que sí

Karla M. Olmos Sánchez IIT/UACJ 3

Page 4: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial y la Inteligencia Natural

se puede afirmar es que existen ciertas características 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 situación, 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 características, sin embargo, que se podrían utilizar para aclarar el concepto de inteligencia, a veces también nos pueden confundir. Por ejemplo, si los lectores opinaran sobre la inteligencia de Kasparov -el campeón mundial de ajedrez-, seguramente llegarían rápidamente a un consenso sobre tal cuestionamiento. Nadie dudaría de la inteligencia de Kasparov. Si el mismo auditorio fuera consultado sobre la inteligencia de un científico que puede enviar una nave al espacio y controla su desempeño desde la tierra, el resultado sería prácticamente similar. Si el auditorio, en cambio, fuera consultado sobre la inteligencia de Maradona, casi con seguridad la opinión estaría también centralizada, pero podría ocurrir un error de apreciación. Lo mismo sucedería si fueran consultados sobre la inteligencia de un artesano Oaxaqueño, 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 fútbol, y se pudo observar que ante múltiples alternativas que se le presentaban en tiempo real, en diferentes momentos, y tenía que decidir en cuestión de microsegundos; en forma reiterada siempre escogía la mejor. El artesano Oaxaqueño, 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 también es cierto que si bien Kasparov es el campeón mundial de ajedrez, seguramente no podría construir ninguna de las obras maestras que construye el artesano Oaxaqueños y además, no podría enviar la nave al espacio. Al científico que envía la nave al espacio, muchos de los lectores le podrían 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 autónoma. El hombre, no la inteligencia, es el que piensa y lo hace según su peculiar modo de ser y el mundo en que vive. La inteligencia depende de la personalidad total. Una inteligencia superior seguramente puede ser síntoma 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 máquina. Pero esto es algo que suena a paradoja. Por su naturaleza misma, las máquinas son los animales más inflexibles, los más privados de deseos, los más seguidores de reglas, los más carentes de iniciativa propia. ¿Cómo podemos entonces programar inteligencia en máquina?. Esto es justamente lo que persiguen los investigadores que trabajan en el área de inteligencia artificial. Construir formalismos estrictos basados en un conjunto de reglas para decirles a esto animales inflexibles que son las máquinas como deben ser flexibles. Pero, nos podríamos preguntar: ¿qué clases de reglas deberíamos tener? Bueno, la respuesta es simple. Deberíamos tener diferentes clases de reglas para

Karla M. Olmos Sánchez IIT/UACJ 4

Page 5: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial y la Inteligencia Natural

diferentes niveles. La razón de tantas reglas es que el ser humano se encuentra en la vida con millones de situaciones completamente heterogéneas, 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 podrían 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 pájaros para diseñar aparatos tales como planeadores, aviones, etc., o en el movimiento de los peces para el diseño 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 solución de diferentes tipos de problemas, para el beneficio de la humanidad.

Referencias

1. Hofstadter, D., Gödel, Escher, Bach: Una Eterna Trenza Dorada, CONACYT, 1987.

2. Rialp, Gran Enciclopedia Rialp, Ediciones Rialp, S. A., 1973.

Karla M. Olmos Sánchez IIT/UACJ 5

Page 6: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

UNIVERSIDAD AUTONOMA DE CD. JUAREZ INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

Lectura 2: La Inteligencia Artificial: Enfoques, herramientas y aplicaciones.

1. Objetivo de la Lectura.

El alumno al finalizar la lectura comprenderá la diferencia entre técnica, herramienta y metodología en el área de Inteligencia Artificial y conocerá las principales técnicas, herramientas y metodologías que se aplican en el área.

2. Relación con la asignatura.

Este artículo 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 artículo Brena hace una diferenciación entre todos los términos 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. Evaluación de aprendizaje.

1. Investiga quién es Ramon Brena2. Lee el artículo completo 3. Investiga el significado de las siguientes palabras

a. Inherentementeb. Prototipajec. Contradicciónd. Teoremae. Refutaciónf. Deduccióng. Heurística

Karla M. Olmos Sánchez IIT/UACJ 6

Page 7: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

h. Místicai. Nítidaj. Visiónk. Representaciónl. Factualm. Lógican. Inferencia

4. Investiga los siguientes conceptos (adicionales al artículo)a. Redes Neuronalesb. Cálculo Proposicionalc. Programación simbólicad. Sistemas Expertose. Lenguaje Natural

5. Investiga en qué consiste la prueba de Turing6. Investiga la bibliografía breve de Alan Turing7. Lee nuevamente el artículo con esta información adicional8. Realiza un mapa conceptual de la información proporcionada en el artículo acerca

de la Inteligencia Artificial9. Escribe tus conlusiones acerca de la lectura

Karla M. Olmos Sánchez IIT/UACJ 7

Page 8: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

LA INTELIGENCIA ARTIFICIAL; ENFOQUES, HERRAMIENTAS, APLICACIONES

Ramón Brena

Centro de Inteligencia Artificial

ITESM - Monterrey

[email protected]

¿Pueden las máquinas pensar? Esta es la pregunta que la Inteligencia Artificial... NO se plantea hoy en día, contrariamente a una creencia popular bastante difundida. Este no es el único mito sobre la Inteligencia Artificial (IA), y en años recientes los vaivenes de la moda han colocado sobre esta rama de la ciencia una aureola mística que, explotada comercialmente, ha dado lugar a que hasta ciertas videocaseteras se anuncien con "Inteligencia Artificial". Todo esto crea cierta confusión sobre lo que REALMENTE podríamos esperar de la IA. Cuando eventualmente alguien descubre la falsedad de alguno de estos mitos, la desilusión que resulta recae sobre la IA en su conjunto, lo cual distorsiona igualmente la verdad.

Los malos entendidos han acompañado a la IA desde sus orígenes. La IA, disciplina de las Ciencias Computacionales, ha arrastrado uno de los nombres más imprecisos en todos los dominios tecnológicos: en efecto, no se cuenta con definiciones suficientemente precisas de la "inteligencia", y al agregarle el adjetivo "artificial" solamente se aumenta la confusión. Varios años de polémica al respecto no han contribuido a clarificar la cuestión; 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 psicología [1], la neurología [2], etcétera.

• Los que utilizan técnicas desarrolladas en el ámbito de la IA para resolver problemas prácticos. Esta corriente se deriva directamente del enfoque ingenieril de solución de problemas.

Desde luego, la división no es nítida, 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 (interconexión 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 interconexión de las

Karla M. Olmos Sánchez IIT/UACJ 8

Page 9: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

neuronas, que no pareciera ser de utilidad a corto plazo, ha alcanzado resultados prácticos 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 imitación", versión moderna de un juego de salón del siglo XVIII [4]. Dicho juego consiste en que una persona -el árbitro- "conversa" con alguien -el incógnito- situado en otro cuarto, a través de mensajes escritos llevados por un mensajero. Ahora bien, el incógnito puede ser una persona o una computadora, y el árbitro trata de determinar de cuál 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 están mecanografiados, de manera que el árbitro no se puede guiar por la escritura, sino únicamente por el contenido.

Evidentemente, el juego de la imitación supone una gran capacidad por parte de las computadoras para entender el lenguaje natural, así como capacidad de razonamiento con sentido común 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 imitación, 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 técnicas computacionales desarrolladas en el ámbito de la IA pueden resolver efectivamente problemas reales. Este enfoque práctico se ha vuelto predominante en la comunidad de IA porque ha sido necesario justificar con resultados económicos las grandes inversiones que se han destinado a la investigación en IA.

Las Técnicas de la IA y su Aplicación

Dentro del enfoque ingenieril de la IA, se resalta la importancia de un conjunto de técnicas que pueden ser usadas como herramientas en la solución de problemas. Con objeto de organizar las técnicas y aplicaciones de la IA, podemos distinguir las categorías siguientes:

1. Técnicas básicas, así llamadas por encontrarse a la base de diversas aplicaciones de IA. En esta categoría podemos ubicar: Búsqueda Heurística de Soluciones, Representación del Conocimiento, Deducción Automática, Programación Simbólica (LISP) y Redes Neuronales, entre otras. Estas técnicas proveen los ingredientes más fundamentales de los que se hacen las aplicaciones (ver [7]).

2. Tecnologías, o combinaciones de varias técnicas básicas, orientadas a resolver familias de problemas. Las tecnologías son más especializadas que las técnicas básicas y están más cerca de las aplicaciones finales. Encontramos en esta categoría: Robótica y Visión, Lenguaje Natural, Sistemas Expertos. Por ejemplo, los sistemas de Robótica (una tecnología) utilizan -entre otras técnicas- la Representación del Conocimiento, la Deducción Automática y la Búsqueda de Soluciones, y pueden estar programados en el lenguaje de programación LISP (que son técnicas básicas).

Karla M. Olmos Sánchez IIT/UACJ 9

Page 10: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

3. Clases o tipos de aplicaciones: Diagnóstico, Predicción, Secuenciamiento de operaciones ("Scheduling"), Diseño, Identificación de Sistemas, Interpretación de datos. Son familias de problemas tipo; por ejemplo, el diagnóstico se refiere a encontrar las causas de fallas, ya sea que se trate de fallas en una línea de producción o de enfermedades en una persona.

4. Campos de aplicación: Ingeniería, Medicina, Sistemas de Manufactura, Administración, 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 aplicación como "clientes" de la IA.

Así, por ejemplo, un Sistema Experto para diagnóstico de enfermedades intestinales sería una aplicación de tipo diagnóstico al área de la medicina, aplicando la tecnología de Sistemas Expertos, la cual utiliza las técnicas básicas de Representación del Conocimiento, Deducción y Búsqueda de soluciones.

En este número de Soluciones Avanzadas dedicado a la IA presentamos artículos referentes a las técnicas básicas y las tecnologías, aunque siempre explicando cuáles son las técnicas básicas que ponen en juego y cuáles los campos en que han encontrado aplicación.

A continuación explicaremos muy brevemente -y hasta en forma simplista- los términos usados más arriba, referentes a las técnicas básicas y a las tecnologías. Para ilustrarlas, nos apoyaremos en un ejemplo, que consiste en el problema de encontrar rutas entre dos ciudades.

Búsqueda de Soluciones

Uno de los grupos de técnicas más básicas de la IA es el de métodos de búsqueda de una solución. Se parte de un problema en que se sabe cómo generar posibles soluciones al problema. Por ejemplo, en el problema de encontrar la ruta más 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 solución aparentemente simple consiste en obtener todas las rutas posibles en la gráfica, tomar aquellas que unan A con B, y finalmente seleccionar entre éstas a la de menor costo. La desventaja de este método es que requiere una gran cantidad de cálculos, de los cuales la mayor parte se desperdician. A esta explosión de soluciones posibles a examinar se le llama "combinatoria", y es el enemigo a vencer por excelencia en la mayoría de los problemas de IA.

Una idea "inteligente" podría 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 solución es que tal vez la solución más corta requiere momentáneamente alejarse de B para después 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 "heurística" en el jargón de la IA- no garantiza encontrar la mejor solución, pero sí una de

Karla M. Olmos Sánchez IIT/UACJ 10

Page 11: Inteligencia Artificial e Inteligencia Natural.doc

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 drásticamente la cantidad de posibles soluciones a revisar.

Representación del Conocimiento

El agente que actúa "inteligentemente" requiere para ello tener una representación del ambiente sobre el que actúa -o por lo menos de los aspectos de ella que son relevantes para el problema de resolver. Por ejemplo, en el párrafo anterior se citaba el conocimiento necesario sobre la geografía y la red de carreteras que unen a A y B. De toda esta geografía hay muchos detalles que son irrelevantes para el problema, como el tipo de vegetación predominante a cada región, y podemos restringir nuestra atención a las informaciones que afectan directamente la solución 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 función 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 simbólicos, como en este ejemplo, aunque hay casos en los que se usan representaciones que incluyen números reales y datos contínuos en vez de datos discretos y símbolos; estos se producen sobre todo en los sistemas de reconocimiento de formas y análisis geométrico de la róbotica, así como en las redes neuronales.

Las representaciones del conocimiento usadas en la tecnología de los Sistemas Expertos [8] han llegado a ser más conocidas que otras representaciones. Entre ellas encontramos principalmente las llamadas "reglas de producción", que son estructuras de la forma "Si la condición C es cierta, se ejecuta la acción A". Otra representación que se ha abierto paso recientemente es la de los "frames" [9], relacionada con la estructuración 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 B C D E F G

A 0 150 250

B 0 650

C 150 650 0 400

D 250 0 200 210

Karla M. Olmos Sánchez IIT/UACJ 11

Page 12: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

E 200 0 200

F 200 0 210

G 400 210 210 0

Figura 2. Distancia entre ciudades conectadas directamente por carreteras

A B C D E F G

A 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 mínima entre dos ciudades dadas

Para cada problema en particular se puede buscar una representación "adecuada" del conocimiento existente. La adecuación de la representación elegida depende de cómo 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 mínima entre dos ciudades dadas, como en la figura 3. Si se va a consultar frecuentemente la distancia entre dos ciudades no vecinas, la representación de la figura 3 es preferible a la de la figura 2, mientras que si se desea una representación 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 Sánchez IIT/UACJ 12

Page 13: Inteligencia Artificial e Inteligencia Natural.doc

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 simétrica, almacenando sólo la mitad inferior izquierda de ella.

Cada representación del conocimiento está asociada a una manera de explotar dicho conocimiento, y la eficiencia de cualquier representación no puede juzgarse independientemente del mecanismo de explotación. Así, las reglas de producción "Si condición entonces conclusión", están ligadas a los mecanismos estándares de "encadenamiento hacia adelante" y "encadenamiento hacia atrás", que son discutidos en otros artículos de este número. Similarmente, las representaciones basadas en objetos están 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 representación y explotación 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, según 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, etcétera.

• Conocimiento general.- leyes que se cumplen sobre un conjunto de objetos. Puede presentarse como fórmulas matemáticas o lógicas, o de manera informal, en lenguaje hablado/escrito; sin embargo, la informalidad y la imprecisión obstaculizan la automatización 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.

Deducción Automática

Una de las capacidades del comportamiento "inteligente" que han sido capturadas más 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 también 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. También se requiere expresar las informaciones en un lenguaje muy preciso.

Karla M. Olmos Sánchez IIT/UACJ 13

Page 14: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

Uno de los lenguajes más utilizados para efectuar razonamientos mecánicos es la Lógica [10]. Por ejemplo, en lógica podríamos expresar las premisas del ejemplo de ciudades como:

hay_ruta (A,B).

hay_ruta (B,C).

En la lógica se puede declarar casi cualquier información; los casos en que la lógica estándar no es suficiente son muy específicos 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.

Además 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 podría 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 conclusión 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 mecánico de utilidad práctica. De hecho, el modus ponens es sólo un ejemplo de reglas de inferencia; hay muchas reglas de inferencia propuestas y muchas estrategias para hacer eficiente el proceso de razonamiento.

Otros términos relacionados con el razonamiento automático son:

• Inferencia, deducción: Son términos que denotan el proceso de extraer una conclusión a partir de las premisas.

• Cálculo proposicional: Es el lenguaje más primitivo de la lógica, en que los símbolos representan afirmaciones completas; por ejemplo el símbolo PerroAnimal puede significar

Karla M. Olmos Sánchez IIT/UACJ 14

Page 15: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

que es cierto que el perro es un animal. Cada símbolo es atómico (no tiene estructura interna), y sólo puede ser cierto o falso (pero no ambos).

• Contradicción: Un conjunto de proposiciones es contradictorio cuando se considera cierta tanto una afirmación P como su negación (indicada como -P).

• Cálculo de predicados: Es un lenguaje más sofisticado que el cálculo proposicional; se distingue el sujeto y el predicado de las afirmaciones; por ejemplo animal(perro) indicaría que "perro" es un animal.

• Prueba automática de teoremas: Es una forma de razonamiento mecánico en que la conclusión ya está dada, y hay que encontrar una secuencia de pasos para llegar a la conclusión. Cada paso es una aplicación de alguna de las reglas de inferencia.

• Prueba por refutación: Para probar que una conclusión C es consecuencia de unas premisas P, se supone falsa la conclusión, y se prueba que P junto con -C es contradictorio.

Actualmente existen sistemas computacionales que efectúan deducciones automáticas en forma sumamente eficiente [11], y que pueden ser integrados como componentes dentro de otros sistemas.

Además de los sistemas de razonamiento automático de uso general, existen sistemas deductivos para un propósito en particular, como por ejemplo, ingeniería de software [12]. Otros sistemas de deducción automática se especializan en efectuar razonamiento que involucran al tiempo (razonamiento temporal) o al espacio físico (razonamiento espacial); ambas formas encuentran aplicación en la robótica, que se discute en otro artículo de este número.

De hecho los Sistemas Expertos utilizan formas restringidas de razonamiento automático, que varían según la representación del conocimiento que haya sido utilizada (reglas, objetos, etc.).

Aprendizaje Automático

Una de las capacidades más 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 automático" [13].

Cabe decir que uno de los mitos de la IA es que las máquinas pueden aprender cosas nuevas "por simple observación 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 Sánchez IIT/UACJ 15

Page 16: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

Supóngase que un robot trata de encontrar, por ensayo y error, la ruta de A a B, y que después 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 operación 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 característica esencial del aprendizaje: es necesario memorizar partes de la realidad, pero también 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 cuáles mecanismos va a adquirir esas informaciones. Aún cuando hay investigación en IA tendiente a un aprendizaje de conceptos nuevos, de métodos nuevos, etc., estos estudios están aún muy lejos de producir resultados prácticos.

El aprendizaje simbólico no es la única forma posible, y es frecuente encontrar sistemas de IA en que el aprendizaje consiste en ajustar los valores numéricos de ciertos parámetros. Un caso muy común en IA es el ajuste de coeficientes en las funciones que evalúan qué tan "propicia" o favorable es una situación dada. Este problema es importante cuando se quiere examinar qué acción, entre varias alternativas posibles, lleva a una situación más favorable. Un caso típico 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.

Programación Simbólica

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 adecuación de las herramientas de desarrollo existentes en la época (los 60's). La solución consistió en desarrollar sus propias herramientas. En particular, el grupo lidereado por John Mc Carthy desarrolló un lenguaje de programación llamado LISP, así como su intérprete computacional [15]. Aunque hoy en día se presenta al lenguaje LISP como parte de una tendencia "moderna" en programación, a saber, la programación llamada "funcional" [16], en realidad es tan antiguo como FORTRAN. Debemos hacer notar que el lenguaje LISP no fue creado con la intención de proponer un lenguaje funcional, sino crear un ambiente de desarrollo apropiado para la IA. En este sentido ha sido extremadamente útil, habiéndose programado hasta la fecha miles de programas de IA en LISP, en campos tan diversos como robótica y visión y el diagnóstico médico.

El lenguaje LISP es adecuado para aplicaciones de IA porque permite el manejo de símbolos en forma simple; de hecho no hay la barrera entre el símbolo y su representación, como ocurre en lenguajes como Pascal o C. Por otra parte, LISP es un intérprete que permite ejecutar inmediatamente ("evaluar") las expresiones que constituyen los programas, facilitando el prototipaje. Además, usa una misma estructura de datos (las listas, o S-expresiones) tanto para datos como para programas, lo que permite una mayor generalidad y uniformidad.

Karla M. Olmos Sánchez IIT/UACJ 16

Page 17: Inteligencia Artificial e Inteligencia Natural.doc

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 cómputo, pues el intérprete de LISP tiende a funcionar más lentamente que un programa objeto en lenguaje de máquina (esto es, compilado). En un intento por resolver este problema, se desarrollaron plataformas de hardware especializadas en ejecución de LISP, llamadas "máquinas LISP", las cuales en cierta forma tienen a LISP como su lenguaje de máquina y también como su lenguaje de comandos. Estos sistemas (p.e. Symbolics) han llegado a un grado de rendimiento y sofisticación notables.

Otra solución para mejorar el rendimiento en problemas que requieren de un gran poder de cálculo es el uso de arquitecturas paralelas: al ejecutar simultáneamente un gran número de operaciones, se incrementa el rendimiento global. Desde luego, el uso del paralelismo es más eficaz cuando se aplica a problemas que son inherentemente paralelos, como es el caso de análisis de imágenes.

Sin embargo, el problema de la eficiencia de ejecución 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 simbólicos de propósito general como Prolog [17] (programación lógica), como lenguajes específicos orientados a ciertas aplicaciones o formas de desarrollo, como los "shells" de los Sistemas Expertos. Por otra parte, en un afán de eficiencia computacional, así como de portabilidad, varios sistemas recientes de IA han sido programados en el lenguaje C (por ejemplo, [11]).

En otros números de Soluciones Avanzadas se ha venido (y se continuará) discutiendo esta cuestión de los lenguajes de programación.

Otras Técnicas

El área emergente de las redes neuronales [6] será presentado con amplitud en otro número de Soluciones Avanzadas; por esta razón no lo discutiremos aquí.

En los artículos de este número de Soluciones Avanzadas, presentaremos artículos describiendo varios aspectos y técnicas de la IA, incluyendo los Sistemas Expertos y sus arquitecturas, el Razonamiento Basado en Casos, así como un trabajo sobre la Robótica. También presentaremos una descripción de la situación de la IA en el caso de México.

Conclusión

La IA cuenta a la fecha con una trayectoria de más de 30 años, 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 visión por computadora hasta las máquinas jugadoras de ajedrez a nivel de maestro internacional. Sin embargo, la IA ha tenido grandes dificultades para pasar al dominio propiamente tecnológico, es decir, para salir de los laboratorios hacia la industria.

Karla M. Olmos Sánchez IIT/UACJ 17

Page 18: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial: Enfoques , Herramientas y Aplicaciones

El caso de los Sistemas Expertos es una feliz excepción. Otra tecnología que está encontrando amplia aplicación es la de las Redes Neuronales. Sería de esperarse que en los próximos años los sistemas de visión 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 automatización industrial, la importancia de la robótica vaya en aumento en los próximos años.

Lo que es seguro es que la fuerza motriz de las tendencias futuras de la IA estará dada por factores económicos; por ejemplo, el desarrollo de sistemas de traducción automática se hace urgente en una situación de mercados globales, en que es imposible dedicar traductores humanos a procesar el inmenso volumen de informaciones financieras, técnicas, etc., y se hace imprescindible la automatización. Como otro ejemplo, la existencia de mercados globales permite amortizar la inversión en los costosísimos robots industriales, al aumentar los volúmenes de producción, y esto debe tender a impulsar la investigación en robótica.

Para una introducción más 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 Sánchez IIT/UACJ 18

Page 19: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

UNIVERSIDAD AUTONOMA DE CD. JUAREZ INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

Lectura 3: La Inteligencia Artificial en México, Una Visión Personal.

1. Objetivo de la Lectura.

El alumno al finalizar la lectura comprenderá la importancia de la Inteligencia Artifical en México y conocerá lo que se está desarrollando en el pais en cuestión del área.

2. Comentarios de la Lectura.

En el artículo el Doctor Christian Lemaître compila los trabajos que se han desarrollado en México en el área de Inteligencia Artificial y realiza una reflexión acerca del futuro del área en México.

3. Fuente

]. Lemaítre C., La Inteligencia Artificial en México: Una Visión Personal, Soluciones Avanzadas, Septiembre 1994. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001]

4. Relación con la asignatura

Este artículo 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 México en esta área.

5. Evaluación de aprendizaje.

1. Investiga quién es Christian Lemaître 2. Lee el artículo completo 3. Investiga el significado de las siguientes palabras

a. Concluenciab. Efervesenciac. Investiga las características de la computadora Buroughs B-5500

4. Investiga la bibliografía breve de Norbert Weiner y John MacCarthy5. 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 Sánchez IIT/UACJ 19

Page 20: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

6. Realiza un cuadro sinóptico que incluya fecha, autores y hechos relevantes de la historia de la Inteligencia Artificial en México según el artículo

7. Busca dos proyectos de investigación en el área de Inteligencia Artificial que se estén desarrollando actualmente en México

8. Escribe tus conlusiones acerca de la lectura

Karla M. Olmos Sánchez IIT/UACJ 20

Page 21: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

LA INTELIGENCIA ARTIFICIAL EN MÉXICO; UNA VISIÓN PERSONAL

Dr. Christian Lemaître

Presidente de la SMIA

Investigador de LANIA

En un reciente encuentro de investigadores de computación de Estados Unidos y México, llevado a cabo en la Ciudad de El Paso Texas, algunos colegas norteamericanos se mostraron extrañados del alto porcentaje de investigadores mexicanos que se dedican a la Inteligencia Artificial (IA) y temas afines.

En efecto, en México la proporción de investigadores dedicados a estos temas es mucho mayor que la de los países altamente desarrollados. En una encuesta realizada para la ONUDI y el INEGI en 1991 [1,2] con 28 grupos de investigación y desarrollo del país en informática y microelectrónica, se reportó que el 21% de los grupos tenían una actividad sistemática de investigación en IA que abarcaba el 35% del total de los proyectos de investigación contabilizados. Estos eran por mucho los porcentajes más altos de las distintas especialidades reportadas.

A estos datos habría que agregar que la comunidad académica de IA es quizá la más organizada en el país en el campo de la computación con diez congresos nacionales, tres iberoamericanos y seis internacionales; con una sociedad científica de la especialidad, la SMIA, con siete años de existencia y un promedio de 150 miembros.

Este conjunto de hechos amerita una explicación. En lo que sigue trataré de presentar mi visión de cómo es que la IA en México ha logrado tener una presencia tan relevante en el campo de la informática nacional.

La Prehistoria

La prehistoria de la IA en México se confunde en gran medida con la de la IA en el mundo. En ambos casos la IA surge de la confluencia de la cibernética de Norbert Weiner de los años cuarenta y cincuenta con el desarrollo de la computación electrónica del mismo periodo. La cibernética en México la introdujo Arturo Rosenblueth quien participó en su gestación dentro del grupo interdisciplinario dirigido por Norbert Weiner a fines de los años cuarenta. La primera computadora electrónica en México se instaló en la UNAM en 1958, en el recién creado Centro de Cómputo Electrónico (CCE) cuyo primer director fue Sergio Beltrán [3].

Karla M. Olmos Sánchez IIT/UACJ 21

Page 22: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

A principios de la década de los sesenta, Sergio Beltrán organizó en el CCE las primeras actividades de IA en México 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 México y trabajar, entre otras áreas, la de diseño de lenguajes para programación simbólica.

La Historia

En el país la formación de investigadores de IA tuvo hasta hace unos años dos fuentes tradicionales: 1) el envío de estudiantes al extranjero a hacer algún posgrado en la especialidad, y 2) la llegada de investigadores formados en disciplinas afines que deciden cambiar de área de interés y dedicarse a la IA. En los últimos años la importancia de esta segunda fuente ha disminuido y ha aparecido una tercera opción: la de los estudiantes formados por la propia comunidad nacional de IA.

A partir de mediados de los años sesenta es posible rastrear con un poco más de precisión cómo se preparan los primeros investigadores de IA.

Durante la primera mitad de la década de los sesenta fueron enviados los primeros estudiantes mexicanos a hacer doctorados y maestrías en computación en el extranjero. El primero en doctorarse en el área de IA fue Adolfo Guzmán, quien había sido alumno en el IPN de Harold McCintosh. Su tesis doctoral realizada en el MIT se convirtió rápidamente en un clásico del área de visión. A su regreso a México, Adolfo Guzmán se alejó durante varios años 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 más ejemplar fue sin duda el de Alejandro Medina, químico de profesión, físico y cibernético de corazón, quien inició en 1967 una serie de cursos y seminarios de posgrado en la Facultad de Ciencias de la UNAM, bajo el título de Simulación y Control. El contenido de estos seminarios variaba de semestre en semestre entre control, investigación de operaciones, optimización 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 jóvenes estudiantes de física y matemáticas hacia nuevas áreas de investigación.

Otro ejemplo relevante de un investigador proveniente de otras áreas de la ciencia es el de José Negrete, quien provenía de la medicina y la cibernética. J. Negrete se iniciaba en esos años dentro del IIMAS en el diseño y la programación de un sistema de diagnóstico médico bayesiano, ancestro de los sistemas expertos médicos de la siguiente década.

A finales de los sesenta salió a estudiar al extranjero un numeroso grupo de jóvenes de la UNAM que habían sido captados por el Centro de Cálculo Electrónico, que dirigía en esas fechas Renato Iturriaga. De ese grupo, al menos tres salieron a estudiar IA; eran los primeros en hacerlo después del regreso de Adolfo Guzmán: Armando Jinich, Cristina

Karla M. Olmos Sánchez IIT/UACJ 22

Page 23: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

Loyo y Christian Lemaitre. Los tres a su regreso se incorporaron al Centro de Cómputo Electrónico, que para entonces había cambiado de nombre a IIMAS.

En 1973, dentro del programa de materias optativas de la carrera de matemáticas 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 había sido investigador del Stanford Research Institute, uno de los centros de investigación más importante de esos años. En esas fechas, otros dos investigadores del IIMAS, Raymundo Segovia y Mario Magidin, terminaban un intérprete de LISP que corría en la Buroughs B 5500 de la UNAM.

A mediados de los setenta el IIMAS era el principal centro de investigación en computación en el país, lo que le permitió abrir la primera maestría propiamente de Ciencias de la Computación en México. En el plan de estudios de esta maestría se incluyó un curso de IA que fue impartido durante varios años por Christian Lemaitre. En esa época Adolfo Guzmán se incorporó al IIMAS y abrió una línea de investigación de Percepción Remota.

Esos años fueron épocas difíciles para la IA en el mundo. Los principales grupos de investigación en IA de Estados Unidos y Europa habían resentido drásticos recortes presupuestales en los proyectos que presentaban; de alguna forma, las promesas exageradas de los proyectos de robots de los años sesenta habían provocado una gran incredulidad de los organismos que financiaban la ciencia y tecnología de Estados Unidos e Inglaterra, principalmente. En México se resentía igualmente el clima adverso hacia la IA. Los jóvenes que regresaban con sus posgrados en IA no se sentían a gusto de trabajar en IA y se dedicaban a otras áreas de la computación. Durante varios años 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 década de los setenta, el número de estudiantes mexicanos estudiando programas de doctorado en IA y áreas afines iba en aumento, entre otros habría que mencionar a: Carmen López Laiseca, Miguel Tomasena y Yolanda Fernández en Francia, y a Juan Ludlow, Antonio Sánchez Aguilar y Pablo Noriega en Estados Unidos.

Con el cambio de década el ambiente alrededor de la IA empieza a mejorar; los primeros éxitos comerciales de los sistemas expertos atraen la atención de un público más extenso. En México cada vez más universitarios se sienten atraídos por ese novedoso tema de los sistemas expertos. En 1983, por iniciativa de Enrique Calderón, director de la Fundación Arturo Rosenblueth (FAR), de José Negrete del Instituto de Investigaciones Biomédicas y de José Luis Mora de la Facultad de Ingeniería de la UNAM, se organizó una primera Reunión Nacional de IA dentro de la III Semana de Computadoras en la Educación en la ciudad de Xalapa [4]. El resultado más importante fue sin duda la decisión de consolidar una reunión anual en IA. Este fue el origen de las actuales Reuniones Nacionales de IA. La segunda reunión 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. Anáhuac y el IIE. En 1985 la reunión fue en Monterrey

Karla M. Olmos Sánchez IIT/UACJ 23

Page 24: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

bajo el auspicio de ITESM y la FAR, asistieron a esta reunión cerca de 100 participantes. El año siguiente la reunión tuvo lugar en Oaxaca con una asistencia de más de 120 personas.

Para mediados de la década de los ochenta existía una verdadera efervescencia alrededor de la IA, la mayoría buscaba conocer más del tema, no eran profesionales de la IA. Los grupos propiamente de investigación seguían siendo pocos, CINVESTAV, FAR, UAM-I, U. Anáhuac, Facultad de Ciencias de la UNAM, ITESM de Monterrey, UDLA. El siguiente paso en esta historia lo constituye la organización de esta comunidad científica en la Sociedad Mexicana de Inteligencia Artificial (SMIA). Este hecho inicia lo que se puede concebir como la etapa presente de la IA en México.

El Presente

En la reunión de Oaxaca, un número significativo de participantes consideró que era el momento de organizar una sociedad científica que se encargara de convocar a la reunión nacional anual de IA y que buscara promover los trabajos de investigación y de aplicación de la IA en general.

Esta idea de conformar una sociedad científica nacional de IA se vió reforzada por una reunión organizada en mayo de 1986, por la Dirección de Políticas y Normas en Informática del INEGI, de tres representantes españoles de la Asociación Española para la IA (AEPIA): Felisa Verdejo, José Cuena y Jaume Agusti, con un grupo representativo de investigadores mexicanos de IA. La experiencia de los españoles que acababan de formar la AEPIA y la necesidad de contar del lado mexicano con una contraparte que pudiese ser el interlocutor privilegiado, no sólo de la AEPIA, sino también de asociaciones equivalentes de otros países, así como del INEGI y del CONACYT, permitió acelerar la convocatoria de la reunión constitutiva de la SMIA. Dicha reunión 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 constitución de la SMIA le dió una mayor solidez y difusión a los trabajos de IA en nuestro país. Las siguientes reuniones nacionales fueron cada vez más grandes: en Cholula Puebla, en 1987, hubo 180 participantes, y el año siguiente, en Mérida Yucatán, hubo 250. En las siguientes reuniones de Querétaro, Morelia, Ensenada, Veracruz, y el D.F., el número de asistentes se ha mantenido alrededor de 200 por año.

La tradición de la SMIA, que es práctica común de otras sociedades científicas nacionales, es llevar a cabo sus congresos en distintas ciudades de provincia. Con ello se busca ayudar a la difusión de la especialidad en públicos más amplios de estudiantes y profesionistas, así como apoyar los grupos locales interesados en trabajar en IA. Para celebrar el décimo aniversario de las reuniones nacionales de IA, la SMIA decidió romper la tradición y efectuó su décima reunión en el DF bajo el auspicio del ITAM.

En cada Reunión Nacional se incluye como parte medular del programa las conferencias magistrales de dos o más renombrados investigadores extranjeros. En ocasión de la décima Reunión 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 Sánchez IIT/UACJ 24

Page 25: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

Tecnológico 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 vehículo de promoción 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, España, y los otros en Morelia, México, 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 participación de las sociedades de IA de México, la SMIA, y de Estados Unidos, la AAAI.

En 1994 tendrán lugar los tres congresos que se han mencionado: La XI Reunión 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 México ha sido sorprendente durante estos últimos diez años. Además de estos eventos se han realizado en los últimos siete años 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 académico a pesar de la profunda crisis económica de México de la década pasada y su secuela en todo el sistema científico tecnológico del país.

La situación financiera de las principales universidades públicas del país provocó que muchos grupos de IA, y en general de Ciencias de la Computación, ya establecidos o de reciente creación se diezmaran entre 1987 a la fecha. A pesar de ello, otros grupos han nacido y, en particular, en las instituciones privadas de investigación 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 creación en 1991 del Laboratorio Nacional de Informática Avanzada, LANIA, centro de investigación privado con una fuerte componente en IA.

A partir de un análisis 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 Américas, Puebla, es el que más trabajos ha presentado, con cerca de un 20% del total; le sigue el Instituto de Investigaciones Biomédicas de la UNAM con un 12%, el Centro de IA del ITESM con 9%, el CINVESTAV del Instituto Politécnico Nacional con 7%, así como el Instituto de Investigaciones Eléctricas, el Instituto de Ingeniería de la UNAM y el Instituto de Investigaciones en Matemáticas Aplicadas y Sistemas (IIMAS) de la UNAM, cada uno de ellos con 5%.

Karla M. Olmos Sánchez IIT/UACJ 25

Page 26: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

Los temas con más 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 %, Representación de Conocimiento con un 10 %, y Programación Lógica con un 6 %.

Los cambios habidos en los diferentes grupos de trabajo, así como la aparición de nuevos temas de moda, ha hecho, por ejemplo, que en las últimas Reuniones Nacionales hayan bajado notablemente el número de trabajos en temas como Lenguaje Natural y Representación de Conocimiento, y que hayan aumentado otros como Redes Neuronales y Algoritmos Genéticos.

Otro aspecto importante de la IA en México en la actualidad es su componente de aplicación al sector productivo. El acercamiento de la industria a la IA se puede rastrear a partir de los años 1986 - 87 con los primeros desarrollos de BYTEC y de Bancomer. El sistema de BYTEC entró en operación, mientras que el de Bancomer quedó a nivel de primer prototipo. De entonces a la fecha se han venido desarrollando sistemáticamente diversos sistemas de aplicación, principalmente en el campo de los sistemas expertos.

En términos generales la aproximación de las empresas a la IA ha sido tímida 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 habían enfrentado la innovación tecnológica en forma sistemática. En los países desarrollados existe una larga tradición empresarial de invertir y arriesgar en desarrollos de nuevas tecnologías; en México esta variable ha empezado a manejarse sólo recientemente con la creciente apertura comercial de nuestras fronteras.

A pesar de todo esto, a lo largo de los últimos ocho años se han venido desarrollando distintas aplicaciones comerciales de IA en nuestro país, ya sea por grupos de investigación 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 tecnología de Sistemas Expertos es una tecnología madura y existen en nuestro país grupos profesionales bien preparados para desarrollar soluciones que incorporen este tipo de sistemas. Está claro que estos grupos no serán suficientes cuando la demanda de la industria se despierte en México. Es indispensable, por lo tanto, reforzar los grupos existentes y propiciar la creación de nuevos.

En resumen, la IA es quizá una de las áreas de la informática más organizadas y con grupos de investigación y desarrollo mejor establecidos en México. Esto sitúa a la comunidad nacional de IA en una posición ventajosa para ofrecer al sector productivo un apoyo en su esfuerzo modernizador en la introducción de aplicaciones de IA. Sin embargo, los retos modernizadores que enfrenta la sociedad mexicana son enormes, y está claro que no sólo la comunidad de IA nacional, sino la comunidad informática en su conjunto son todavía pequeñas para las necesidades del país. Se requiere urgentemente fortalecer los grupos de investigación y desarrollo, los programas de posgrado nacionales, así como fomentar la creación de grupos profesionales de alta calidad para hacer frente a la demanda nacional de este fin de siglo.

Karla M. Olmos Sánchez IIT/UACJ 26

Page 27: Inteligencia Artificial e Inteligencia Natural.doc

La Inteligencia Artificial en México: Una Visión Personal

Referencias

[1] "La Situación de la Informática en México", Edición 1992, INEGI, México

[2] Lemaître, C., "Investigación y Desarrollo en Informática y Microelectrónica en México: Situación y Perspectivas", Reporte Técnico de LANIA, Lania-RI-92-2

[3] Soriano, M., y Lemaître, C., "Primera década de la computación en México: 1958-1968", Ciencia y Desarrollo, Nos. 60 y 61, enero y marzo de 1985, CONACYT, México

[4] Lemaitre, C., y Sánchez-Aguilar, A., "Las Reuniones Anuales de la Sociedad Mexicana de Inteligencia Artificial", en Inteligencia Artificial en México, Universidad Tecnológica de la Mixteca, Huajuapan de León, México, 1992

Karla M. Olmos Sánchez IIT/UACJ 27

Page 28: Inteligencia Artificial e Inteligencia Natural.doc

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

UNIVERSIDAD AUTONOMA DE CD. JUAREZ INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

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 México y conocerá cómo se han ido desarrollando con el tiempo.

2. Comentarios de la Lectura.

En el artículo se comenta del partido de ajedrez que sostuvieron el cameón Kasparov y la máquina (diseñada para ese propóstio específico) Deep Blue. Además, el autor reflexiona acerca de la derrota del humano y de que si esto nos da una idea de la posibilidad de que las máquinas pudieran a llegar a ser más 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. Relación con la asignatura

En el artículo se habla acerca de juegos, que se relaciona con la Unidad III del curso en el que se enseñan las técnicas para juegos y su importancia en la Inteligencia Artificial.

5. Evaluación de aprendizaje.

1. Lee el artículo completo 2. Investiga el significado de las siguientes palabras

a. Autonomasiab. Trivial

3. Investiga la bibliografía breve de Garry Kasparov4. Investiga lo que representan las siguientes siglas: ENIAC5. Realiza una reflexión de la lectura

Karla M. Olmos Sánchez IIT/UACJ 28

Page 29: Inteligencia Artificial e Inteligencia Natural.doc

¿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 habrán 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 cálculo de posiciones ajedrecísticas. Quienes así lo hicieron se sorprenden de que, la criatura -la máquina- 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 automóvil Fórmula Uno, o hasta una motocicleta, derrote al campeón de los cien metros planos. Menos aun se extrañará alguien de que una máquina venza en una prueba de resistencia como el maratón.

La diferencia es probablemente que lo que está en juego, en el caso de la confrontación ajedrecística, es algo más directamente relacionado con el orgullo humano. Es la creatividad y su inteligencia.

Muchas veces se ha dicho, como consuelo, que la computadora es sólo una estúpida 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 más que otra cosa es lo que explica el interés un tanto morboso en la revancha entre Kasparov y Deep Blue, y la tristeza por la derrota del campeón mundial.

En realidad, aunque el ajedrez es un juego apasionante y bastante complejo para el hombre, se presta fácilmente para ser jugado por una computadora. Ya en 1950, apenas 4 años después del nacimiento de ENIAC, la primera computadora, Claude Shannon, uno de los padres de la teoría de la información, decía que el ajedrez era un problema ideal para ser sometido al análisis 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 solución satisfactoria".

Es ese sentido, otros varios problemas son más difíciles 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 aún resueltos de manera satisfactoria por las computadoras.

Cuando una máquina 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 cálculos numéricos que le permiten decidir de entre varias posiciones posibles cuál es la mejor. Es decir, a cada posición

Karla M. Olmos Sánchez IIT/UACJ 29

Page 30: Inteligencia Artificial e Inteligencia Natural.doc

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

potencial se la asigna mediante un algoritmo una valor numérico, según distintos criterios como la seguridad del propio rey, el peligro en que se encuentran las piezas, etc. La máquina "decide" por la posición que tiene un valor más alto.

A este enfoque donde la computadora no trata de emular los procesos del pensamiento humano en la solución de problemas ajedrecísticos, se le conoce como la solución de la "fuerza bruta".

Desde que Shannon sugirió que la creación de programas de cómputo capaces de jugar al ajedrez llevaría al desarrollo de técnicas que se podrían usar también en la solución de aplicaciones prácticas, 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 método de la fuerza bruta produce una manera diferente de jugar al ajedrez, por algún tiempo los enfrentamientos hombre-máquina, a un nivel de grandes maestros, no resultaron interesantes. Las computadoras, al no pensar, presentaban una serie de debilidades fácilmente 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 más de 750 mil posiciones por segundo. En octubre de ese mismo año, una nueva versión de esa máquina, con seis procesadores y la posibilidad de buscar más de 2 millones de posiciones por segundo, jugó y perdió un par de encuentros frente al campeón del mundo Garry Kasparov.

Sin embargo, en agosto de 1995, Deep Thought derrotó a la jugadora húngara Judith Polgar, quien dicho sea de paso, ha sido el jugador más joven en acceder al título de Gran Maestro.

Deep Blue fue pensada para mejorar algunas de las "deficiencias" de Deep Thought en cuanto a poder y velocidad de cómputo. Para eso el equipo encargado de su diseño y construcción ideó un procesador orientado al cálculo de posiciones ajedrecísticas que es capaz de analizar tres millones de posiciones por segundo. Con 256 de estos procesadores, distribuidos en 32 módulos de ocho, ensamblaron una máquina a la que además dotaron de una base de datos de aperturas y de finales de partidas. Esta computadora fue la que el año pasado perdió un encuentro de seis partidas con el campeón del mundo. Sin embargo, ya en esa ocasión, logró ganarle en la primera partida. Después de esa derrota, Kasparov se repuso y fue capaz de explotar las debilidades de la computadora.

Un año más 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 máquina, procesadores más rápidos y mejor uso de la memoria, a la que habían "enseñado" a jugar al ajedrez mediante reformas en el programa de cómputo que se benefició del análisis de las líneas de juego que siguió Kasparov en la primera confrontación.

Karla M. Olmos Sánchez IIT/UACJ 30

Page 31: Inteligencia Artificial e Inteligencia Natural.doc

¿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 número 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 razón por la cual un jugador de su talla comete una falla como esa, está en la base de lo que son las confrontaciones hombre-máquina en el juego de ajedrez. La causa pudo haber sido resultado del cansancio, un factor que no afecta a Deep Blue; puede haber sido también producto de la búsqueda desesperada de líneas 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 sicología tiene un rol importante, sino tratando de entender la forma como la computadora toma sus decisiones para llevarla por líneas de juego donde la imaginación y el talento del campeón del mundo puedan desentrañar los problemas que se presentan sobre el tablero, de mejor manera que la máquina.

Pero eso es el ajedrez, al menos desde el punto de vista humano, una confrontación 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 campeón del mundo desde 1984, ha perdido varias partidas, aunque ningún encuentro en el que haya estado en juego su título.

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 construcción de Deep Thought y de quienes se agregaron después 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 técnicas útiles en la solución de problemas prácticos y alegrarnos de las perspectivas que el cómputo en paralelo puede abrir a la solución de problemas de simulación de dinámica molecular, de interés en la industria farmacéutica, al estudio del comportamiento de los mercados financieros, o a la regulación y programación del tráfico aéreo en los aeropuertos más grandes del planeta.

En fin, la derrota de Kasparov en el sexto juego podría resultar anecdótica si no fuera por que necesaria, aunque erróneamente, pasará a la historia como la primera vez en que una máquina derrota al ser humano en una confrontación de inteligencias, aun cuando haya sido el hombre únicamente quien ganó.

Karla M. Olmos Sánchez IIT/UACJ 31

Page 32: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

UNIVERSIDAD AUTONOMA DE CD. JUAREZ INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

Lectura 5: Agentes Inteligentes: ¿máquinas 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 cómo pueden ayudar éstos en la vida cotidiana del hombre.

2. Comentarios de la Lectura.

En el artículo se comenta acerca de las características de los agentes inteligentes, su comportamiento y de cómo pueden ser utilizados en funciones que consideramos cotidianas en la vida humana. 3. Fuente

]. Maruri, E., Agentes Inteligentes: ¿máquinas pensantes aplicadas a la vida cotidiana del hombre?, Red, Marzo 2000. . < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001]

4. Relación con la asignatura

Este artículo se recomienda que se lea en la unidad VI referente a técnicas avanzadas para que alumno visualice lo que son lo agentes inteligentes

5. Evaluación de aprendizaje.

6. Lee el artículo completo 7. Investiga el significado de las siguientes palabras

a. Resoluciónb. Autónomosc. Discontinuidadd. Inferenciae. Cognitivof. Heterogéneog. Amalgama

8. Investiga la bibliografía breve de Eduardo Maruri9. Investiga lo que representan las siguientes siglas: ENIAC

Karla M. Olmos Sánchez IIT/UACJ 32

Page 33: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

10. Realiza un mapa conceptual de la información proporcionada en la lectura acerca de los agentes inteligentes.

Karla M. Olmos Sánchez IIT/UACJ 33

Page 34: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

AGENTES INTELIGENTES: ¿MÁQUINAS PENSANTES APLICADAS A LA VIDA COTIDIANA

DEL HOMBRE

Eduardo Maruri

La principal aplicación de los agentes es el filtrado de información.

- Los agentes inteligentes en el Web proporcionan al usuario diversos servicios de gran utilidad.

- Difícilmente se podrán convertir en un producto de consumo común.

¿Recuerda cuando era pequeño y miraba los Supersónicos deseando que alguien pudiera inventar un robot para que hiciera diversas actividades por usted? Décadas más tarde, todavía no se ha cumplido definitivamente el sueño de una máquina que ponga a funcionar la aspiradora o que levante los platos de la mesa, pero hoy en día existen algunos robots útiles que se encuentran en la red de redes, listos para ayudarle con las compras y recopilar información, así como en otro tipo de tareas.

Una innovación significativa en la concepción de las aplicaciones de la Inteligencia Artificial (IA) -aquélla que reproduce a través de máquinas las operaciones humanas que suelen utilizarse para la resolución de asuntos prácticos- es la de los agentes inteligentes en la informática, generalmente agentes de software, a menudo autónomos y móviles.

Normalmente estos agentes hacen uso de operaciones que permiten la cooperación y la distribución del trabajo, tal y como se resuelven los problemas cotidianamente, mediante su segmentación y la intervención en varios niveles; así se obtiene provecho de conceptos como cooperación, interacción y comunicación 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 autónomos que no comparten memoria primaria, pero sí cooperan comunicándose por medio del envío de mensajes sobre una red de comunicación. "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 común: computadoras y personas, sensores, aviones, robots, etcétera. 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 Sánchez IIT/UACJ 34

Page 35: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

explica Jacobo Hernández, académico de la Fundación Arturo Rosenblueth e investigador de la compañía 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 autónomas e inteligentes que cooperan para desarrollar un trabajo y se comunican por medio de mecanismos basados en el envío y recepción 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.

- Resolución 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 solución.

- 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 pronósticos de que en las próximas décadas una posible discontinuidad a nivel mundial en la mejora del desempeño de la tecnología de la información provendrá del software, por lo que muchos especialistas esperan avances modestos en campos como los de la Inteligencia Artificial, en donde la búsqueda de software con capacidad de pensamiento autónomo y de respuestas, mediante inferencias y creatividad, continuará hacia la mitad del siglo próximo.

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 Asociación 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 información), firmado por cerca de 30 académicos e investigadores del máximo nivel, adscritos a las principales universidades y centros de investigación estadounidenses, y en el cual proponen promover la investigación en diversas áreas clave de dicho campo, las cuales tendrán un papel central al responder a los desafíos planteados por dicha infraestructura", detalló Juan José Carreón Granados, profesor del departamento de Computación de la división de Ingeniería Eléctrica de la Facultad de Ingeniería de la UNAM (Universidad Nacional Autónoma de México).

Clasificación de los agentes inteligentes Las entidades inteligentes que conforman un SMA son llamadas agentes, los cuales son una entidad física o abstracta que puede percibir su ambiente a través 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 información y actuar sobre el medio en el que se desenvuelven a través de ejecutores.

Karla M. Olmos Sánchez IIT/UACJ 35

Page 36: Inteligencia Artificial e Inteligencia Natural.doc

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 comunicación y por su capacidad de aprendizaje.

En términos generales, los agentes se clasifican en dos tipos:

1. Agentes cognitivos: aquéllos capaces de efectuar operaciones complejas. Son individualmente inteligentes (son sistemas más o menos expertos, con capacidad de razonamiento sobre su base de conocimiento), pueden comunicarse con los demás agentes y llegar a un acuerdo con todos o algunos de ellos, sobre alguna decisión. Un sistema cognitivo está compuesto por un pequeño número de agentes cognitivos.

2. Agentes reactivos: son agentes de bajo nivel y no disponen de un protocolo ni de un lenguaje de comunicación; su única capacidad es responder a estímulos. Los agentes reactivos son globalmente inteligentes y, por lo general, están compuestos por un gran número de agentes reactivos que realizan acciones entre todos. Para ello es necesario tener en cuenta nuevas teorías de cooperación y comunicación que permitan el desempeño de estas acciones.

Cabe destacar que es posible concebir sistemas heterogéneos cuyo comportamiento se derive de las dos clasificaciones de agentes mencionados, y tengan características de ambos. Esto significa que es posible dotar a los agentes cognitivos de capacidades de reacción a los eventos. A tales agentes se les puede llamar agentes híbridos.

Dentro de la clasificación de los agentes también podemos encontrar diversos tipos de agentes inteligentes con distintas características y funciones:

Agente de reflejo simple.

Agente informado de todo lo que pasa. Así como interpreta la nueva percepción a la luz del conocimiento disponible sobre el estado, este agente también utiliza la información referente a la manera como evoluciona el mundo, y de esta manera puede mantenerse informado acerca de esas partes no visibles de él.

Además, debe estar enterado en cómo las acciones del agente están afectando al estado del mundo.

Agente basado en metas. Para decidir qué hay que hacer, no siempre basta con tener información acerca del estado que prevalece en el ambiente. Por ejemplo, pueden darse en cierto momento varias opciones como "siguiente estado", y la decisión adecuada dependerá de su meta, la cual es información que detalla las situaciones deseables.

El programa del agente puede combinar lo anterior con la información relativa al resultado que producirían las posibles acciones que se emprendan, y de esta manera elegir aquellas acciones que respondan con una sola acción. Otras veces es más complicado, cuando el

Karla M. Olmos Sánchez IIT/UACJ 36

Page 37: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

agente tiene que considerar largas secuencias de giros y vueltas hasta que logra encontrar la vía que lo lleva a la meta.

La diferencia de decisiones de este tipo difieren radicalmente de las reglas condición-acción en que implican tomar en cuenta el futuro: ¿Qué sucedería si hago tal cosa? ¿Eso me hará feliz? En el caso del diseño del agente reflejo esta información no se utiliza explícitamente, puesto que el diseñador calcula previamente la acción correcta correspondiente a diversos casos. Si bien el agente basado en metas es menos eficiente, también es cierto que es más flexible.

Agente basado en utilidad. La palabra "utilidad" hace referencia a la calidad de ser útil. Por lo tanto, es una función que correlaciona un estado y un número real mediante el cual se caracteriza el correspondiente grado de satisfacción. La completa especificación de la función 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 sólo en algunas de ellas se puede obtener la función de utilidad en donde se definirá cuál es el compromiso adecuado por el que hay que optar. Segundo, cuando son varias las metas que el agente podría desear obtener, pero no existe la certeza de poder lograr ninguna de ellas, la utilidad es una vía 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 información, ya que son capaces de averiguar qué temas le interesan al usuario y van escogiendo sitios Web o noticias para presentárselas. Otra función es la automatización del trabajo en grupo, por ejemplo, concertar citas en el momento preciso para todo un grupo de trabajo. Hoy en día, los agentes inteligentes se usan principalmente a nivel de investigación, pero no se puede hablar de verdaderos agentes trabajando para su uso común", explica José Merelo, investigador del departamento de Electrónica y Tecnología de los Computadores de la Universidad de Granada, España.

Bots de charla La palabra "bot" se deriva de "robot" y se refiere a un programa de computadora que recopila información o realiza un servicio, generalmente en algún horario ordinario. Un bot, también llamado agente, típicamente explora Internet, recopila información relativa a sus intereses, y se la ofrece al usuario en términos diarios o periódicos.

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 información 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 Tecnología Massachusetts (MIT), para estudiar la comunicación con lenguaje natural entre el hombre y la computadora. Eliza remeda a una terapeuta al responder preguntas con preguntas. Aquí está una conversación de un usuario con Eliza:

Karla M. Olmos Sánchez IIT/UACJ 37

Page 38: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

Usuario: ¡Hola! Tengo unas preguntas que hacerte.

Eliza: Por favor continúe.

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 están manchadas adelante.

Eliza: ¿Por qué dice que sus camisas están manchadas adelante?

Usuario: Porque es allí donde dejo regar mi jugo de tomate.

Eliza: ¿No se le ocurren otras razones?

Aunque Eliza tiene 33 años de edad, todavía puede visitarse en:

http://www-ai.ijs.si/eliza/eliza.html.

Por su parte, ALICE (Ente de Computadora de la Lingüística Artificial en Internet) es un programa un poco más sofisticado que crea la ilusión de conversación 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 más robots de charla interesantes, otros ejemplos son: BRIAN (un programa de computadora que piensa que es un estudiante universitario de 18 años), 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 búsqueda 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 más cómodo sería mandar un robot para que vaya de compras por usted. A continuación se listan algunos robots que pueden hacer cosas útiles por usted:

TracerLock. Controlan los motores de búsqueda y notifican a los usuarios por e-mail cuando aparecen nuevas páginas en Internet que contienen sus palabras claves. http://peacefire.org/tracerlock.

Reference.com. Busca información en las listas de correo y los grupos de noticias Usenet. Mandan los resultados diariamente por e-mail a múltiples usuarios. http://www.Reference.com

Karla M. Olmos Sánchez IIT/UACJ 38

Page 39: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

ITrack. Este servicio de rastreo de subasta vigila las principales subastas en línea 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 páginas Web.

Si la página cambia, el usuario recibe un e-mail con detalles.

http://www.javelink.com

NetMind. Deja rastrear cualquier página Web a cualquier nivel de detalle. Este servicio ha estado alrededor por varios años 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 cumpleaños o aniversarios. Solamente reciben un correo para recordarles del evento en la fecha que especificaron. http://www.rememberit.com

EYES. Ayuda a encontrar libros recién publicados de un tema específico.

http://www.amazon.com/exec/obidos/subst/search/eyes.html

Shopping Bots. ¿Quiere encontrar el precio más bajo sin visitar docenas de sitios de compras? Mire en más de 70 robots y agentes inteligentes que están esperando para ayudarle.

http://bots.internet.com/search/s-shop.htm.

TheTrip.com. Reciba una notificación por e-mail de las tarifas más bajas en viajes por avión a su destino. http://www.thetrip.com AdHound. Busque diariamente los clasificados de centenares de periódicos 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 más acerca de los robots, BotSpot es el lugar en donde se clasifican los robots y los agentes inteligentes por tema, con reseñas y perspectivas históricas. Quizás encontrará un robot que pueda automatizar alguna actividad en línea, lo cual se puede hacer hoy en día (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, máquinas

Karla M. Olmos Sánchez IIT/UACJ 39

Page 40: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

que hagan las actividades cotidianas de la gente? Ante esta pregunta, Jacobo Hernández comentó: "Creo que es un planteamiento que se ha hecho sobre todo en el área de robótica por muchos autores de ciencia-ficción y científicos renombrados. Sin embargo, no significa que los agentes sean la solución. Son una nueva tecnología que permitirá que muchas funciones (caseras, industriales, etcétera) se automaticen, pero esto tiene que ver más con el cómputo ubicuo".

El progreso de esta tecnología se realiza en varias partes del mundo, pero en Estados Unidos existen varios grupos de investigación, de entre los que destaca el MIT. Sin embargo, la apertura de Internet ha permitido que numerosos equipos de investigación y entusiastas cooperen para llevar esta tecnología 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 México los grupos que desarrollan esta tecnología son: LANIA, el Tecnológico de Monterrey, la Universidad Nacional Autónoma de México, el Instituto Politécnico Nacional, y la Fundación Arturo Rosenblueth.

"En el desarrollo de comunidades colaborativas en Internet, software del tipo agente inteligente se está volviendo indispensable, así lo señalan diferentes investigaciones que se realizan en México; por ejemplo, la investigación que explora la aplicación de dichos agentes en el manejo de espacios de información grandes, complejos y dinámicos, como los característicos de las enormes bibliotecas digitales distribuidas empleadas en procesos sociales de aprendizaje e investigación colaborativos a nivel global. Ejemplos de ello son los impulsados por Alfredo Sánchez y Gerardo Ayala, investigadores del Laboratorio de Tecnologías Interactivas y Cooperativas del Centro de Investigación en Tecnologías de Información y Automatización, de la Universidad de las Américas en Puebla", señala Juan José Carreón.

De alguna manera, esta tecnología complementará a los diversos sistemas de información y aplicaciones de escritorio y de Internet, por lo que su introducción 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 comercialización 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 "consumirán" los servicios provistos por los agentes.

"Los agentes son una amalgama de tecnologías 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 serán descubiertas. No obstante, esto no debe hacer creer a la gente que sus programas son inteligentes. Todavía distamos mucho de eso. Lo que sí podrá lograrse pronto es que trabajen por sí mismos, y que aprendan de sus usuarios", declara Jacobo Hernández.

Karla M. Olmos Sánchez IIT/UACJ 40

Page 41: Inteligencia Artificial e Inteligencia Natural.doc

Agentes Inteligentes

Finalmente, el investigador del departamento de Electrónica y Tecnología de los Computadores de la Universidad de Granada, apunta que "esta tecnología difícilmente se podrá convertir en un producto de consumo común, al menos en el sentido que lo es un programa como Office. Posiblemente, al generalizarse las computadoras y los teléfonos móviles, cada persona tendrá un agente que le esté informando puntualmente al móvil de lo que le interese, e incluso que estos agentes se puedan comunicar de un móvil 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 información 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 evolución de agentes; esto es, que poblaciones de agentes sean capaces de evolucionar para conseguir un fin determinado, tal como el filtrado de información".

Karla M. Olmos Sánchez IIT/UACJ 41

Page 42: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

UNIVERSIDAD AUTONOMA DE CD. JUAREZ

INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

Lectura 6: Introducción a la Redes Neuronales Artificiales

1. Objetivo de la lectura

El alumno al finalizar la lectura comprenderá el funcionamiento básico de las redes neuronales, sus aplicaciones y su historia.

2. Comentarios de la Lectura.

Las redes neuronales son un paradigma alternativo de la computación. 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 artículo se describen algunos de los eventos mas importantes en la historia de la redes neuronales y las dos corrientes filosóficas que han determinado el actual estado del arte. Se describen también algunas de sus aplicaciones y los mecanismos que permiten la capacidad de aprendizaje de una red neuronal. 3. Fuente

Hernández, A., Introducción a las Redes Neuronales Artificiales, Soluciones Avanzadas, Noviembre 1998. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001]

4. Relación con la asignatura.

Este artículo se relaciona con la unidad VI de tópicos avanzado en donde se da un panorama básico de qué son y cómo funcionan las redes neuronales artificiales

5. Evaluación de aprendizaje.

1. Lee el artículo completo 2. Investiga el significado de las siguientes palabras

a. paradigmab. alternativoc. modelosd. neuronae. factiblef. conversión

Karla M. Olmos Sánchez IIT/UACJ 42

Page 43: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

g. simulaciónh. adaptacióni. analogíaj. somak. aronl. dendritasm. plasman. filamentoso. sinapsisp. inhibirq. umbralr. sigmoides. retroalimentaciónt. infructuosou. perceptrónv. convergencia

3. Realiza un cudro sinóptico que incluya fecha, autores y hechos relevantes de la historia de las Redes Neuronales

4. Realiza un mapa conceptual de la información proporcionada en la lectura acerca de las redes neuronales.

5. Elabora tus comentarios acerca de la lectura

Karla M. Olmos Sánchez IIT/UACJ 43

Page 44: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES

Arturo Hernández Aguirre

Las redes neuronales son un paradigma alternativo de la computación. 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 artículo se describen algunos de los eventos mas importantes en la historia de la redes neuronales y las dos corrientes filosóficas que han determinado el actual estado del arte. Se describen también algunas de sus aplicaciones y los mecanismos que permiten la capacidad de aprendizaje de una red neuronal.

1. Introducción

Los tipos de problemas que pueden resolverse en una computadora digital suelen descomponerse en una serie de pasos muy específicos (el algoritmo) que se describen a la computadora usando un lenguaje de programación (el programa) el cual define la forma en que se procesarán los datos de entrada para producir los datos de salida que deseamos. Esta metodología se utiliza para resolver la mayor parte de los problemas que requieren del uso de una computadora, desde el cálculo de una simple sumatoria hasta las simulaciones más 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 difíciles (o imposibles) de describir de manera específica. Un ejemplo típico es andar en bicicleta. No importa cuántas veces nos digan cómo 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 específica los que resultan ideales para ser resueltos empleando Redes Neuronales Artificiales (RNAs).

Las RNAs son una forma alternativa de computación que, inspiradas en la actividad neuronal del cerebro humano, simulan ciertos rasgos propios de la inteligencia, principalmente la facultad de aprendizaje y adaptación.

Para facilitar la siguiente comparación entre las RNAs y una computadora digital, le llamaremos "transformación funcional" al proceso de conversión de los datos de entrada de un problema en datos de salida. En las RNAs, la "transformación funcional" es aprendida mediante un proceso de adaptación que modifica internamente a la RNA sin requerir de la intervención de un ser humano. Por su parte, cuando se emplea una computadora digital, es un ser humano el que codifica la "transformación funcional" de los datos en un programa.

Karla M. Olmos Sánchez IIT/UACJ 44

Page 45: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

Usualmente, el método de aprendizaje empleado por una RNA simula una situación maestro-alumno, donde la red (alumno) modifica sus controles (adaptación) para aprender la "transformación funcional" con la guía 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 analogía con el mundo real, existe una gran variedad de maestros, de alumnos, y de reglas de adaptación.

En este artículo se describen los paradigmas más importantes de aprendizaje, las RNAs que lo utilizan y las reglas de aprendizaje utilizadas en el proceso de adaptación. Por último, se presentan las áreas de aplicación más importantes de las RNAs y algunos de los problemas que pueden presentarse al usarlas.

2. Conceptos de la neurona cerebral

Una neurona es una célula que procesa información [3,7]. Está compuesta de un cuerpo o soma, y de dos tipos de ramificaciones: el axón y las dendritas. En el soma se localizan: el núcleo, que contiene la información hereditaria, y el plasma, que es la maquinaria molecular que produce los elementos necesarios para la vida de la célula.

La neurona recibe señales (impulsos eléctricos) provenientes de otras neuronas a través de sus dendritas (receptores) y transmite señales generadas por el cuerpo de la célula por medio del axón (transmisor), el cual se ramifica varias veces hasta convertirse en pequeños filamentos. En las terminales de estos filamentos se encuentran las sinapsis. Una sinapsis es una estructura elemental de pseudocontacto (sin contacto físico), entre el axón y la dendrita de dos neuronas. Cuando un impulso llega a la terminal de la sinapsis se liberan varias sustancias químicas llamadas neurotransmisores. Éstas se difunden en el espacio de la sinapsis para permitir o inhibir, dependiendo del tipo de sinapsis, la emisión 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 señales pasan a través 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 información, y posiblemente es responsable de la memoria humana.

La corteza cerebral del ser humano es como una sábana plana, de entre 2 y 3 milímetros 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 duración. El "mensaje" es modulado en la frecuencia de transmisión 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 percepción, como el reconocimiento de un rostro, en unos cuantos cientos de milisegundos. Se sabe también que el cerebro no utiliza más de 100 etapas de cálculo, lo que significa que el cerebro

Karla M. Olmos Sánchez IIT/UACJ 45

Page 46: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

"corre" programas en paralelo de unas 100 instrucciones de largo para realizar una operación de reconocimiento, y dada la tremenda rapidez con que se realiza la tarea, resulta obvio que los algoritmos que el cerebro utiliza son mucho más complejos y eficientes que aquellos que la ciencia moderna ha podido producir. Además, la cantidad de información enviada de una neurona a otra es muy pequeña, lo que implica que la información crítica no se transmite directamente, sino que ésta es capturada y distribuída 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 más elementales de la neurona biológica y sin embargo, los resultados que se han logrado hasta ahora con este modelo son tan prometedores que actualmente se realiza extensa investigación 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 círculo, que se denomina nodo, celda, o neurona artificial. La sinapsis de la neurona biológica se representa mediante una conexión que entra a un nodo, y se indica con una flecha. La eficiencia de la sinapsis se modela mediante un número real (positivo, negativo o cero), que recibe el nombre de factor de conexión o peso. El axón se representa con una flecha saliendo del nodo. El número que acompaña a esta flecha modela el impulso eléctrico producido durante el disparo de la neurona. Para determinarlo, el nodo aplica una función no lineal, denominada función del nodo, sobre la suma total de los valores de entrada multiplicados por el peso particular de la conexión. Esta función puede diseñarse de tal forma que produzca resultados estrictamente binarios. Por ejemplo, una función Heaviside (función 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 sólo el disparo) de la neurona biológica, como la sigmoide (literalmente, en forma de "S") y la tangente hiperbólica.

Figura 1. La neurona artificial y tres posibles funciones del nodo

4. Historia de las redes neuronales artificiales

Hemos dicho antes que las RNAs están inspiradas biológicamente, es decir, que buscan reproducir las funciones de la neurona cerebral. En esta sección relataremos también cómo un segundo paradigma, fundamentado en la cibernética, tomó su propia línea de investigación 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 año 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 construyéndose, se hablaba de la fabricación de "gigantescos cerebros mecánicos" y se especulaba con la idea de crear máquinas inteligentes [4]. En el medio flotaban los primeros resultados de Rashevsky [15], quien recién había descrito matemáticamente ciertos procesos biológicos, particularmente los relacionados con la fisiología neuronal. La figura estelar la ocupaba, sin embargo, el

Karla M. Olmos Sánchez IIT/UACJ 46

Page 47: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

prodigioso matemático Norbert Wiener, quien en su libro Cibernética [22] establecería la teoría matemática de los procesos retroalimentados, y reconocería que la idea central en ellos es la información. Wiener [22] especulaba que todo comportamiento inteligente es, esencialmente, producto de mecanismos retroalimentados.

No debe extrañarnos entonces que MyP [10] emplearan en gran medida el concepto de "ciclos de retroalimentación" (a los que llamaron círculos), para obtener sus resultados. La contribución de MyP es muy importante porque muestra, mediante un riguroso análisis matemático, cómo las neuronas interconectadas entre sí, transmitiendo impulsos eléctricos, pueden desarrollar operaciones lógicas. Es decir, por primera vez se vislumbraba un modelo matemático que podía explicar la capacidad de computación del cerebro humano. Una segunda contribución de MyP es la definición de las características de las neuronas que emplearon en su trabajo (llamadas desde entonces "neuronas de MyP").

MyP compararon también las semejanzas en la capacidad de computación entre el cerebro y la máquina de Turing. Desafortunadamente, estas comparaciones dieron la falsa impresión de que el cerebro humano funcionaba como una computadora digital, y peor aún, que sólo bastarían computadoras más grandes y rápidas para construir verdaderos cerebros pensantes.

MyP aclararon esta situación en más de una ocasión. En el Coloquio Internacional "Las máquinas de calcular y el pensamiento humano", celebrado en París en 1951 [1], MyP comenzaron la presentación de su trabajo "Una comparación entre las máquinas de calcular y el cerebro humano" estipulando: "El hecho de tener en el nombre del coloquio las expresiones ‘máquinas de calcular’ y ‘pensamiento humano’ juntas, nos inquieta. Los cerebros son 'máquinas' que calculan, pero las máquinas 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ó rápidamente por todo el mundo.

En 1949, sólo 6 años después de que MyP habían mostrado cómo las RNAs podrían computar, el fisiólogo Donald O. Hebb, sugirió cómo podrían aprender. En su libro The Organization of Behavior (La Organización del Comportamiento), Hebb [5] sostuvo que las conexiones entre las neuronas cambian conforme el cerebro aprende nuevas actividades. Fundamentalmente, Hebb describió el fenómeno como sigue [5] : "si dos neuronas participan repetidamente en cierta actividad cerebral, entonces su interconexión se fortalece".

Esta idea es fundamental para las RNAs de nuestros días, pero 7 años después de ser publicada por Hebb, todavía no era muy claro cómo debía emplearse en la práctica. 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 había sugerido. La simulación funcionaba incorrectamente cuando el fortalecimiento de las conexiones crecía sin límite, así que optaron por mantener constante la suma total de los valores sinápticos (los pesos), que se tenía en el sistema en cualquier momento dado. Esto significa que

Karla M. Olmos Sánchez IIT/UACJ 47

Page 48: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

cuando una interconexión se veía incrementada, otra más era decrementada, a fin de mantener balanceado el sistema. Esta ingeniosa solución logra resultados similares a los que se producen al emplear una función sigmoide (ver Figura 1).

Figura 2. Esquema del perceptrón 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 automático de un avión B-24, 300 bulbos y otros circuitos, construyeron la SNARC (Stochastic Neural-Analog Reinforcement Computer), la cual consistía de 40 neuronas artificiales que simulaban el cerebro de una rata buscando el camino de salida de un laberinto [2]. El papel del piloto automático 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 técnico, pero no aportó nada particularmente interesante o útil a la teoría del procesamiento de información utilizando RNAs. Prueba de ello es que cuando se realizó la ahora célebre conferencia que vio nacer a la Inteligencia Artificial en el Dartmouth College, en el verano de 1956, sólo el equipo integrado por Herbert Simon y Alan Newell pudo mostrar resultados concretos [2].

Poco después de esta conferencia, Frank Rosenblatt dio a conocer (en 1958), la primera red neuronal que produciría resultados prácticos: el Perceptrón. Primero como un modelo simulado en una IBM 704, y después construída y bautizada con el nombre de Mark I, el perceptrón consistía de un conjunto de 512 unidades de asociación (neuronas tipo MyP), que recibían información del exterior a través de un conjunto de unidades sensoras (fotoceldas), colocadas en un arreglo matricial de 20x20 denominado retina. Los resultados del perceptrón se desplegaban sobre otro conjunto llamado unidad de respuestas o activación (veáse la Figura 2). Una demostración usual del perceptrón consistía en la identificación 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 perceptrón había terminado, comenzaba la etapa de reconocimiento de la letras. Una pequeña lámpara se encendía, iluminando la letra correspondiente sobre la unidad de respuestas.

Rosenblatt no pudo contener su entusiasmo, y comenzó a atribuirle sofisticadas cualidades al perceptrón, a pesar de que ninguna de ellas era comprobable. Con el título "¿Serán reemplazados los cerebros humanos?", la prestigiosa revista Science reportó el invento diciendo: "... no es una mente mecánica ordinaria que almacena información 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 perceptrón, el cual establece que "si un problema tiene solución usando el perceptrón, el algoritmo de entrenamiento garantiza que ésta se encontrará". Pero lo que preocupaba a Frank Rosenblatt era explicar por qué había problemas (algunos de ellos muy simples) en los que fallaba el perceptrón, y cuál era realmente su funcionamiento interno.

Figura 3. Esquema de la Adaline de Widrow

Karla M. Olmos Sánchez IIT/UACJ 48

Page 49: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

Otros investigadores diseñaron 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 diseño de un filtro. Widrow conocía el procedimiento ideado por Norbert Wiener para hallar la solución óptima del filtro, pero sabía que éste requería del conocimiento de la estadística del ruido que se deseaba eliminar, y de un elevado número de muestras de la señal, ya que el filtro funciona mejor con un mayor número de muestras. Lo que Widrow buscaba era un mecanismo capaz de aproximar la solución de Wiener sin disponer de información previa; es decir, que el mecanismo se "adaptara" a un cierto patrón de entrada. La solución de Widrow-Hoff se basó en el concepto de retroalimentación 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: "adaptación es un proceso de retroalimentación multidimensional" [19,20]. La Adaline constaba sólamente de una neurona, aunque luego se construyó también una versión con múltiples neuronas llamada Madaline (veáse la Figura 3).

Conceptualmente no hay diferencia entre el perceptrón y la Adaline. Al igual que Rosenblatt, Widrow demostró la convergencia del método de aprendizaje de la Adaline, pero análogamente, falló también en su intento por explicar por qué ésta no podía 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 biología, en su intento por encontrar una forma de relacionar la psicología con la estructura neuronal del cerebro. Widrow tenía tras de sí la fuerte corriente de la Ingeniería Cibernética impulsada por Wiener. Rosenblatt no pensaba que el cerebro calculara funciones lógicas, sino más bien que éste descubría cómo conectar dos estímulos del mundo exterior mediante un "aprendizaje asociativo". Para Rosenblatt [16], el cerebro y el perceptrón estaban diseñados para crear categorías.

Durante la década de los 60's floreció la investigación sobre RNAs. El libro de Nils Nilsson [14] resume en gran parte el trabajo realizado hasta este período. Rosenblatt todavía trataba de resolver el problema del perceptrón cuando su ex-compañero de clases de la preparatoria, Marvin Minsky, apareció de nuevo en escena. Minsky terminó su doctorado en matemáticas en la Universidad de Princeton en 1954, escribiendo posíblemente la primera disertación 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 Computación: Máquinas Finitas e Infinitas, que era ciertamente posible efectuar procesos computacionales con las RNAs. Sin embargo, Minsky veía a Rosenblatt con enfado. Años después confesaría: "estaba irritado con los excesos de Rosenblatt y la forma en que éste entretenía a la gente con las falsas expectativas del perceptrón" [8].

De tal forma, no debiera resultar sorprendente la despiadada crítica que el libro Perceptrons [13] hizo del modelo de Rosenblatt. Utilizando un OR-exclusivo, Minsky y Papert demostraron que las capacidades de clasificación del perceptrón simple (de una sola neurona) eran ínfimas, pues éste no era capaz de aprender correctamente esta sencilla función Booleana. Desafortunadamente, a partir de este ejemplo, Minsky y Papert se aventuraron a comentar, sin probarlo, que una capa más de neuronas no sería la solución para clasificar correctamente aquellos patrones que a la Mark I, con sus 512 nodos, le

Karla M. Olmos Sánchez IIT/UACJ 49

Page 50: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

resultaba imposible de clasificar. Aunque el tiempo mostraría más tarde que esta aseveración era errónea, el desconocimiento de un algoritmo que permitiera entrenar un perceptrón con más de una capa de nodos sólo empeoró aún más las cosas.

Resulta difícil poder evaluar el papel histórico de Perceptrons en nuestros días, pues si bien sirvió para fundamentar varios aspectos de las RNAs que se habían enunciado informalmente hasta entonces, su devastadora conclusión 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 investigación en esta disciplina durante 20 años.

En otros países del mundo el efecto de Perceptrons fue mucho menor. Sobresalen en este período el trabajo de Teuvo Kohonen, de la Universidad de Helsinky, sobre memoria asociativa y auto-organización de redes neuronales; Kunihiko Fukushima, de los Laboratorios NHK en Tokio, sobre redes especializadas para el reconocimiento de caracteres: el cognitrón y el neocognitrón; y James Anderson, de la Universidad de Brown, Stephen Grossberg y Gail Carpenter, de la Universidad de Boston, quienes desde la década de los 70's han realizaron importantes contribuciones derivadas de la neurona biológica [6], a pesar de no haber contado con suficiente apoyo financiero para su investigación durante un largo tiempo.

Entre 1983 y 1986, un físico del Instituto de Tecnología de California llamado John Hopfield se convirtió en un factor clave para persuadir a cientos de científicos de todo el mundo a continuar la investigación en RNAs. Sin embargo, el problema del perceptrón no se podía pasar por alto. Fueron Rumelhart, Hinton y Williams [18] quienes vislumbraron un método general de entrenamiento para un perceptrón con más de una capa de neuronas. Irónicamente, el algoritmo se conocía desde 1969 y fue "re-descubierto" en más de una ocasión. Este algoritmo, llamado retropropagación, marcó el renacimiento de las redes neuronales.

4. Aplicaciones de las Redes Neuronales

Los problemas donde las RNAs se aplican tienen algo en común: son difíciles de describir cuantitativamente y usualmente sólo se dispone de información parcial sobre ellos. Algunas de sus principales áreas de aplicación son las siguientes:

a) Clasificación. 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 aplicación importante consiste en el análisis de señales de sonar y radar para determinar el contenido de petróleo en el sub-estrato terrestre.

b) Aglomeramiento. En este caso el objetivo es agrupar objetos o patrones que son similares entre sí. Mediante un parámetro de similitud la RNA crea los grupos. El número de grupos identificados es variable dependiendo del grado de sensibilidad del parámetro de similitud. Un ejemplo de esta área es la compresión de datos.

Karla M. Olmos Sánchez IIT/UACJ 50

Page 51: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

c) Aproximación de funciones. El objetivo es que la RNA aprenda o construya una función 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 científicos y de ingeniería que requieren de la aproximación de funciones.

d) Predicción y pronóstico. 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 predicción de valores futuros de la bolsa de valores y el pronóstico del clima.

e) Sistemas de control. Un control se utiliza para modificar a discreción la relación entrada-salida de un proceso. Cuando esta relación es difícil 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 gráficamente las aplicaciones antes descritas.

Figura 4. Aplicaciones de las redes neuronales. 1) clasificación, 2) aglomeramiento,

3) aproximación de funciones, 4) predicción y pronóstico, 5) sistemas de control

5. Arquitectura de redes neuronales artificiales

Hemos dicho en una sección previa que la conexión entre dos neuronas se representa mediante una flecha. La arquitectura (o topología) de una RNA se define a través de los patrones genéricos que siguen las flechas. De tal forma, existen dos categorías: 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 perceptrón de múltiples capas es el miembro de la familia de las redes sin retroalimentación de uso más general y diverso. Algo más restringido es el espectro actual de aplicación 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 métodos básicos de aprendizaje:

a) Aprendizaje supervisado o aprendizaje con un maestro. Se proporcionan a la red los datos correctos de salida para cada patrón de entrada. La red inicia un proceso de entrenamiento en el que los valores de los pesos son ajustados siguiendo una regla de aprendizaje específica. En cada aproximación (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 clasificación son usualmente entrenadas con aprendizaje supervisado.

b) Aprendizaje no supervisado o aprendizaje sin maestro. La red no requiere aprender una respuesta correcta para cada patrón de entrada. Analizando la estructura de los datos, la RNA agrupa los patrones en diferentes categorías o clases. Las RNAs usadas en

Karla M. Olmos Sánchez IIT/UACJ 51

Page 52: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

aplicaciones de aglomeramiento son usualmente entrenadas con aprendizaje no supervisado.

c) Aprendizaje híbrido. Se aplica usualmente a RNAs cuya estructura consiste de dos o más 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 función de base radial. Aunque su arquitectura es homogénea y similar a la del perceptrón de múltiples capas, el algoritmo de entrenamiento se considera híbrido porque consiste de dos partes completamente disímiles.

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 básicas:

a) Reglas de corrección 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 retropropagación empleado para entrenar el perceptrón de múltiples 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 corrección 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 sólo la neurona ganadora está activa y es la única que consigue tener sus pesos actualizados. Este fenómeno se conoce como el ganador toma todo. En estas reglas se modifican los pesos en forma proporcional a la diferencia entre el patrón de entrada y la suma de los pesos de la neurona ganadora. Con ésto se consigue que el patrón almacenado en la neurona ganadora (los pesos) se acerque al patrón 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 conexión entre dos neuronas que participan en la misma actividad. El algoritmo ideado por Rosenblatt para entrenar el perceptrón está basado en esta regla.

d) Regla de aprendizaje de Boltzmann. Con base en principios de termodinámica estadística, una RNA tiene un cierto nivel de energía proporcional a sus pesos, llamado equilibrio térmico. El aprendizaje consiste en reforzar los pesos de la red cuando existe alta probabilidad de que éstos participen en la generación de un patrón de salida.

Karla M. Olmos Sánchez IIT/UACJ 52

Page 53: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

8. El Perceptrón, la Adaline y Separabilidad Lineal

Cuando son usados para clasificación, el perceptrón y la Adaline producen resultados prácticamente idénticos. Ambas redes son no recurrentes, de una sola capa (en el diseño original) y sus algoritmos de entrenamiento supervisado son muy similares aunque existe una ligera diferencia: al perceptrón se le actualizan los pesos sólo cuando comete un error en la clasificación de un patrón, 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 perceptrón, mientras que la Adaline usa la regla de corrección de error. Rosenblatt [16] define el perceptrón como una máquina que aprende, mediante ejemplos, a clasificar diferentes patrones de entrada. Para Widrow, la Adaline es un sistema de clasificación que, mediante la modificación de los pesos, busca disminuir el error cuadrático medio. El perceptrón busca disminuir el número de clasificaciones incorrectas; la Adaline siempre busca disminuir el error cometido en la clasificación. Para disminuir el error, la regla de reducción de error se implementa mediante una estrategia de gradiente descendente. De aquí que, a diferencia del perceptrón, la Adaline pueda ser usada para aproximación de funciones. Ya entrenada, la funcionalidad de la Adaline es idéntica al método que en estadística se conoce como regresión lineal [11].

La separabilidad lineal de dos patrones de entrada se realiza colocando una línea recta entre ellos dos, separando a todos los elementos de cada patrón (en el caso de dos dimensiones). La Figura 5 muestra ejemplos de clases linealmente separables y linealmente no separables por un perceptrón simple.

Figura 5. Separabilidad de dos clases por medio de un perceptrón 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 perceptrón. Los pesos encontrados son +1 para la primera entrada y -1 para la segunda.

Figura 6. Clasificación de dos patrones por medio de un perceptrón simple

Con estos pesos, el perceptrón de un nodo clasifica correctamente las dos clases, particionando el espacio en dos regiones de decisión. Cuando la complejidad de los patrones a clasificar aumenta, se debe de incrementar el número de nodos del perceptrón para aumentar su capacidad de clasificación (recordemos que la Mark I usaba 512 nodos para clasificar las letras del alfabeto). Aún así, no todos los problemas de clasificación pueden resolverse mediante la separación lineal de las clases, esto es, mediante un perceptrón con una sola capa.

9. Redes No Recurrentes. El perceptrón de mútiples capas

Karla M. Olmos Sánchez IIT/UACJ 53

Page 54: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

Una de las RNAs más estudiadas y mejor entendidas es el perceptrón de múltiples capas (PMC). Esta red tiene dos características muy importantes: primero, es un aproximador universal, es decir, tiene la capacidad de aproximar cualquier función analítica. Segundo, puede formar regiones de clasificación cuyos contornos son extremadamente complejos. Usualmente un PMC de dos capas resuelve la mayoría de los problemas, pero es común 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 creación de regiones de decisión se ilustra en la figura 7 [9].

El PMC es una red no recurrente que se entrena con el algoritmo de retropropagación basado en la regla de corrección de error. Esencialmente consiste de dos etapas: primero, se calcula la salida correspondiente a un patrón 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; después, 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 computación y su capacidad universal para aproximar funciones, pero no sabemos con certeza de qué es capaz cada configuración (con diferente cantidad de nodos y capas). Los problemas que a continuación se enlistan son típicos del PMC y comunes en casi todas las RNAs [11]:

a) Tamaño de la muestra. Una red aprende su función o actividad específica mediante el entrenamiento basado en las muestras de entrada-salida obtenidas del problema. Sin embargo, información duplicada o irrelevante sólo prolonga el tiempo requerido para lograr el aprendizaje de los pesos. Entonces, ¿cuántos elementos debe de tener el conjunto de datos con el que se va a entrenar una red?

b) Tamaño de la red. Sabemos que el PMC es un aproximador universal pero desconocemos la topología específica que se requiere para resolver cierto problema. Es decir, ¿cuántas capas de nodos debe de tener una red? Y, ¿cuántos 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 solución. Es decir, ¿qué conjunto de pesos es el más convenientes para comenzar el entrenamiento?

Figura 7. Intepretación geométrica de la funcionalidad de la capa escondida

Se conocen gran cantidad de heurísticas y resultados teóricos (de problemas muy particulares) para determinar estas variables. Por ejemplo, se recomienda que el número de patrones de entrenamiento sea de aproximadamente 10 veces el número de pesos de la red. En cuanto al número de capas, se sabe (teóricamente) que el PMC de una sola capa escondida es suficiente para resolver cualquier problema, aunque no se sabe cuántos nodos se requieren. Para inicializar los pesos de un PMC que usa la función sigmoide o la

Karla M. Olmos Sánchez IIT/UACJ 54

Page 55: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

tangente hiperbólica, la recomendación más usual es generar los pesos aleatoriamente en el rango de -1.0 a +1.0, alejados de la zona de saturación de la función (los extremos de ésta). Con esto se garantiza la máxima variabilidad de los pesos al iniciar el entrenamiento.

Pese a que la investigación ha progresado en esta dirección, en la gran mayoría de las aplicaciones del PMC se procede mediante ensayo y error para determinar sus parámetros más adecuados.

Una de las deficiencias mas criticadas del PMC es la lenta velocidad de convergencia de su algoritmo de aprendizaje (retropropagación). Esto se debe en gran medida a que los pesos son ajustados con cada patrón de la muestra de entrenamiento, y a que la estructura de la red es estática. Pero si la red "creciera al aprender", esto es, que su estructura creciera dinámicamente de acuerdo a las circunstancias particulares de cada problema, entonces evitaríamos el dimensionamiento a priori de la red y el excesivo trabajo de cómputo que implica entrenar nodos superfluos, o peor aún, el entrenar una red que no podría encontrar nunca una solución. El algorítmo llamado cascade correlation (correlación-cascada) está dirigido a resolver la mencionada deficiencia del PMC. El entrenamiento se inicia con una estructura mínima 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 sólo las recién agregadas son entrenadas.

10. La Inspiración Biológica en el Aprendizaje

El PMC es finalmente una red creada con la misma inspiración cibernético-ingenieril que predomina en la Adaline de Widrow. Sus neuronas son inspiradas biológicamente, pero se requiere de una buena dosis de matemáticas para entender el aprendizaje supervisado. Además, 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 biológicos 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, situación que es imposible de modelar con un PMC. Rosenblatt tenía razón en su búsqueda. Cómo es posible aprender un nuevo concepto sin olvidar los que ya sabemos? Y cómo 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 adaptación (modificación) ante nuevos conceptos; estabilidad es la habilidad de no modificarse ante conceptos irrelevantes. En 1987, Carpenter y Grossberg [21] presentaron su Teoría de la Resonancia Adaptiva (ART, por sus siglas en inglés), dirigida a resolver este dilema. Una red ART está esencialmente diseñada para resolver problemas de reconocimiento de patrones mediante aglomeramiento o cúmulos de conceptos similares (veáse sección 4). Aqui la plasticidad consiste en aprender a formar nuevos conglomerados con nuevos patrones, si no hay cúmulos dónde asignarlos. La estabilidad ocurre cuando el cúmulo ya existe y el nuevo patrón debe ser asignado a éste.

Karla M. Olmos Sánchez IIT/UACJ 55

Page 56: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

El algoritmo de entrenamiento de una red ART está basado en una simple ecuación diferencial que modela la memoria de largo plazo a través de los componentes sinapticos de la neurona biológica.

Conclusiones

En este artículo se ha tratado de proporcionar un panorama general de las redes neuronales artificiales, analizando las dos corrientes más importantes en la actualidad (la de Rosenblatt y la de Widrow) desde una perspectiva histórica. Conforme a la escuela del primero, la neurona biológica es estudiada detenidamente para reproducir sus funciones y eventualmente construir una "máquina pensante". La escuela de Widrow se ha apartado de este movimiento y busca aplicar y diseñar RNAs cuyo funcionamiento está ya muy lejos de ser inspirado biológicamente pero que producen resultados prácticos de alta calidad.

Hemos visto también cuáles son los paradigmas principales de aprendizaje de las RNAs, así como sus aplicaciones más comunes. Es importante hacer notar que como técnica heurística, las RNAs son entrenadas en vez de ser programadas. Las RNAs aprenden a partir de muestras, lo cual les permite desarrollar fácilmente tareas que con dificultad sabríamos cómo programar en una computadora digital. Sin embargo, aprender en base a muestras también es una debilidad. La inmensa mayoría de las RNAs todavía se diseñan mediante ensayo y error, y debido su naturaleza heurística, actúan 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 científicos que trabajan con técnicas clásicas de Inteligencia Artificial (la llamada escuela "simbólica), que argumentan que una técnica que funciona pero sin que sepamos por qué es tan buena como una que no funciona.

Mucho queda todavía por explorar en esta disciplina, e indudablemente son muchas las incógnitas aún por despejar a fin de hacer más sencillo el uso de esta técnica 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].

Bibliografía

[1] Les Machines à Calculer et la Pensée Humaine. Editions du Centre National de la Recherche Scientifique, XXXVII, París, 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 Sánchez IIT/UACJ 56

Page 57: Inteligencia Artificial e Inteligencia Natural.doc

Introducción a las Redes Neuronales Artificales

[5] Hebb, D. O. The Organization of Behavior. Capítulo 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 Sánchez IIT/UACJ 57

Page 58: Inteligencia Artificial e Inteligencia Natural.doc

Introducción 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 Self-Organizing Neural Network. Computer. No. 3. March, 1988

Karla M. Olmos Sánchez IIT/UACJ 58

Page 59: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

UNIVERSIDAD AUTONOMA DE CD. JUAREZ INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

Lectura 7: Avances y perspectivas del Procesamiento Automático 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 investigación.

2. Comentarios de la Lectura.

En este artículo, se hablará de cómo las computadoras nos pueden ayudar a los seres humanos en nuestra ocupación principal: pensar y comunicar. ¿Qué es el procesamiento automático de textos? ¿Para qué sirve? ¿Es simple? ¿Es posible? ¿Cuál es su futuro y qué se está haciendo al respecto?

3. Fuente.

Gelbukh, A., Bolshakov, I., Avances y perspectivas de Procesamiento Automático de Lenguaje Natural, IPN Ciencia, Arte: Cultura, Mayo 2000. < http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001]

4. Relación con la asignatura.

Se recomienda que este artículo se lea en la unidad V de Tópicos Selectos.

5. Evaluación de aprendizaje.

6. Lee el artículo completo 7. Investiga el significado de las siguientes palabras

a. inferenciab. métodoc. lingüísticad. gramáticae. relativof. leibleg. ambiguoh. inconsistentei. coherencia

Karla M. Olmos Sánchez IIT/UACJ 59

Page 60: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

j. interfacesk. parser

8. Realiza un mapa conceptual de la información proporcionada en la lectura acerca del procesamiento automático del lenguaje natural.

9. Elabora tus comentarios acerca de la lectura

Karla M. Olmos Sánchez IIT/UACJ 60

Page 61: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

AVANCES Y PERSPECTIVAS DE PROCESAMIENTO AUTOMÁTICO DE LENGUAJE NATURAL

Alexander Gelbukh e Igor Bolshakov

Cuento de una Máquina Parlante

En los cuentos para niños 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 artículo, hablaremos de cómo las computadoras nos pueden ayudar a los seres humanos en nuestra ocupación principal: pensar y comunicar. ¿Qué es el procesamiento automático de textos? ¿Para qué sirve? ¿Es simple? ¿Es posible? ¿Cuál es su futuro y qué se está haciendo al respecto?

El tesoro más valioso de la raza humana es el conocimiento, es decir, la información. Existen en el mundo volúmenes inmensos de información en forma de lenguaje natural: los libros, los periódicos, los informes técnicos, etcétera. Pero la posesión verdadera de este tesoro implica la habilidad de hacer ciertas operaciones con la información:

* Buscar la información necesaria,

* Comparar las fuentes diferentes, y hacer inferencias lógicas y conclusiones,

* Manejar los textos, por ejemplo, traducirlos a otros idiomas.

En realidad, las computadoras son más capaces de procesar la información que las personas. Es más grande el volumen que un individuo puede leer en su vida. A base de ésta, pueden hacer inferencias lógicas tomando en cuenta más hechos y fuentes.

Todo parece estar preparado para el uso de las computadoras para procesar volúmenes grandes de información: los métodos lógicos ya son muy fuertes, los procesadores muy rápidos, muchos textos ya están 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 información útil para el razonamiento lógico.

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 Sánchez IIT/UACJ 61

Page 62: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

formalización; más adelante vamos a hablar de algunos problemas en este camino. Pero si es tan largo el camino, ¿existe una razón práctica para trabajar en esta área ahora? Sí, existe, porque con cada paso obtenemos las herramientas que ya tienen gran valor práctico, que ayudan en nuestras tareas cotidianas.

1. TAREAS Y APLICACIONES DE PROCESAMIENTO DE LENGUAJE NATURAL

¿Para qué sirve el procesamiento automático de lenguaje natural? En la práctica, se puede emplear en un rango muy amplio de tareas, desde las más simples a las muy complejas. Las primeras ya se pueden hacer con el estado actual de la ciencia, aunque no perfectamente, mientras que las más complejas son las metas a alcanzar en el futuro. Sin embargo, las simples también aprovechan los avances de la ciencia, como vamos a ver más adelante.

Con cada una de estas tareas, mencionaremos sus problemas lingüísticos, es decir, en qué puede aprovechar el avance de la ciencia y la tecnología.

1.1 Ayuda en Preparación de Textos

Este tipo de aplicaciones es conocido hoy en día 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í, sólo nos interesan las que emplean el procesamiento complejo de texto y requieren conocimiento lingüístico.

Guiones: La tarea de determinar los lugares donde las palabras se pueden romper para empezar una nueva línea es una de las más simples en procesamiento de textos. Por ejemplo, se puede romper la palabra como mara-villoso o maravillo-so, pero no maravil-loso o maravillos-o.

A pesar de ser un problema simple, a veces requiere una información bastante profunda. Por ejemplo, se debe saber cuáles son el prefijo y la raíz 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. También se debe saber la estructura del documento ya que quizás no se deben usar guiones en los títulos y encabezados.

Ortografía: La tarea de averiguar si una palabra está escrita correctamente o con un error ortográfico es un poco más difícil 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 inteligentísimas, satisfechos, piensen, etcétera

Pero para detectar los errores de ortografía 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 Sánchez IIT/UACJ 62

Page 63: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático 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.

Gramática: Los correctores de gramática detectan las estructuras incorrectas en las oraciones, aunque todas las palabras en la oración estén bien escritas en el sentido de que son palabras legales en el idioma, por ejemplo: Quiero que viene mañana. El maestro de matemáticas, se fue. Me gusta la idea ir a Europa. Fuera magnífico si él venía 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 difícil. Para describir las estructuras de las oraciones en el idioma, se usan las llamadas gramáticas formales – los conjuntos de reglas de combinación de palabras y su orden relativo en las oraciones.

Estilo: Una tarea ya más complicada es detectar los problemas en el texto, es decir que las palabras estén correctamente escritas y las oraciones bien estructuradas, pero que es poco leíble, ambiguo, mal estructurado, inconsistente en el uso de palabras de diferentes estilos. Por ejemplo, el texto científico no debe usar las palabras de jerga; una carta a un amigo no debe usar las oraciones muy largas, profundamente estructuradas, con muchas palabras científicas.

Un ejemplo de una oración ambigua es «Detectar los errores en el texto con estructuras complejas»: sería 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 través de las estructuras complejas los errores en el texto». Para este tipo de procesamiento, en ciertas circunstancias hay que emplear un análisis bastante profundo.

Hechos y coherencia lógica: Probablemente en el futuro los correctores de texto serán capaces de encontrar los errores en los textos como éstos: «Cuando voy a Inglaterra, quiero visitar París, la capital de este país». «Primero vino Pedro y después 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 todavía crear herramientas de este tipo suficientemente desarrolladas para ser útiles en la práctica.

1.2 Búsqueda y Minería de Texto

La búsqueda y el uso de la información contenida en el texto es una de las aplicaciones principales del análisis de texto. Éstas varían desde las herramientas de búsqueda 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.

Búsqueda de documentos: Los motores de búsqueda permiten encontrar en un montón de documentos aquellos que satisfagan una necesidad del usuario descrita en su petición. En el caso simple, la petición 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 análisis bastante complejo: los documentos que contienen las palabras futuras, piensan y probablemente pensador y pensamiento también

Karla M. Olmos Sánchez IIT/UACJ 63

Page 64: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

son relevantes. Si el usuario indica que necesita los documentos que dicen sobre la acción «pensar en futuro», entonces el documento que contiene la frase como «piensan en las futuras aplicaciones» probablemente es relevante, mientras que «en el futuro próximo voy a pensarlo» probablemente no lo es. Para hacer esta decisión es necesario un análisis profundo del texto.

Además de los problemas lingüísticos, la búsqueda eficaz de documentos depende de las soluciones técnicas. 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 representación corta, simple y formal de los documentos. La representación de este índice, el tipo de información incluida en él y los métodos matemáticos que se emplean en la búsqueda 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 podría desear directamente hacer su pregunta a la computadora: «¿Cómo se llama la reina de España?» Por supuesto se espere que la computadora encuentre en todos los artículos de periódicos la información sobre el rey de España, detecte cuáles de éstos tratan del último rey, y dónde se dice como se llama su esposa. Los sistemas de razonamiento lógico ya son capaces de este tipo de inferencia, pero el estado actual de la ciencia lingüística no es suficiente bueno para la realización de semejantes sistemas a gran escala.

Extracción de información: Lo que es más práctico 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 periódicos, compilar una base de datos de las compras y ventas de compañías, o de los precios de abarrotes en las diferentes ciudades del país, etcétera. Claro está que para esta tarea es necesario cierto entendimiento del lenguaje.

Minería de texto: La minería 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, etcétera. Es una área emergente, y muy interesante, del procesamiento de texto y minería de datos.

Por ejemplo, con los métodos de minería de texto, a partir de los textos de periódicos mexicanos encontrados en Internet, se podría investigar preguntas como las siguientes: ¿Es la opinión promedio en la sociedad sobre el asunto del FOBAPROA positiva o negativa?, ¿Aumenta o disminuye el interés en este asunto en los últimos meses? ¿Hay diferencias en la actitud hacia este asunto en el D.F. y en Monterrey? ¿Cómo la noticia de privatización de la industria eléctrica afecta el interés social hacia el FOBAPROA? 8.

Las tareas de este tipo necesitan un grado de comprensión de texto, aunque en muchos casos basta con una comprensión parcial, de algunos pedazos de las oraciones.

Karla M. Olmos Sánchez IIT/UACJ 64

Page 65: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

1.3 Comprensión del Lenguaje

La comprensión verdadera del texto es, en cierto sentido, la tarea final de la ciencia del análisis de texto. ¿Qué es comprensión? ¿Cómo podemos averiguar si una computadora comprende un texto? Hay varias opiniones, pero parece que la opinión más común entre la gente técnica es la siguiente: comprensión de texto es la transformación del mismo a una representación formal, ya sea a una red de conceptos y sus relaciones, o a un conjunto de predicados lógicos, etcétera. Como se discutirá más adelante, esta representación formal luego puede ser usada por los sistemas existentes de razonamiento lógico para contestar preguntas, compilar resúmenes, etcétera.

En el presente estado del arte, los resultados prácticos en comprensión de texto son relativamente modestos, pero hay gran avance en los sistemas de laboratorio, el esfuerzo principal en lingüística computacional está dirigido a esta tarea global.

1.4 Interfaces en Lenguaje Natural

Tradicionalmente, las personas manejan las computadoras con lenguajes especiales –lenguajes de programación– que son entendibles para las computadoras, pero... ¡no para las personas! Cada uno de nosotros tiene que aprender un idioma extranjero más el idioma de las computadoras. No es cómodo, no es fácil de aprender, la educación computacional cuesta mucho dinero, pero es el único modo para comunicarse con las esas máquinas.

Ahora llegó el tiempo para que las computadoras aprendan nuestro lenguaje humano. Esto permitirá usarlas a la mayoría de la gente no especialista. Además, es más simple enseñarle a una sola computadora nuestro idioma y copiar el programa a todas las computadoras, que enseñar a todas las personas como usar las computadoras. También habilita a usar los medios de comunicación más comunes, por ejemplo, el teléfono, para usar los sistemas de información.

Los sistemas de interface en lenguaje natural tienen una historia de más de treinta años, pero sólo ahora, con los avances tanto en modelos de diálogo como en reconocimiento de voz, se hizo posible construir los sistemas que se usan en la práctica, 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 geométricas sobre una mesa, mientras que en el sistema TRAINS se trata del horario de trenes y planificación de las rutas de ferrocarriles.

El propósito del sistema es el uso en las centrales de información: la gente podrá llamar al sistema por teléfono y preguntar sobre cómo ir de Nueva York a Los Angeles, cuáles clases de trenes hay, dónde comprar los boletos, etcétera.

Evidentemente, los sistemas de interface se van a desarrollar muy rápido y probablemente las computadoras del futuro próximo serán manejadas más con la voz que con el teclado y el ratón.

Karla M. Olmos Sánchez IIT/UACJ 65

Page 66: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

1.5 Traducción Automática

En los últimos años, la calidad de la traducción automática ha mejorado dramáticamente. En el caso ideal, el traducir un texto consiste en entender este texto –en el sentido de transformarlo en una representación formal– y luego generar el texto, según 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 automáticos entienden algunas partes del texto, más grandes o más pequeñas, 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 revés, para traducir el texto Juan le dio a María un pastel. Lo comió, hay que elegir entre las variantes He ate it, She ate it, It ate him, She ate him, etcétera.

1.6 Procesamiento de Voz

¿De qué fuente viene la información para el procesamiento de lenguaje natural?

Anteriormente, hablamos de la información en lenguaje natural y del texto como si fueran conceptos sinónimos: el conocimiento es algo escrito en un libro o archivo, no es algo hablado, ¿verdad? En la etapa contemporánea de la civilización sí, así es, pero no por la naturaleza del lenguaje. El modo más natural de comunicación 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 información: buscarla y compararla. También, la voz representa más información que el texto escrito: con entonaciones de la voz expresamos el énfasis, propósitos, relaciones lógicas que se pierden en el texto.

Hoy en día en los sistemas prácticos para los usuarios generales, cada vez más se utiliza la fuente alternativa de información: la voz. A pesar de los grandes problemas técnicos 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 través de teléfono. Si en el futuro remoto será fácil buscar y manejar la información en forma de lenguaje hablado, ¿quién sabe si los libros de aquel tiempo no serán dispositivos que nos contarán con la voz su contenido?

Karla M. Olmos Sánchez IIT/UACJ 66

Page 67: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

1.7 Generación de Texto

¿Cómo puede la computadora comunicarle al usuario sus opiniones o pedirle información?

El complemento natural a la capacidad de entender el lenguaje es el segundo componente de la comunicación, que es la capacidad de producir el texto o bien el habla. En cierto grado es una tarea más simple que la comprensión, ya que por lo menos la computadora puede elegir las expresiones que sabe producir.

Uno podría pensar que para la generación de texto sólo es suficiente saber las reglas de gramática, es decir, saber palabras de cuales números, tiempos y géneros hay que usar en la oración y en que orden ponerlas. Sin embargo, hay algunos problemas en la generación 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 métodos 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 oración y en qué otras es entendible para el lector. Esto se refiere a los métodos de la nombrada planificación textual.

1.8 Conducción de Diálogo

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 conversación no hablamos con los textos, es decir, con los párrafos, capítulos y documentos. Lo hacemos con réplicas cortas, la mayoría de la información omitida es clara en el contexto previo, en la situación, en las acciones de los participantes y en el conocimiento general sobre estos tipos de situaciones. Un diálogo en una cafetería podría ser: «¿De manzana?» – «Piña.» – «¡Por favor!» – «¿Este?» – «El otro.» – «Dos pesos más.» Claro que entender este tipo de conversación y participar en ella es una tarea muy diferente, y por supuesto más difícil, que entender un artículo con la introducción, definiciones de los términos y un flujo lógico de las ideas.

2 PROBLEMAS DE PROCESAMIENTO DE LENGUAJE NATURAL

Ya hemos visto que el procesamiento automático de lenguaje natural tiene gran importancia y utilidad. Entonces ¿por qué no se ha hecho? ¿Cuáles problemas existen en esta área? ¿Cómo se abordan?

Karla M. Olmos Sánchez IIT/UACJ 67

Page 68: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

2.1 Niveles de Lenguaje y Estructura del Procesador Lingüístico

El propósito 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 sólo podemos decir un sonido, una letra. Entonces, el trabajo del lenguaje es codificar el conocimiento multidimensional en una cadena de letras, y después, en el cerebro del escuchante o el lector, decodificar esta secuencia en el conocimiento original, como se muestra en la Ilustración 1.

El lenguaje es una estructura muy compleja. Afortunadamente, el codificador y decodificador funcionan en pasos, construyendo las estructuras más complejas de ladrillos más simples:

* Palabras de letras,

* Oraciones de palabras,

* Textos de oraciones.

Como ya hemos mencionado, un programa para análisis automático de textos desempeña un papel semejante: traduce el texto a las estructuras lógicas o bien formales. Semejante programa puede modelar, en cierto grado, el efecto del procesamiento de texto en el cerebro humano –no su estructura física y los procesos físico-químicos que acompañan la actividad del cerebro-, sino la lógica de su procesamiento de texto y conocimiento.

Un programa que traduce el texto a la representación lógica y viceversa, se llama procesador lingüístico. El procesador lingüístico no hace razonamiento lógico alguno, no busca información, no maneja las bases de datos; sólo traduce la información entre la representación textual y la representación formal equivalente, para que los programas de razonamiento, los sistemas expertos, etcétera, hagan todas las operaciones lógicas mencionadas.

La estructura del lenguaje se refleja en la estructura del procesador lingüístico. Tradicionalmente se considera dividido en módulos independientes:

* El módulo morfológico reconoce las palabras y las convierte de cadenas de letras a números en el diccionario y a marcas de tiempo, género, número, etcétera. Toma como entrada el texto y pasa su salida –representación morfológica– al módulo siguiente.

* El módulo sintáctico reconoce las oraciones y las convierte de cadenas de palabras marcadas a las estructuras gráficas de oraciones, con las marcas de sujeto, objeto, etcétera y las relaciones entre las palabras en la oración. Toma como entrada la representación morfológica y pasa su salida –representación sintáctica– al módulo siguiente.

Karla M. Olmos Sánchez IIT/UACJ 68

Page 69: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

* Los módulos semántico y pragmático reconocen la estructura completa del texto y lo convierten a una red semántica.

Resuelven las relaciones entre los pronombres y sus antecedentes, restauran los sujetos cero, etcétera, reconocen las intenciones del autor. Toman como entrada la representación sintáctica y generan la salida del procesador lingüístico.

En cada paso existen problemas técnicos y teóricos, algunos ya resueltos en cierto grado y algunos por resolver en el transcurso del desarrollo de la ciencia.

2.2 El Problema de Ambigüedad

Uno de los problemas más grave es la ambigüedad del texto: un pedazo del texto puede tener más de una interpretación. Se presenta a menudo en casi cada oración. Aquí están unos ejemplos de la ambigüedad léxica, es decir, de palabras: habla, aviso – ¿verbo o sustantivo? hablamos – ¿presente o pasado? Aquí está un ejemplo de ambigüedad sintáctica, es decir, de la estructura de la oración: Veo al gato con el telescopio. – ¿'uso telescopio para ver al gato' o 'veo al gato que tiene el telescopio'? En casi cada oración que tiene una preposición se presenta la ambigüedad de este tipo: no es claro si la preposición está ligada con el verbo, con el objeto o con el adjetivo, etcétera.

En cierto grado podemos decir que el problema principal del análisis automático de texto es resolver las ambigüedades. 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 resolución de ambigüedades es proporcional a la información disponible, de varias naturalezas y desde varias fuentes 9.

2.3 Complejidad del Conocimiento Lingüístico

Hay dos tipos de conocimiento necesario para el reconocimiento de las estructuras en el texto y para la resolución de sus ambigüedades: el conocimiento general y el conocimiento léxico. El conocimiento general son los algoritmos y las gramáticas, es decir, lo que se aplica a todo el lenguaje, a cualquier oración o texto. Gramáticas detalladas y algoritmos muy sofisticados, con una profunda base matemática pueden mejorar mucho la eficiencia de análisis de texto. Pero aunque los buenos algoritmos pueden aumentar la rapidez del proceso, en pocos casos pueden ellos mejorar la calidad de los resultados. Jamás un algoritmo astuto podrá entender el lenguaje sin un inmenso conocimiento sobre las palabras individuales.

El conocimiento léxico es específico para cada palabra o a veces para grupos de palabras. Dependiendo de la calidad de análisis necesario, se puede requerir mucha información: cómo se conjuga la palabra, qué significa y qué relaciones impide a otras palabras en la oración, qué preposiciones usa para marcar sus objetos, cuáles palabras se emplean para expresar los sentidos como 'muy', 'hacer', 'resultado', etcétera. La mayoría de esta información es específica para cada idioma: por ejemplo, casarse en español requiere la preposición con, en inglés el equivalente de a, en ruso de sobre; papel (rol) en español usa desempeñar para expresar el sentido de 'hacer', y en inglés el equivalente de jugar.

Karla M. Olmos Sánchez IIT/UACJ 69

Page 70: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

Uno de los problemas contemporáneos del procesamiento de texto es que la cantidad del conocimiento léxico necesario es tan inmensa que resulta muy difícil alcanzar el grado necesario de conocimiento en un sistema específico. La compilación, ya sea manual o semiautomática, de los diccionarios de varios tipos –morfológicos, sintácticos, semánticos– es una de las más importantes tareas de hoy en la lingüística 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 método de aprendizaje semiautomático de éstos a partir de los textos nos acerca a la tarea final.

2.4 Conocimiento Extralingüístico

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 información necesaria para entenderlo, sino que omite muchas ideas obvias, las cuáles se pueden simplemente restaurar por el humano que escucha... pero no por la computadora.

Consideremos una analogía. Cuando explicamos a alguien cómo ir al Metro, le decimos algo como esto: «Del Angel vas por Reforma, dos paradas en la dirección 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 cómo llegar allá, ni siquiera cómo usar los peseros, cómo se ven, dónde subir, ni que hay que pagar y cuánto? Ésta es la situación de las computadoras: son extranjeras en nuestro mundo, no saben cómo usarlo, cómo 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 línea 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 típicas. Estos diccionarios serán mucho más grandes de lo que hablamos en la sección anterior y su compilación es una tarea a largo plazo, aunque ya existen unos diccionarios de este tipo. Como una alternativa posible, se pueden desarrollar métodos de aprendizaje semiautomático de esta cantidad enorme de conocimiento a partir de grandes colecciones de textos.

Karla M. Olmos Sánchez IIT/UACJ 70

Page 71: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

3 PROCESAMIENTO DE LENGUAJE NATURAL EN EL CIC

En 1996, el Director del Centro de Investigación en Computación, el doctor Guzmán 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 teórica como práctica. El procesamiento de lenguaje natural se usa para tomar decisiones económicas, para buscar e intercambiar el conocimiento tecnológico, en toda clase de tareas de publicación y uso de documentos, libros, periódicos. Los países que disponen de buenas herramientas para el análisis y generación de texto tienen en nuestro mundo competitivo una gran ventaja económica, tecnológica y quizás militar sobre los demás países. Desgraciadamente, ahora la mayoría de las investigaciones y el esfuerzo práctico en el mundo, en el área de la lingüística computacional está orientada al inglés.

El Sistema Text Classifier.

La tarea de nuestro laboratorio es compilar los recursos –las gramáticas y sobre todo los diccionarios– que facilitan el procesamiento de texto en español y desarrollar los sistemas para la búsqueda, clasificación y comprensión de documentos escritos en este idioma. A continuación mencionamos algunos de los programas desarrollados recientemente en el laboratorio.

3.2 Hallando los Temas Principales del Documento

Uno de los primeros pasos para clasificación, búsqueda y comprensión de documentos es determinar de qué temas trata un documento dado. En la Ilustración 2 se muestra el sistema desarrollado según las ideas del doctor Guzmán Arenas, que usa un diccionario jerárquico para hallar los temas principales del documento, para comparar los documentos con un aspecto temático, y para buscar los documentos por sus temas 1, 2.

3.3 Análisis Sintáctico Conducido por un Diccionario de Subcategorización

El análisis sintáctico es el núcleo de los sistemas contemporáneos de análisis de texto. En la Ilustración 3 se muestra el analizador sintáctico para el español desarrollado en nuestro laboratorio. Una de las líneas de investigación es la compilación de un diccionario grande del uso de las preposiciones (y de algunas características de las palabras) para resolver las ambigüedades sintácticas 5, 6, 7. Esta línea de investigación incluye también otros varios métodos de estimación de las variantes de la estructura sintáctica, tal como el uso de un diccionario semántico grande, con el fin de elegir las variantes más probables 4.

El Sistema Text Recognizer.

Karla M. Olmos Sánchez IIT/UACJ 71

Page 72: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

3.4 Clasificación e Investigación de Conjuntos de Documentos

El otro sistema que se está desarrollando en el laboratorio es un conjunto de herramientas para la investigación de colecciones de documentos de forma tanto automática como semiautomática. Para la segunda se usa la representación gráfica del conjunto de documentos.

4 EL FUTURO DEL PROCESAMIENTO AUTOMÁTICO DE LENGUAJE NATURAL

Ya hay mucho avance en el área de procesamiento automático de lenguaje natural. ¿Cuáles son las líneas de su desarrollo en el futuro? ¿Cuál es su papel en la tecnología del futuro?

4.1 Semántica y Pragmática

Hoy en día, la rama de la lingüística computacional que se desarrolla más dinámicamente es la sintaxis. Creemos que en el futuro próximo el énfasis se moverá a la teoría de semántica y pragmática del texto. La primera estudia el significado del texto y desarrolla los métodos para formar este significado a través de una serie de representaciones sintácticas de las oraciones.

La segunda estudia cómo las intenciones del autor del texto están expresadas en el texto. Cuando uno en la mesa hace la pregunta «¿Me podría pasar la sal?», la respuesta «Sí, soy capaz técnicamente de pasarle la sal.» no es la debida ¿Cómo puede la computadora saber la intención o la necesidad del usuario en los casos donde no están muy claramente y directamente expresadas en el texto? Esto es la materia de la pragmática.

4.2 Lingüística de Texto

Se considera la ciencia del siglo veintiuno la lingüística de texto. Ésta estudia los medios de conexión de las oraciones en un flujo integral de texto. ¿Cómo están expresadas las ideas cuando están divididas entre varias oraciones? ¿Cómo las personas saben en qué pedazos hay que dividir una idea compleja para expresarla en oraciones distintas, porque no la expresan en una sola oración larguísima? ¿Cómo reunir estos pedazos del sentido para restaurar el sentido original? Esto es la materia de la lingüística de texto, la ciencia lingüística de este siglo.

4.3 Hablar es: Saber más Pensar

Ahora bien, si desarrollamos todos los diccionarios, las gramáticas, los algoritmos lingüísticos – ¿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 síntesis 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 ocupación principal de la raza humana, pensar y comunicar.

Karla M. Olmos Sánchez IIT/UACJ 72

Page 73: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

4.4 Las Computadoras Hablan con Nosotros

La tarea final de lingüística 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, también necesita entenderlas y afectarlas... pero en este caso, a través 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 máquinas sin aprender manejarlas, regularlas y programarlas. Es mucho más barato desarrollar una, aunque sea muy compleja, y copiar su programa a millones de las máquinas iguales a ésta, que educar a millones de personas cómo programar una simple.

Para la ciencia, el desarrollo de los robots autónomos permitirá verificar las teorías de lenguaje en su funcionamiento real, observando cómo los programas que entienden y producen el lenguaje logran sus tareas, en qué situaciones tienen problemas y cómo las resuelven.

4.5 Las Computadoras Hablan... ¡Entre Sí!

De todo lo que hemos hablado, produce la impresión 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 español, inglés o el que sea– sólo porque somos demasiado perezosos para aprender su lenguaje: Java o C++. ¿Acaso así es? ¿Sólo nuestro lenguaje es bueno para las criaturas de proteínas y no es útil para todos los demás?

Miremos al desarrollo de programación en su retrospectiva. Con cada nuevo paradigma de programación, del ensamblador, a través de la programación estructural y hasta la programación orientada a objetos, los programas o partes de los mismos, fueron cada vez más autónomos, aislados, mientras sus interfaces se hicieron cada vez más desarrolladas y complejas. Un objeto complejo en C++ ya tiene una interfaz semejante a un lenguaje, y el uso del objeto parece a un diálogo con él. El siguiente paso en el desarrollo de los métodos de programación es el emergente paradigma de programación orientada a agentes.

Un agente es parecido a un objeto, pero en lugar de muchos órdenes (métodos) de un objeto, tiene sólo una entrada –entiende un mensaje en un lenguaje especial, y sólo tiene una salida –puede enviar mensajes a otros agentes. Éste permite mucho más flexibilidad en la comunicación con/entre los agentes que los órdenes de formato fijo de los objetos.

Ahora bien, como los agentes típicamente son programas muy complejos, algunos de éstos se desarrollan por equipos grandes de programadores y lo que es más importante, equipos diferentes. Para que los agentes comuniquen, requieren usar el mismo lenguaje. Entonces, se necesita un estándar para el lenguaje de comunicación entre los objetos –un estándar fijo, exacto, rígido, para todas las tareas que los agentes hacen o van a hacer en el futuro-. ¿Ya es un círculo vicioso: buscamos la flexibilidad y llegamos a un estándar fijo, por supuesto

Karla M. Olmos Sánchez IIT/UACJ 73

Page 74: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

muy complejo, que, además, todos los equipos que desarrollan los objetos lo deben aprender? Pero ya contamos con un lenguaje muy flexible (aunque complejo), especialmente bueno para la comunicación en las situaciones complejas y –lo mejor– ya conocido por todos los desarrolladores: el lenguaje natural. Por eso hay mucho interés entre los científicos de la ciencia de computación y los programadores prácticos al lenguaje natural, en primer lugar, a su semántica y las ontologías de las palabras10. Probablemente en el futuro, aunque no muy próximo, las computadoras lo van a hablar entre sí.

5 CONCLUSIONES

El procesamiento de lenguaje natural es difícil, pero es posible y tiene una gran importancia para los países hispanohablantes en nuestro mundo competitivo, en la época de la información. Es un área de la ciencia que se desarrolla dinámicamente, con grandes inversiones, con miles de investigadores involucrados en los países industriales, en primer lugar, en los Estados Unidos y en la Comunidad Europea.

Ahora en el Politécnico, en el CIC, se conduce investigación en la lingüística computacional en el Laboratorio de Lenguaje Natural y Procesamiento de Texto. Los investigadores de este Laboratorio usted los puede contactar en la siguiente dirección electrónica: [email protected].

*Profesores Investigadores del Laboratorio de Lenguaje Natural, Centro de Investigación en Computación, Instituto Politécnico Nacional.

[email protected]

Bibliografía

1. Adolfo Guzmán-Arenas. Hallando los temas principales en un artículo en español. Soluciones Avanzadas. Vol. 5, No. 45, p.

58, No. 49, p. 66, 1997.

2. Adolfo Guzmán-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 Computación, November 11 - 13, 1998, México D.F., pp. 383 - 395.

4. Alexander Gelbukh. Using a semantic network for lexical and syntactic disambiguation. Proc. of Simposium Internacional de Computación: Nuevas Aplicaciones e Innovaciones Tecnológicas en Computación, November 1997, México.

Karla M. Olmos Sánchez IIT/UACJ 74

Page 75: Inteligencia Artificial e Inteligencia Natural.doc

Avances y Perspectivas del Procesamiento Automático de Lenguaje Natural

5. A.Gelbukh, I. Bolshakov, S. Galicia-Haro. Statistics of parsing errors can help syntactic disambiguation. CIC-98 - Simposium Internacional de Computación, November 11 - 13, 1998, México 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 Tecnológicas en Computación, Simposium Internacional de Computación, 12-14 de noviembre, pp. 367 - 371, 1997, CIC, IPN, México D.F.

7. I. A. Bolshakov, A. Gelbukh, S. Galicia Haro, M. Orozco Guzmán. Government patterns of 670 Spanish verbs. Technical report. CIC, IPN, 1998.

8. Manuel Montes y Gómez, Aurelio López López, 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, México D.F., pp. 78 - 89.

10. Adolfo Guzmán Arenas. Colaboración Dirigida entre Agentes con Propósito. Memorias del Congreso Internacional de Computación CIC-99, CIC, IPN, 1999, México.

Karla M. Olmos Sánchez IIT/UACJ 75

Page 76: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

UNIVERSIDAD AUTONOMA DE CD. JUAREZ

INSTITUTO DE INGENIERÍA Y TECNOLOGÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y COMPUTACIÓN

Lectura 8: La programación lógica 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 artículo, se explica a grandes rasgos el funcionamiento de Prolog y la lógica de Primer Orden que es en lo que se basa el lenguaje, además de explicar la regla de resolución.

3. Fuente

Gelbukh, A., Bolshakov, I., Avances y perspectivas de Procesamiento Automático de Lenguaje Natural, IPN Ciencia, Arte: Cultura, Mayo 2000 < <http://zeus.infolatina.com.mx/universidad/index.cgi> [Junio 2001

4. Relación con la asignatura

Este artículo se relaciona con la unidad VI (Lenguaje Prolog).

5. Evaluación de aprendizaje.

1. Lee el artículo completo 2. Investiga el significado de las siguientes palabras

a. teoremab. intérprete (Computación)c. formalismod. somerae. resoluciónf. relegadosg. inferenciah. demostración (lógica)i. claúsulas (Lógica)j. reducción al absurdo (Lógica)

Karla M. Olmos Sánchez IIT/UACJ 76

Page 77: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

k. relegadosl. axiomas (Lógica)m. cuantificador (Lógica)n. disyunción o. acotadap. contradicciónq. unificaciónr. sustitución

3. Realiza un mapa conceptual de la información proporcionada en la lectura acerca del lenguaje Prolog.

4. Investiga en otras 3 fuentes bibliográficas información sobre Prolog5. Realiza tus comentarios tomando en cuenta las diferentes especificaciones de Prolog

según las fuentes bibliográficas que investigaste

Karla M. Olmos Sánchez IIT/UACJ 77

Page 78: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

LA PROGRAMACIÓN LÓGICA Y EL PROLOG

Cristina Loyo Varela

Laboratorio Nacional de Informática Avanzada, LANIA

Olga M. Padrón Pérez

Universidad de la Habana, Cuba

Resumen Una de las preocupaciones más tempranas de la computación de los años cincuenta fue la posibilidad de hacer programas que llevaran a cabo demostraciones automáticas de teoremas. Así empezaron los primeros trabajos de inteligencia artificial que más de veinte años después dieron lugar al primer lenguaje de programación que contempla, como parte del intérprete, los mecanismo de inferencia necesarios para la demostración automática. Este primer lenguaje está basado en el formalismo matemático de la Lógica de Primer Orden y ha dado inicio a un nuevo y activo campo de investigación entre las matemáticas y la computación que se ha denominado la Programación Lógica. Se intenta en este artículo presentar las bases conceptuales de este tipo de programación y una somera descripción del funcionamiento del lenguaje PROLOG.

Introducción

La Programación Lógica tiene sus orígenes más cercanos en los trabajos de prueba automática de teoremas de los años sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llama resolución, mediante la cual la demostración de un teorema puede ser llevada a cabo de manera automática [1].

La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de Predicados de Primer Orden, llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia se lleva a cabo por reducción al absurdo.

Otros trabajos importantes de esa época que influyeron en la programación lógica, fueron los de Loveland [2], Kowalski [3] y Green [4]. Este último, por ejemplo, diseña un probador de teoremas que extrae de la prueba el valor de las variables para las cuales el teorema es válido.

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 investigación en el campo de la Inteligencia Artificial [5].

Karla M. Olmos Sánchez IIT/UACJ 78

Page 79: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

Actualmente, la programación lógica ha despertado un creciente interés que va mucho más allá del campo de la Inteligencia Artificial (IA) y sus aplicaciones. Los japoneses, con sus proyecto de máquinas de la quinta generación, dieron un gran impulso a este paradigma de programación. Sin embargo, antes que ellos existían ya en Estados Unidos y en Europa grupos de investigación en este campo, en países como Inglaterra, Holanda, Suecia y, desde luego, Francia.

La Lógica de Primer Orden y la lógica de PROLOG

La Lógica de Primer Orden, es uno de los formalismos más utilizados para representar conocimiento en IA. La Lógica cuenta con un lenguaje formal mediante el cual es posible representar fórmulas llamadas axiomas, que permiten describir fragmentos del conocimiento y, además, consta de un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento.

El Alfabeto del Lenguaje de la Lógica de Primer Orden contiene dos tipos de símbolos:

a) Símbolos lógicos, entre los que se encuentran:

- los símbolos de constantes proposicionales: true y false

- los símbolos de operadores proposicionales como la negación (), la conjunción (), disyunción () y las implicaciones (=>, <=)

- los símbolos de operadores de cuantificación como el cuantificador universal () que significa para toda y el cuantificador existencial () que significa existe

- los símbolos auxiliares de escritura como corchetes [], paréntesis () y coma ","

b) Símbolos no lógicos, agrupados en:

- el conjunto de símbolos constantes

- el conjunto de símbolos de variables individuales

- el conjunto de símbolos de funciones n-arias

- el conjunto de símbolos de relaciones n-arias.

A partir de estos símbolos se construyen las expresiones válidas en el Lenguaje de Primer Orden: los términos y las fórmulas.

Un término es cualquiera de las tres expresiones siguientes:

- una constante

Karla M. Olmos Sánchez IIT/UACJ 79

Page 80: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

- una variable

- una expresión de la forma f(t1,...,tn) donde "f" es un símbolo de función n-aria y t1,...,tn son términos.

Ejemplos de términos constantes son el número 100; la palabra alfredo y la letra c; X, Y son variables; y f(100,X), padre(Y), sucesor(X) son funciones.

Las fórmulas atómicas o elementales son expresiones de la forma:

R(t1,...,tn)

donde R es un símbolo de relación n-aria y t1,...,tn son términos.

Ejemplo de fórmula atómica es:

recibe(maria,beso)

en donde recibe es un símbolo de relación binaria (recibe/2) y, maria y beso son términos constantes. La fórmula 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 María, representada por la constante maria.

A partir de estas fórmulas es posible construir otras más 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 fórmulas 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 fórmula 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 fórmulas en la Lógica de Primer Orden pueden generarse haciendo uso de las siguientes reglas de formación de fórmulas:

Karla M. Olmos Sánchez IIT/UACJ 80

Page 81: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

1)Toda fórmula elemental es una fórmula

2)Si A es una fórmula, entonces A es una fórmula

3)Si A y B son fórmulas, entonces (AB), (A B), (A=>B), (A<=B) son fórmulas

4)Si A es una fórmula 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 fórmulas.

El Lenguaje de Primer Orden posee un amplio poder de expresión, los términos permiten nombrar los objetos del universo, mientras que las fórmulas permiten afirmar o negar propiedades de éstos o bien establecen las relaciones entre los objetos del universo.

La Programación Lógica utiliza la Lógica de Primer Orden como lenguaje de programación [6,7,8]. PROLOG es lenguaje basado en la PL [9,10,11] y aunque toma su nombre de este término ("PROgramming in LOGic"), no abarca toda la riqueza de la Lógica de Primer Orden para resolver problemas, pues está restringido al uso de cierta clase de fórmulas denominadas cláusulas definidas o cláusulas de Horn.

Una cláusula se definen en general como una disyunción de fórmulas atómicas y fórmulas atómicas negadas, en donde toda variable que aparezca en la disyunción está acotada por un cuantificador universal. Ejemplo de cláusulas generales son las siguientes fórmulas:

(X) positivo(X)

(X,Y) [amigo(X,Y) enemigo(X,Y) conoce(X,Y)]

Las cláusulas definidas son cláusulas que tienen, a lo sumo una fórmula no negada dentro de la disyunción. Es decir, tienen la forma:

A B1...Bn (1)

en donde A, B1, ..., Bn son fórmulas atómicas.

En los ejemplos anteriores, la fórmula:

(X,Y) [amigo(X,Y) enemigo(X,Y) conoce(X,Y)]

no es una cláusula definida porque tiene dos fórmulas atómicas no negadas. Mientras que la fórmula:

(X) [recetar(X,aspirina) tiene(X,fiebre) tiene(X,cefalea)] (2)

sí es una cláusula definida.

Karla M. Olmos Sánchez IIT/UACJ 81

Page 82: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

Dado que todas las cláusulas definidas están cuantificadas universalmente para todas sus variables, omitiremos de ahora en adelante el cuantificador.

Veamos ahora cómo haciendo uso de equivalencias conocidas de la Lógica de Primer Orden, la fórmula (1) puede transformarse en una fórmula equivalente y rescribirse como:

A <= B1... Bn (3)

Por lo tanto la fórmula (2) es equivalente a:

recetar(X,aspirina) <= tiene(X,fiebre) tiene(X,cefalea)

Utilicemos ahora una variante de la notación en donde el símbolo "<=" es sustituido por el símbolo ":-" y la conjunción "" por la coma. Entonces (3) pueden rescribirse como:

A :- B1,..., Bn. (4)

a la cual se denomina claúsula de programa. En esta cláusula A se denomina cabeza de la cláusula y B1,..., Bn son el cuerpo de la misma.

Igualmente la cláusula (2) puede rescribirse como cláusula de programa de la siguiente forma:

recetar(X,aspirina) :- tiene(X,fiebre) tiene(X,cefalea).

Veamos ahora las tres formas distintas que una cláusula 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 cláusulas sin cuerpo, o sea la afirmación de una fórmula atómica, la cual es incondicionalmente verdadera.

Si n>0 entonces (4) se denomina regla. Las reglas tienen como cabeza o consecuente una fórmula atómica que se establecerá como verdadera si el cuerpo de la cláusula es verdadero.

Si n>0 y falta la cabeza de la cláusula, entonces (4) se dice que es una meta o el objetivo a alcanzar.

Ejemplo de Hecho: tiene(olga, fiebre).

Karla M. Olmos Sánchez IIT/UACJ 82

Page 83: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

Ejemplo de Regla: recetar(x,aspirina):-tiene(x,fiebre),tiene(x,cefalea).

Ejemplo de Meta: :- tiene(olga,fiebre).

La cláusula sin cabeza y sin cuerpo se denomina cláusula vacía, y se denota como . PROLOG distingue la cláusula vacía como un tipo especial de cláusula que denota una contradicción lógica.

Nótese que no toda cláusula puede ser escrita como cláusula de programa. Por ejemplo, la cláusula:

animal(X)perro(X)gato(X)

derivada de la fórmula lógica:

animal(X)perro(X)gato(X)

no puede transformarse en una cláusula de programa pues no es del tipo definida, ya que tiene dos fórmulas atómicas no negadas en la disyunción y más de un consecuente.

Los programas en PROLOG

Un programa lógico está formado por un conjunto finito de cláusulas 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 cláusulas de programa, la primera un hecho que define la relación madre/2 y la segunda una regla que define la relación 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 cláusulas de programa, las tres primeras son hechos que definen la relación padre/2 y la cuarta una regla que define la relación abuelo/2. Nótese el uso de las

Karla M. Olmos Sánchez IIT/UACJ 83

Page 84: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

variables X,Y y Z en esta cláusula, las cuales permiten definir de manera general en PROLOG la relación "ser abuelo de", pues la lectura declarativa de dicha cláusula 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 cláusulas de programa que definen la relación miembro/2, que es la relación de pertenencia de un elemento a un conjunto. En este programa se hace uso de un tipo de término muy importante en PROLOG, la lista, que permiten representar una secuencia ordenada de términos PROLOG cualesquiera, utilizando la notación: [t1,...,tn] donde t1,...,tn son términos. Si algún término de la lista es variable entonces estamos en presencia de una lista patrón, la cual representa muchas listas.

Una lista patrón muy importante en la programación lógica es:

[X|Y]

en donde X es el primer elemento o término 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 más elementos.

Luego, en el programa P3, la primera cláusula es un hecho que establece que "X es miembro de toda lista donde X ocurra como primer elemento" y la segunda cláusula 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 intérprete del lenguaje utilizando su mecanismo de inferencia interno, el cual determina si el objetivo es una consecuencia lógica del programa, aplicando reglas de deducción, y así se obtiene la respuesta. Los objetivos o metas se utilizan para extraer información de un programa lógico.

Supongamos que el problema que queremos resolver a partir del programa P1 es saber si María es madre de Olga. Luego, la meta u objetivo a determinar o alcanzar es:

Karla M. Olmos Sánchez IIT/UACJ 84

Page 85: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

:- madre(maria, olga).

Nótese que en las cláusulas de programa los nombres son representados por símbolos constantes, que deben escribirse con una secuencia de letras que inicia con minúsculas.

Para hablar de que una cláusula C es consecuencia lógica de un conjunto de cláusulas S, será necesario probar que existe una deducción lógica de C a partir del conjunto S. Una forma de demostrar esto es por reducción al absurdo, es decir, suponer que el conjunto formado por S y C es válido, y generar a partir de él una contradicción lógica (la cláusula vacía en Programación Lógica). De esta forma se podrá afirmar que C sí es consecuencia lógica de S.

El método de deducción utilizado por PROLOG, para dar respuesta a los objetivos, se basa en el uso de una única regla de inferencia: el Principio de Resolución [1]. Los primeros trabajos de prueba automática de teoremas utilizaban la resolución, aplicada a cláusulas cualesquiera. El problema de las deducciones con cláusulas generales es el número 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 Resolución-SLD, la cual se aplica a cláusulas definidas. Veamos ahora en qué consiste esta regla utilizada por PROLOG:

La Resolución-SLD, en su forma más simple, se aplica a una meta u objetivo de la forma :-A y una cláusula 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 claúsula de programa a las que se les aplica la resolución se les llama cláusulas padres. Y al proceso de aplicar la resolución a dos cláusulas se le llama resolver y se muestra en la figura 1.

Si aplicamos la resolución a una meta y al mismo hecho no negado, como en la figura 2, se infiere como resolvente la cláusula vacía [ ], que es la contradicción buscada y por tanto, se puede afirmar que se cumple A.

Si aplicamos la resolución 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 computación de una meta M a partir de un programa P en PROLOG, es entonces generar la cláusula vacía a partir de M y P.

Luego, a partir del programa P1, visto anteriormente, y la meta :- hija(olga,maria), el intérprete de PROLOG realiza, como se muestra en la figura 4, el proceso de deducción aplicando resolución-SLD.

En el primer paso, la resolución se aplica a la meta inicial y la regla que define la relación recibe/2, obteniéndose como resolvente una nueva meta, a la que se le aplica nuevamente la resolución con el hecho madre(maria,olga), obteniéndose la cláusula vacía y así queda

Karla M. Olmos Sánchez IIT/UACJ 85

Page 86: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

demostrado que hija(olga,maria) es una consecuencia lógica del programa P1, aunque explícitamente no aparezca como un hecho dentro del programa.

Las sustituciones y unificaciones

No siempre las cláusulas de programas están libres de variables. Por ejemplo, en el programa P2 la regla que define la relación 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 específicos a las variables X y Y de la regla. Si les damos valores X=luis y Y=jose, obtendríamos 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 deducción continúa 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, obteniéndose finalmente la cláusula vacía y con ello la demostración de la meta inicial :- abuelo(luis,jose).

El mecanismo deductivo que ejecuta el intérprete de Prolog, basado en la resolución-SLD, va realizando las sustituciones, de variables por términos, que se requieran en cada paso de resolución. En la figura 5 se muestra el árbol de deducción de la meta :-abuelo(luis,jose) a partir del programa P2, haciendo uso de la resolución-SLD, note que en cada paso se especifica la sustitución realizada. En el último paso no fue necesario aplicar ninguna sustitución, en este caso se dice que la sustitución utilizada es la vacía.

Formalmente una sustitución es un conjunto finito de asignaciones, en donde a cada variable se le asigna, de manera única, un término. Una sustitución tiene la siguiente forma:

={X1/t1,...,Xn/tn}

donde Xi/ti indica el reemplazo de la variable Xi por el término ti y todas las Xi son distintas entre sí.

Ejemplo de sustitución:

={X/luis,Y/jose,Z/miguel}

Karla M. Olmos Sánchez IIT/UACJ 86

Page 87: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

Cuando aplicamos una sustitución a una expresión cualquiera, obtenemos una nueva expresión, llamada instancia o ejemplo de sustitución de la expresión original y en esta instancia, en lugar de las variables Xi de , aparecerán los correspondientes términos ti (véase el ejemplo en la figura 6).

La sustitución vacía se denota por {} y a cualquier fórmula 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 expresión, llamada instancia común, mediante la aplicación de una sustitución. A dicha sustitución se le llama unificador de ambas expresiones. En el ejemplo anterior, la sustitución ={X/luis,Y/jose}, es un unificador de abuelo(luis,jose) y abuelo(X,Y), pues se tiene que aplicada a ambas cláusulas:

abuelo(luis,jose) {X/luis,Y/jose} = abuelo(X,Y) {X/luis,Y/jose}

genera cláusulas idénticas:

abuelo(luis,jose) = abuelo(luis,jose)

El concepto de unificación es de extraordinaria importancia en PROLOG, pues realmente en cada paso de resolución-SLD lo que se hace es buscar el unificador más general (aquel unificador que hace el menor número de sustituciones de variables por términos) que permite igualar el objetivo a probar con la cabeza de alguna cláusula de programa, para entonces obtener el resolvente o nuevo objetivo a probar.

En la figura 7 se ilustra el árbol de deducción que genera el intérprete de PROLOG para deducir o probar el objetivo :-miembro(1,[2,1,4]). a partir del programa P3. En cada paso de resolución-SLD se especifica el unificador más general encontrado. Además, las claúsulas de programa que participan en la resolución, realmente son variantes de las cláusulas del programa original, cuyas variables han sido renombradas.

La resolución es un mecanismo de demostración poderoso que permite extraer, a partir de un programa, toda la información que puede deducirse como consecuencia lógica de ese programa. Luego, a partir del programa P3, además 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 cláusulas y sustituciones indicadas en la tabla 1.

Variantes de cláusulas de programas Unificadores más 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 Sánchez IIT/UACJ 87

Page 88: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica y el Prolog

miembro(X21,Y21).

C12: miembro(X12,[X12|Y12]). 12={X21/1, X12/1, Y12/[ ]}

Tabla 1 Más información sobre la Programación Lógica y el lenguaje Prolog puede consultarse [12] y [13].

Conclusiones

Prolog resultó un avance decisivo en la Programación Lógica, por ser el primer lenguaje operativo del área. Sin embargo, Prolog no resuelve todos los problemas inherentes a este paradigma. Como hemos visto, las cláusulas definidas no abarcan todo el poder expresivo de la Lógica de Primer Orden y, por otro lado, el manejo de la negación no es totalmente satisfactorio, los algoritmos de unificación de la mayoría de los intérpretes no hacen chequeo de ocurrencia, lo que puede generar una iteración infinita del intérprete 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 múltiples trabajos de investigación en la actualidad.

La ventaja de Prolog radica en su naturalidad para expresar problemas y en su poder de deducción, implícito en el algoritmo de resolución programado dentro de cada intérprete del lenguaje. En la Programación Lógica, como en la funcional, el trabajo pesado se ha dejado a los expertos en diseñar y escribir intérpretes y compiladores, proporcionando así herramientas cada vez más poderosas a los investigadores y programadores de sistemas.

Pero es necesario reconocer que la construcción de programas en Prolog requiere de un buen entrenamiento en la especificación de problemas. Sin embargo, aunque la programación en Prolog pudiera parecer complicada en una primera instancia, ésta puede resultar muy natural para la definición de problemas que requieran expresar conocimiento y reglas, como es el caso particular de los problemas de comprensión del lenguaje natural y otros del campo de la inteligencia artificial, como la construcción de sistemas expertos. De esto último se hablará en otro artículo de este mismo número.

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 Sánchez IIT/UACJ 88

Page 89: Inteligencia Artificial e Inteligencia Natural.doc

La Programación Lógica 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]García, L., Padrón, O.M., Campdesuñer, R., "Programación Lógica: Notas de Conferencias", Libro de texto. Ministerio de Educación Superior. Universidad de la Habana. Cuba, 1993.

[13]Loyo C., "Notas de Introducción a la Programación Lógica, Parte I : Fundamentos de Prolog", Revista del Seminario de Enseñanza y Titulación, UNAM, Fac. de Ciencias, Año IV, Núm. 14, pág 68-85, octubre de 1985.

--------------------

Cristina Loyo, investigadora y directora general del Laboratorio Nacional de Informática Avanzada, LANIA, Email: [email protected]

Olga M. Padrón, Candidato a doctor y Profesora del Departamento de Ciencia de la Computación de la Universidad de la Habana, Cuba.

Karla M. Olmos Sánchez IIT/UACJ 89


Top Related