Neurale Netwerken

advertisement
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
NM 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, NM 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
XY
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
Download