Parallel Systems Introduction
Transcript of Parallel Systems Introduction
Informatica 2e semester: HOC 7
Informatica
2e semester: les 7
Slimme (deel II: hoofdstuk 5) versus intelligente (deel III:
hoofdstuk 9) algoritmen
Jan Lemeire
Informatica 2e semester
februari – mei 2019 1
“Is er een machine die even
slim of zelfs slimmer is als de
mens!?”
HAL
Film 1968
Computer HAL
Vandaag
1. Puzzel: herhaling & vervolg
2. Spel: minimax
3. Non-zero sum game
4. Leren
5. Deel III: slimme algoritmen versus
intelligentie
Herhaling
Jan Lemeire 7Pag. / 99
Oplossingsmethoden
Type 1: De oplossing kan berekend worden met een formule (analytisch).
Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan).
Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden.
Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten.
Type 5: Je leert al doende welke de juiste keuzes zijn.
Informatica 2e semester: HOC 7
p. 31
Doorploeteren zoekboom
= Brute-force search
2 mogelijkheden: (1) depth-first : a-b-e-j-k-c-f-g-l-m-n-d-h-o-p-i-q
= backtracking
(2) breadth-first: a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q
Informatica 2e semester: HOC 7
p. 33
Jan Lemeire 9Pag. / 99
‘Domme rekenkracht’
Brute force: puur rekenen
Niet echt intelligent
Echter: zoekruimte wordt snel te groot!
10 stappen > 210≈1000 mogelijke sequenties
6x6 puzzel > 100 stappen > 2100≈1030 mogelijke sequenties
Kunnen we gerichter zoeken?
Informatica 2e semester: HOC 7
Jan Lemeire 10Pag. / 99
Oplossingsmethoden
Type 1: De oplossing kan berekend worden met een formule (analytisch).
Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan).
Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden.
Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten.
Type 5: Je leert al doende welke de juiste keuzes zijn.
Informatica 2e semester: HOC 7
p. 31
Jan Lemeire 11Pag. / 99
(3) Gericht zoeken: greedy search
Kies actie die oplossing korter bij brengt
Gebaseerd op een score
Puzzel:
Manhattan-afstand van stukje tot eindpositie
Sommeren over alle stukjes
Informatica 2e semester: HOC 7
p. 36
OK
Puzzel 1 in schuifpuzzel.jar
NOK
in de toekomst kijken noodzakelijk
of terugkeren op stappen
stukje 2 & 3 verwisselen in beginpositie
Puzzel 2 in schuifpuzzel.jar
Jan Lemeire 14Pag. / 99
4 bezochte noden (grijze nodes)
4+8 bekeken nodes (grijze nodes +
grijze wolk)
(3) Greedy search
Jan Lemeire 15Pag. / 99
(4) Best-first search
Idee student Ruben Pauwels (examen juni 2016): greedy search combineren met backtracking: als je vast zit, keer je terug op je stappen en neemt het tweede-beste pad.
Dus: sorteren op score, in een lijst de open nodes bijhouden
Open nodes = tot waar je gekomen bent in de verschillende takken die je al bekeken hebt
PriorityQueue gebruiken: sorteert de elementen volgens score (ascending/opklimmend: laagste eerste)
Implementatie = breadthfirst, maar dan PriorityQueue ipvFIFOQueue
https://en.wikipedia.org/wiki/Best-first_search
Informatica 2e semester: HOC 7
public static <Zet> boolean breadthfirst (ZoekNode<Zet> startnode){FIFOQueue<ZoekNode<Zet>> openNodes =
new FIFOQueue<ZoekNode<Zet>>(1000); openNodes.add(startnode);
while(!openNodes.isEmpty()){ZoekNode<Zet> node = openNodes.get();
List<Zet> zetten = node.possibleMoves();for(Zet zet: zetten ){
ZoekNode<Zet> child = node.clone(); //copy!!child.move(zet);if (child.isSolution()){
System.out.println("Oplossing gevonden!");return true;
}openNodes.add(child);
}}return false; // geen oplossing gevonden
}
bestFirst
PriorityQueuePriorityQueue
poll()
Code breadth-first => best-first
Jan Lemeire 17Pag. / 99
Voorbeeld best-first
Als meerdere nodes met gelijke score: we nemen de jongste, volgens het lifo-principe (last-in, first-out) zoals bij een stack
(5) A-star: voorbeeld
http://en.wikipedia.org/wiki/A*_search_algorithm
Robot moet weg vinden (rood -> groen)
g-score = afstand vanaf start
h-score = afstand tot doel
Laagste scores (g-score + h-score) worden eerstbekeken: hierop sorteren met PriorityQueue
Alles is hetzelfde als best-first, enkel dat g-score wordt toegevoegd
public static <Zet> boolean breadthfirst (ZoekNode<Zet> startnode){FIFOQueue<ZoekNode<Zet>> openNodes =
new FIFOQueue<ZoekNode<Zet>>(1000); openNodes.add(startnode);
while(!openNodes.isEmpty()){ZoekNode<Zet> node = openNodes.get();
List<Zet> zetten = node.possibleMoves();for(Zet zet: zetten ){
ZoekNode<Zet> child = node.clone(); //copy!!child.move(zet);if (child.isSolution()){
System.out.println("Oplossing gevonden!");return true;
}openNodes.add(child);
}}return false; // geen oplossing gevonden
}
aStar
PriorityQueuePriorityQueue
poll()
Code breadth-first => aStar
Code identiek aan best-first!
Enkel score is anders
Jan Lemeire 20Pag. / 99
Best-first en a-star
In vierkant: a-starscore
Als meerdere nodes met gelijke score: we nemen de jongste, volgens het lifo-principe (last-in, first-out) zoals bij een stack
Jan Lemeire 21Pag. / 99
(6) Iterative Deepening
Start met beginsituatie als beginnode
Doe iteratief tot oplossing gevonden of maximale diepte bereikt
Vanaf de node de zoekboom uitwerken (breadth-first van links naar rechts) tot een zekere diepte (horizon)
Stoppen als een oplossing gevonden wordt
Selecteer hoogste score uit de bladeren (nodes op diepte van horizon)
- Als verschillende nodes met dezelfde score, behouden we de eerste node die we tegenkwamen
Voer de zet uit die naar de hoogste score leidt
– Deze node wordt de nieuwe beginnode voor de volgende iteratie
Je zet dus 1 stapje en werkt opnieuw de zoekboom uit tot de horizon. Boom wordt dus telkens 1 level dieper uitgewerkt.
Informatica 2e semester: HOC 7
p. 39
Niet in cursus
Jan Lemeire 22Pag. / 99
(6) Iterative Deepening
Boom van 4 diep:
Informatica 2e semester: HOC 7
5
3
4
3
3
2
5
5
4
3
4
5
4
5
4
5
7
6
7
6
UP
LEFT
DOWN UP
RIGHTRIGHT
RIGHT
DOWN UP
LEFT LEFT
LEFT
UP
RIGHT UP
RIGHT
DOWN
UPRIGHT
4
5
7
66
UP
LEFT UP
LEFT
RIGHT
5
7
7DOWN
UPLEFT
Jan Lemeire 23Pag. / 99
Iterative Deepening stap 2
Boom uitwerken vanaf
Met diepte 4 komen we er niet…
Wat is noodzakelijke horizon om oplossing tebereiken?
Informatica 2e semester: HOC 7
NOK
Jan Lemeire 24Pag. / 99Informatica 2e semester: HOC 7
We hebben een app gemaakt waarmee je de 6 algoritmen
kan vergelijken en zelf ook het spel spelen. Te vinden als
SchuifPuzzel.jar op parallel website (Theorie – Les 7)
of als Schuifpuzzel.java in package Schuifpuzzel.Deze code verschilt van die uit package zoeken om het spel
interactief te maken.
We tellen het aantal bekeken nodes (niet bezochte nodes)
als maat voor de zoektijd.
Jan Lemeire 25Pag. / 99
Oefening
Informatica 2e semester: HOC 7
• Gegeven: zoekboom met scores (niet zeker een perfecte inschatting).
• Doel: score 0
• Pas de 6 verschillende zoekalgoritmen toe (horizon=2).
• Vergelijk de snelheid om een oplossing (zwarte node) te vinden.
• Vergelijk voor het vinden van de kortste oplossing (minst aantal stappen).
• Welke algoritmen garanderen de kortste oplossing?
p. 40
Jan Lemeire 26Pag. / 99
Score in zoekruimte
Probleem: terechtkomen in lokaal maximum
Informatica 2e semester: HOC 7
Jan Lemeire 27Pag. / 99
Fitness landscape
Biologische evolutie van soorten
Fitheid: bepaald door zijn aangepastheid aan de omgeving
Natuurlijke selectie
Verandering bouw en het gedrag door genetische mutaties
Evolutie van soorten
Klimmen en sprongen door het fitness landscape
elke stabiele soort op een bergtopje zit
Evolutie nabootsen: genetisch algoritme
Informatica 2e semester: HOC 7
p. 41
Jan Lemeire 28Pag. / 99
Genetisch algoritme
Informatica 2e semester: HOC 7
Initële populatie Sommige individuën muteren Enkel de besten overleven
Jan Lemeire 29Pag. / 99
Verdere verbeteringenpuzzelalgoritme
a) puzzel rij-per-rij afwerken.
• Score enkel op eerste rij definiëren, vervolgens op 2e rij, …
• Behalve de laatste twee rijen, die tegelijkertijd aanpakken
• Beperkte horizon OK
b) Leren (type 5): zie later
c) Regels opstellen
➢ Type 1 probleem
Informatica 2e semester: HOC 7
p. 42
Hoe generiek
programmeren?
niet te kennen,
optioneel – als vervangvraag
Jan Lemeire 31Pag. / 99
Generieke implementatie
Via abstractie is het algoritmealgemeen bruikbaar
Code + uitleg staat op website
Java package ‘zoeken’
Niet te kennen
Optioneel: als vervangvraag (in de plaats van een andere vraag)
Informatica 2e semester: HOC 7
interface Node {boolean isOplossing();List<Zet> volgendeZetten();void doeZet(Zet zet);void ontdoeZet(Zet zet);Node clone();
}interface Zet{
}
Jan Lemeire 32Pag. / 99
Uitdaging: algemene oplossing
onafhankelijk van het specifieke probleem dat je wenst op te lossen!
Wat moet je weten om de boom aan te maken?
Je moet de mogelijke acties kennen. Met de actie kom je in een nieuwe situatie, je bereikt een nieuwe toestand. Je wilt ook weten of je de gevraagde eindsituatie bereikt hebt.
Allemaal operaties op de toestand
Informatica 2e semester: HOC 7
Probleemspecifieke code
Document op website
Link tussen algoritme en probleem gegeven door interface
NP-complete
problemen
Jan Lemeire 36Pag. / 99
NP-compleet: traveling salesman problem
Meest efficiënte volgorde om alle steden af te lopen?
Informatica 2e semester: HOC 7
15! = 1.307.674.368.000 mogelijke volgorden
p. 43
Jan Lemeire 37Pag. / 99
NP-complete (=Not Polynomial time)
Klasse van problemen
Voor optimale oplossing: exponentiële zoektijd
Zoekruimte = td (t: aantal takken per node, d: diepte)
je moet bijna alle mogelijkheden afgaan wil je zeker zijn de beste oplossing te vinden.
Er bestaan geen grote shortcuts!
O(poynomiaal) << O(exponentiële functie)
Bijvoorbeeld: O(n10) << O(2n)
Informatica 2e semester: HOC 7
n n10 2n
20 2010 ≈1013 220 ≈ 106
1000 100010=1030 106.1050=1056
1000000 1060 21000000 ≈ 106.1050000=1050006
p. 4
Jan Lemeire 38Pag. / 99
Een goede oplossing
Maar niet te bewijzen dat optimaal…
zie http://ai4r.rubyforge.org/geneticAlgorithms.html
https://www.youtube.com/watch?v=94p5NUogClM.
Informatica 2e semester: HOC 7
Jan Lemeire 39Pag. / 99
Nog een voorbeeld: plannen van automatische opslagplaatsen
Informatica 2e semester: HOC 7
Spel
Jan Lemeire 41Pag. / 99
Spel
Je speelt tegen een tegenstander, hebt een aantal acties ter beschikking, speelt om beurten en er is een einddoel of eindscore bepaald. Of varianten hierop.
Zero-sum game: iemand wint – andere verliest
Informatica 2e semester: HOC 7
p. 44
Jan Lemeire 42Pag. / 99
OXO: uitrekenbaar
Informatica 2e semester: HOC 7
X begint255.168 possible games
Zonder symmetrieen: 26.830
Winst voor X: 131.184
Winst voor O: 77.904
Gelijkspel: 46.080
Jan Lemeire 43Pag. / 99
Schaken
Evaluatiefunctie (score)
1. Waarde van de stukken
2. Positie van de koning
3. Controle over het middenveld (de 4 middelste vakjes)
4. Positie van de pionnen
– Bijvoorbeeld, of ze aaneensluitend gepositioneerd zijn
5. Positie van de stukken
– bijvoorbeeld, hoeveel de bewegingsvrijheid van elk stuk
Informatica 2e semester: HOC 7
Jan Lemeire 44Pag. / 99
Zoekboom met scores
Wit & zwart spelen om beurten
Score te maximaliseren door wit
Wat moet wit doen: links of rechts?
Informatica 2e semester: HOC 7
4
White plays
Black plays
White plays
Black plays
3
5
4 5
7
7 6
8
4
5 3
6
8 7
5
5
6
3 8
6
2 8
7
6
9 6
9
7 9
8
Jan Lemeire 45Pag. / 99
Greedy search
Wit kiest voor rechts, zwart voor links, wit voorlinks en zwart voor links
Eindscore = 2 ( is laagste van de hele boom!)
Informatica 2e semester: HOC 7
4
White plays
Black plays
White plays
Black plays
3
5
4 5
7
7 6
8
4
5 3
6
8 7
5
5
6
3 8
6
2 8
7
6
9 6
9
7 9
8
Jan Lemeire 46Pag. / 99
Twee zetten vooruit denkenWit kiest nog steeds voor rechts, want zwart kiest dan voor links => score van 5. Als wit voor links koos zou zwart voor links kiezen => score van 3.
Zwart kiest voor links, want daar kan wit slechts 7 behalen. Vervolgens kiest wit voor rechts want zwart kan daar slechts een score van 3 behalen.
Informatica 2e semester: HOC 7
4
White plays
Black plays
White plays
Black plays
3
5
4 5
7
7 6
8
4
5 3
6
8 7
5
5
6
3 8
6
2 8
7
6
9 6
9
7 9
8
Jan Lemeire 47Pag. / 99
Minimax: wat doet zwart?
Kiest zet die score minimaliseert
Informatica 2e semester: HOC 7
p. 46
White plays
Black plays
White plays
Black plays
4 57 6 5 38 7 3 82 8 9 67 9MIN
Enkel score van de laagste
nodes is van belang!!!
Jan Lemeire 48Pag. / 99
Minimax: wat doet wit?
Kiest zet die score maximaliseert
Informatica 2e semester: HOC 7
White plays
Black plays
White plays
Black plays
4 5
4
7 6
6
5 3
3
8 7
7
3 8
3
2 8
2
9 6
6
7 9
7
MIN
MAX
Jan Lemeire 49Pag. / 99
Minimax: zwart
Informatica 2e semester: HOC 7
White plays
Black plays
White plays
Black plays
6
4 5
4
7 6
6
7
5 3
3
8 7
7
3
3 8
3
2 8
2
7
9 6
6
7 9
7
MIN
MAX
MIN
Jan Lemeire 50Pag. / 99
Minimax: wit beslist
Links geeft score ‘6’ (met horizon van 4)
Informatica 2e semester: HOC 7
6
White plays
Black plays
White plays
Black plays
6
6
4 5
4
7 6
6
7
5 3
3
8 7
7
3
3
3 8
3
2 8
2
7
9 6
6
7 9
7
MIN
MAX
MIN
MAX
Jan Lemeire 51Pag. / 99
Wat gebeurt bij horizon = 3?
Informatica 2e semester: HOC 7
Jan Lemeire 52Pag. / 99
Snoeien van de boom
‘Pruning’
Alfa-beta pruning: als tegenstander beschikt over eensuccesvolle actiesequentie => geen zin om dit deel verderte bekijken
Voor sommige situaties dieper gaan
Regels die hierover beslissen
Informatica 2e semester: HOC 7
Jan Lemeire 53Pag. / 99
Computer wint van Mens
1997: IBM’s Deep Blue verslaat wereldkampioen Gary Kasparov
Nadien enkele revanches van de mens, verschillende gelijke spelen, maar nu wordt geaccepteerd dat de computer sterker is
Computerschaak
Brute-force search: veel rekenen, weinig ‘redeneren’
– Evalueert 200 millioen posities per seconde
Niet goed in strategisch denken
Informatica 2e semester: HOC 7
Jan Lemeire 54Pag. / 99
Is dit Artificiële Intelligentie?
Betwijfel hetJan Lemeire, An Alternative Approach for Playing Complex Games like Chess”, Annual machine learning conference of Belgium and The Netherlands (BeneLearn 2008), Spa, Belgium 2008. zie mijnhomepage
Idee: opportuniteit (patronen) – checken of einddoelgehaald kan worden – enkel branches nagaan die relevant zijn?
Gericht zoeken in boom mogelijk
Informatica 2e semester: HOC 7
p. 48
)
Jan Lemeire 55Pag. / 99Informatica 2e semester: HOC 7
Opportuniteit: vork
Opportuniteit
geslaagd
Jan Lemeire 56Pag. / 99Informatica 2e semester: HOC 7
Opportuniteit: vork
We bekijkenenkel relevantezetten die invloedkunnen hebben(pruning)
Opportuniteit
teniet gedaan
Jan Lemeire 57Pag. / 99
Moeilijkheid: patronen
“We bekijken enkel relevante zetten die invloed kunnen hebben (pruning)”
Wat zijn de relevante zetten? Hoe herkennen we ze?
Patronen definiëren/herkennen
Informatica 2e semester: HOC 7
Jan Lemeire 58Pag. / 99
Go
Strategisch-tactisch bordspel waarbij mens nog steeds wint van computer
Regel: als vijandelijke stukken zijn ingesloten
Weg
Hier: wit stukje
op A plaatsen
Informatica 2e semester: HOC 7
Jan Lemeire 59Pag. / 99
16 maart 2016
AlphaGo defeats Lee Sedol 4–1 in Google DeepMind Challenge Match
Informatica 2e semester: HOC 7
Non-zero sum games
Jan Lemeire 61Pag. / 99
Prisoner’s dillema
Henry & Dave beschuldigd van misdrijf
Rechter roept hen apart bij zich en vraagt hen of de ander schuldig is
Antwoord bepaalt straf:
Informatica 2e semester: HOC 7
p. 49
Dave zegt over Henry
Henry zegt over Dave
Jan Lemeire 62Pag. / 99
Iterative Prisoner’s dillema
Samenwerken of bedriegen?
Iteratief toepassen
Op termijn speelt vertrouwen mee
Cf vertrouwen op het internet om iets te kopen van eenvreemde…
De basis van de speltheorie (game theory) in economie
Er is een win-win situatie (samenwerking)!
Informatica 2e semester: HOC 7
Jan Lemeire 63Pag. / 99Informatica 2e semester: HOC 7
Jan Lemeire 64Pag. / 99
Loopgrachtenoorlog
Resulteerde in bestanden tussen de soldaten van beide kanten
Van akkoorden over eetpauzes tot afspraken over (ongevaarlijke) schietuurtjes om de officieren te plezieren(doen alsof er echt gevochten werd)
Iterative prisoner’s dilemma!!
Je kan het bestand schenden en de ander bij verrassingaanvallen
Maar op lange termijn heb je meer baat bij samenwerking
De legerstaf moest maatregelen nemen om deze‘natuurlijke’ evolutie tegen te gaan
Informatica 2e semester: HOC 7
Jan Lemeire 65Pag. / 99
Iterative Prisoner’s dillema
Samenwerken of bedriegen?
Wat is beste strategie?
Toernooien worden gespeeld
Elk duel bestaat uit 100 opeenvolgende beslissingen
Winnaar: oog-om-oog, tand-om-tand
Informatica 2e semester: HOC 7
Verraad
Samen-werking Verraad
0 1
1 0Samen-werking
Volgende zet
La
ats
te z
et
teg
en
sta
nd
er
Leren
Jan Lemeire 67Pag. / 99
Oplossingsmethoden
Type 1: De oplossing kan berekend worden met een formule (analytisch).
Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan).
Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden.
Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten.
Type 5: Je leert al doende welke de juiste keuzes zijn.
Informatica 2e semester: HOC 7
De Standaard – 26 februari 2015
“Een computer van Google DeepMind heft zichzelf 49 spelletjes op de klassieke Atari 2600-console aangeleerd, en spelt nu even goed of beter daneen mens. Kinderspel? Allerminst. Misschien is het zelfs een doorbraak in artificiële intelligentie.”
Jan Lemeire 69Pag. / 99
Leren: de theorie
Te definiëren
de mogelijke toestanden
de mogelijke acties
de beloning/straf
Strategie
Staat -> actie
Informatica 2e semester: HOC 7
staat 1
staat 2
staat 3
staat 4
actie 1
actie 2
actie 3
State space Action space
staat 1
staat 2
staat 3
staat 4
actie 1
actie 2
actie 3
State space Action space
p. 50
Jan Lemeire 70Pag. / 99
Reinforcement learningMatrix van gewichten bijhouden
Gewicht geeft effectiviteit van actie aan
Initieel: alle gewichten gelijkExploratiefase: acties worden willekeurig gekozen
Later: keuze ~ gewicht (P(actie) ~ gewicht)
Exploitatiefase: actie met grootste gewicht kiezen
goed om soms andere acties te kiezen, want het spel kan dynamisch veranderen
Informatica 2e semester: HOC 7
staat 1
staat 2
staat 3
staat 4
actie 1 actie 2 actie 3
4.1 3.8 6.7
12.3 1.2 15.6
8.7 10.2 0.2
2.3 8.7 1.7
Jan Lemeire 71Pag. / 99
Reinforcement learning: update
Als winst/verlies, de laatste acties belonen/afstraffen
eventueel met ‘forgetting factor’: kleinere aanpassing
voor oudere acties
Informatica 2e semester: HOC 7
staat 2actie 1
staat 3actie 1
staat 1actie 2
staat 1actie 3
staat 4
Winst 10+2 +1.5 +1 +0.5
Jan Lemeire 72Pag. / 99
AI op school
Informatica 2e semester: HOC 7
De standaard 23 maart 2019
Leerlingen voeren oefeningen
uit met programma.
Het leert hoe goed een leerling
het doet
=> Een vorm van
reinformcement learning
Jan Lemeire 73Pag. / 99
Iterative Prisoner’s Dilemma
Reinforcement learning
Gebaseerd op n laatste zetten
n=2: 16 mogelijkheden
Gewicht voor de volgende zet aanpassen als tegenstander het omgekeerde doet
Leidt dit tot een goede strategie??
Informatica 2e semester: HOC 7
S/S S/V
Samen-werking Verraad
4.1 3.8
12.3 1.2
8.7 10.2
2.3 8.7
S/S S/S
Als
tegenstander
S/S V/V
-5% Verraad
Samen-werking
+5%
+5% -5%
S/S V/S
... ...
Volgende zet
La
ats
te z
ett
en
Jan Lemeire 74Pag. / 99
Mijn masterproef
De evolutie naar coöperatie
Egoistische robotjes leren samenwerken omdat het hun wederzijds voordeel oplevert (win-win)
Mijn onderzoek: onder welke voorwaarden ontstaater coöperatie?
Informatica 2e semester: HOC 7
Jan Lemeire 75Pag. / 99Informatica 2e semester: HOC 7
Jan Lemeire 76Pag. / 99
Blad-steen-schaar
Enkel laatste zet beschouwen: 9x3 gewichten
Informatica 2e semester: HOC 7
bl – bl
blad steen
4.1 3.8 3.6
12.3 1.2 1.8
8.7 10.2 3.4
2.3 8.7 7.8
4.1 3.8 3.6
12.3 1.2 1.8
8.7 10.2 3.4
2.3 8.7 7.8
4.1 3.8 3.6
bl - st
bl - sc
Volgende zetL
aa
tste
ze
t
schaar
st – bl
st - st
st - sc
sc – bl
sc - st
sc - sc
p. 52
Jan Lemeire 77Pag. / 99
Patroon gebruiken
Slechts 9 gewichten te leren
Informatica 2e semester: HOC 7
winst
verander blijf
14.1 3.8 3.6
14.3 1.2 1.8
11.7 1.2 8.4
verlies
gelijk
Volgende zetL
aa
tste
ze
trandom
Jan Lemeire 78Pag. / 99
Minimax: Leren van evaluatiefunctie
Net zoals bij de schuifpuzzel kunnen we onmogelijkvoor elke situatie de beste actie leren
Wel mogelijk:
Aanpassen van parameters met behulp van feedback (winstof verlies)
Voorbeeld: gewichten van de score-functie, aangezien dezeuit meerdere delen bestaat.
Zoals evaluatiefunctie van schaken
Informatica 2e semester: HOC 7
p. 53
Jan Lemeire 79Pag. / 99
Probleem: explosie van staten
Stel: voor elke toestand (staat) willen we beste zetleren
Schuifpuzzel: 9! mogelijke configuraties
Schaken: nog groter
Te veel mogelijkheden om voor elke toestand de beste actiete leren (mapping van staat op actie)!
Mogelijke oplossing: abstracte regels gebruiken
Als X, doe actie Y
X: eigenschap van staat– geldt dus voor meerdere staten!
Leren van relevantie van regels (zie scorefunctie)
Informatica 2e semester: HOC 7
Jan Lemeire 80Pag. / 99
Hoofdstuk 9: Artificiële intelligentie
(1) Digitaal & binair
(4) Hardware architectuur
(5) Efficiënt productieproces
(6) Computatietheorie & Software
Elektronica: (2) ‘relais’-schakeling,
(3)geheugen
(7) Operating system
(8) Communicatie &
internet
(9) Artificiële
intelligentie
Informatica deel III: technologie, historiek en economische aspecten
Waarmaken van Leibniz’s droom
(0) Het idee
Artificiële
Intelligentie,
de grote uitdaging
“Is er een machine die even
slim of zelfs slimmer is als de
mens!?”
Volgende vragen kunnen beantwoorden:
• Wat is volgens u intelligentie?
• Is de huidige computer al intelligent?
• Zijn we al goed op weg naar een intelligente computer?
Wat verwacht je in de nabije toekomst?
Wanneer spreken we over intelligentie?
Er is verschil tussen slimme algoritmen en intelligentie!
Type A: Patronen herkennen
Type B: Symbolisch = tekens die een betekenis(semantiek) hebben
– ‘begrijpen’ is noodzakelijk voor intelligentie
AI: Type (A) toepassingen
Stemherkenning
Wat je zegt lukt redelijk momenteel
maar herkennen wie spreekt, kan computer niet
Spreken met de computer, zullen we het ooit? willen we het?
Objectherkenning
Vbn: security, gezichtsherkenning in facebook, verkeersbordherkenning, nummerplaatherkenning bij ingangVUB
Echter moeilijk bij slecht weer, donkerte, …
Spel: patronen bepalen strategie/tactiek
Computer = brute force, niet met gebruiken van patronen
Mooie resultaten worden behaald. Maar robots kunnen nog niet voetballen of zo…
Automatische verkeersbordherkenning in de auto
Verkeersbordherkenning
Met een neuraal netwerk (gebaseerd op hoe hersens werken)
IN
PU
T
OU
TP
UT
OUTPUT:Code van verkeersbord
Zo’n neuraal netwerk is ook de basis van ‘deep learning’, de nieuwste. De gewichten van het hele network worden geleerd, ook de diepste lagen.
Lobe.ai: https://www.youtube.com/watch?v=IN69suHxS8w
De Standaard – 26 februari 2015
“Een computer van Google DeepMind heft zichzelf 49 spelletjes op de klassieke Atari 2600-console aangeleerd, en spelt nu even goed of beter daneen mens. Kinderspel? Allerminst. Misschien is het zelfs een doorbraak in artificiele intelligentie.”
AI: type (B) toepassingen
Google searchAsk Jeeves: je kan vragen stellen
Vertalingen: hoe goed/slecht is Google Translate?
Consumentenprofiel adhv historische gegevensGrootwarenhuizen
Facebook, google: aangepaste reclama
Recent: gebruik in USA om politieke voorkeur te beïnvloeden
Is dit intelligent??
Wanneer spreken we over intelligentie?
Er is een verschil tussen slimme algoritmenen intelligentie!
Veel van wat we intelligent noemen is in feite slechtsgebaseerd op een goed doordacht algoritme
Het leeralgoritme van Google Deepmind heeft veel tijdnodig om te leren en kan de resultaten nietextrapoleren van 1 spel naar een ander.
Intelligentie heeft, volgens mij, te makenmet begrijpen
Jan Lemeire 92Pag. / 99
Wat is intelligentie?
Informatie
Redeneren
Begrijpen
Wikipedia: abstract thought, understanding, self-awareness, communication, reasoning, learning, having emotional knowledge, retaining, planning, and problem solving.
Taal (noodzakelijk?)
Verschil tussen slimme algoritmen en intelligentie!
Er is nog geen eenduidige definitie van intelligentie!
Jan Lemeire 93Pag. / 99
Turing Test (1950)
'Can machines think?’
Artificiële intelligentie…
Kunnen we verschil maken tussen mens
en computer?
Informatica 2e semester: HOC 7
MensComputer
Alan Turing
1912-1954
Omdat er geen duidelijke definitie bestaat over wat intelligentie inhoudt en wijals mens prototype zijn van intelligentie, bedacht Turing een test. Door vragente stellen tracht je te ontdekken of er achter het scherm een computer of mens bevindt. Als we geen verschil meer kunnen maken, kunnen we de computer intelligent noemen.
Turing test
http://www.turinghub.com/
http://www.loebner.net/Prizef/loebner-prize.html
Je kan je intelligent programma opladen
100.000 dollar als je programma slaagt voor de Turing test
http://cleverbot.com/Communiceer je met een computer of met een mens?
Turing test for bots
“The idea is to evaluate how we can make game bots, which are Non-Player Characters (NPCs) controlled by AI algorithms, appear as human as possible.”
Unreal Tournament 2004 (results)tournament against one another and about an equal number of humans
tag opponents as human or bot.
Jan Lemeire 96Pag. / 99Informatica 2e semester: HOC 7
Piet Vroon(professor pshycholigie uGent)
Drie soorten hersens
Instinct (Hersenstam/hypothalamus - reptielenherses)
Conditionering (Limbisch systeem - zoogdierenbrein)
Intelligentie (Neocortex – meest recente hersens)
Evolutie van de mens
1 miljoen jaar geleden: evolutionaire sprong
(vuur – werktuigen)
50.000 jaar geleden: finale evolutionaire sprong
(taal?)
Geest is federatie van delen
Daden gevolg van combinatie 3 hersens
1990
The evolution of the human’s cognitive capacities
Merlin Donald, 1991
Episodische cultuur
Nabootsende cultuur
Mythische cultuur
Kennis-cultuur
De ontwikkeling van onze hersens
Episodische cultuur (zoogdieren en vogels): events herkennen en linken aan actie ( = conditionering ≈ reinforcement learning)
Nabootsende cultuur: vaardigheden (vervaardigen werktuigen) leren door imitatie
Elkaar begrijpen door gebaren, kreten en herkennen van emoties (gelaatsuitdrukkingen en stem’timbre’)
Mythische cultuur: taal voor communicatie en overdracht van ‘mythes’
Kenniscultuur: door schrift (ook wiskundige notaties)
Elke cultuur zorgt voor een nieuwe laag hersens. De oude blijven bestaan!
Volgens mij
Met een graduele verbetering van de huidige technieken komen we er niet…
Echte ontdekking moet nog gebeurenHoe we informatie opslaan/verwerken/gebruiken
Natuurlijke taal?
Wie is het genie die dit gaat ontdekken?
Mijn drijfveer om informatica te gaan doen
Herkennen van legoblokjes
Robot voor het sorteren van legoblokjes
dit bestaat nog niet!
Nieuwe uitdaging
Conclusie voor ingenieur
Er is gespecialiseerd onderzoek naar A.I.
Maar meestal is engineering nog noodzakelijk
Meestal zijn simpele, slimme oplossingen even goed
Zware A.I.-technieken nog weinig in gebruik, nog nietvoor meteen
Gebruik je intelligentie en ingenioziteit om adequate oplossing te vinden
Helen Greiner (2015): “in de AI worden we om de 5 jaar heen en weer geslingerd tussen het idee dat de technologie op het punt staat de wereld te veroveren, en de totale teleurstelling”