Learning programs through play Andrew Cropper Program induction - - PowerPoint PPT Presentation

learning programs through play
SMART_READER_LITE
LIVE PREVIEW

Learning programs through play Andrew Cropper Program induction - - PowerPoint PPT Presentation

Learning programs through play Andrew Cropper Program induction Examples Learner Computer program Background knowledge Examples input output dog g sheep p chicken ? Examples Background knowledge head/2 input output


slide-1
SLIDE 1

Learning programs through play

Andrew Cropper

slide-2
SLIDE 2

Examples Background knowledge Learner Computer program Program induction

slide-3
SLIDE 3

Examples input

  • utput

dog g sheep p chicken ?

slide-4
SLIDE 4

Examples Background knowledge

  • head/2
  • tail/2
  • empty/1

input

  • utput

dog g sheep p chicken ?

slide-5
SLIDE 5

Examples Background knowledge

  • head/2
  • tail/2
  • empty/1

input

  • utput

dog g sheep p chicken n

def f(a): t = tail(a) if empty(t): return head(a) return f(t)

slide-6
SLIDE 6

Examples

f(A,B):-tail(A,C),empty(C),head(A,B). f(A,B):-tail(A,C),f(C,B).

Background knowledge

  • head/2
  • tail/2
  • empty/1

input

  • utput

dog g sheep p chicken n

slide-7
SLIDE 7

Where do we get background knowledge from?

slide-8
SLIDE 8

Where do we get background knowledge from?

  • Hand-crafted rules
slide-9
SLIDE 9

Where do we get background knowledge from?

  • Hand-crafted rules
  • Supervised multitask learning
slide-10
SLIDE 10

Where do we get background knowledge from?

  • Hand-crafted rules
  • Supervised multitask learning
  • Self-supervised learning
slide-11
SLIDE 11
slide-12
SLIDE 12

Playgol

  • 1. Play
  • 2. Build
slide-13
SLIDE 13

Playing

  • 1. Generate random tasks
  • 2. Learn solutions to them
  • 3. Add solutions to the BK
slide-14
SLIDE 14

Building Solve user-supplied problems using the augmented BK

slide-15
SLIDE 15

Why should it work? We increase branching but reduce depth

slide-16
SLIDE 16

Does it work in practice?

  • Q1. Can playing improve performance?
  • Q2. Can playing improve performance without

many play tasks?

  • Q3. Can predicate invention improve performance?
slide-17
SLIDE 17

Robot planning

slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20

We should need to sample 24,000,000 play tasks

slide-21
SLIDE 21

String transformations

slide-22
SLIDE 22

Real-world build tasks

slide-23
SLIDE 23

Play tasks

slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26

build_95(A,B):-play_228(A,C),play_136_1(C,B). play_228(A,B):-play_52(A,B),uppercase(B). play_228(A,B):-skip1(A,C),play_228(C,B). play_136_1(A,B):-play_9(A,C),mk_uppercase(C,B). play_9(A,B):-skip1(A,C),mk_uppercase(C,B). play_52(A,B):-skip1(A,C),copy1(C,B).

slide-27
SLIDE 27

Todo

  • 1. Better sampling
  • 2. When does it work?
slide-28
SLIDE 28

References

  • Andrew Cropper, Stephen Muggleton. Metagol system. https://

github.com/metagol/metagol

  • Andrew Cropper, Stephen Muggleton. Learning Higher-Order Logic

Programs through Abstraction and Invention. IJCAI 2016.

  • Dianhuan Lin, Eyal Dechter, Kevin Ellis, Joshua B. Tenenbaum,

Stephen Muggleton. Bias reformulation for one-shot function

  • induction. ECAI 2014.