1 / 39

HUMANOBS

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

muriel
Download Presentation

HUMANOBS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HUMANOBS Replicode Eric Nivel eric@ru.is Reykjavik University - CADIA Reykjavik – September 2010

  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 automatedmemory 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 series now t 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 now t

  18. Code (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] ) 0us 1 1 ) |[] 18

  19. Code (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] ) 0us 1 1 ) |[] passive data 19

  20. Code (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] ) 0us 1 1 ) |[] passive data program 20

  21. Code (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] ) 0us 1 1 ) |[] program pattern productions 21

  22. Code (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] ) 0us 1 1 ) |[] dynamic code generation 22

  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 - saliency/activation thresholds - collective agreement on control values - update period - cyclic decay of saliencies/threshold sln thr

  26. Groups

  27. Groups

  28. Graphs

  29. Propagation of Saliency > across the object graph > transversal to groups

  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 (T0) FT (T1) (F) FF (P) (W) (grab ) (move ) (mk.val position ) (mk.val position ) (mk.val weight ) (H) 30 (C)

  31. Forward Chaining As forward models: produce predictions world/system measure success (T0) FT (T1) (F) FF inputs from the world or self (P) (W) (grab ) (move ) (mk.val position ) (mk.val position ) (mk.val weight ) (H) 31 (C)

  32. Backward Chaining As inverse models: produce goals world/system measure success / issue commands inputs from self (T0) FT (T1) (F) FF (P) (W) (grab ) (move ) (mk.val position ) (mk.val position ) (mk.val weight ) (H) 32 (C)

  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) ~

More Related