1 / 44

Inleiding Adaptieve Systemen

Inleiding Adaptieve Systemen. Genetisch programmeren. 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

josiah-ward
Télécharger la présentation

Inleiding Adaptieve Systemen

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. 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. Auteur: Gerard Vreeswijk http://kazimirmajorinc.blogspot.com/2010/03/what-dijkstra-blogged-about-lisp.html

  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. A B C NIL U V NIL Interne lijst-representatie (A (U V) B C) 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. } Getallen, strings, T en NIL evalueren naar zichzelf Lijsten evalueren d.m.v. functie-applicatie: beschouw 1e element als functie, en pas die toe op de evaluatie van de overige elementen. 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))) 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-setvoor de wortel-formule Genereert een homogene term-verzameling: alle functies zijn toe te passen op alle termen. • 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. Vraag: Schrijf de rechter- boom terug als LISP-expressie. Evalueer deze LISP-expressie. Antwoord: (+ (- (- 8) 7) (* (/ 5 1) 4)) = (+ (- 15) 20) = 5 + * – / – LISP-expressie alssyntactische boom 4 7 8 5 1 Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

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

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

  19. + + * * / / – – – 7 6 2 8 Ander voorbeeld vankruising in GP 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 1 + 3 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 • expressies op diepte d = Dmax 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. Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

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

  23. Stop ja nee Tevreden? reproductie ja mu-tatie |Q| = |P| ? Selecteer genetische operator nee recombinatie Flow (volgens Koza, 1992) Creëer lege populate Q en plaats W daar in Kies één ouder uit P Plaats kopie in Q Bepaal de meest fitte S-expressie, W, uit P Kies één ouder uit P Plaats mutant in Q Bereken van elke S-expressie uit P de fitness 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 geneticmoonlander 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) / -9.74 )) • (Reversed) fitness voor snelle maar zachte landing: max(vtouchdown,5) – 5 + 0.1*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 Link naar genetic ant Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

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

  32. LISP : (if (mag>1/2 (/2 goal)) (if near-opp goal closest-mate ) (dribble goal) ) Voorbeeld van robot prog 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 Link naar RoboCup 2007 Soccer Simulation 2D Final Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

  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. 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 Problemen? 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. 9-24. Springer-Verlag (site, sectie “Materiaal”). Inleiding Adaptieve Systemen, Opleiding CKI, Utrecht. Auteur: Gerard Vreeswijk

More Related