Humans appear to learn quite a lot from one example.
Basic idea: Use results from one examples problem solving effort next time around.
An EBL accepts 4 kinds of input:
This has two steps:
Basic idea: Use results from one examples problem solving effort next time around.
An EBL accepts 4 kinds of input:
- A training example
- -- what the learning sees in the world.
- A goal concept
- -- a high level description of what the program is supposed to learn.
- A operational criterion
- -- a description of which concepts are usable.
- A domain theory
- -- a set of rules that describe relationships between objects and actions in a domain.
This has two steps:
- Explanation
- -- the domain theory is used to prune away all unimportant aspects of the training example with respect to the goal concept.
- Generalisation
- -- the explanation is generalised as far possible while still describing the goal concept.
EBL example
Goal: To get to Brecon -- a picturesque welsh market town famous for its mountains (beacons) and its Jazz festival.
The training data is:
near(Cardiff, Brecon), airport(Cardiff)
The Domain Knowledge is:
near(x,y)holds(loc(x),s)holds(loc(y), result(drive(x,y),s))
airport(z)loc(z), result(fly(z),s)))
In this case operational criterion is: We must express concept definition in pure description language syntax.
Our goal can expressed as follows:
holds(loc(Brecon),s)-- find some situation s for this holds.
We can prove this holds with s defined by: result(drive(Cardiff,Brecon), result(fly(Cardiff), s')))
We can fly to Cardiff and then drive to Brecon.
If we analyse the proof (say with an ATMS). We can learn a few general rules from it.
Since Brecon appears in query and binding we could abstract it to give:
holds(loc(x),drive(Cardiff,x), result(fly(Cardiff), s')))
but this not quite right - we cannot get everywhere by flying to Cardiff.
Since Brecon appears in the database when we abstract things we must explicitly record the use of the fact:
near(Cardiff,x)holds(loc(x),drive(Cardiff,x), result(fly(Cardiff), s')))
This states if x is near Cardiff we can get to it by flying to Cardiff and then driving. We have learnt this general rule.
We could also abstract out Cardiff instead of Brecon to get:
near(Brecon,x)airport(x)holds(loc(Brecon), result(drive(x,Brecon),result(fly(x),s')))
This states we can get top Brecon by flying to another nearby airport and driving from there.
We could add airport(Swansea) and get an alternative means of travel plan.
Finally we could actually abstract out both Brecon and Cardiff to get a general plan:
near(x,y)airport(y)holds(loc(y), result(drive(x,y),result(fly(x),s')))
No comments:
Post a Comment