Developmental Artificial Intelligence 27 March 2014 t oliviergeorgeon.com1/29.

Slides:



Advertisements
Similar presentations
Classes And Objects II. Recall the LightSwitch Class class LightSwitch { boolean on = true; boolean isOn() { return on; } void switch() { on = !on; }
Advertisements

Introduction to Computer Science Robert Sedgewick and Kevin Wayne Recursive Factorial Demo pubic class Factorial {
Service-Based Paradigm Anchoring the Indefinable Field Of Pervasive Computing Presenter: Vijay Dheap.
Topic 10 Java Memory Management. 1-2 Memory Allocation in Java When a program is being executed, separate areas of memory are allocated for each class.
Problem Solving 5 Using Java API for Searching and Sorting Applications ICS-201 Introduction to Computing II Semester 071.
1 Strings and Text I/O. 2 Motivations Often you encounter the problems that involve string processing and file input and output. Suppose you need to write.
11111 Functional Program Verification CS 4311 A. M. Stavely, Toward Zero Defect Programming, Addison-Wesley, Y. Cheon and M. Vela, A Tutorial on.
Developmental Artificial Intelligence 1 er April t oliviergeorgeon.com1/31.
Data Structures Lecture 2 Fang Yu Department of Management Information Systems National Chengchi University Fall 2011.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture22.
Introduction to Developmental Learning 11 March t 1/33oliviergeorgeon.com.
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Using interfaces Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling How would you find the maximum.
Unit 181 Recursion Definition Recursive Methods Example 1 How does Recursion work? Example 2 Problems with Recursion Infinite Recursion Exercises.
Self-Reference - Recursion Cmput Lecture 6 Department of Computing Science University of Alberta ©Duane Szafron 1999 Some code in this lecture is.
Recursion CS-240/CS341. What is recursion? a function calls itself –direct recursion a function calls its invoker –indirect recursion f f1 f2.
Polyscheme John Laird February 21, Major Observations Polyscheme is a FRAMEWORK not an architecture – Explicitly does not commit to specific primitives.
Understanding class definitions Looking inside classes.
Describing algorithms in pseudo code To describe algorithms we need a language which is: – less formal than programming languages (implementation details.
Classes and objects Practice 2. Basic terms  Classifier is an element of the model, which specifies some general features for a set of objects. Features.
Object Orientation An Object oriented approach views systems and programs as a collection of interacting objects. An object is a thing in a computer system.
1 CSC 222: Computer Programming II Spring 2005 Stacks and recursion  stack ADT  push, pop, peek, empty, size  ArrayList-based implementation, java.util.Stack.
CONCEPTS OF OBJECT ORIENTED PROGRAMMING. Topics To Be Discussed………………………. Objects Classes Data Abstraction and Encapsulation Inheritance Polymorphism.
Introduction to Object Oriented Design Version 1.1.
Stephen P. Carl - CS 2421 Recursion Reading : Chapter 4.
Towards Robust Indexing for Ranked Queries Dong Xin, Chen Chen, Jiawei Han Department of Computer Science University of Illinois at Urbana-Champaign VLDB.
Emergence of Cognitive Grasping through Emulation, Introspection and Surprise GRASP EUl 7 th Framework Program GRASP Emergence of Cognitive Grasping through.
INTERACTIVE ANALYSIS OF COMPUTER CRIMES PRESENTED FOR CS-689 ON 10/12/2000 BY NAGAKALYANA ESKALA.
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
Sorting. RHS – SWC 2 Sorting Searching in sorted data is much faster than searching in unsorted data Being able to sort data efficiently is thus a quite.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 11 Searching and Sorting.
Curiosity-Driven Exploration with Planning Trajectories Tyler Streeter PhD Student, Human Computer Interaction Iowa State University
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Summing Up Object Oriented Design. Four Major Components: Abstraction modeling real-life entities by essential information only Encapsulation clustering.
Sorting. RHS – SOC 2 Sorting Searching in sorted data is much faster (O(log(n)), than searching in unsorted data (O(n)). Being able to sort data efficiently.
Distributed Models for Decision Support Jose Cuena & Sascha Ossowski Pesented by: Gal Moshitch & Rica Gonen.
The "8 Queens" problem Consider the problem of trying to place 8 queens on a chess board such that no queen can attack another queen. What are the "choices"?
1 Recursion n what is it? n how to build recursive algorithms n recursion analysis n tracing simple recursive functions n hands on attempts at writing.
CSC 205 – Java Programming II Lecture 22 March 1, 2002.
Mark Fontenot CSE Honors Principles of Computer Science I Note Set 15.
Programmeren 1 6 september 2010 HOORCOLLEGE 2: INTERACTIE EN CONDITIES PROGRAMMEREN 1 6 SEPTEMBER 2009 Software Systems - Programming - Week.
Understanding ADTs CSE 331 University of Washington.
Binary search and complexity reading:
CS2 Module 26 Category: OO Concepts Topic: Interfaces Objectives –Interfaces.
Creating and Using Class Methods. Definition Class Object.
1 Programming Languages (CS 550) Lecture 2 Summary Mini Language Interpreter Jeremy R. Johnson.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
Artificial Intelligence Logical Agents Chapter 7.
CISC124 - Notices Assn 2 due this Friday. You already know what you need to do this assignment: –Another procedural program. –Uses text file I/O (see Exercise.
Chapter 0: Introduction
EECE 310: Software Engineering
“Perceptual Symbol Systems”
Angelo Loula, Ricardo Gudwin, Charbel Nino El-Hani, and Joao Queiroz
Artificial Intelligence and Lisp #2
Bioagents and Biorobots David Kadleček, Michal Petrus, Pavel Nahodil
The "8 Queens" problem Consider the problem of trying to place 8 queens on a chess board such that no queen can attack another queen. What are the "choices"?
Building Java Programs
Mini Language Interpreter Programming Languages (CS 550)
Describing algorithms in pseudo code
Chapter 4: Writing classes
CSE 143 Lecture 5 More Stacks and Queues; Complexity (Big-Oh)
Outline Writing Classes Copyright © 2012 Pearson Education, Inc.
Building Java Programs
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
logical design for relational database
Creating and Modifying Text part 3
Implementation of a De-blocking Filter and Optimization in PLX
The "8 Queens" problem Consider the problem of trying to place 8 queens on a chess board such that no queen can attack another queen. What are the "choices"?
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
Presentation transcript:

Developmental Artificial Intelligence 27 March t oliviergeorgeon.com1/29

Outline Organization in time and space. – Formalism for Spatio-temporal coupling. – Cognitive architecture. – Demonstrations Exercise – Implement your self-programming agent (follow up). oliviergeorgeon.com2/29

Reminder of theoretical ideas The objective is to learn (discover, organize and exploit) regularities of interaction in time and space to satisfy innate criteria (survival, curiosity, etc.). To autonomously construct an ontology of reality. – From experience of interaction Detect and respond to increasingly sophisticated affordances – (self-programming). oliviergeorgeon.com3/29

Propose Trace-Based Reasoning Time Hierarchical abstraction Matching Select Try to Enact More abstraction oliviergeorgeon.com4/29

Example 2 oliviergeorgeon.com5/29

Examples of learned behaviors oliviergeorgeon.com6/29

Example 2 oliviergeorgeon.com7/29

Spatio-sequential regularity learning oliviergeorgeon.com8/29

Concept of affordance Property of an object or an environment that allows an individual to perform an action. “To afford” an action. « objects push us into doing » (Heinz Werner) – Affordances are properties of the coupling between the agent and the environment. We know the world in terms of possibilities of interaction. oliviergeorgeon.com9/29

Formalisme Agent Environment ObservationAction Traditionnal formalization  O O  A A Agent Environment ExpérienceRésultat Learning by experiencing  R R  E E oliviergeorgeon.com10/29 Agent Environment Intended Interaction Enacted Interaction  I I  I I Radical Interactionism: I = E ✕ R X: Interactions composites

How to learn the existence of possibly persistent entities in the environment? How to adapt to different categories of entities? Spatial Radical Interactionism Agent Environment Intended Interaction i  I Enacted Interaction e  I oliviergeorgeon.com11/29 Spatial position σ Spatial transformation τ τ represents the vestibular system. Can be implemented through an accelerometer. σ represents position information (eye convergence, interaural phase difference, etc.)

Spatial exemple 1 oliviergeorgeon.com Agent Environment Enacted interaction:…….. Spatial position σ = (1,0) Spatial transformation τ= (0,0) Intended interaction 12/29

Agent Environment Environment “known” at time t d e cd  X d i cd  X d e p1 i p1 i pj  Ie pj  I Decisional mechanism Recursivity problem How to maintain recursivity ? oliviergeorgeon.com Spatial position σ Spatial transformation τ 13/29

Spatial Exemple 1 oliviergeorgeon.com14/29

Enactive Cognitive Architecture -The agent programs itself through experience of interaction. -The architecture does not program itself. (“Kantian space”, e.g., Buzsaki 2013, Space, time, and memory) oliviergeorgeon.com15/29

Inspiration from neurosciences oliviergeorgeon.com16/29

More inspiration from neurosciences? oliviergeorgeon.com Cotterill R. (2001). Progress in Neurobiology. 17/29

ECA agent exemple 2 oliviergeorgeon.com18/29

From “drives” to “goals” Afforded Simulated oliviergeorgeon.com19/29

Exercise 3 oliviergeorgeon.com20/29

Exercise Two possible experiences E = {e 1,e 2 } Two possible results R = {r 1,r 2 } Four possible interactions E x R = {i 11, i 12, i 21, i 22 } Two environments – environment 0 : e 1 -> r 1, e 2 -> r 2 (i 12 et i 21 are never enacted) – Environment 1 : e 1 -> r 2, e 2 -> r 1 (i 11 et i 22 are never enacted) – Environment 2 : e 1 -> r 2, e 2 -> r 2 – Environment 3 Motivational systems: – motivation 0 : v(i 12 ) = v(i 22 ) = 1, v(i 11 ) = v(i 21 ) = -1 – motivation 1 : etc. Implement un agent that learn to enact positive interactions without knowing its motivatins and its environnement a priori. Write a rapport of behavioral analysis based on activity traces. oliviergeorgeon.com21/29

Implémentation public static Experience e1 = new experience(); Experience e2 = new experience(); public static Result r1 = new result(); Result r2 = new result(); public static Interaction i11 = new Interaction(e1,r1, 1); etc. Public static void main() Agent agent = new Agent3(); // Agent1(); Agent2(); Environnement env = new Env3(); // Env1(); // Env2(); for(int i=0 ; i < 10 ; i++) e = agent.chooseExperience(r); r = env.giveResult(e); System.out.println(e, r, value); Class Agent Class Agent3 public Experience chooseExperience(Result r) Class Environnement Class Env3 public Result giveResult(experience e) Class Experience Class Result Class Interaction(experience, result, value) public int getValue() oliviergeorgeon.com22/29

Analyse de traces d’activité. oliviergeorgeon.com e1,r2,-1 e2,r1,1 e1,r1,1 Motivation1, Environnement 0. Motivation1, Environnement 1. Motivation1, Environnement 2. e1,r2,1 learn e1r1-e1r2,0 e1,r1,-1 learn e1r2-e1r1,0 e1,r1,-1 learn e1r1-e1r1,-2 e2,r2,1 learn e1r1-e2r2,0 e2,r1,-1 learn e2r2-e2r1,0 e2,r1,-1 learn e2r1-e2r1,-2 e1,r2,1 learn e2r1-e1r2,0 e2,r2,1 learn e1r2-e2r2,2 e1,r2,1 learn e2r2-e1r2,2 e2,r2,1 23/29

Environnement 3 Behaves like Environnement0 during the first 10 cycles, then like environnement1. Implémentation – If (step < 10) If (experiment = e1) then result = r1 If (experiment = e2) then result = r2 – Else If (experiment = e1) then result = r2 If (experiment = e2) then result = r1 – Step++ oliviergeorgeon.com24/29

Temps Activated i11 Propose … i11 i t-3 i t-2 i t-4 i t-1 i t = i11 i11 PRESENT FUTURPAST learn AGENT itit (i t-1,i t ) Activate i t-1 oliviergeorgeon.com Principle of Agent 3 (i11,i12) i12 e1 Choose Execute (i11i11) 25/29

Implementation of Agent 2 At the end of time step t – Record or reinforce i c =  i t-1, i t, w  =  pre(i c ), post(i c ), weight  If i c already belongs to the set of existing interactions I t – Weight ++. At the beginning of time step t – Construct the list of activated composite interactions A t A t = { i  I t | pre(i) = i t-1 } – For each activated composite interaction in A t Create a proposition for post(ic).experience with proclivity ic.weight * post(ic).valence For each experience, sum up the proclivity of all its propositions. Choose the experience that has the highest total proclivity. oliviergeorgeon.com26/29

Class Interaction //attributes: Experience experience; Result result; int value; String label; Interaction preInteraction; Interaction postInteraction; int weight; oliviergeorgeon.com PostInteractoin Composite Interaction weight preInteraction 27/29

Decision mechanism oliviergeorgeon.com List propositions = new ArrayList (); for (Interaction activatedInteraction : getActivatedInteractions()){ Proposition proposition = new Proposition( activatedInteraction.getPostInteraction().getExperience(), activatedInteraction.getWeight() * activatedInteraction.getPostInteraction().getValence()); int index = propositions.indexOf(proposition); if (index < 0) propositions.add(proposition); else propositions.get(index).addProclivity(activatedInteraction.getWeight() * activatedInteraction.getPostInteraction().getValence()); } Collections.sort(propositions); If (propositions.size()> 0) proposedExperience = propositions.get(0).getExperience(); 28/29

Class Proposition Class Proposition implements Comparable – // attributs: – Experience experience – Int proclivity – // constructor – Proposition(Experience experience, int Proclivity) – // methods – int compareTo(Proposition proposition) return new Integer(proposition.getProclivity()).compareTo(proclivity); – boolean equals(Object otherProposition) return ((Proposition)otherProposition).getExperience() == this.experience; – void addProclivity(int proclivity) this.proclivity += proclivity; oliviergeorgeon.com29/29