AI Kaleidoscoop College 12: Subsymbolische methoden Neurale Netwerken Genetische Algorithmen Leeswijzer: 11.0-11.3 + 12.1 AI12 1 Twee scholen • Physical Symbol systems = formele operaties op symbool-structuren, alle colleges tot nu toe – geïnspireerd op de logica • Subsymbolische systemen = collectief gedrag van veel eenvoudige interacterende onderdelen vandaag – geïnspireerd op de biologie – Voordeel: geen “performance cliff”, niet “brittle” (breekbaar) • Latere colleges in de opleiding veel meer over dit onderwerp AI12 2 Performance cliff kwaliteit van antwoorden AI12 afstand tot kern-expertise 3 Performance cliff (2) kwaliteit van antwoorden AI12 schade aan het systeem 4 Neurale Netwerken • losse inspiratie op menselijk brein: AI12 5 Neurale Netwerken: Achtergrond • • • • • • Inspiratie: menselijk brein Veel eenvoudige neuronen Veel verbindingen Parallelisme Niet symbolisch (“sub-symbolisch”) Leren, niet programmeren 1012 neuronen ( 1 miljoen megabyte) 1015 verbindingen ( 1000 verbindingen/neuron) • Menselijk brein AI12 6 Letter herkenning AI12 7 Neurale Netwerken: Componenten • Neuron x1 w1 x2 w2 x3 w3 S 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: T O 1 xi w i T O 0 AI12 i 8 Neurale Netwerken, Voorbeeld (boek blz 484) bad 0 credit unknown 0.5 history good 1 Low risk low = 0 debt high = 1 Medium risk no = 0 collateral yes = 1 1- 15 = 0 income 15 - 35 = 0.5 > 35 = 1 AI12 High risk Perceptron: 2 lagen, N inputs, M outputs 9 NM gewichten 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 10 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 11 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 alsError Error><0: 0: verlaaggewichten gewichtenvan vanactieve actieveinputs, inputs, verlaag ww(new) wi(oud)- d- d i(nieuw)==w(oud) d -regel als alsError Error<>0: 0: verhooggewichten gewichtenvan vanactieve actieveinputs, inputs, verhoog ww(new) wi(oud)+ +d d i(nieuw)==w(oud) Herhaal tot Error-rate voldoende laag (of constant) Test m.b.v. van andere test-verzameling AI12 12 Neurale netwerken, voorbeeld • • • • • W(a,p) W(b,p) W(c,p) W(d,p) W(a,q) W(b,q) W(c,q) W(d,q) 0.9 0.8 0.5 -0.2 0.7 -0.6 0.3 -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 13 Neurale netwerken, voorbeeld • • • • • • • • • • • W(a,p) W(b,p) W(c,p) W(d,p) W(a,q) W(b,q) W(c,q) W(d,q) 0.9 0.8 0.5 -0.2 0.7 -0.6 0.3 -0.3 Uitvoer is: P=1, Q=0; gewenste is P=0, Q=1. Aanpassingen met d=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 14 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 15 Perceptron: beperkingen Perceptron = 2 lagen, N inputs, M outputs, NM gewichten Kan alleen lineair separabele classificaties leren klassen scheidbaar door 1 lijn (2 dimensies) 1 vlak (3 dimensies) Voorbeeld X or Y1 Y 0 X Y AI12 X xor Y 1 Y 0 w=1 T=0.5 w=1 X 1 XY 0 niet scheidbaar door rechte lijn 0 1 X ? 16 Multi-layer Neurale Netwerken N inputs H hidden (mogelijk meerdere lagen) M outputs Vraag: hoe gaat leren in multi-layers, want: wat is “error” van de tussenlaag? Backpropagation AI12 17 Backpropagation: Eigenschappen • Niet gegarandeerd convergent • Als convergent, dan mogelijk lokaal maximum • Convergentie is vaak langzaam ( veel trainings voorbeelden nodig) AI12 20 Neurale Netwerken: toepassingen • • • • • Handschrift-herkenning (postcode van de PTT) Robot-besturing NETtalk: leren uitspreken van Engelse woorden vingerafdrukken herkennen ... AI12 21 Liplezen • Input: coordinaten van delen van de mond/lippen • output: gesproken klanken AI12 22 Coordinatie • Input: huidige positie van benen + vorm van terrein • output: volgende positie van benen AI12 23 Doen van voorspellingen • Input: gevolgde pad van een persoon • output: voorspelling over vervolg pad • geleerd op basis van eerder observaties AI12 24 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 AI12 25 Het tentamen is over 210 uur AI12 26 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 AI12 • Kandidaat oplossing • Kwaliteit van de oplossing • Probleem 27 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 AI12 28 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 AI12 29 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 ..... AI12 30 The Evolutionary Cycle Selection Parents Recombination Population Mutation Replacement Offspring AI12 31 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) 150 generatie 0 AI12 400 generatie 0 + kinderen 150 generatie 1 400 generatie 1 + kinderen 150 generatie 2 32 Genetisch Algorithme: Voorbeeld (1) • Domein: bitstrings van lengte 5 (positie nrs. 1 t/m 5) 5 • Fitness: (i 3) b(i) i 1 • Opdracht: vind ideale individu ( 0 0 x 1 1 ) • Populatie-grootte: • Aantal nakomelingen: • Mutatiefrequentie: • Cross-over: AI12 5 2 50% kans op 1 mutatie enkelvoudig op willekeurige plaats 33 Genetisch Algorithme: Voorbeeld (2) Individuen Generatie 0: (random) 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 gemiddeld: Selecteer ouders 1 0 0 0 1 (kans gewogen 0 1 1 1 1 door fitness) • Wel cross-over, geen mutatie • Selecteer 5 van de 7 individuen AI12 (kans gewogen door fitness) Fitness -1 0 0 1 2 0.4 0 0 0 0 1 1 1 1 1 1 34 Genetisch Algorithme: Voorbeeld (3) Individuen Generatie 1: 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 gemiddeld: Selecteer ouders 0 1 1 1 1 (kans gewogen 0 0 0 0 1 door fitness) • Wel cross-over, ook mutatie • Selecteer 5 van de 7 individuen AI12 (kans gewogen door fitness) Fitness -1 0 2 1 2 0.8 0 0 1 1 1 0 1 1 0 1 35 Genetisch Algorithme: Voorbeeld (4) Individuen Generatie 2: 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 gemiddeld: Fitness 1 1 2 2 3 1.8 Etc. • Eén van de twee optimale strings al gevonden • Gemiddelde steeg van 0.4 via 0.8 naar 1.8 AI12 36 Genetisch Algorithme: Evaluatie • GA = parallel hill-climbing: – meerdere goede oplospaden tegelijkertijd (populatie > 1) – elimineer veel slechte oplospaden tegelijk Eerste populatie ne populatie AI12 37 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 38 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 39 Dit was het laatste college! AI12 40