31
Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software 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) Dadas instancias de C Encontrar un procedimiento que nos diga cuando x C, para cada x U aprendizaje explicación descr. lenguaje deducción inducción OBSERVACIONES CONCEPTO EJEM PLOS TEORÍA

Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Embed Size (px)

Citation preview

Page 1: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

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)– Dadas instancias de C– Encontrar un procedimiento que nos

diga cuando x C, para cada x U

aprendizaje

expl icación

descr. lenguaje

deducción

inducción OBSERVACIONES CONCEPTO

EJEMPLOS TEORÍA

Page 2: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

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-• A1 A2 A3 Clase

• ejemplo 1 v1,1 v1,2 v1,3 C1

• ejemplo 2 v2,1 v2,2 v2,3 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 ...

Page 3: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: play tennis (ejemplos de prueba)

Day Outlook Temperature Humidity Wind PlayTennis

D1 Sunny Hot High Weak NoD2 Sunny Hot High Strong NoD3 Overcast Hot High Weak YesD4 Rain Mild High Weak YesD5 Rain Cool Normal Weak NoD6 Rain Cool Normal Strong YesD7 Overcast Cool Normal Strong NoD8 Sunny Mild High Weak YesD9 Sunny Cool Normal Weak Yes

D10 Rain Mild Normal Weak YesD11 Sunny Mild Normal Strong YesD12 Overcast Mild High Weak YesD13 Overcast Hot Normal Weak YesD14 Rain Mild High Strong No

Outlook

Humidity WindYes

YesYes NoNo

Sunny Rainy

Overcast

High Normal Strong Weak

Page 4: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 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)

Page 5: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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

Page 6: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: motivación

ID Name First Name City Zip Sex Social Status Income Age Club Status Response

… … … … … … … … … … …3478 Smith John 38, Lake Dr. Sampleton male single i60-70k 32 member no response

3479 Doe Jane 45, Sea Ct. Invention 43666 female mar-red I80-90k non member response… … … … … … … … … … …

Tabla1: Tabla básica de clientes

ID Zip Sex Soc St Income Age Club Resp

… … … … … … … …3478 34667 m si 60-70 32 me nr3479 43666 f ma 80-90 45 nm re

… … … … … … … …

Tabla2: Tabla de clientes para análisis

Page 7: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

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._,_,_,_,_).

Page 8: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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 Loc3478 34667 m si 60-70 32 me nr regular cash small frnhs city3479 43666 f ma 80-90 45 nm re express credit large indep rural

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 city3478 34667 m si 60-70 32 me nr express check small frnhs city3478 34667 m si 60-70 32 me nr regular check large indep rural3479 43666 f ma 80-90 45 nm re express credit large indep rural3479 43666 f ma 80-90 45 nm re regular credit small frnhs city

ID Zip Sex So st Income Age Club Resp Nº Order Nº Store

3478 34667 m si 60-70 32 me nr 3 23479 43666 f ma 80-90 45 nm re 2 2

Tabla 3: Tabla de clientes con información sobre pedidos y almacenes

Tabla 4: Tabla de clientes con información varios pedidos

Tabla 5: Tabla de clientes con resumen de atributos

Page 9: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: motivación

customerID Zip Sex So st Income Age Club Resp… … … … … … … …

3478 34667 m si 60-70 32 me nr3479 43666 f ma 80-90 45 nm re

… … … … … … … …

order

Customer I D Order I D Store I D Delivery Paymt … … … … …

3478 2140267 12 regular cash

3478 3446778 12 express check

3478 4728386 17 regular check

3479 3233444 17 express credit

3479 3475886 12 regular credit

… … … … …

store

Store I D Size Type Location … … … …

12 small f ranchise city

17 large indep rural

… … … …

Representación relacional de clientes, pedidos y almacenes

good_customer(C): customer(C,_,f,_,_,_,_,_), order(C,_,_,_,credit).

Page 10: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introdución: terminología

Bases de datos– 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)

– hipótesis: una regla o un árbol de decisión

Programación Lógica– símbolo de predicado p

– argumento de un predicao p

– hecho básico p(a1,…,an)

– definición de un predicado p - un cjto de hechos básicos

– hipótesis: un cjto de cláusulas

Page 11: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 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

Inducción Lógica

Programación

Page 12: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 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 observacionesespecíficas en leyes generales Data Minig (DM) Knowledge discovery (KDD)

Inducción Lógica

Programación

DM, KDD

Page 13: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 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)

Características:• los ejemplos y la teoría de base son cláusulas.•La teoría aprendida es un cjto de cláusulas.

Ventajas ILP:

-la lógica de primer orden es un campo matemático ampliamente desarrollado.-proporciona una representación uniformey expresiva.

Inducción Lógica

Programación

Page 14: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: aprendizaje inductivo de conceptos

Inducción predictiva

+

+

++ +

-

- --

--- H

Page 15: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: aprendizaje inductivo de conceptos

Inducción predictiva

+

+

++ +

-

--

-

H

Page 16: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: aprendizaje inductivo de conceptos

Inducción predictivaaprender la definición de un concepto

+

+

++ +

-- -- - --

H

Inducción descriptivaaprender las relaciones entre conceptos + +

++

+

+

H

Page 17: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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 Encontrar:

– Una hipótesis H LH tal que (dado B) H cubre todos los ejemplos positivos y negativos

En lógica: 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

+ ++

++

+

H

- -- - -

-

-

Page 18: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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:– 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)

+ ++

++

+

H

- -- - -

-

--

-

+

Page 19: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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

+ ++

++

+

H

Page 20: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

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 descriptivosorted(Y) sort(X,Y).permutation(X,Y) sort(X,Y).sorted(X) sort(X,X).

Page 21: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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 predictivodaughter(X,Y) female(X),parent(Y,X).

o un cjto de cláusulas definidasdaughter(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).

Page 22: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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)

Page 23: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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)

– Encontrar: la definición de la relación daughter

daughter(X,Y) female(X),parent(Y,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). ann

mary tom

eve ian

f

f

f

Page 24: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

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).

Page 25: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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

– 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).

daughter D P

mary ann

eve tom

Page 26: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: ejemplo Bongard

Casificación de ejemplos basada en su estructura

pos

neg

Page 27: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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

contains(1, o1).contains(1, o2).triangle(o1).points(o1, down).circle(o2).pos(1).

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

permitido cualquiernúmero de objetos

Dibujo 1

Page 28: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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, …

Page 29: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: un ejemplo del mundo real

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).

...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)), !.

...

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)....

Descripción de las moléculas: Conocimiento de Base:

-> Hipótesis:

Page 30: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

Diciembre 2001 Fundamentos lógicos de la Ingeniería del Software

1. Introducción: un ejemplo del mundo real

Algunos ejemplos de moléculas:

Page 31: Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: Aprendizaje inductivo de conceptos Inducción –Razonamiento desde propiedades

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.