De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Neurale Netwerken Genetische Algorithmen

Verwante presentaties


Presentatie over: "Neurale Netwerken Genetische Algorithmen"— Transcript van de presentatie:

1 Neurale Netwerken Genetische Algorithmen
AI Kaleidoscoop College 12: Subsymbolische methoden Neurale Netwerken Genetische Algorithmen Leeswijzer: AI12 1 1 1 1 1 1 1

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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 =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 Dit is <de drempelwaarde voor q, dus de output van q is 0 AI12

14 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

15 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

16 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

17 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

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

19 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

20 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

21 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

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

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

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

25 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

26 Het tentamen is over 210 uur AI12

27 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

28 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

29 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

30 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

31 The Evolutionary Cycle
Selection Parents Recombination Population Mutation Replacement Offspring AI12

32 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

33 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

34 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

35 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

36 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 via naar 1.8 AI12

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

38 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

39 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

40 Dit was het laatste college!
AI12


Download ppt "Neurale Netwerken Genetische Algorithmen"

Verwante presentaties


Ads door Google