PROGOL - Artificial Intelligence - Notes | CSE 571, Study notes of Computer Science

Material Type: Notes; Class: Artificial Intelligence; Subject: Computer Science and Engineering; University: Arizona State University - Tempe; Term: Fall 2003;

Typology: Study notes

Pre 2010

Uploaded on 09/02/2009

koofers-user-lvy
koofers-user-lvy 🇺🇸

10 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSE 571
notes for 11.5.03
professor Luis
PROGOL
looking at the familiar problem of grandparents and parents, how would we find
grandparents if we do not have it defined in terms of parents?
--What is Rule learning?
Given a rule such as grandparent_of(bob, elzabeth),
go and look at the background knowledge and find relations of rules with bob and
Elizabeth, such as parnt_of(bob, harry) parent_of(harry, elizabeth).
Learning for inductive logic programming: given background knowledge, a set of
positive examples and a set of negative examples, find a hypothesis such that the
background knowledge and the hypothesis together entail all the positive examples and
none of the negative.
PROGOL learns first order Horn clauses (ansProlog –not)
a major advantage of using ILP instead of another learner such as NN’s, is that the
learned hypothesis can be automatically translated into the following piece of English
text.
Syntax:
:- modeh(1, p (+type, +type))?
:- modeb(1, q(+type, -type))?
:- modeb(1, r(+type, +type))?
means we want to learn a rule that has predicate p as the head, and predicates q and r are
possible candidates for the body of the rule
1 is the recall, which is the number of solutions.
type is the type of the variable (domain)
+ / - enforces the ordering (in prolog), in our case q’s rule would need to come before r’s
rules.
q and r are the possible rules to search for a rule in.
:- modeh (p
:- modeh (m
pf3

Partial preview of the text

Download PROGOL - Artificial Intelligence - Notes | CSE 571 and more Study notes Computer Science in PDF only on Docsity!

CSE 571

notes for 11.5. professor Luis PROGOL looking at the familiar problem of grandparents and parents, how would we find grandparents if we do not have it defined in terms of parents? --What is Rule learning? Given a rule such as grandparent_of(bob, elzabeth), go and look at the background knowledge and find relations of rules with bob and Elizabeth, such as parnt_of(bob, harry) parent_of(harry, elizabeth). Learning for inductive logic programming: given background knowledge, a set of positive examples and a set of negative examples, find a hypothesis such that the background knowledge and the hypothesis together entail all the positive examples and none of the negative. PROGOL learns first order Horn clauses (ansProlog –not) a major advantage of using ILP instead of another learner such as NN’s, is that the learned hypothesis can be automatically translated into the following piece of English text. Syntax: :- modeh(1, p (+type, +type))? :- modeb(1, q(+type, -type))? :- modeb(1, r(+type, +type))? means we want to learn a rule that has predicate p as the head, and predicates q and r are possible candidates for the body of the rule 1 is the recall, which is the number of solutions. type is the type of the variable (domain)

  • / - enforces the ordering (in prolog), in our case q’s rule would need to come before r’s rules. q and r are the possible rules to search for a rule in. :- modeh (p :- modeh (m

:- modeb (o could learn a rule for p in the head and a rule for m in the head with o in the body. algorithm

  1. construct most specific clause for a positive example. 2 based on the clause, find a generalized “refined” form of the clause so that it has the highest value amoung all the candidates.
  2. remove all positive examples covered by the refined clause
  3. goto 1 for remaining positive examples output returns the most specific rule that covers the positive examples. iterative covering. PROGOL learns only horn logic rules.. so how do we learn AnsProlog Rules B bird(X) :- penguin(X). bird(tweety). penguin(polly). E+ flies(tweety). posEx = { flies(tweety) } Lit = { bird(tw) bird(polly), peng(tw), peng(polly), flies(tw), flies(polly) } S = { bird(tw), penguin(polly), bird(polly) } S+ = { bird(tw), penguin(polly), bird(polly), not penguin(tw), not flies(tw), not flies(polly) } find the rules relevant to posEx in S+ that have the litterals found in posEx = { not flies(tw) , not peng(tw), bird(tw) }