Parallel Systems Introduction

101
Informatica 2e semester: HOC 7 Informatica 2 e semester: les 7 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari – mei 2019 1

Transcript of Parallel Systems Introduction

Page 1: 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

Page 2: Parallel Systems Introduction

“Is er een machine die even

slim of zelfs slimmer is als de

mens!?”

Page 3: Parallel Systems Introduction

HAL

Film 1968

Page 4: Parallel Systems Introduction

Computer HAL

Page 5: Parallel Systems Introduction

Vandaag

1. Puzzel: herhaling & vervolg

2. Spel: minimax

3. Non-zero sum game

4. Leren

5. Deel III: slimme algoritmen versus

intelligentie

Page 6: Parallel Systems Introduction

Herhaling

Page 7: Parallel Systems Introduction

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

Page 8: Parallel Systems Introduction

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

Page 9: Parallel Systems Introduction

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

Page 10: Parallel Systems Introduction

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

Page 11: Parallel Systems Introduction

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

Page 12: Parallel Systems Introduction

OK

Puzzel 1 in schuifpuzzel.jar

Page 13: Parallel Systems Introduction

NOK

in de toekomst kijken noodzakelijk

of terugkeren op stappen

stukje 2 & 3 verwisselen in beginpositie

Puzzel 2 in schuifpuzzel.jar

Page 14: Parallel Systems Introduction

Jan Lemeire 14Pag. / 99

4 bezochte noden (grijze nodes)

4+8 bekeken nodes (grijze nodes +

grijze wolk)

(3) Greedy search

Page 15: Parallel Systems Introduction

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

Page 16: Parallel Systems Introduction

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

Page 17: Parallel Systems Introduction

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

Page 18: Parallel Systems Introduction

(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

Page 19: Parallel Systems Introduction

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

Page 20: Parallel Systems Introduction

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

Page 21: Parallel Systems Introduction

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

Page 22: Parallel Systems Introduction

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

Page 23: Parallel Systems Introduction

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

Page 24: Parallel Systems Introduction

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.

Page 25: Parallel Systems Introduction

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

Page 26: Parallel Systems Introduction

Jan Lemeire 26Pag. / 99

Score in zoekruimte

Probleem: terechtkomen in lokaal maximum

Informatica 2e semester: HOC 7

Page 27: Parallel Systems Introduction

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

Page 28: Parallel Systems Introduction

Jan Lemeire 28Pag. / 99

Genetisch algoritme

Informatica 2e semester: HOC 7

Initële populatie Sommige individuën muteren Enkel de besten overleven

Page 29: Parallel Systems Introduction

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

Page 30: Parallel Systems Introduction

Hoe generiek

programmeren?

niet te kennen,

optioneel – als vervangvraag

Page 31: Parallel Systems Introduction

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{

}

Page 32: Parallel Systems Introduction

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

Page 33: Parallel Systems Introduction

Probleemspecifieke code

Document op website

Link tussen algoritme en probleem gegeven door interface

Page 34: Parallel Systems Introduction

NP-complete

problemen

Page 35: Parallel Systems Introduction

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

Page 36: Parallel Systems Introduction

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

Page 37: Parallel Systems Introduction

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

Page 38: Parallel Systems Introduction

Jan Lemeire 39Pag. / 99

Nog een voorbeeld: plannen van automatische opslagplaatsen

Informatica 2e semester: HOC 7

Page 39: Parallel Systems Introduction

Spel

Page 40: Parallel Systems Introduction

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

Page 41: Parallel Systems Introduction

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

Page 42: Parallel Systems Introduction

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

Page 43: Parallel Systems Introduction

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

Page 44: Parallel Systems Introduction

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

Page 45: Parallel Systems Introduction

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

Page 46: Parallel Systems Introduction

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!!!

Page 47: Parallel Systems Introduction

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

Page 48: Parallel Systems Introduction

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

Page 49: Parallel Systems Introduction

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

Page 50: Parallel Systems Introduction

Jan Lemeire 51Pag. / 99

Wat gebeurt bij horizon = 3?

Informatica 2e semester: HOC 7

Page 51: Parallel Systems Introduction

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

Page 52: Parallel Systems Introduction

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

Page 53: Parallel Systems Introduction

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

)

Page 54: Parallel Systems Introduction

Jan Lemeire 55Pag. / 99Informatica 2e semester: HOC 7

Opportuniteit: vork

Opportuniteit

geslaagd

Page 55: Parallel Systems Introduction

Jan Lemeire 56Pag. / 99Informatica 2e semester: HOC 7

Opportuniteit: vork

We bekijkenenkel relevantezetten die invloedkunnen hebben(pruning)

Opportuniteit

teniet gedaan

Page 56: Parallel Systems Introduction

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

Page 57: Parallel Systems Introduction

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

Page 58: Parallel Systems Introduction

Jan Lemeire 59Pag. / 99

16 maart 2016

AlphaGo defeats Lee Sedol 4–1 in Google DeepMind Challenge Match

Informatica 2e semester: HOC 7

Page 59: Parallel Systems Introduction

Non-zero sum games

Page 60: Parallel Systems Introduction

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

Page 61: Parallel Systems Introduction

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

Page 62: Parallel Systems Introduction

Jan Lemeire 63Pag. / 99Informatica 2e semester: HOC 7

Page 63: Parallel Systems Introduction

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

Page 64: Parallel Systems Introduction

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

Page 65: Parallel Systems Introduction

Leren

Page 66: Parallel Systems Introduction

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

Page 67: Parallel Systems Introduction

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.”

Page 68: Parallel Systems Introduction

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

Page 69: Parallel Systems Introduction

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

Page 70: Parallel Systems Introduction

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

Page 71: Parallel Systems Introduction

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

Page 72: Parallel Systems Introduction

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

Page 73: Parallel Systems Introduction

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

Page 74: Parallel Systems Introduction

Jan Lemeire 75Pag. / 99Informatica 2e semester: HOC 7

Page 75: Parallel Systems Introduction

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

Page 76: Parallel Systems Introduction

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

Page 77: Parallel Systems Introduction

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

Page 78: Parallel Systems Introduction

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

Page 79: Parallel Systems Introduction

Jan Lemeire 80Pag. / 99

Hoofdstuk 9: Artificiële intelligentie

Page 80: Parallel Systems Introduction

(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

Page 81: Parallel Systems Introduction

Artificiële

Intelligentie,

de grote uitdaging

Page 82: Parallel Systems Introduction

“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?

Page 83: Parallel Systems Introduction

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

Page 84: Parallel Systems Introduction

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…

Page 85: Parallel Systems Introduction

Automatische verkeersbordherkenning in de auto

Page 86: Parallel Systems Introduction

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

Page 87: Parallel Systems Introduction

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.”

Page 88: Parallel Systems Introduction

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??

Page 89: Parallel Systems Introduction

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

Page 90: Parallel Systems Introduction

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!

Page 91: Parallel Systems Introduction

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.

Page 92: Parallel Systems Introduction

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?

Page 93: Parallel Systems Introduction

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.

Page 94: Parallel Systems Introduction

Jan Lemeire 96Pag. / 99Informatica 2e semester: HOC 7

Page 95: Parallel Systems Introduction

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

Page 96: Parallel Systems Introduction

The evolution of the human’s cognitive capacities

Merlin Donald, 1991

Page 97: Parallel Systems Introduction

Episodische cultuur

Nabootsende cultuur

Mythische cultuur

Kennis-cultuur

Page 98: Parallel Systems Introduction

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!

Page 99: Parallel Systems Introduction

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

Page 100: Parallel Systems Introduction

Herkennen van legoblokjes

Robot voor het sorteren van legoblokjes

dit bestaat nog niet!

Nieuwe uitdaging

Page 101: Parallel Systems Introduction

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”