Download Inteligencia Artificial

Document related concepts

Alberto Rossel wikipedia , lookup

Varanus telenesetes wikipedia , lookup

Barygenys exsul wikipedia , lookup

Transcript
Inteligencia Artificial
Amzi! Prolog
Lic. Gerardo Rossel
Profesor de la Facultad de Tecnología Informática UAI
Profesor de Inteligencia Artificial UNLa.
Chief Scientist - Director de Proyectos Especiales Omnisis S.A.
Licenciado en Ciencias de la Computación FCEyN UBA
¿Que es Inteligencia Artificial?
l
Desarrollo de métodos y algoritmos que permitan
comportarse a las computadoras de modo
inteligente.
l
Minsky : “El problema de la Inteligencia Artificial
es la naturaleza de la misma inteligencia, un tema
que nadie comprende muy bien. ¿Por qué no?
Quizás en parte porque nadie ha tenido la
oportunidad de estudiar otros tipos de
inteligencia distintos de la humana”
Lic. Gerardo Rossel
2
1
Diversas Miradas
l
l
l
Psicólogos
Cognitivos:
Estudio
del
pensamiento humano mediante la simulación
en computadoras
Ingeniero: Emulación del comportamiento
inteligente independientemente de si se
corresponde o no con el pensamiento humano
Otros: Ciencias de la Computación Avanzada
Lic. Gerardo Rossel
3
¿Que es la Inteligencia Artifcial?
l
Sistemas que piensan como humanos
l
Sistemas que actúan como humanos
l
Sistemas que piensan racionalmente
l
Sistemas que actúan racionalmente
Lic. Gerardo Rossel
4
2
Test de Turing (1950)
¿Cúal es la computadora?
Lic. Gerardo Rossel
5
Searle y la Sala China
l
l
l
“Minds, brains and programs” 1980.
•
Si para todo x componente de un sistema x no tiene conciencia
entonces el sistema no tiene conciencia.
“The Rediscovery of the Mind” 1992
•
propiedad emergente de determinada organización de un
sistema neuronal.
De todas formas uno de los objetivos más claros de la
IA es la de producir agentes inteligentes que asistan a
los humanos compensando las limitaciones de éstos.
Estoevidentemente provee un beneficio práctico del
cual ya se podría disfrutar.
Lic. Gerardo Rossel
6
3
Lectura Recomendada
l
WHAT IS ARTIFICIAL INTELLIGENCE?
• John McCarthy
• Universidad de Stanford
• http://www-formal.stanford.edu/jmc/
Lic. Gerardo Rossel
7
¿Desde Cuándo?
l
McCulloch - Pitts (A logical calculus of the ideas immanent in nervous
activity) 1943. Lógica Proposicional, Fisiología Básica y Teoría de la
Computabilidad:
•
•
La neurona tiene una actividad de todo o nada. Es decir es binaria (activa/inactiva)
•
•
El único retraso es el retraso sináptico.
•
Es preciso que un número fijo de sinapsis mayor que uno sean excitadas (en un período
determinado) para que se excite la neurona.
La actividad de cualquier sinapsis inhibitoria impide por compl eto la excitación de la neurona
en ese momento.
La estructura de la red de interconexiones no cambia.
l
Todos los conectores lógicos pueden lograrse usando estructuras de red
l
En 1949 Organization of Behaviour Donald Hebb propone una teoría del
aprendizaje.
Lic. Gerardo Rossel
8
4
¿Desde Cuándo?
Lic. Gerardo Rossel
9
¿Desde Cuándo?
l
Marvin Minsky y Dean Edmonds (Princeton):
La primera red neuronal (1951) 3000 válvulas
de vacío y un mecanismo de piloto automático
obtenido de un B-24
• Los asesores de doctorado de Minski decían que eso
no era matemáticas
• Von
Neuman: “Si no lo es actualmente, algun día lo
será”
Lic. Gerardo Rossel
10
5
Nacimiento Oficial
l
Verano 1956 Jhon McCarthy, Minsky, Claude
Shanon y Nathaniel Rochester organizaron un
taller para los investigadores del área.
• Newell
•
y Simon presentan el Teórico Lógico, un
programa de razonamiento: al final del taller el
programa era capaz de demostrar gran parte de los
teoremas del capítulo 2 de Principia Mathematica de
Russel/Whitehead.
McCarthy propone un nuevo nombre: Inteligencia
Artificial
Lic. Gerardo Rossel
11
Los primeros progresos
l
1960s
• Se
•
•
crea el lenguaje Lisp (el segundo lenguaje de
programación más antiguo)
Desarrollo de métodos de razonamiento simbólico
usando logical constraints
Ronseblatt demostró el teorema de convergencia del
perceptrón
Lic. Gerardo Rossel
12
6
Exitos e ilusiones
l
l
1970s
•
•
•
Surgen los sistemas expertos: MYCIN
Prolog (Programing in Logic) (Alan Colmerauer – Robert
Kowalski. Marsella Francia)
Aprendizaje simbólico
1980s
•
•
•
•
•
De pronto la IA es la última moda
Los japoneses anuncian el proyecto “quinta generación” o sea:
computadoras inteligentes que corran prolog
Se fundan (y funden) muchas compañías de IA
Las redes neuronales se vuelven populares
En 1987 alrededor de 1900 sistemas expertos
Lic. Gerardo Rossel
13
La madurez
l
1990s:
• Inteligencia Artificial no es una moda pero es utilizada
más que nunca.
• Inteligencia
Artificial
es
embebida
en
grandes
sistemas.
• Los
algoritmos genéticos y la vida artificial ganan
popularidad.
Lic. Gerardo Rossel
14
7
Inteligencia Artificial Hoy
l
l
l
l
Los programas que usan técncias de IA son
usualmente sólo piezas de un sistema mayor
Componentes Inteligentes
Agentes y Sistemas Multiagentes
Journals con las tendencias actuales: IEEE
Intelligent Systems y AI Magazine.
Más
técnicas: IEEE Transactions on Knowledge and
Data Engineering and Artificial Intelligence.
Lic. Gerardo Rossel
15
Inteligencia Artificial Hoy
l
Herramientas de última generación
• Amzi! Prolog
• KnowledgeWright
l
Aplicaciones
• Detección de fraude en tarjetas de credito
• Detección de intrusos en firewalls
• Asistencia automática a médicos en sitios remotos
• Motores de búsqueda
Lic. Gerardo Rossel
16
8
Aplicaciones
l
l
l
l
l
l
Vehículos autonómos
Juegos
Simuladores de vuelo
Scheduling
Planificación de configuraciones
personalizadas
Asistencia técnica on-line
Lic. Gerardo Rossel
17
Opciones:
l
Usar lenguajes de Inteligencia Artificial: Prolog,
Lisp.
l
Usar paquetes prearmados.
l
Programar en un lenguaje tradicional.
Lic. Gerardo Rossel
18
9
¿Por qué Prolog para IA?
l
l
l
l
La sintáxis y la semántica de Prolog son mucho
más cercana a la lógica formal.
Prolog provee backtracking automático, lo cual
hace considerablemente más fácil la búsqueda.
Prolog soporta razonamiento multidireccional.
Las implementaciones modernas compilan
proveyendo eficiencia similar a otros lenguajes.
Lic. Gerardo Rossel
19
PROLOG HOY
Amzi! Prolog + Logic Server
10
Lógica y Computación
IA
verificación
lógica de la programación
representación del conocimiento
programación lógica
programación declarativa
constraintsatisfaction
Lógica de la Computación
verificación de programas
prueba de propiedades
Lógica Computacional
Uso directo de la lógica
como herramienta de programación
Lic. Gerardo Rossel
21
Dos visiones
l
Convencional: Nos permite razonar acerca de
la corrección de los programas
l
Usar la lógica para representar problemas y
resolverlos
Lic. Gerardo Rossel
22
11
Programación en Lógica
l
Robert Kowalski
l
Un programa lógico consiste en un conjunto de
axiomas o reglas, que definen relaciones entre
objetos. La ejecución del mismo corresponde a
la deducción de consecuencias del programa
Lic. Gerardo Rossel
23
Conocimiento Fáctico
l
Programas = Estructuras de Datos + Algoritmos
l
Dos tipos de concimientos:
•
•
l
Factual o Fáctico (Datos)
Procedural (secuencia de instrucciones)
Consideremos un sistema de reserva de una línea
áerea
•
•
vuelos, pasajeros
asignar un pasajero a un vuelo
Lic. Gerardo Rossel
24
12
Conocimiento Lógico
l
l
l
¿Como representar conocimiento lógico?
Reglas y relaciones son confusas en el marcode datos y procedimientos.
Ejemplos
•
•
•
•
•
•
•
Cotizaciones: Las relaciones entre precios y los factores que afectan a éste para productos
de complejidad mediana
Regulaciones Las reglas y regulaciones de compañías privadas o estatales: impuestos,
reglas de seguros, requerimientos legales, beneficios y work flow.
Configuración Las complejas relaciones entre las necesidades de clientes y los productos y
componentes
Soporte Las relaciones entre fallas y síntomas en el diagnóstico de solu ciones de soporte
técnico o entre las necesidades del cliente y los productos y servicios apropiados
Scheduling Reglas que gobiernan el secheduling de radio y TV, trabajos, alocación de
recursos, eventos deportivos, etc.
Gramáticas Reglas de traducción entre protocolos de transferencia de datos, entradas de
programas o lenguaje natural
Científico Relaciones geológicas entre observaciones de superficies y petróleo,
compartamiento de los circuitos eléctricos, modelización de redes, diagnóstico médico y
modelización económica
Lic. Gerardo Rossel
25
Algoritmos = lógica + control
Representación
del Conocimiento
Motor de Inferencia
Sistema de Deducción
Problema
Preguntas
Respuestas
Lic. Gerardo Rossel
26
13
Procedural vs Declarativo
/* member en C */
int member(int x, int list[LISTSIZE])
{
for (int i= 0; i < LISTSIZE; i++)
if (x = list[i]) return TRUE;
return FALSE
}
/ /member en Pascal
member(item, L , N)
var i:Integer
begin
repeat
i := i+ 1
until (L[i] = item) or (I = N)
member := item = L[i]
end
Prolog:
member(X,[X|Ls]).
member(X,[Y|Ls] ):- member(X,Ls).
Lic. Gerardo Rossel
27
Amzi! the e-Prolog embeddable,
extensible for e-applications
Lic. Gerardo Rossel
28
14
Ejemplo: ¿donde está nany?
Lic. Gerardo Rossel
29
Ejemplo: Conocimiento a Definir
l
l
l
l
Las puertas y sus conexiones.
Las cosas y su ubicación
Las propiedades de varias cosas.
Donde se encuentra el jugador al comienzo del
juego
Lic. Gerardo Rossel
30
15
Los hechos
habitacion(cocina).
habitacion(oficina).
habitacion(hall).
habitacion('salon comedor').
habitacion(sotano).
puerta(oficina, hall).
puerta(cocina, oficina).
puerta(hall, 'salon comedor').
puerta(cocina, sotano).
puerta('salon comedor', cocina).
locacion(escritorio, oficina).
locacion(manzana, cocina).
locacion(luzvelador, escritorio).
locacion(lavadora, sotano).
locacion(nani, lavadora).
locacion(brocoli, cocina).
locacion(galletas, cocina).
locacion(computadora, oficina).
aqui(cocina).
Lic. Gerardo Rossel
31
Algunas Reglas
conecta(X,Y) :- puerta(X,Y).
conecta(X,Y) :- puerta(Y,X).
ir_a(Lugar):pueder_ir(Lugar),
mover(Lugar),
mirar.
mover(Lugar):- retract(aqui(X)), asserta(aqui(Lugar)).
Lic. Gerardo Rossel
32
16
Interface en Delphi
Interface:
Delphi
.NET
Java/JSP/Servlet
Base Lógica
Prolog
var
t: TTerm;
LS.InitLS('');
LS.LoadXPL('nani');
LS.ExecPStr(t, 'mirard');
Lic. Gerardo Rossel
33
Predicados Extendidos
function p_memo_add(EngID: TEngID): TTFi; stdcall; export;
function p_memo_add;
begin
LSEng.GetParm(1, dADDR, @TheMemo);
TheMemo.Lines.Add(LSEng.GetPStrParm(2));
Result := lsTrue;
end;
LSEng.AddPred('memo_add', 2, p_memo_add);
mirar_end(Lugar) :- dyn_control('memo', 'memo1', MemAdr),
memo_add(MemAdr,$Ud esta mirando en: $),
memo_add(MemAdr,Lugar),
memo_add(MemAdr,$Ud puede ver: $),
lista_cosasd(MemAdr, Lugar).
Lic. Gerardo Rossel
34
17
Delphi interface
Lic. Gerardo Rossel
35
Sistemas Expertos
l
l
l
Resuelven problemas reales que normalmente
requieren un experto humano.
El conocimiento experto es caro, escaso y
puede ser dificultoso hallar un experto en una
urgencia.
Ingeniería de Conocimiento y Base de
Conocimiento
Lic. Gerardo Rossel
36
18
KnowledgeWrite
SI tose = “SI”
ENTONCES humo = “SI”
SI humo = "SI" and temperatura = "caliente“
ENTONCES "Se incendia“
SI tose = "NO" and alarma = "suena“
ENTONCES “Hay un ladron“
SI mojado = "SI" and llueve = "NO“
ENTONCES “Se rompio la cañería”
Lic. Gerardo Rossel
37
KnowledgeWrite: goal
Lic. Gerardo Rossel
38
19
KnowledgeWrite: rule set
Lic. Gerardo Rossel
39
KnowledgeWrite: questions
Lic. Gerardo Rossel
40
20
KnowledgeWrite: Verificador
Lic. Gerardo Rossel
41
Lic. Gerardo Rossel
42
Arquitectura
21
Ejemplo de Aplicación
Nexstar Financial Corporation
l
Aplicación WEB que permite encontrar el mejor crédito
hipotecario para un cliente.
l
El cálculo de valores es un factor crítico y altamente
variable.
l
Los módulos de precios
originalmente en Java:
•
•
fueron
implementados
5000 líneas de código
Múltiples tablas en la base de datos.
Lic. Gerardo Rossel
43
Problemas..
l
Necesidad de ser constantemente actualizada para
reflejar los cambios en los factores y reglas de
tasación.
l
La interdependencia dinámica entre factores y
reglas son dificultosas de expresar en un lenguaje
procedural.
l
Los cambios eran dificultosos de implementar,
proclives a errores e implicaban un largo ciclo de
control de calidad (QA).
Lic. Gerardo Rossel
44
22
Solución: Amzi! Prolog + Logic Server
l
En menos de dos meses:
•
Se reemplazaron 18 tablas de la BD con archivos de aserciones
lógicas.
•
5000 líneas de código Java con 500 líneas de relaciones lógicas.
l
La base lógica resultante fue virtualmente libre de errores (1%
de los bugs de la versión Java)
l
El ciclo de QA fue dramáticamente reducido.
l
Actualmente otras partes de la aplicación están bajo
migración(ej. scheduling de tareas de toma de decisiones).
Lic. Gerardo Rossel
45
Prolog y las Enseñanzas
l
Los convenios y la licencia
académica de Amzi! Prolog
permiten el uso de herramientas
de punta para la enseñanza y la
investigación.
l
La
Universidad
Abierta
Interamericana cuenta con un
convenio para el uso de Amzi!
Prolog
en
Docencia
e
Investigación
Lic. Gerardo Rossel
46
23
Enseñanza
l
Sistemas Expertos:
• Prolog
reduce el “gap semántico” entre el código
de Prolog y la especificación lógica de programas:
rule-based programming, built-in pattern matching,
and backtracking execution.
• KnowledgeWright Provee la herramienta ideal para
la enseñanza de sistemas expertos.
Lic. Gerardo Rossel
47
Enseñanza
A partir de Septiembre del 2003 la UAI ofrecerá una:
Lic. Gerardo Rossel
48
24
l
Modalidad: Semipresencial
l
Cinco Módulos:
• Bases de la Inteligencia Artificial
• Teoría de Juegos
• Algoritmos Genéticos y Programación Evolutiva
• Tópicos Avanzados de Inteligencia Artificial
• Inteligencia Artificial Aplicada
Lic. Gerardo Rossel
49
Gracias…
l
l
Preguntas
Contacto: [email protected]
Lic. Gerardo Rossel
50
25