De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Inleiding Adaptieve Systemen

Verwante presentaties


Presentatie over: "Inleiding Adaptieve Systemen"— Transcript van de presentatie:

1 Inleiding Adaptieve Systemen
Genetisch programmeren Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

2 Genetisch programmeren
Ontstaan: USA in de 90-er jaren Bekende naam: John R. Koza Typisch toepassings-gebied: machine learning, (simulated) robot learning Eigenschappen: Concurreert met andere connectionistische technieken Werkt alleen met grote populaties Traag Speciaal: Niet-lineaire chromosomen (bomen, grafen) Genotype bezit variabele omvang Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

3 Genotypen In het domein van GA’s zijn genotypen (chromosomen) typisch strings, en dan vaak ook nog bitstrings. Met Genetisch Programmeren zijn genotypen typisch (computer-) programma’s. Het Fouraging Ant voorbeeld uit het vorige college ligt half tussen GA en GP in. Want: Ant ~ Eindige Automaat. In John Koza’s versie van GP (en eigenlijk in de meeste versies van GP) zijn genotypen programma’s in LISP. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

4 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht
Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

5 Crash course LISP LISP: LISt Processing Language (~ 1958).
Geïnspireerd op Church’s λ-calculus. [Bv. (λx.x2) 2  4.] Datastructuur: enkelvoudige gelinkte lijst. Een oude programmeertaal. Bekijk bv. O’Reilly’s History of Programming Languages poster. Dialecten: Common Lisp (~ 1974), Scheme, Emacs Lisp, AutoLISP, Logo, XLisp, ISLISP, Newlisp, Arc. Invloed op: ML, Perl, Python, Smalltalk, Ruby, Dylan, Mathematica, Rebol, Miranda, Haskell, Lua, JavaScript, Forth. LISP is door de jaren heen gebleven. Helaas zijn de programmabibliotheken voor alleen al Common Lisp onderling afwijkend, en soms verouderd. Installatie vergt ervaring. (Vgl. bv. pregexp.) Lees ook Flake's H3, Sec. 3 over LISP! Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

6 LISP: LISt Processing De syntax van LISP is eenvoudig: alles is een atoom of een lijst Vier soorten atomen: Identifiers (zoals X12 en t4. Regexp: /[A-Za-z][\w\-]*/) Getallen (zoals -3 en 9.0e+45) Strings (zoals "hallo" en "hallo\n" ) Speciale atomen (zoals T en NIL) Er is maar één soort lijst. Voorbeelden: (1 2 3) (X123 X123 T -3 “hallo”) ((-3 “hallo”)(-3 “hallo”)) () (Y 1 2 () 3) (()()) Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

7 Interne lijst-representatie
(A (U V) B C) A B C NIL U V NIL Representatie van de lege lijst = ? NIL Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

8 Symbolische expressies (SEXPs)
LISP bestaat uit zg. s-expressies: NIL (1 2 3) (+ (+ 1 2) (* 2 3)) (QUOTE X) 'X (single-quote teken is geen stricte syntax!) (QUOTE (+ (+ 1 2) (* 2 3))) '(+ (+ 1 2) (* 2 3)) (geen stricte syntax!) Recursieve definitie: Een s-expressie is een atoom of een lijst. Een lijst is linkerhaakje, gevolgd door een eindig (mogelijk leeg) rijtje s-expressies, gevolgd door een rechterhaakje. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

9 Evaluatie-functionaliteit in LISP
 172 T  T NIL  NIL X  ERROR: var. “X” not bound (QUOTE X)  X 'X  X (1 2 3)  ERROR: “1” is not a function (+ 2 3)  5 Y  17 (+ Y Y)  34 (+ (+ 1 2) (* 2 3))  9 (QUOTE (+ (+ 1 2) (* 2 3)))  (+ (+ 1 2) (* 2 3))) '(+ (+ 1 2) (* 2 3))  (+ (+ 1 2) (* 2 3))) } Getallen, strings, T en NIL evalueren naar zichzelf beschouw 1e element als functie, en pas die toe op de evaluatie van de overige elementen. Lijsten evalueren d.m.v. functie-applicatie: Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

10 Construeren, dan evalueren
Definiëren: (SETQ x "Hallo") x  "Hallo" Lijsten maken: (SETQ L (list 1 'x x '3)) L  (1 x "Hallo" 3) Expressies construeren, om ze pas daarna te evalueren: (SETQ expressie-1 '(+ 3 5)) (SETQ expressie-2 '(+ 1 7)) (SETQ expressie-G (LIST '* expressie-1 expressie-2)) expressie-G  (* (+ 3 5) (+ 1 7)) (EVAL expressie-G)  64 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

11 Construeren, dan evalueren
(SETQ then-code '(do (left) (move) (right))) (SETQ else-code '(do (left) (wait))) (SETQ code '(if (food-ahead) **then-part** **else-part**)) (SETF (NTH 2 code) then-code) (SETF (NTH 3 code) else-code) code  (if (food-ahead) (do (left) (move) (right)) (do (left) (wait))) (EVAL code)  ant voert code uit Instantieer element nr. 2 van lijst code Instantieer element nr. 3 van lijst code Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

12 Genotypen Chromosomen worden gerepresenteerd als LISP structuren, typisch opgebouwd uit een handvol elementaire expressies of instructies. Voorbeelden: Logische of rekenkundige expressies: (AND (OR (AND P (NOT R) Q) P)(OR R P)) (+ ( (* 4 ( 2) 7) 3)(+ 6 1)) Instructies: (if (food-ahead (left) (if (food-ahead (right) (left))) Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

13 Voorbeeld van typisch genoom
(if (food-ahead (if (food-ahead (right) (if (food-ahead (right) (if (food-ahead (left) (if (food-ahead (if (food-ahead (if (food-ahead (right) (if (food-ahead (right) (if (food-ahead (left) (if (food-ahead (right) (left))))) (if (food-ahead (right) (if (food-ahead (left) (if (food-ahead (right) (right))))) (left))))) (if (food-ahead (right) (if (food-ahead (left) (if (food-ahead (right) (right))))) Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

14 Terminal- en functie-set voor de wortel-formule
Genereert een homogene term-verzameling: alle functies zijn toe te passen op alle termen. Terminal-set T { a, b, c } Functie-set F { + , – , ± , * , /, kwadrateren,  } Alle elementen uit T zijn correcte kandidaat-oplossingen. Als f een functie-symbool is met ariteit n, en e1,…,en zijn correcte kandidaat-oplossingen, dan is f(e1,…,en) ook een correcte kandidaat-oplossing. Alle kandidaat-oplossingen zijn op bovenstaande manier te maken. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

15 Voorbeelden van te construeren kandidaat wortel-formules
a, b, a – c, (a – c)2, (a – c)2 + b2 , √( (a – c)2 + b2 ) , √( (a – c)2 + b2 ) + (a – c)2 , [ √( (a – c)2 + b2 ) + (a – c)2 ] / ( a + a ) , [ [ √( (a – c)2 + b2 ) + (a – c)2 ] / ( a + a ) ] + b , …. Waarom geen 2a hier? Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

16 LISP-expressie als syntactische boom
Vraag: Schrijf de rechter- boom terug als LISP-expressie. Evalueer deze LISP-expressie. Antwoord: (+ (- (- 8) 7) (* (/ 5 1) 4)) = (+ (- 15) 20) = 5 + * / 7 4 8 5 1 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

17 Mutatie in GP + * 4 / 5 1 9 4 + 7 8 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

18 Kruising in GP * + / – – * / + – 6 2 8 7 4 9 4 5 1
Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

19 Ander voorbeeld van kruising in GP
* + / 7 8 * / + 6 2 4 9 4 5 1 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

20 Voorwaarden voor kruising
De te kruisen structuren moeten van hetzelfde type zijn (bv. numeriek x numeriek, of: instructie x instructie). Voorbeeld: (if *cond-1* *then-part-1* *else-part-1*) (if *cond-2* *then-part-2* *else-part-2*) Hier zijn x 3 = 10 kruisingen mogelijk Eén Boole’s deel: cond-1 x cond-2 Negen instructie-delen: 1x2, 1 x then2, 1x else2, then1 x 2, …, else1 x else2 Veel GP implementaties maken gebruik van zg. homogene termverzamelingen. Daar zijn alle termen van één type. Voorbeeld: (if-food-ahead *then-part* *else-part*) bevat geen test. Deze is hier in de structuur “ingebakken”. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

21 Initialisatie van een populatie
Zet maximum initiële diepte van syntaxbomen, bijvoorbeeld Dmax = 15 Verzadigde methode (elke tak heeft diepte = Dmax ): expressies op diepte d < Dmax willekeurig kiezen uit functie-set F expressies op diepte d = Dmax willekeurig kiezen uit terminal-set T Groeimethode (elke tak heeft diepte  Dmax ): expressies op diepte d < Dmax willekeurig kiezen uit F  T Gebruikelijke GP initialisatie: ramped half-and-half, waarbij de verzadigde methode en de groeimethode elk de helft van de populatie genereren. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

22 Overzicht Representatie Syntax-bomen Initialisatie
Ramped half-and-half Kruising Verwisseling van sub-bomen Mutatie Genereren van een willekeurig sub-boom Reproductie (klonen) Verhoudingsgewijs naar fitness Mutatie (wijzigen) Recombinatie (kruising) Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

23 Flow (volgens Koza, 1992) Stop ja nee Tevreden?
Creëer lege populate Q en plaats W daar in Kies één ouder uit P Plaats kopie in Q reproductie |Q| = |P| ? Bepaal de meest fitte S-expressie, W, uit P ja Selecteer genetische operator mu-tatie Kies één ouder uit P Plaats mutant in Q recombinatie Bereken van elke S-expressie uit P de fitness nee Kies twee ouders uit P Plaats kinderen in Q P wordt Q Genereer initiële populatie P ter grootte N Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

24 Voorbeeld: genetic moonlander
Link naar genetic moonlander op googlepages. Doel: zet maanlander zacht neer. I.i.g. zonder dat de brandstof voortijdig op raakt. Bij voorkeur: (i) zo snel mogelijk (ii) zo zuinig mogelijk Technisch doel: bepaal optimale thrust (voortstuwing) f(m, v, h), gebaseerd op massa (m), hoogte (h) en neerwaartste snelheid (v). Terminals: m, v, en h Functiesymbolen: +, –, *, /, en eventueel sqrt, log, exp, en sin Voorbeeld kandidaat-oplossing: f(v,h,m) = ( 3.12 / (1.18*v) ) – (h / sin( (h*v) / )) (Reversed) fitness voor snelle maar zachte landing: max(vtouchdown,5) – *sec Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

25 Voorbeeld: symbolische regressie
Link naar symbolische regressie applet van Hannes Planatscher. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

26 Voorbeeld: genetic ant
Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Link naar genetic ant

27 Probleem met kruising: bloat
Zonder tegenmaatregelen groeit, bij kruising en mutatie, de gemiddelde omvang van expressies. Dit wordt bloat genoemd, ook wel: survival of the fattest. Tot op heden bestaat hier (nog) geen sluitende statistische verklaring voor. Mogelijke tegenmaatregelen: Verbied de creatie van dikke kinderen. Geef dikke kinderen een lagere fitness (Eng.: pressure of parsimony, of: pressure of Ockham’s razor). Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

28 Voorbeeld van bloat Mogelijke fitnesmaat om overbodige expressies tegen te gaan: Fitness(formule) =Def de som van: α x de fout van de formule op 100 willekeurige 2e - graadsvergelijkingen β x het aantal sub-expressies in de formule De parameters α en β moet je nu tweaken om tot aanvaardbare oplossingen te komen Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

29 Problemen met fitness-evaluatie
In GP domein is fitness-evaluatie meestal duur. In GA domein: fitness-evaluatie ↔ doorrekenen oplossing. Voorbeeld: zendcapaciteit antenne of gewicht giek is makkelijk te berekenen. Effectiviteit foraging ant is alweer moeilijker. In GP domein: fitness-evaluatie ↔ uitvoeren van een programma, en wachten op de resultaten (die je nodig hebt om het programma te evalueren). In het slechtste geval wordt het programma bv. uitgevoerd op een robot in robo-soccer. (Voor elke trial: robot klaarzetten, bal klaarleggen, etc.) Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

30 Voorbeeld: RoboCup Soccer
In tegenstelling tot andere leermethoden is GP een natuurlijke kandidaat om algoritmisch robotgedrag te ontwikkelen. Softbots (agents in een gesimuleerde omgeving) evolueren bottom-up tot een team dat in staat is elkaars acties te coördineren en in staat is tot samenspelen. Er waren leagues waarin teams van hand-gecodeerde bots (met heuristische ALS-DAN regels) verslagen werden door teams met GP gecodeerde bots. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

31 Enkele atomaire functies
Waarde Beschrijving (s1) bool Returns my internal state flag (1 or 0). (mate-closer) 1 if a teammate is closer than I am to the ball, else 0. (near-opp) 1 if there is an opponent within r distance from me, else 0. (squadn) 1 if I am squad mate n, else 0. (rand) 1 or 0, depending on a random event. (home) vect A vector to the my “home position”. (ball) A vector to the ball. (defgoal) A vector to goal I am defending. (goal) A vector to the goal I am attacking. (closest-mate) A vector to my closest teammate. (/2 vect1) Divides the magnitude of vect1 by 2. (dribble vect1) Sets the magnitude of vect1 to some constant c. (avg vect1 vect2) Returns the average of vect1 and vect2. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

32 Voorbeeld van robot prog
LISP : (if (mag>1/2 (/2 goal)) (if near-opp goal closest-mate ) (dribble goal) Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

33 Mutatie Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

34 Crossover Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

35 Fitness function(s) Uitgeprobeerde fitness functies :
Maximaliseer aantal gescoorde goals Maximaliseer balbezit Maximaliseer aantal succesvolle passes Minimaliseer bal buiten lijnen brengen Concurrerende fitness: ge-evolueerde teams spelen tegen elkaar. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

36 Verdere specificaties algoritme
Representatie Homogeen: één voetbalprogramma voor alle spelers. Heterogeen: elk programma heeft verschillende code voor verschillende spelers. of: Elke speler heeft een eigen programmaatje. Parameters 200 individuen in één populatie 50 generaties Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Link naar RoboCup 2007 Soccer Simulation 2D Final

37 Initiële populatie Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

38 Kluitjesvoetbal Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

39 Leren om doel te bewaken
Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

40 Positiespel Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

41 Evolved tree for passing behavior
Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

42 Problemen? Populatiegrootte te klein  niet genoeg diversiteit.
Teams speelden te weinig tegen elkaar  evaluaties onvoldoende gespreid. Teamgedrag vs. gedrag individuen. Zg. credit assignment probleem. Link naar Robocup Soccer Simulation League, 3D Final 2007 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

43 Netlogo’s JGE extensie
JGE: Java Grammatical Evolution Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

44 Taal-onafhankelijk GP
Zie verder: I. Dempsey et al. (2009). Grammatical Evolution. Chapter 2 in: Foundations in Grammatical Evolution for Dynamic Environments, SCI 194, pp Springer-Verlag (site, sectie “Materiaal”). Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk


Download ppt "Inleiding Adaptieve Systemen"

Verwante presentaties


Ads door Google