1. Introducción: Aprendizaje inductivo de conceptos Inducción Concepto

Download Report

Transcript 1. Introducción: Aprendizaje inductivo de conceptos Inducción Concepto

1. Introducción: Aprendizaje inductivo
de conceptos
 Inducción
– Razonamiento desde propiedades de
individuos a propiedades de
conjuntos de individuos
 Concepto
– U- cjto universal de objetos
El concepto C es un subconjunto de
objetos de U
 Aprendizaje Inductivo de
conceptos (reconocimiento de objetos
en C)
inducción
OBSERVACIONES
descr.
lenguaje
aprendizaje
EJEMPLOS
– Dadas instancias de C
– Encontrar un procedimiento que nos
diga cuando x  C, para cada x  U
Diciembre 2001
CONCEPTO
deducción
Fundamentos lógicos de la Ingeniería del Software
TEORÍA
explicación
1. Introducción: aprendiendo
descripciones de atributos
 Tarea de aprendizaje
– Dado un cjto de ejemplos de prueba (training examples) -tuplas
de valores de atributos etiquetados con un nombre de clase•
• ejemplo 1
• ejemplo 2
• …
A1
v1,1
v2,1
A2
v1,2
v2,2
A3
v1,3
v2,3
Clase
C1
C2
– Encontrar un cjto de reglas (una hipótesis) como una función de
valores de atributo que es consistente y completo w.r.t. el
conjunto de ejemplos de prueba
• Clase = Cn if (Ai = vi,k) and (Aj = vj,l) and ...
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: play tennis (ejemplos
de prueba)
Day
Outl ook
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
Sun ny
Sun ny
Overca st
Rain
Rain
Rain
Overca st
Sun ny
Sun ny
Rain
Sun ny
Overca st
Overca st
Rain
Te mpera ture
Hot
Hot
Hot
Mild
Cool
Cool
Cool
Mild
Cool
Mild
Mild
Mild
Hot
Mild
Humi dity
Wi nd
Pla yTenni s
High
High
High
High
Norma l
Norma l
Norma l
High
Norma l
Norma l
Norma l
High
Norma l
High
We ak
Stro ng
We ak
We ak
We ak
Stro ng
Stro ng
We ak
We ak
We ak
Stro ng
We ak
We ak
Stro ng
No
No
Ye s
Ye s
No
Ye s
No
Ye s
Ye s
Ye s
Ye s
Ye s
Ye s
No
Outlook
Sunny
Rainy
Overcast
Humidity
High
No
Diciembre 2001
Normal
Yes
Yes
Wind
Strong
Weak
No
Yes
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: ILP
 Motivación para ILP (visión ML)
– Usar un formalismo de representación más expresivo que la
lógica proposicional
– Usar conocimiento de base en el aprendizaje (fundamental en
AI)
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: motivación
 Motivación para ILP (visión KDD)
– Datos almacenados en bases de datos relacionales
• Relaciones simples  aprendizaje proposicional
– ejemplo: tupla de valores de un nº fijo de atributos (uno es la clase)
– cjto de ejemplos: tabla
• Relaciones múltiples  ILP
– ejemplo: cjto de hechos lógicos
– cjto de ejemplos: cjto. de tablas
– Complejidad de los problemas
• Datos temporales (medicina, análisis tráfico, manejo de redes):
representando secuencias de tiempo
• Datos estructurados (bioquímica, ingeniería de protenias, diseño de
drogas): representando moléculas químicas y sus propiedades
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: motivación
ID
Name
Firs t Name
…
3478
…
Smith
…
John
3479
…
Doe
…
Jane
…
City
Zip
Sex
Social Status
Income
Age
Club Status
Response
…
…
…
38, Lake Dr. Sampleton male
…
single
…
i60-70k
…
32
…
mem ber
…
no response
45, Sea Ct.
…
fem ale
…
mar-red
…
Invention
…
43666
…
I80-90k non mem ber
…
…
Tabla1: Tabla básica de clientes
ID
Zip
Sex
Soc St
Incom e
Age
Club
Resp
…
3478
3479
…
…
34667
43666
…
…
m
f
…
…
si
ma
…
…
60-70
80-90
…
…
32
45
…
…
me
nm
…
…
nr
re
…
Tabla2: Tabla de clientes para análisis
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
response
…
1. Introducción: motivación
Tabla de clientes representada como hechos Prolog
La forma de los hechos Prolog:
customer(Id,Zip,Sex,SoSt,In,Age,Club,Re)
Representación de los hechos básicos de la Tabla 2:
customer(3478,34667,m,si,60-70,32,me,nr).
customer(3479,43666,f,ma,80-90,45,nm,re).
¿Cómo expresamos una propiedad?
customer(_,_,f._,_,_,_,_).
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: motivación
ID Zip Sex So st Income Age Club Resp Delivery Paymt Store S Store Type Store Loc
3478 34667 m si 60-70 32 me nr regular cash small
frnhs
city
3479 43666 f ma 80-90 45 nm re express credit large
indep
rural
Tabla 3: Tabla de clientes con información sobre pedidos y almacenes
ID
Zip
Sex
So st
3478
3478
3478
3479
3479
34667
34667
34667
43666
43666
m
m
m
f
f
si
si
si
ma
ma
Incom e Age
Club Resp Delivery
Paymt
60-70
60-70
60-70
80-90
80-90
me
me
me
nm
nm
cash
check
check
credit
credit
32
32
32
45
45
nr
nr
nr
re
re
regular
express
regular
express
regular
Store S Store Type
sm all
sm all
large
large
sm all
Store Loc
frnhs
frnhs
indep
indep
frnhs
city
city
rural
rural
city
Tabla 4: Tabla de clientes con información varios pedidos
ID
Zi p
34 78 34 667
34 79 43 666
Sex
So st
In com e
Ag e
Club
m
f
si
ma
60 -70
80 -90
32
45
me
nm
Resp Nº Order
nr
re
3
2
Tabla 5: Tabla de clientes con resumen de atributos
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
Nº Sto re
2
2
1. Introducción: motivación
ID
Zip
…
…
3478 34667
3479 43666
…
…
Sex
…
m
f
…
customer
So st Income
…
…
si
60-70
ma
80-90
…
…
store
Store ID Size
Type
Location
…
…
…
…
12
small franchise
city
17
large
indep
rural
…
…
…
…
Diciembre 2001
Age
…
32
45
…
Club
…
me
nm
…
Resp
…
nr
re
…
Representación relacional
de clientes, pedidos y
almacenes
order
Customer ID Order ID Store ID Delivery
…
…
…
…
3478
2140267
12
regular
3478
3446778
12
express
3478
4728386
17
regular
3479
3233444
17
express
3479
3475886
12
regular
…
…
…
…
Paymt
…
cash
check
check
credit
credit
…
good_customer(C): customer(C,_,f,_,_,_,_,_),
order(C,_,_,_,credit).
Fundamentos lógicos de la Ingeniería del Software
1. Introdución: terminología
 Bases de datos
 Programación Lógica
– nombre de relación p
– atributo de una relación p
– tupla <a1,…,an> - una fila en
la tabla relacional
– relación p - una tabla
relacional (un cjto de tuplas)
– símbolo de predicado p
– argumento de un predicao p
– hecho básico p(a1,…,an)
– hipótesis: una regla o un árbol
de decisión
– hipótesis: un cjto de cláusulas
Diciembre 2001
– definición de un predicado p un cjto de hechos básicos
Fundamentos lógicos de la Ingeniería del Software
1. Introducción:Programación Lógica
Inductiva
ILP
=
Aprendizaje Inductivo de Conceptos (I)

Programación Lógica (LP)
Tareas ILP:
- Inducción programas lógicos
 Síntesis de programas
Diciembre 2001
Inducción
Lógica
Programación
Fundamentos lógicos de la Ingeniería del Software
1. Introducción:Programación Lógica
Inductiva
ILP
=
Aprendizaje Inductivo de Conceptos (I)

Programación Lógica (LP)
Tareas ILP:
- Inducción programas lógicos
 Síntesis de programas
- Generalización de observaciones
específicas en leyes generales
 Data Minig (DM)
Knowledge discovery (KDD)
Diciembre 2001
Inducción
Lógica
Programación
DM, KDD
Fundamentos lógicos de la Ingeniería del Software
1. Introducción:Programación Lógica
Inductiva
ILP
=
Aprendizaje Inductivo de Conceptos (I)

Programación Lógica (LP)
Inducción
Características:
• los ejemplos y la teoría de base son cláusulas.
•La teoría aprendida es un cjto de cláusulas.
Programación
Ventajas ILP:
-la lógica de primer orden es un campo
matemático ampliamente desarrollado.
-proporciona una representación uniforme
y expresiva.
Diciembre 2001
Lógica
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: aprendizaje inductivo
de conceptos
Inducción predictiva
+ +
+
+
-- - - -
Diciembre 2001
+
Fundamentos lógicos de la Ingeniería del Software
H
1. Introducción: aprendizaje inductivo
de conceptos
Inducción predictiva
+

 
--
Diciembre 2001
+
Fundamentos lógicos de la Ingeniería del Software

+ +
+
H
1. Introducción: aprendizaje inductivo
de conceptos
+
-
aprender la definición de
un concepto
+
+
+
+
H
- - -- --
Inducción predictiva
Inducción descriptiva
aprender las relaciones entre
conceptos
Diciembre 2001
+ +
++ +
+
H
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: aprendizaje inductivo
de conceptos (predictivo)
 Dado:
– Un cjto de observaciones
• ejemplos positivos E+
• ejemplos negativos E -
– conocimiento de base B
– lenguaje de hipótesis LH
– relación de cobertura
 Encontrar:
– Una hipótesis H LH tal que (dado B) H cubre
todos los ejemplos positivos y negativos
 En lógica:
+ +
++ +
H
+
- - - - -
– e  E+: B  H  e (H es completo)
– e  E-: B  H / e (H es consistente)
 En ILP, E son hechos básicos, B y H cjtos de
cláusulas definidas
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: aprendizaje inductivo
de conceptos (predictivo)
 Dado:
– Un cjto de observaciones
• ejemplos positivos E+
• ejemplos negativos E -
–
–
–
–
conocimiento de base B
lenguaje de hipótesis LH
relación de cobertura
criterio de calidad
 Encontrar:
+ -+
++ + H
+
- - +- - -
– Una hipótesis H LH tal que (dado B) H
es óptima w.r.t. Algún criterio de calidad
(p.ej. maximizar la precisión predictiva)
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: aprendizaje inductivo
de conceptos (descriptivo)
 Dado:
–
–
–
–
Un cjto de observaciones (ejemplos positivos E+)
conocimiento de base B
lenguaje de hipótesis LH
relación de cobertura
 Encontrar:
– Una hipótesis (la más específica) H LH tal que
(dado B) H cubre todos los ejemplos positivos
+ +
++ +
+
 En lógica, encontrar H tal que c  H, c es cierto
en algún modelo preferido de B E+ (p. ej. el
modelo mínimo de Herbrand)
 En ILP, E son hechos básicos, B y H cjtos de
cláusulas generales
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
H
1. Introducción: ejemplo de
programación lógica
 E+ = {sort([2,1,3],[1,2,3])}
E - = {sort([2,1],[1]),sort([3,1,2],[2,1,3])}
 B contiene las definiciones permutation/2 y sorted/1
 ILP predictivo
sort(X,Y) permutation(X,Y), sorted(Y).
 ILP descriptivo
sorted(Y)  sort(X,Y).
permutation(X,Y)  sort(X,Y).
sorted(X) sort(X,X).
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: ejemplo de
descubrimiento de conocimiento
 E+ = {daughter(mary,ann),daughter(eve,tom)}
E - = {daughter(tom,ann),daughter(eve,ann)}
 B = {mother(ann,mary),mother(ann,tom),father(tom,eve),
father(tom,ian),female(ann),female(mary),female(eve),
male(pat),male(tom),parent(X,Y)mother(X,Y),
parent(X,Y)father(X,Y)}
 ILP predictivo
daughter(X,Y) female(X),parent(Y,X).
o un cjto de cláusulas definidas
daughter(X,Y) female(X),mother(Y,X).
daughter(X,Y) female(X),father(Y,X).
 ILP descriptivo
 daughter(X,Y),mother(X,Y).
female(X)  daughter(X,Y).
mother(X,Y);father(X,Y) parent(X,Y).
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: definición empírica de
ILP
 Dado:
– Un cjto de ejemplos E de un predicado objeto p
• Hechos básicos verdaderos E+
• Hechos básicos falsos E -
– Un conocimiento de base B que define predicados qi  p
– Un lenguaje de hipótesis L, un subcjto. de cláusulas definidas
 Encontrar:
– Una hipótesis H que defina el predicado p, expresado en L como un cjto.
de cláusulas de la forma
p(X1,...,Xn)  L1,...,Li,...,Lm
tal que
•
•
•
•
H es completo: e  E+: B  H  e (suficiencia a posteriori)
H es consistente: e  E-: B  H / e (satisfacibilidad a posteriori)
e  E+: B / e (necesidad a priori)
e  E-: B / e (satisfacibilidad a priori)
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: un problema ILP
simple
 El problema
– Dados:
• ejemplos de la relación daughter(X,Y)
• conocimiento de base –definiciones (extensionales) de las relaciones
parent(X,Y) y female(X)
Training examples
Background Knowledge
daughter(mary,ann). 
parent(ann,mary).
female(ann).
daughter(eve,tom).

parent(ann,tom).
female(mary).
daughter(tom,ann). 
parent(tom,eve).
female(eve).
daughter(eve,ann).
parent(tom,ian).

– Encontrar: la definición de la relación daughter
daughter(X,Y) female(X),parent(Y,X).
ann
mary
f
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
f
tom
eve
f
ian
1. Introducción: un problema ILP
simple
– Representación ILP estándar
• ejemplos: hechos básicos de la relación daughter
• conocimiento de base: hechos básicos que definen las relaciones
parent(X,Y) y female(X)
Training examples
Background Knowledge
daughter(mary,ann).
parent(ann,mary).
female(ann).
daughter(eve,tom). 
parent(ann,tom).
female(mary).
daughter(tom,ann). 
parent(tom,eve).
female(eve).
daughter(eve,ann). 
parent(tom,ian).
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: un problema ILP
simple
– Representación como una base de datos relacional
daughter
D
P
mary
ann
eve
tom
– Ejemplos como implicaciones:
daughter(mary,ann) female(mary),female(ann),
parent(ann,mary),parent(ann,tom).
– Hipótesis inducida:
daughter(X,Y) female(X),parent(Y,X).
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: ejemplo Bongard
 Casificación de ejemplos basada en su estructura
neg
pos
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: ejemplo Bongard
(cont.)
 Representación en lógica de primer orden
Dibujo 1
contains(1, o1).
contains(1, o2).
triangle(o1).
points(o1, down).
circle(o2).
pos(1).
permitido cualquier
número de objetos
pos(X) :- contains(X,Y), triangle(Y), points(Y, down).
el uso de variables proporciona un adecuado nivel de abstracción para la hipótesis
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: un ejemplo del mundo
real
 Identificar subestructuras en las moléculas que hacen que
se adhieran a otras moléculas
 La descripción de las moléculas es la lista de sus átomos,
relaciones,…
 El conocimiento de base define el cómputo de la distancia
euclidea, …
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: un ejemplo del mundo
real
Descripción de las moléculas:
atm(m1,a1,o,2,3.430400,-3.116000,0.048900).
atm(m1,a2,c,2,6.033400,-1.776000,0.679500).
atm(m1,a3,o,2,7.026500,-2.042500,0.023200).
...
bond(m1,a2,a3,2).
bond(m1,a5,a6,1).
bond(m1,a2,a4,1).
bond(m1,a6,a7,du).
...
-> Hipótesis:
Conocimiento de Base:
...
hacc(M,A):- atm(M,A,o,2,_,_,_).
hacc(M,A):- atm(M,A,o,3,_,_,_).
hacc(M,A):- atm(M,A,s,2,_,_,_).
hacc(M,A):- atm(M,A,n,ar,_,_,_).
zincsite(M,A):atm(M,A,du,_,_,_,_).
hdonor(M,A) :atm(M,A,h,_,_,_,_),
not(carbon_bond(M,A)), !.
...
active(A) :- zincsite(A,B), hacc(A,C), hacc(A,D), hacc(A,E),
dist(A,C,B,4.891,0.750), dist(A,C,D,3.753,0.750), dist(A,
C,E,3.114,0.750), dist(A,D,B,8.475,0.750), dist(A,D,E,
2.133,0.750), dist(A,E,B,7.899,0.750).
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: un ejemplo del mundo
real
Algunos ejemplos de moléculas:
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software
1. Introducción: conclusión
 Para ciertos tipos de aprendizaje...
– algunas veces llamado aprendizaje estructural: ejemplos que
tienen una estructura compleja (no simplemente un vector de
valores) o aprendizaje relacional
 ... es necesario un formalismo de representación para
hipótesis y datos más expresivo
 la lógica de primer orden proporciona esta expresividad
 -> estudiar la inducción en lógica de primer orden.
Diciembre 2001
Fundamentos lógicos de la Ingeniería del Software