Neurale Netwerken Genetische Algorithmen

Slides:



Advertisements
Verwante presentaties
HET CSE NEDERLANDS. Je spreekt toch al jaren
Advertisements

Simultaan Tafelrondje
Synthetische Biologie Endy 2005 Nature • synthetische biologie is ‘de ingenieursvisie op biologie’ • combineert biologie.
Opdrachttaak kennissystemen:
Een paar programma’s met een aantal basisprincipes.
Abstracte kunst & Onderwijs anders leren kijken - anders leren denken
Talentmanagement in de Technische Dienst
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
Advanced Algorithms Groep: EII7AAb
Oppervlakten berekenen
II. N eurale netwerken (pag , boek) prof. dr. L. Schomaker (2004) KI RuG.
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
Programmerend denken Algoritmen.
Laplace transformatie
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Deze les wordt verzorgd door de Kansrekening en statistiekgroep Faculteit W&I TU/e.
Genetische algoritmen3SAT en GA1 Genetische algoritmen.
Deze week: Syllabus deel 2: Hoofdstuk 1 bestuderen
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen Mei 2005.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Geest, brein en cognitie Filosofie van de geest en Grondslagen van de cognitiewetenschap Fred Keijzer.
INGE PROVOST Brainconsult bvba – Putkapelstraat 133 –9051 Gent
Functioneel Programmeren Daan Leijen. Wat gaan we doen? 3 fundamentele principes van computatie Equationeel redeneren IO-monad GUI's in Haskell (wxHaskell)
Advanced Algorithms Groep: EII7AAb Studenten: Clermond de Hullu, Wiebren Wolthuis,Simon Wels en Maik Gosenshuis.
Informatica op het Kalsbeek College. Informatica op het Kalsbeek College.
Penta college CSG Hoogvliet mavo Klas 4. Programma Okt. Voorlichting MBO leerlingen –Programma van dit jaar wat betreft studiekeuze. Nov.Persoonlijk gesprek.
Een Theoretische en Empirische Analyse van Benaderingen in Symbolische Probleem Oplosmethoden.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Klik ergens op het witte deel van deze pagina om verder te gaan
Datastructuren Sorteren, zoeken en tijdsanalyse
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
Krachten Wetten van Newton, gewicht, fundamentele
MET DANK AAN COLLEGA’S IN DEN LANDE ! vee 2012
Inhoud college Lijnbalancering Comsoal Random Sequence Generation
Les 2: Zaterdag 24 mei 2014 Wim Peeters
Docentencongres 2014 Programma: 10:00 – 12:30 Mindset
AI Kaleidoscoop Werkcollege 1: AI Overzicht Radu Serban
AI101  Historisch Perspectief Weak Methods Logic Theorist General Problem Solver  Resolution Theorem Proving Leeswijzer: Hoofdstuk 13.0, 13.1, 13.2 AI.
AI111  Algemeen  Voorbeeld  Concept Learning (Version Space)  Bias Leeswijzer: Hoofdstuk AI Kaleidoscoop College 11: Machinaal.
Experimentele kans javascript.
Representatie & Zoeken
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Gevorderde programmeer les
Instructie Programmeren Task 4 5JJ70. Task 4.1: Iteratief proces Het doel van de opdracht is de uitgangsspanning van een transistor te bepalen met de.
Hoe gebruik ik easy transfer?. Als je een nieuwe pc hebt gekocht, kun je met Windows Easy Transfer je bestanden, , foto's en instellingen overzetten.
Genetisch Algoritme 1 Voordeel  GAs kunnen snel goede oplossingen leveren, zelfs voor moeilijke oplossingsruimten. Nadeel  GAs vinden niet gegarandeerd.
Onderzoeksvaardigheden 3
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Plancyclus, les 4  Actualiteit  Vragen naar aanleiding van vorige les  Vragen over hoofdstuk 4 en 5  Observeren met een plan; het verschil tussen observeren.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
Ontwerpen van 3D lesmateriaal voor biologie Ecent conferentie 20 mei 2015 Dirk Jan Boerwinkel Freudenthal Instituut voor Didactiek van Wiskunde en Natuurwetenschappen.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Workshop Rendement in opleiden Transvorm – 1 juni 2015 Stephan Obdeijn en Carlijn Hoedemaker.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Hartelijk welkom, we starten om 14u
Yammer.
Programmeren woensdag 4 oktober 2017.
Gedrag en cultuur toezicht bij de AFM Leren van fouten in de financiële sector Céline Christensen Nationaal Compliance Congres december.
Is testen een project op zich?
<Geef de titel van het probleem op>
Transcript van de presentatie:

Neurale Netwerken Genetische Algorithmen AI Kaleidoscoop College 12: Subsymbolische methoden Neurale Netwerken Genetische Algorithmen Leeswijzer: 11.0-11.3 + 12.1 AI12 1 1 1 1 1 1 1

Twee scholen Physical Symbol systems = formele operaties op symbool-structuren, geïnspireerd op de logica Subsymbolische systemen = collectief gedrag van veel eenvoudige interacterende onderdelen geïnspireerd op de biologie Voordeel: geen “performance cliff”, ðniet “brittle” (breekbaar) Latere colleges in de opleiding veel meer over dit onderwerp alle colleges tot nu toe vandaag AI12

Performance cliff kwaliteit van antwoorden afstand tot kern-expertise Een menselijke expert (groene lijn) zal bij toenemende afstand tot zijn kernexpertise steeds slechtere antwoorden gaan geven, maar die kwaliteit neemt geleidelijk af (als je een internist iets vraagt over hartfalen geeft ie toch nog wel redelijke antwoorden, als je ‘m vraagt over hersenafwijkingen wordt ‘t al veel minder, etc). Echter, als je een symbolisch expert systeem iets vraagt buiten zijn kernexpertise zal ie misschien nog een tijdje lang goede antwoorden geven, maar daarna begint ie gelijk echt slechte antwoorden te geven, de “performance”/prestatie heeft een “cliff” (snelle afbraak). Tweede belangrijke verschil is dat een menselijke expert zich bewust is van die afnamen (een internist zal je waarschuwen dat ie niet veel van hersenproblemen weet), maar een machine is zich niet/slecht bewust van zijn eigen tekortkomingen. De belofte van subsymbolische systemen zoals neurale netwerken is dat ze zich beter gedragen: dat hun expertise geleidelijk afneemt ipv plotseling. afstand tot kern-expertise AI12

Performance cliff (2) kwaliteit van antwoorden schade aan het systeem Symbolische systemen zijn heel breekbaar, ze zijn heel gevoelig voor schade. Als je er 1 regel uithaalt dan houdt soms het hele systeem al op met werken (denk maar aan een Java programma waar je 1 regel code uit haalt). Alweer is de belofte van subsymbolische systemen dat ze robuuster zijn, minder breekbaar. Je kunt uit een neuraal netwerk een stuk weghalen terwijl het toch nog redelijke antwoorden geeft. schade aan het systeem AI12

Neurale Netwerken losse inspiratie op menselijk brein: AI12 Eerste familie van subsymbolische systemen vandaag is neurale netwerken. Tweede familie zal genetische methoden zijn. Neurale Netwerken zijn gebaseerd op een losse analogie met het menselijk brein: slechts gebruikt als inspiratie, het doel is niet een natuurgetrouw model van het menselijk brein te maken. AI12

Neurale Netwerken: Achtergrond Inspiratie: menselijk brein Veel eenvoudige neuronen Veel verbindingen Parallelisme Niet symbolisch (“sub-symbolisch”) Leren, niet programmeren Menselijk brein » 1012 neuronen (» 1 miljoen megabyte) 1015 verbindingen (» 1000 verbindingen/neuron) AI12

Letter herkenning AI12 De algemene structuur van een neuraal net is: input = aantal neuronen die 1/0 gezet worden door de omgeving/gebruiker output = aantal neuronen die 1/0 gezet worden door het systeem tussenlagen = aantal neuronen die mbv gewichten de 1/0-en uit de input combineren tot output In het voorbeeld: input is een 5x7 rooster waarop de gebruiker een cijfer schrijft, waardoor sommige cellen/neuronen 1 zijn (zwart, geraakt door de pen), en andere 0 (wit, niet geraakt door de pen). output zijn 10 cellen die elk staan voor een van de getallen 0..9. De tussenlagen (in dit geval 1) combineert het 1/0 patroon van de input-cellen tot het aanzetten van 1 van de output cellen zodat het geschreven patroon op de input cellen overeenkomt met het aangegeven cijfer in de output cel AI12

Neurale Netwerken: Componenten Neuron S x1 x2 x3 w1 w2 w3 O Input xi en output O zijn 1 of 0 Gewicht wi Reëel getal Waarde geeft “sterkte” van verbinding aan Instelbaar via leeralgorithme Drempelwaarde T: gedetailleerdere werking van neuron: inputs zijn (meestal) 1 of 0, output is 1 of 0, bepaald door of de gewogen som van de inputs boven een drempelwaarde komt. de gewichten op de inputs geven de “sterkte” van de verbinding aan, en die moet het leeralgorithme gaan leren. Nu is ook duidelijk waarom je dit wilt leren: al die gewichten “programmeren” om te zorgen dat je de goede output zou krijgen zou ondoenlijk zijn. AI12

Neurale Netwerken, Voorbeeld (boek blz 484) credit history Low risk debt Medium risk collateral High risk income Simpel voorbeelde van een neuraal netwerk (merk op dat de inputs niet 1/0 zijn, maar ook 0.5; dat is eenvoudig te verhelpen door voor bijv. “credit history” 2 input-cellen te nemen, met als patronen (11=good, 00=bad en 01 of 10 = unknown). Ter illustratie is het eenvoudiger om dan maar 1 cel met 3 inputwaarden te nemen. Voorbeeld: een bank krijgt als input over een klant te horen wat de leen-geschiedenis van de klant is, wat de huidige schulden van de klant zijn, wat de onderpanden zijn die de klant bezit (“collateral”), en wat het inkomen van de klant is. Op basis van deze 4 gegevens moet het neurale netwerk systeem van de bank voorspellen wat de risico-categorie van de klant is. De kunst is dus bijv. om de link van credit-history naar “low-risk” sterk te krijgen (hoge waarde voor credit-history (= goed) betekent hoge waarde op low-risk, en de link van credit-history naar “high-risk” zwak te krijgen (hoge waarde voor credit-history (= goed) betekent lage waarde op high-risk. Hoe gaat een bank dit nu leren aan zijn Neurale Netwerk systeem Perceptron: 2 lagen, N inputs, M outputs N´M gewichten AI12

Intuitie over leren in Neurale Netwerken Geef het systeem een trainingsverzameling gegeven zijn de inputs gegeven zijn de juiste outputs Het systeem gaat kijken met de huidige gewichten of bij die inputs de juiste outputs berekend worden Als niet, dan worden de gewichten aangepast, zodat wel de juiste outputs berekend worden Herhaal dit voor alle outputs Uiteindelijk berekent het systeem bij alle gegeven inputs de juiste output Maar... AI12

Intuitie over leren in Neurale Netwerken Uiteindelijk berekent het systeem bij alle gegeven inputs de juiste output Maar... Berekent het systeem ook de juiste outputs bij inputs die het nog niet gezien heeft? Dit moet getest worden op nieuwe inputs (de testverzameling) AI12

Neurale Netwerken: Leren Kies willekeurige startgewichten Kies een trainingsverzameling FOR (in,out) Î trainingsverzameling DO Bereken Output(in) Bepaal Error = out - Output(in) Pas gewicht aan: als Error > 0: verlaag gewichten van actieve inputs, w(new) = w(oud) - d als Error < 0: verhoog gewichten van actieve inputs, w(new) = w(oud) + d Herhaal tot Error-rate voldoende laag (of constant) Test m.b.v. van andere test-verzameling als Error < 0: verlaag gewichten van actieve inputs, wi(nieuw) = wi(oud) - d als Error > 0: verhoog gewichten van actieve inputs, wi(nieuw) = wi(oud) + d d -regel Algorithme voor leren van een neuraal netwerk: De trainingsverzameling bestaat uit paren input-waarden (in) en output-waarden (out) Als de berekende Output hoger is dan de gewenste ouptput (out), dan is de Error-waarde < 0, en moeten de gewichten naar beneden. Omgekeerd natuurlijk moeten de gewichten naar boven bijgesteld worden. AI12

Neurale netwerken, voorbeeld W(a,p) 0.9 W(b,p) 0.8 W(c,p) 0.5 W(d,p) -0.2 W(a,q) 0.7 W(b,q) -0.6 W(c,q) 0.3 W(d,q) -0.3 Uitvoer van het netwerk: De gewogen som van de inputs voor p is 0.9+0.5-0.2=1.2 Dit is > drempelwaarde voor p, dus de output van p is 1. De gewogen som van de inputs voor q is 0.7+0.3-0.3=0.7 Dit is <de drempelwaarde voor q, dus de output van q is 0 AI12

Neurale netwerken, voorbeeld W(a,p) 0.9 W(b,p) 0.8 W(c,p) 0.5 W(d,p) -0.2 W(a,q) 0.7 W(b,q) -0.6 W(c,q) 0.3 W(d,q) -0.3 Uitvoer is: P=1, Q=0; gewenste is P=0, Q=1. Aanpassingen met =0.1? De output van p is te hoog, dus we trekken delta af van alle actieve links: W(a,p) = 0.8 w(b,p) = 0.8 (onveranderd, want niet actief) W(c,p) = 0.4 W(d,p) = -0.3 De output van q is te laag, dus we tellen delta op bij alle actieve links: W(a,q) = 0.8 w(b,q) = -0.6 (onveranderd, want niet actief) W(c,q) = 0.4 W(d,q) = -0.2 AI12

Neurale Netwerken: d-regel wi(nieuw) = wi(oud) ± d VOORDEEL: Convergeert naar correcte wi langs kortste pad NADEEL: Echter, keuze van d: te laag: langzame convergentie te hoog: schiet langs correcte waarde Mogelijke tussenvorm: begin met hoge d, verminder tijdens het leren Optimale waarde van d is onberekenbaar AI12

Perceptron: beperkingen Perceptron = 2 lagen, N inputs, M outputs, N´M gewichten Kan alleen lineair separabele classificaties leren » klassen scheidbaar door 1 lijn (2 dimensies) 1 vlak (3 dimensies) Voorbeeld 1 X Y X or Y 1 X Y X xor Y niet scheidbaar door rechte lijn We hebben het tot nu toe over netwerken gehad zonder tussenlaag (outputs direct verbonden aan inputs). Die hebben een zware beperking. Ze kunnen maar heel eenvoudig gedrag leren. Het standaard voorbeeld is exclusive OR te leren. Een netwerk-zonder-tussenlagen (= een perceptron) kan wel de OR functie leren (zie het netwerkje linksonder). Dat is dus de functie waarbij de output aan gaan als minstens een van de inputs aan is.. Maar de XOR functie (de output gaat aan als precies een van de outputs 1 is) kun je niet leren. (Probeer maar eens zo’n netwerk te bedenken, het zal je niet lukken). Wiskundig gesproken komt dit er op neer dat je geen rechte lijn kunt bedenken die de goede outputs scheidt van de foute inputs. Links kun je zien dat dat wel kan voor de OR functie, maar rechts kun je zien dat dat niet kan voor de XOR functie. T=0.5 X Ú Y X Y w=1 ? AI12

Multi-layer Neurale Netwerken N inputs H hidden (mogelijk meerdere lagen) M outputs vanwege de beperkingen van 1-laags netwerken (perceptrons) is het vaak nodig om meerdere laags netwerken te maken, waarbij de tussenlagen (hidden-layers) gebruikt worden om ingewikkeldere transformaties van input-patronen naar output-patronen te doen. Daar is een lastig algorithme voor, dat heet backpropagation. DAT GAAN WE NIET BESPREKEN, HOORT OOK NIET BIJ DE STOF. Vraag: hoe gaat leren in multi-layers, want: wat is “error” van de tussenlaag? Backpropagation AI12

Back propagation: activatie functie Was: Nieuwe activatie functie: = Sigmoïde-functie (continue ipv lineaire drempel vanwege differentieerbaarheid) AI12

Backpropagation: Aanpassen Afgeleide van sigmoïde-functie is: T Aanpassen van gewichten unit n wn1 wnj unit 1 unit j ... Definieer “error” van unit n als: (NB: grote aanpassing als f(I) »T, ± “onbepaald”) Pas nu weer d-regel toe: wi(nieuw) = wi(oud) ± d×Ej AI12

Backpropagation: Eigenschappen Niet gegarandeerd convergent Als convergent, dan mogelijk lokaal maximum Convergentie is vaak langzaam (ð veel trainings voorbeelden nodig) Het voordeel van backpropagation is dat je er ingewikkelder netwerken mee kunt leren (dwz netwerken die een moeilijker input/output gedrag hebben (denk bijv. aan de XOR functie). De nadelen zijn dat backpropagation niet altijd convergeert. Soms blijft backpropagation de hele tijd switchen tussen de ene set gewichten en de andere, zonder te beslissen welke beter is. Als het algorithme al convergeert naar een stabiele verzameling gewichten, dan convergeert het niet altijd naar het beste netwerk. Het kan ook gebeuren dat het uiteindelijk gewichten kiest die niet optimaal zijn, maar een “lokaal maximum” vormen: om het gedrag van het netwerk beter te maken moet het eerst slechter gemaakt worden, en daardoor kan backpropagation die andere gewichten (met beter gedrag) niet vinden, want het lijkt lokaal alsof alle aanpassingen het netwerk alleen maar slechter maken. En als het al convergeert, dan is de convergentie ook nog vaak eens heel langzaam. Er zijn dan heel veel input-output paren nodig (= een hele grote trainingsverzameling). AI12

Neurale Netwerken: toepassingen Handschrift-herkenning (postcode van de PTT) Robot-besturing NETtalk: leren uitspreken van Engelse woorden vingerafdrukken herkennen ... 1. Alle postcodes op brieven in NL worden automatisch gelezen en herkend. Dat herkennen (= afbeelden van handgeschreven letters op de 4-cijfers+2-letters van de postcode) gebeurt met NN software. Dat gebeurt 99% correct. Anekdote: het moeilijkst is niet om de postcode te lezen, maar om te zien waar de postcode staat op de envelope. Waarom denk je dat er op envelopen altijd van die voorgestippelde vakjes staan voor de postcode? Dat is om mensen aan te moedigen daar de postcode neer te zetten, zodat het makkelijker is om te gokken voor de machine waar de postcode staat. Vervolgens is het goed doenlijk om hem dan ook te kunnen “lezen”. 2. In beveiligings-toepassingen worden vingerafdrukken herkend. AI12

Liplezen Input: coordinaten van delen van de mond/lippen output: gesproken klanken AI12

Coordinatie Input: huidige positie van benen + vorm van terrein output: volgende positie van benen AI12

Doen van voorspellingen Input: gevolgde pad van een persoon output: voorspelling over vervolg pad geleerd op basis van eerder observaties AI12

Neurale Netwerken: Problemen Welke netwerk architectuur? (bijv: aantal lagen) Welk leeralgorithme? Samenstelling van de trainingsverzameling Neurale Netwerken: Voordelen “Graceful degradation” (i.t.t. “brittleness”) Robuust na beschadiging Parallel Probleem: Er is nog steeds geen goede theorie over welke vorm van het netwerk nu het beste is voor welk soort probleem? Probleem: Er is een veelheid aan leeralgorithmen (we hebben slechts de eenvoudigste besproken, en een andere genoemd). Die hebben allemaal hun voor- en nadelen, en het is moeilijk om te kiezen welke je wanneer moet gebruiken. Probleem: Een leeralgorithme is alleen maar net zo goed als de trainings-set. Hoe groot moet die zijn? Hoe zorg je dat die representatief genoeg is voor de inputs die later aangeboden zullen worden? Voordeel: Neurale netwerken hebben inderdaad minder een performance cliff en zijn minder breekbaar. Verder lenen ze zich goed voor parallele berekeningen. AI12

Het tentamen is over 210 uur AI12

Evolutie = “leren van een oplossing” competitie in een populatie van kandidaat oplossingen beste kandidaten mogen zich vermenigvuldigen/combineren slechtste kandidaten worden verwijderd populatie convergeert naar de beste oplossing Genetisch algorithme: de metafoor Individu Fitness Omgeving Kandidaat oplossing Kwaliteit van de oplossing Probleem AI12

De evolutie-leer in 1 minuut individu met “genetisch” vastgelegde eigenschappen overlevingskans op basis van fitness voortplantings/combinatie-kans op basis van fitness creëer nieuwe “genen” d.m.v. genetische operatoren (bijv. cross-over, mutatie) geheel vindt plaats in een voldoende diverse populatie van individuen prijsvraag voor degene die weet van wie de foto is. (Charles Darwin, natuurlijk, grondlegger van de evolutie-leer) AI12

Genetische Algorithmen: componenten Individuën, bijv: bitstrings logische formules kennis-netwerken Fitness functie getalsmatige evaluatie van kwaliteit van individu Genetische operatoren: cross-over =combineer informatie van 2 individuen mutatie =verander informatie van 1 individu Belangrijke keuze is hoe je de individueen representeert. Die moeten geschikt zijn om te combineren (= in stukken te knippen, een deel van elke ouder te nemen, en vervolgens weer aan elkaar te plakken).Daar moet dan een correct individu uitkomen. (Dat is natuurlijk met lang niet alle representaties het geval. Knip bijv. 2 stukken Java code aan elkaar, dan is het niet gelijk weer een correct stuk Java code. Merk op dat fitness evaluatie wel weer een hele grote versimpeling is: de fitness van een individu vastgelegd in een enkel getal. Je kunt best beter zijn op het ene gebied, en minder goed op het andere, maar het moet ter wille van een efficiente vergelijking/selectie in 1 getal gepropt worden. De genetische operatoren zijn ook ruwweg hoe het werkt in de natuur (cross-over en kans-gewogen mutatie) AI12

Genetische Algorithmen: te maken keuzes Omvang van de populatie Relatie tussen voortplanting & fitness Relatie overlevingskans & fitness Frequentie van mutaties aantal kinderen per generatie aantal generaties ..... het probleem van GA is dat er heel weinig theorie is over hoe je deze keuzes moet maken. Dat maakt het geheel een beetje tot een “zwarte kunst”. AI12

The Evolutionary Cycle Selection Parents Recombination Population Mutation Replacement Offspring AI12

Genetisch Algorithme: process WHILE stopconditie niet vervuld DO evalueer individuën op fitness selecteer paren van individuën produceer nakomelingen (met gebruik van genetische operatoren) vervang zwakste individuën door de nakomelingen - zijn probabilistisch: gewogen door fitness (niet: bepaald door fitness) generatie 0 + kinderen 400 generatie 1 150 generatie 1 + kinderen 400 generatie 2 150 generatie 0 150 AI12

Genetisch Algorithme: Voorbeeld (1) Domein: bitstrings van lengte 5 (positie nrs. 1 t/m 5) Fitness: Opdracht: vind ideale individu x 1 ( ) Populatie-grootte: 5 Aantal nakomelingen: 2 Mutatiefrequentie: 50% kans op 1 mutatie Cross-over: enkelvoudig op willekeurige plaats Fitness functie drukt uit dat er voor in de string 0-en moeten staan (want als daar b(i)=1, dan weegt het negatief), en achter in de string moeten 1-en staan (want als daar b(i)=1, dan weegt het positief. Gewicht van ideale individue (0,0,0,1,1) is (1-3)*0 + (2-3)*0 + (3-3)*0 + (4-3)*1 + (5-3)*1. Hoe kweek ik nu een populatie waarin het ideale individue voorkomt? Volgende slides doen 2 iteraties. AI12

Genetisch Algorithme: Voorbeeld (2) Individuen Fitness Generatie 0: (random) 1 -1 1 1 1 1 2 gemiddeld: 0.4 Selecteer ouders (kans gewogen door fitness) 1 1 Wel cross-over, geen mutatie Selecteer 5 van de 7 individuen (kans gewogen door fitness) AI12

Genetisch Algorithme: Voorbeeld (3) Individuen Fitness Generatie 1: 1 -1 1 1 2 1 1 1 2 gemiddeld: 0.8 Selecteer ouders (kans gewogen door fitness) 1 1 Wel cross-over, ook mutatie Selecteer 5 van de 7 individuen (kans gewogen door fitness) AI12

Genetisch Algorithme: Voorbeeld (4) Individuen Fitness Generatie 2: 1 1 1 1 2 1 2 1 3 gemiddeld: 1.8 Etc. Eén van de twee optimale strings al gevonden Gemiddelde steeg van 0.4 via 0.8 naar 1.8 AI12

Genetisch Algorithme: Evaluatie GA = parallel hill-climbing: meerdere goede oplospaden tegelijkertijd (populatie > 1) elimineer veel slechte oplospaden tegelijk Eerste populatie ne populatie AI12

Genetische Algorithmen: Evaluatie Algemeen toepasbaar op optimalisatie-problemen Geen garantie voor beste oplossing, wel vaak goede oplossing Problemen Vertalen van domein naar bitstrings? Zijn alle bitstrings geldige representaties na cross-over en mutatie? Instellingen van alle parameters? Keuze van de genetische operatoren? AI12

Voorbeeld van een GA: Kunst Kweken De computer genereert een populatie quasi-Mondriaans Jullie zijn de fitness functie De computer genereert hiermee de volgende generatie Onstaat er een echte Mondriaan? AI12

Dit was het laatste college! AI12