Diciembre 2001Fundamentos 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
Diciembre 2001Fundamentos 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 v 1,1 v 1,2 v 1,3 C 1 ejemplo 2 v 2,1 v 2,2 v 2,3 C 2 … –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 = C n if (A i = v i,k ) and (A j = v j,l ) and...
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: play tennis (ejemplos de prueba) Outlook HumidityWind Yes No Sunny Rainy Overcast High NormalStrong Weak
Diciembre 2001Fundamentos 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 2001Fundamentos 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 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: motivación Tabla1: Tabla básica de clientes Tabla2: Tabla de clientes para análisis
Diciembre 2001Fundamentos 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._,_,_,_,_).
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: motivación 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
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: motivación Representación relacional de clientes, pedidos y almacenes good_customer(C): customer(C,_,f,_,_,_,_,_), order(C,_,_,_,credit).
Diciembre 2001Fundamentos 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 - 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
Diciembre 2001Fundamentos 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ónLógica Programación
Diciembre 2001Fundamentos 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) InducciónLógica Programación DM, KDD
Diciembre 2001Fundamentos 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 uniforme y expresiva. InducciónLógica Programación
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: aprendizaje inductivo de conceptos Inducción predictiva H
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: aprendizaje inductivo de conceptos Inducción predictiva - H
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: aprendizaje inductivo de conceptos Inducción predictiva aprender la definición de un concepto H Inducción descriptiva aprender las relaciones entre conceptos H
Diciembre 2001Fundamentos 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 L H –relación de cobertura Encontrar: –Una hipótesis H L H 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
Diciembre 2001Fundamentos 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 L H –relación de cobertura –criterio de calidad Encontrar: –Una hipótesis H L H tal que (dado B) H es óptima w.r.t. Algún criterio de calidad (p.ej. maximizar la precisión predictiva) H
Diciembre 2001Fundamentos 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 L H –relación de cobertura Encontrar: –Una hipótesis (la más específica) H L H 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
Diciembre 2001Fundamentos 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 descriptivo sorted(Y) sort(X,Y). permutation(X,Y) sort(X,Y). sorted(X) sort(X,X).
Diciembre 2001Fundamentos 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 2001Fundamentos 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 q i 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(X 1,...,X n ) L 1,...,L i,...,L m 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 2001Fundamentos 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 examplesBackground 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 marytom eveian f f f
Diciembre 2001Fundamentos 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 examplesBackground 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 2001Fundamentos 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). dau ghter DP maryann evetom
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: ejemplo Bongard Casificación de ejemplos basada en su estructura pos neg
Diciembre 2001Fundamentos 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 cualquier número de objetos Dibujo 1
Diciembre 2001Fundamentos 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 2001Fundamentos 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, , , ). atm(m1,a2,c,2, , , ). atm(m1,a3,o,2, , , ).... 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:
Diciembre 2001Fundamentos lógicos de la Ingeniería del Software 1. Introducción: un ejemplo del mundo real Algunos ejemplos de moléculas:
Diciembre 2001Fundamentos 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.