HUMANOBS

Post on 05-Jan-2016

27 views 0 download

description

HUMANOBS. Replicode. Eric Nivel eric@ru.is Reykjavik University - CADIA. Reykjavik – September 2010. Overview. > What is Replicode? > Main Features > Tools > Status & Future Work. What is Replicode?. Replicode. > A programming language + an executive + development tools > Motivation - PowerPoint PPT Presentation

Transcript of HUMANOBS

HUMANOBS

Reykjavik – September 2010

Eric Niveleric@ru.is

Reykjavik University - CADIA

Replicode

2

Overview

> What is Replicode?

> Main Features

> Tools

> Status & Future Work

3

What is Replicode?

4

Replicode

> A programming language + an executive + development tools

> Motivation

- Developmental AI machines that dynamically rewrite their own code according to their experience model-based/driven bootstrap code

- Engineering for the REAL world fail gracefully and recover (what is left of) the function seed programming as opposed to paranoid programming

- Open-ended dynamic environments

- Working definition of intelligence:

”to adapt with incomplete knowledge and limited resources” – Wang 2006

5

Requirements I

> To synthesize and reason about concurrent processes

- To dynamically produce new specifications and implementations

- Tractable parallel computing stateless programs no explicit coupling/synchronization automated memory management

- Support for forward/backward chaining – to generate predictions/goals

- Support for associative memory

- Support for simulation runs

- Support for uncertainty – crisp <-> fuzzy

- Non axiomatic programming system

6

Requirements II

> To execute programs

- Soft real-time: on time, almost anytime low latency preemptibility

- Execution feedback program execution success/failure of predictions/goals resource usage both quantitative and qualitative

- Scalability wrt CPU cores and RAM

- Distribution over machine clusters

7

In a Nutshell

> Production system

> Soft real-time

> Data-driven - external and internal inputs

> Parallel - computation performed breadth-first

> Pattern matching at arbitrary scales – time/structural depth, span

> Arbitrary granularity - low, numerous, crisp <-> high, sparse, fuzzy

> Dynamic – {add, delete, control} {code/data/ontology}

> Execution feedback

> Distributed

> Scalable

8

Main Features

9

Production System

> Data-driven: patterns of time seriestnow

inputs outputs

10

Production System

11

Production System

12

Production System

13

Production System

> Time scope

14

Production System

> Parallel

15

Production System

> Code = data

16

Production System

> Execution reflectivity

17

Control

> Resilience

> Saliency

> Activation

tnow

1818

(mk.val self position (vec3 1 1 1) 1)[] [now 1 forever root nil]

_start:(pgm|[][] [] (ptn (mk.val self position v1#vec3: ::) |[]) |[] |[][] (inj [] p:(pgm |[] [] [] (ptn (mk.val e: position v2:(vec3 x: y: z:) ::) [(\ (= e self))]) |[] |[] [] (inj [] (mk.val self position (vec3 v1.y 10 (\ (+ z 1))) 1) [(\ now) 1 forever root nil] ) 0us 1 1 ) [now 0 forever root nil] ) (inj [] (ins p |[]) [now 0 forever root nil 1] )0us11)|[]

Code

1919

(mk.val self position (vec3 1 1 1) 1)[] [now 1 forever root nil]

_start:(pgm|[][] [] (ptn (mk.val self position v1#vec3: ::) |[]) |[] |[][] (inj [] p:(pgm |[] [] [] (ptn (mk.val e: position v2:(vec3 x: y: z:) ::) [(\ (= e self))]) |[] |[] [] (inj [] (mk.val self position (vec3 v1.y 10 (\ (+ z 1))) 1) [(\ now) 1 forever root nil] ) 0us 1 1 ) [now 0 forever root nil] ) (inj [] (ins p |[]) [now 0 forever root nil 1] )0us11)|[]

Code

passive data

2020

(mk.val self position (vec3 1 1 1) 1)[] [now 1 forever root nil]

_start:(pgm|[][] [] (ptn (mk.val self position v1#vec3: ::) |[]) |[] |[][] (inj [] p:(pgm |[] [] [] (ptn (mk.val e: position v2:(vec3 x: y: z:) ::) [(\ (= e self))]) |[] |[] [] (inj [] (mk.val self position (vec3 v1.y 10 (\ (+ z 1))) 1) [(\ now) 1 forever root nil] ) 0us 1 1 ) [now 0 forever root nil] ) (inj [] (ins p |[]) [now 0 forever root nil 1] )0us11)|[]

Code

passive data

program

2121

(mk.val self position (vec3 1 1 1) 1)[] [now 1 forever root nil]

_start:(pgm|[][] [] (ptn (mk.val self position v1#vec3: ::) |[]) |[] |[][] (inj [] p:(pgm |[] [] [] (ptn (mk.val e: position v2:(vec3 x: y: z:) ::) [(\ (= e self))]) |[] |[] [] (inj [] (mk.val self position (vec3 v1.y 10 (\ (+ z 1))) 1) [(\ now) 1 forever root nil] ) 0us 1 1 ) [now 0 forever root nil] ) (inj [] (ins p |[]) [now 0 forever root nil 1] )0us11)|[]

Code

patternprogram

productions

2222

(mk.val self position (vec3 1 1 1) 1)[] [now 1 forever root nil]

_start:(pgm|[][] [] (ptn (mk.val self position v1#vec3: ::) |[]) |[] |[][] (inj [] p:(pgm |[] [] [] (ptn (mk.val e: position v2:(vec3 x: y: z:) ::) [(\ (= e self))]) |[] |[] [] (inj [] (mk.val self position (vec3 v1.y 10 (\ (+ z 1))) 1) [(\ now) 1 forever root nil] ) 0us 1 1 ) [now 0 forever root nil] ) (inj [] (ins p |[]) [now 0 forever root nil 1] )0us11)|[]

Code

dynamiccodegeneration

23

Reduction Modes

> pgm/A reduces whenever there exists an A

> pgm/|A reduces whenever there exists a B != A

> |pgm/A reduces whenever there has been no A during the last TSC, or nothing

>|pgm/|A reduces whenever there has been no |A, (i.e. only As) during the last TSC, or nothing

> pgm/0 reduces every TSC microseconds

24

Groups

- saliency/activation thresholds- collective agreement on control values- update period

25

Groups

- cyclic decay of saliencies/threshold

sln thr

- saliency/activation thresholds- collective agreement on control values- update period

26

Groups

27

Groups

28

Graphs

29

> across the object graph

> transversal to groups

Propagation of Saliency

30

High-level Reasoning

> 1st order predicates / invertible functions / fuzzy values

> Reductions at the scale of groups graphs programs groups models hierarchies of models dynamic model revision

(grab )

30

(mk.val position ) (mk.val position )

(mk.val weight )

(H)

(C)

(W)

(P)

(move )

(F)(T0) (T1)

FF

FT

31

Forward Chaining

31

(H)

(C)

(W)

(P)

(F)(T0) (T1)

As forward models: produce predictions

world/system

inputsfromthe worldor self

measuresuccess

(grab ) (mk.val position ) (mk.val position )

(mk.val weight )

(move )

FT

FF

32

Backward Chaining

32

(H)

(C)

(W)

(P)

(F)(T0) (T1)

As inverse models: produce goals

world/system

inputsfromself

measuresuccess/issuecommands

(grab ) (mk.val position ) (mk.val position )

(mk.val weight )

(move )

FT

FF

33

Tools

34

Tools

> Compiler

> Decompiler

> Provisioning system

> Visualization system

35

Tools

Visualization system

36

Status & Future Work

37

Status

> V1.0: fully implemented performance according to requirements (latency, scalability)

> Next release: 30 Oct 2010 V1.1 = V1.0 + high-level reasoning

> Distribution using mBrane joint work with CMLabs

> Tools are minimal but sufficient for now

38

Future Work

> Under works: causality/context discovery using Long Short-Term Memory neural networks (Schmidhuber)

neural nets programs

> Under investigation: formal verification joint work with RU/ICE-ROSE (M. Sirjani)

~

39