Académique Documents
Professionnel Documents
Culture Documents
Algoritmo FOIL
First Order Induction Logic
Algoritmo FOIL
En formato de clusulas de Horn: regla expresada por unas condiciones y un predicado que
se deduce si las condiciones son ciertas
Salidas
Reglas (definicin implcita o intensional):
Un predicado que se deduce si todas las condiciones son ciertas (AND lgico)
Para el mismo predicado puede haber varias reglas (OR lgico)
PredicadoA :- Condicin1, Condicin2,
PredicadoA :- Condicin3,
abuelo(X,Y) :- padre(X,Z), padre(Z,Y).
abuelo(X,Y) :- padre(X,Z), madre(Z,Y).
Entradas
Hechos (definicin explcita o extensional): expresa todas las instancias ciertas del
concepto.
abuelo(Juan, Pedro). abuelo(Juan, Luis). abuelo(Juan, Mara).
padre(Juan, Carlos). padre(Juan, Beln). padre(Carlos, Pedro).
madre(Beln, Luis). madre(Beln, Mara).
Algoritmo FOIL
Busca
Un conjunto de estados:
Cada estado formado por un conjunto de reglas que describen un concepto
Parte de:
Estado inicial:
Se tienen los hechos
No hay reglas
Objetivo:
Reglas que describan todos los ejemplos positivos y ninguno negativo
Dos operadores:
Crear una clusula de Horn vaca
Aadir una condicin (un literal) a una clusula de Horn: que se cumple o no un
literal (al menos una de las variables que intervienen en l debe de ser ya existente), o
relaciones lgicas entre variables ya existentes o entre variables ya existentes y constantes.
Los literales se unen entre ellos mediante la conjuncin (AND lgico) para formar la regla.
Heurstica:
En caso de tener que elegir, ganancia de informacin
Una regla es vlida cuando no cubre ningn ejemplo negativo (no un literal sino una regla)
No se aaden ms reglas cuando ya se tienen cubiertos todos los ejemplos positivos
Algoritmo FOIL
Algoritmo FOIL
Funcionamiento:
El algoritmo consta de dos bucles: el externo genera reglas, el interno genera literales para
componer cada regla.
Se van generando reglas que describen ejemplos positivos y no describen ejemplos
negativos, hasta cubrir todos los ejemplos positivos.
A cada regla se van aadiendo literales seleccionados heursticamente, en funcin del
nmero de ejemplos positivos y negativos que se cubren al aadir ese literal a la regla,
hasta que no se cubra ninguno negativo.
Para elegir el literal que se aade a cada regla en cada paso, se aplica la frmula de la
ganancia, a cada uno de los literales posibles:
G(L)=k*[-Iog2(n+/(n++n-)) + Iog2 (nL+/(nL+ +nL-)]
G(L)= ganancia al aadir un literal a una clusula que se est formando
K= nmero de ejemplos positivos que cumplen el literal que se est tratando
n+, n- =nmero de ejemplos positivos/negativos cubiertos por la clausula hasta el momento
nL+, nL- =nmero de ejemplos positivos/negativos cubiertos por la clausula si se aade el
literal que se est tratando
Aprendizaje automtico
Algoritmo FOIL
First Order Induction Logic
Algoritmo FOIL
3
Ejemplo
3
1
Conectado(A,B) y Alcanzable(A,B)
Objetivo:
Aprender ALCANZABLE
Conectado(B,A)
Conectado(B,C)
Conectado(C,B)
Alcanzable(B,A)
Alcanzable(A, C)
Alcanzable(B,C)
A=B
Conectado(A,C)
Conectado(C,A)
Alcanzable(C,A)
Alcanzable(C,B)
A!=B
Algoritmo FOIL
3 Conceptos: Conectado(A,B) y Alcanzable(A,B)
1
=>Card(EL1+)=3
=> nL1+ =3
EL1- =
=>Card(EL1-)=0
=> nL1- =0
10
Algoritmo FOIL
3 Conceptos: Conectado(A,B) y Alcanzable(A,B)
1
,2), (2,
,3), (2,
,4)
Y ahora, los ejemplos positivos son los que tienen como parmetro B, un valor que cumpla
que B es alcanzable desde A:
Para A=1, tenemos que, a excepcin del 1 todos los dems nodos son alcanzables, por lo
tanto, seran ejemplos positivos: (1,2,2),(1,3,2),(1,4,2)
Para A=2, son alcanzables el 3 y el 4: (2,3,3), (2,4,3), (2,3,4), (2,4,4)
Y ahora, los ejemplos negativos son los que tienen como parmetro B, un valor para el que
B no es alcanzable desde A (que est en E0):
Para A=1, tenemos que, el nico que no se puede alcanzar es el propio 1: (1,1,2)
Para A=2, los no alcanzables son el 1 y el 2: (2,1,3), (2,2,3), (2,1,4), (2,2,4)
11
Algoritmo FOIL
3 Conceptos: Conectado(A,B) y Alcanzable(A,B)
1
(1,3)
(1,4)
(2,3)
(2,1)
(2,4)
=>Card(EL2-)=5=>nL2- =5
(2,2)
12
Algoritmo FOIL
3 Conceptos: Conectado(A,B) y Alcanzable(A,B)
1
13
Algoritmo FOIL
3 Conceptos: Conectado(A,B) y Alcanzable(A,B)
1
4 Buscar Regla 2
14
Algoritmo FOIL
3
1
,2), (2,
,3), (2,
,4)
Y ahora, los ejemplos positivos son los que tienen como parmetro B, un valor que se
encuentre entre los ejemplos positivos que quedan:
Para A=1, tenemos 3 y 4, por lo tanto, seran ejemplos positivos: (1,3,2),(1,4,2)
Para A=2, no hay ejemplos positivos por cubrir
Los ejemplos negativos son los que tienen como parmetro B, un valor para el que (A,B)
est en E0:
Para A=1, tenemos slo el 1, seran ejemplos negativos: (1,1,2)
Para A=2, tenemos 1 y 2: (2,1,3), (2,2,3), (2,1,4), (2,2,4)
15
Algoritmo FOIL
3
1
(1,4)
(2,1)
=>Card(E3-)=5
=> nL3- =5
(2,2)
16
Algoritmo FOIL
3
1
Como para R1, habra que hacer el clculo para todos los literales, y se elije el de mayor
ganancia.
Suponemos que ya lo hemos hecho y que nos sale L3, entonces tendramos el primer literal
a aadir al cuerpo de la segunda regla: Alcanzable(A,B):- Conectado(A,C)
Se actualiza N, eliminando los ejemplos negativos que no se deducen de ese literal:
N =[(1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (3,4), (4,1), (4,2), (4,3), (4,4)]
Acaba la primera iteracin del bucle interno (primer literal de la segunda regla)
Esta regla cubre ejemplos negativos, por lo que hay que aadir ms literales.
Empieza la segunda iteracin del bucle interno (segundo literal de la segunda regla)
De momento la regla R2: Alcanzable(A,B):-Conectado(A,C)
Se vuelve a realizar el clculo de la ganancia para todos los literales que quedan.
Hacemos el ejemplo con el literal Alcanzable(C,B)
17
Algoritmo FOIL
=>Card(E3+)= 2
=> n3+ =2
=>Card(E3-)=5
=> n3- =5
Para calcular los ejemplos cubiertos por la conjuncin de los dos literales:
Hay que buscar que est conectado A con C y que desde C se alcanza B: (1,3,2), (1,4,2)
Y ahora, los ejemplos positivos son los que tienen como parmetros A y B, valores que se
encuentre entre los ejemplos que quedan en E+: todos. Por tanto ningn ejemplo negativo.
EL4+ =[(1,3,2), (1,4,2)]
=>Card(EL4+)= 2
=> nL4+ =2
=>Card(EL4-)=0
=> nL4- =0
(1,3) (1,4)
E4- =
K = 2 (ejemplos positivos que se cumplen)
18
Algoritmo FOIL
Como siempre, habra que hacer el clculo para todos los literales, y se elije el de mayor
ganancia.
Suponemos que ya lo hemos hecho y que sale L4. Entonces tendramos el segundo literal a
aadir al cuerpo de la segunda regla: Alcanzable(A,B):- Conectado(A,C), Alcanzable(C,B)
Se actualiza N, eliminando los ejemplos negativos que no se deducen de ese literal (todos,
ya que no se deduce ninguno:
N =[(1,1), (2,1), (2,2),
Acaba la segunda iteracin del bucle interno (segundo literal de la segunda regla)
Esta regla no cubre ejemplos negativos (N= ), por lo que no se le aaden ms literales.
Acaba el bucle interno (segunda regla)
Ya tenemos la regla R2: Alcanzable(A,B):-Conectado(A,C), Alcanzable(C,B)
Se actualiza E+ eliminando los ejemplos positivos que se pueden deducir con R2
ER2+ =[(1,3), (1,4)]
Acaba la segunda iteracin del bucle externo (segunda regla)
Como ya no quedan ejemplos positivos por cubrir (ER2+=), no hay que buscar ms reglas.
Acaba el bucle externo
19
Algoritmo FOIL
3
1
20