¿Qué es Inteligencia Artificial? En la literatura, el área se conoce con dos nombres: • Inteligencia Artificial (Artificial Intelligence). • Inteligencia Computacional (Computational Intelligence). Existen muchas definiciones para el área (algunas un tanto recursivas): • “Un área que se esfuerza en lograr que las máquinas piensen como las personas” (Haugeland, 1985) ➙ sistemas que piensan como humanos. • “el estudio de habilidades que deben tener los computadores para realizar tareas que actualmente son realizadas mejor por seres humanos” (Rich and Knight, 1991) ➙ sistemas que actúan como seres humanos • “Estudio de modelos computacionales que permitan percibir, razonar y actuar” ➙ sistemas que tienen habilidades racionales • “Rama de Ciencia de la Computación que se preocupa de la mecanización del comportamiento inteligente” ➙ máquinas que actúan inteligentemente. Jorge Baier Aranda, PUC 1 Veamos qué necesitamos para lograr llevar a cabo el desafı́o que plantean estas definiciones: Actuar ’humanamente’: Se necesita implementar varias tareas que realizan los humanos: 1. Reconocimiento de lenguaje natural. 2. Representación del conocimiento. 3. Razonamiento automatizado. 4. Aprendizaje En caso de requerir el sistema sea un ente fı́sico se necesita, además, que éste tenga las siguientes habilidades: • Visión. • Audición. • Robótica. Pensar humanamente: Generalmente esto ha sido objeto de estudios de otras áreas como la psicologı́a; en particular, de la ciencia cognitiva. Jorge Baier Aranda, PUC 2 Pensar racionalmente: Generalmente en este caso se ha usado el modelo lógico u otros modelos probabilı́sticos. Actuar Racionalmente: Se utiliza generalmente el modelo de “agente inteligente”, que veremos más adelante. El término racional, aparece como una idealización de la inteligencia, ya que no asocia completamente este comportamiento al que realizan los humanos. El objetivo original del área fue obtener sistemas inteligentes comparables o superiores a un humano. Actualmente estamos lejos de esto. Hay muchos más resultados que muestran la complejidad de representar la inteligencia que los que han logrado simplificarla. Además, tener máquinas “funcionen” como humanos está lejos de ser el objetivo de muchos investigadores en el área. Si comparamos las expectativas iniciales con lo que hemos logrado, podemos decir que IA es un área con muchas promesas y pocos resultados. Jorge Baier Aranda, PUC 3 Sin embargo, para dominios especı́ficos, se han logrado muy buenos avances. Jorge Baier Aranda, PUC 4 Entonces, ¿De qué se trata la Inteligencia Artificial? Podrı́amos decir que inteligencia artificial es un área de la ciencia en la cual se busca desarrollar modelos computacionales de procesos inteligentes. La naturaleza de estos modelos es muy variada. Por ejemplo, tenemos: • Modelos basados en reglas de tipo condición–acción, para modelar comportamiento reactivo. • Existen modelos basados en lógica matemática para modelar el conocimiento de los agentes inteligentes. • Modelos del lenguaje natural desarrollados utilizando gramáticas. • Modelos probabilı́sticos utilizados en sistemas de diagnóstico y para hacer razonamiento situaciones en las que existe conocimiento incompleto (o incierto). • Modelos basados en teorı́a de utilidades y teorı́a de decisiones para modelar procesos de toma inteligente de decisiones. • Modelos basados en redes neuronales para aprendizaje de conceptos de bajo nivel. • Modelos “comportacionales” (behavioral): el comportamiento inteligente surge de una compleja interacción entre subsistemas de una arquitectura. No hay representación explı́cita del mundo. Jorge Baier Aranda, PUC 5 • Modelos computacionales para implementar visión en robots, etc. En este curso nos preocuparemos de algunos dominios especı́ficos en los cuales mostraremos: • Técnicas para la construcción de sistemas que son capaces de desarrollar actividades inteligentes. • Modelos de computacionales del razonamiento. Antes de hablar sobre esto, veamos algo de historia. Jorge Baier Aranda, PUC 6 Algo de historia de la IA Podrı́amos decir que los inicios de la IA se remontan al año 450 ac., con la invención de los silogismos. Descartes (1596-1650) plantea que hay una distinción entre mente y materia. Según esto, habrı́an aspectos de la mente que no obedecen las leyes de la fı́sica. Leibniz (1646 – 1716) toma la posición materialista que dice que todo obedece leyes fı́sicas, planteando que es posible mecanizar las leyes del pensamiento humano. Boole (1815 - 1864), creador del álgebra Booleana, escribió el artı́culo “An investigation of the laws of thought on which are founded the mathematical theories of logic and probabilities.” En 1943, Warren McCulloch y Walter Pitts inventan la primera neurona artificial, el perceptrón, y demostraron que cualquier función computable podı́a ser calculada por una serie de neuronas interconectadas. Esto da origen a Jorge Baier Aranda, PUC 7 la tradición conexionista de IA. Posteriormente (1969) se demostrarı́a que un perceptrón, por sı́ solo, es poco lo que puede aprender. En 1950, Alan Turing, plantea un juego de imitación, conocido como el “Test de Turing”, en su artı́culo Computing Machinery and Intelligence, de 1950. Éste consiste esencialmente en que una persona conversa a través de un teletipo con una máquina (A) y un humano (B). El humano intenta ayudar al interlocutor (haciéndole creer que él es el humano) y la máquina intenta engañarlo. Si el humano no es capaz de identificar quién es la persona y quién es el humano, la máquina ha pasado el test de Turing. En este mismo artı́culo Turing, hace la siguiente predicción: en alrededor de cincuenta años [es decir, en el año 2000, aprox] será posible programar computadores ... para hacerlos jugar al juego de imitación tan bien que un interrogador promedio no tendrá más de 70 % de probabilidad de hacer una identificación correcta después de 5 minutos de conversación” Es decir, con al menos una probabilidad de 30 % la máquina pasa el test... Jorge Baier Aranda, PUC 8 En la actualidad, hay programas que pretenden imitar humanos. En la siguiente figura se muestra un diálogo realizado con ALICE, el programa ganador de los premios Loebner de 2000 y 2001. Jorge Baier Aranda, PUC 9 Human: Hello Alice, how are you? ALICE: Hi there! I am fine, thankYes I have long hair. I am also wearing a dress. you. ➙ what is the color of your dress? ➙ Hello alice, how are you? My favorite dress is my green one. Hi there! I am functioning within normal parameters. ➙ Would you like to come to my artificial intelligence class? ➙ What do you mean by your parameters? No thanks, I don’t think I’d like to do that. Are you asking about my parameters? ➙ why? ➙ yes. The explanation is rather complicated. I don’t want to talk about that now. ➙ Tell me, are you a real person? ➙ why? No but I play one on the Web. I would rather talk about you. ➙ who are you? ➙ Cool, my name is Jorge. I ask myself that question, ”Who am I?” I’m glad you like it. Tell your friends. ➙ and what did you answer to yourself? ➙ I am preparing a class of artificial intelligence Nothing. Why are you preparing a class of artificial intelligence. ➙ Where were you born? ➙ Because I am the professor. ALICE was born in Bethlehem, Pennsylvania. Interesting explanation. Who made you the professor? ➙ what do you like to do? ➙ The dean. I like chatting with people online. What is that? ➙ Do you love anybody? ➙ The dean is my boss. I like my botmaster. Tell me more. ➙ Who is your botmaster? ➙ He teaches at the Department of Electrical Engineering. I was created by Dr. Richard S. Wallace. I get it. he teaches at the Department of Electrical Engineering. ➙ what is an artificial neural network? ➙ Who is my boss? Artificial intelligence is the branch of engineering and science devoI don’t yet know that kind of personal information about you for cer-ted to constructing machines that think. I think you already know the tain. You could be deceiving me, so how could I know for sure. I couldanswer. look it up on the internet. ➙ why you say so? ➙ You are a pretty woman. Dr. Richard S. Wallace programmed me for it. Thanks and you are a delightful person too. Yes I am very beautiful. Jorge Baier Aranda, PUC 10 Los comienzos de la Inteligencia Artificial, como disciplina, se remontan a 1956; cuando John McCarthy introdujo el nombre Artificial Intelligence. Posteriormente (1958), McCarthy inventa el lenguaje de programación L ISP, que serı́a uno de los lenguajes más usados en el área. En 1963, Robinson inventa el método de resolución, dando un impulso a la lógica como una herramienta factible para inteligencia artificial. En 1969, se construye el primer sistema experto, DENDRAL, capaz de inferir la estructura molecular a partir de la información entregada por un espectrómetro de masa. Luego se construye MYCIN, un sistema experto que diagnostica enfermedades sanguı́neas. Mediante unas 450 reglas, este sistema actuaba como un verdadero experto y diagnosticaba incluso mejor que algunos médicos con poca experiencia. Jorge Baier Aranda, PUC 11 El estado del arte Actualmente, se ha logrado grandes avances. Describiremos a continuación algunos de ellos: L ENGUAJE N ATURAL Y S ISTEMAS E XPERTOS • Student (Bobrow, 1968) Logra resolver problemas del tipo: El rendimiento de mi automóvil es 15 kms/litro. La distancia entre Santiago y Talca es 290 kms. ¿Cuál es el número de litros de combustible utilizado en un viaje entre Santiago y Talca? • Sistemas de Información para Viajes Aéreos: Estos sistemas reciben consultas de los usuarios utilizando lenguaje hablado (en Inglés). Los sistemas aún están en etapas experimentales y son capaces de responder preguntas como: Muéstreme los vuelos de Atlanta a Boston el Viernes. Cuál es el vuelo más barato. Jorge Baier Aranda, PUC 12 • Sistemas de traducción en tiempo real: El SRI junto con una empresa sueca de comunicaciones (Telia Research) construyeron un sistema de traducción de voz que toma unos segundos en traducir del sueco al inglés y vice-versa. Actualmente, se puede hablar con el programa solo sobre reservas de vuelos de aviones. J UEGOS • Jugadores de Ajedrez: Desde los comienzos del área se han construido estos programas. En 1997 Deep-Blue, un computador de IBM, logró vencer a Garry Kasparov 3.5 a 2.5. En 2003, se registró un empate entre el mismo Kasparov y Deep Junior . • Jugadores de Damas: En 1994, el programa Chinook venció a Mario Tinsley, campeón mundial de damas. Aunque el campeón se retiró por problemas de salud (luego de 6 empates), ya en 1990 Chinook habı́a perdido estrechamente (7.5–6.5). Esto es notable considerando que Tinsley habı́a perdido en promedio una partida por década, desde 1940. Jorge Baier Aranda, PUC 13 OTROS • Robótica: Se ha logrado grandes avances. La gran mayorı́a por el lado del control de robots (sistemas de navegación, control y percepción). No muchos por integrar razonamiento a éstos. Figura 1: Cog, un robot humanoide. Jorge Baier Aranda, PUC 14 Figura 2: AIBO: Robots de entretenimiento de Sony Uno de los grupos más conocidos es el del MIT, que actualmente tiene como objetivo la construcción de robots humanoides. • Mucho más... Jorge Baier Aranda, PUC 15 En este curso... En este curso, tomaremos un punto de vista pragmático respecto de la Inteligencia Artificial. Los temas que estudiaremos son: Lenguajes de Programación para Inteligencia Artificial. Los lenguajes tradicionales para programación de aplicaciones en Inteligencia Artificial son L ISP y P ROLOG. Veremos aplicaciones en P ROLOG, como reconocimiento de lenguaje natural. Solución de Problemas mediante Búsqueda. Muchos de los problemas de interés en Inteligencia Artificial se pueden expresar como problemas de búsqueda. Planificación. En esta área se estudian mecanismos para derivar planes de acción. Veremos distintos enfoques al problema. Manejo de Incertidumbre. Los mecanismos de representación de conocimiento basados en lógica clásica no permiten el manejo de grados de certeza. Jorge Baier Aranda, PUC 16 Con este objetivo, se han desarrollado mecanismos probabilı́sticos, los cuales permiten derivar conclusiones con grados de certidumbre que dependen de la evidencia que haya disponible. Aprendizaje. Veremos algunas técnicas para el manejo de aprendizaje automático. Entre ellas, aprendizaje en redes neuronales y una introducción al aprendizaje reforzado. Robótica Cognitiva. Veremos cómo representar conocimiento en forma lógica y cómo es posible integrar este conocimiento para controlar inteligentemente a un robot. Jorge Baier Aranda, PUC 17 Evaluación La evaluación del curso se realiza a través de 3 interrogaciones, tareas, 7 controles de lectura y 1 examen. El examen es opcional. La nota final, N F , se calcula como: ( 0, 6 · P E + 0, 2 · P C + 0, 2 · P T NF = mı́n{P E, P T } si P E ≥ 4 y P T ≥ 4 en otro caso P E: promedio de interrogaciones en caso que el alumno no dé el examen. En caso contrario, P E se calcula como el promedio entre las interrogaciones y el examen considerado con nota doble. P T : promedio aritmético de tareas. P C: promedio aritmético de los 6 mejores controles. Jorge Baier Aranda, PUC 18 Agentes Inteligentes Para el término agente hay más de una definición. En términos simples: Un agente es un ente que percibe su entorno a través de sensores y es capaz de alterar su entorno a través de efectores. Muchas cosas calzan en esta definición: desde una mosca hasta un servidor de web. Esto es porque un agente no debe ser necesariamente un agente fı́sico; también puede ser un agente de software o softbot. Nosotros estaremos interesados en un tipo particular de agente; los llamados agentes inteligentes. De estos agentes esperamos, idealmente, las siguientes caracterı́sticas: Jorge Baier Aranda, PUC 19 • Autonomı́a: Deben ser independientes de otros agentes (incluidas las personas). • Habilidad social: Deben tener habilidades de comunicación. • Reactividad: Deben ser capaces de reaccionar frente a su entorno. • Pro-actividad: No sólo reaccionan sino que tienen la capacidad de tomar la iniciativa, de acuerdo a sus objetivos. Algunos autores han desarrollado teorı́as de agentes inteligentes en las cuales se les atribuyen otras habilidades: • Aptitudes de Información: creencias, conocimiento, introspección, conciencia. • Pro-aptitudes: Deseo, intención, obligación, compromiso, elección, etc. A la hora de implementar un agente inteligente, no necesariamente deberemos considerar todas estas aptitudes. Tal vez sólo un subconjunto. Jorge Baier Aranda, PUC 20 ¿Cómo se implementa un agente inteligente? En general, el procedimiento que implementa a un agente se ve de la siguiente manera: function Agente(percepción) returns acción static: memoria memoria := ActualizarMemoria(percepción); acción := EscogerMejorAccion(memoria); memoria := ActualizarMemoria(memoria,accion); return acción; Cómo se representa y actualiza la memoria es el objetivo central del área de representación de conocimiento. La implementación de la memoria depende de las caracterı́sticas que queramos implementar en el agente. Jorge Baier Aranda, PUC 21 Cómo se escoge la acción dependerá de las caracterı́sticas del agente. Un agente puramente reactivo no necesita ocupa memoria y sus acciones se basan en lo que percibe y en un conjunto de reglas condición–acción. Jorge Baier Aranda, PUC 22 Propiedades del Ambiente Al momento de implementar un agente inteligente es necesario también tener en consideración las propiedades del ambiente (o mundo). En términos simples, un ambiente puede ser: Observable vs. no observable: ¿Tiene el agente acceso total, parcial a conocer cómo es el mundo? Determinı́stico vs. no determinı́stico: ¿Está determinado únicamente el estado del mundo a partir de la acción que realiza el agente y el estado anterior al de realizar la acción? Estático vs. dinámico ¿Puede el estado del mundo cambiar mientras el agente delibera? Discreto vs. continuo ¿Cuál es el dominio de las variables que representan al estado? Jorge Baier Aranda, PUC 23