Saturday, June 14, 2014

Explanation Based Learning (EBL)

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:

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.
From this EBL computes a generalisation of the training example that is sufficient not only to describe the goal concept but also satisfies the operational criterion.
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) tex2html_wrap_inline7782 holds(loc(x),s) tex2html_wrap_inline7156 holds(loc(y), result(drive(x,y),s))
   airport(z) tex2html_wrap_inline7156 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) tex2html_wrap_inline7156 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) tex2html_wrap_inline7782 airport(x) tex2html_wrap_inline7156 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) tex2html_wrap_inline7782 airport(y) tex2html_wrap_inline7156 holds(loc(y), result(drive(x,y),result(fly(x),s')))



No comments:

Post a Comment