De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Inleiding Adaptieve Systemen Genetisch programmeren."— Transcript van de presentatie:

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

2 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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

3 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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.

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

5 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Crash course LISP LISP: LISt Processing Language (~ 1958). Geïnspireerd op Church’s λ-calculus. [Bv. (λx.x 2 ) 2  4.] Datastructuur: enkelvoudige gelinkte lijst. Een oude programmeertaal. Bekijk bv. O’Reilly’s History of Programming Languages poster.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.)pregexp Lees ook Flake's H3, Sec. 3 over LISP!

6 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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) (()())

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

8 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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.

9 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Evaluatie-functionaliteit in LISP 172  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:

10 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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

11 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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

12 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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)))

13 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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)))))

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

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

16 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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 / 5 1 – 8

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

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

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

20 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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”.

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

22 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Overzicht RepresentatieSyntax-bomen InitialisatieRamped half-and-half KruisingVerwisseling van sub- bomen MutatieGenereren van een willekeurig sub-boom Reproductie (klonen)Verhoudingsgewijs naar fitness Mutatie (wijzigen) Recombinatie (kruising)

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

24 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Voorbeeld: genetic moonlander Link naar genetic moonlander op googlepages.geneticmoonlander 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(v touchdown,5) – *sec

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

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

27 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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).

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

29 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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.)

30 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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.

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

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

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

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

35 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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.

36 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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 Link naar RoboCup 2007 Soccer Simulation 2D Final

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

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

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

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

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

42 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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 Robocup Soccer Simulation League, 3D Final 2007

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

44 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk 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”).site


Download ppt "Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk Inleiding Adaptieve Systemen Genetisch programmeren."

Verwante presentaties


Ads door Google