HUMANOBS
description
Transcript of HUMANOBS
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