Kunstmatige intelligentie
Voorjaar 2020:
Colleges/werkcolleges zijn op donderdagen, te beginnen op 6 februari 2020;
college van 11:15 tot 13:00, werkcollege 's middags.
Locatie: De Sitterzaal in het Huygens.
Niet op 26 maart.
Svp aanmelden via Blackboard. En voor het (her)tentamen via uSis.
Status nakijkwerk: Het tentamen van 12 juli 2019
is nagekeken, resultaten staan in Blackboard, binnenkort in uSis.
Inzage: kamer 159.
Het vak Kunstmatige intelligentie,
ook wel AI (van Artificial Intelligence)
genoemd, wordt verzorgd door
dr. W.A. (Walter) Kosters,
geassisteerd door
Roy van Hal, Joep Helmonds en David Nieuwenhuizen,
en wordt in het voorjaar van 2019 gegeven.
(Eerstvolgende keer daarna: voorjaar 2020.)
Note that the course is in DUTCH.
Algemene informatie | Materiaal | Archief | Practicum | Colleges
Collegetijden:
donderdagen, van 11:00 tot 12:45 uur, in zaal Huygens 211-214,
Leiden.
Data, 14x: donderdagen 7 februari tot en met 23 mei 2019 (niet op 14 maart;
geen college op 2 mei).
En iedere week (niet op 14 maart)
is er op de donderdagmiddag een werkcollege gepland:
13:30-15:15 uur; in zaal 302/... van het Snellius — en vier keer
(waarschijnlijk 7 maart, 4 april, 2 mei en 23 mei)
sommen maken.
Tijdens de werkcolleges wordt er gewerkt aan
kleine opgaven, aan
oude tentamenopgaven
en in de computerzalen aan de
programmeeropgaven
— en de bijbehorende verslagen.
Data en onderwerpen voor de vier sommen-werkcolleges zijn:
- donderdagmiddag 7 maart 2019: Opgaven 1 (in PDF): 2, 3, 7, 8, 14
- donderdagmiddag 4 april 2019: Opgaven 1 (vervolg): 11, 16, 17
- donderdagmiddag 2 mei 2019: Opgaven 2 (in PDF): 19, 23, 27, 29, 10
- donderdagmiddag 23 mei 2019: Opgaven 2 (vervolg): 30, 31, 33, 13, 14
Er zijn hiervan uitwerkingen beschikbaar.
Geef opmerkingen svp door.
Het vak levert 6 (zes) ECTS punten op.
Naast het voldoende maken van het tentamen
is het hiervoor ook nodig het
practicum
voldoende te hebben.
Het eindcijfer wordt grotendeels bepaald door het tentamencijfer,
enigszins afgerond in de richting van het gemiddelde practicumresultaat (indien dat het eindcijfer verhoogt),
mits beide voldoende zijn
(om precies te zijn: als het gemiddelde practicumcijfer G groter is dan het tentamencijfer T,
wordt het eindcijfer hun gemiddelde, (G+T)/2, waarbij dit maximaal 1 punt meer mag worden dan T;
anders wordt het eindcijfer gelijk aan het tentamencijfer).
Het eindcijfer wordt afgerond op het dichtstbijzijnde getal uit de verzameling
{1,2,3,4,5, 6,6.5,7,7.5,8,8.5,9,9.5,10}.
Ten einde het practicum voldoende
te maken, moeten de vier opgaven alle met minstens een 6
of een "OK" beoordeeld zijn (die laatste telt voor een zes voor
de berekening van het gemiddelde G). Als een opgave niet aan de eisen voldoet,
moet deze zo snel mogelijk worden aangevuld; lever in dat geval ook
de nagekeken eerdere versie van het verslag weer in.
Het college is in eerste instantie bedoeld voor tweedejaars
studenten Informatica, maar is ook interessant voor andere
belangstellenden; voorkennis van de programmeertaal
C++
is sterk aan te raden.
De tentamendata in 2019 zijn:
- maandag 17 juni 2019, 10:00-13:00 uur
- hertentamen: vrijdag 12 juli 2019, 10:00-13:00 uur; zalen B1 en B2 van het Snellius, recht op extra tijd: B2
Alle cijfers, ook die van de programmeeropgaven,
worden beschikbaar gesteld via
Blackboard.
Gebruik wordt gemaakt van het boek
Artificial intelligence, A modern approach
van Stuart J. Russell en Peter Norvig, third edition, Prentice Hall, 2010.
Het kost circa 50 euro.
In het bijzonder worden uit dit boek
de volgende hoofdstukken behandeld
(voor de hoofdstukken uit de vorige druk,
zie de geschiedenis):
1 (Introduction; lezen),
2 (Intelligent agents; lezen),
3 (Solving problems by searching; uitgebreid),
4 (Beyond classical search; uitgebreid),
5 (Adversarial search; uitgebreid),
6 (Constraint satisfaction problems; uitgebreid),
7 (Logical agents; lezen, met name Wumpus),
8 (First-order logic; lezen, met name Wumpus),
14 (Probabilistic reasoning; uitgebreid; lees ook 13, Quantifying uncertainty),
18 (Learning from examples; uitgebreid, met name neurale netwerken en beslissingsbomen),
19.1 (Knowledge in learning; lezen),
21.1,2,3 (Reinforcement learning, geillustreerd met 17.1,2;
uitgebreid, aangevuld met 4.1.4 Genetische algoritmen)
en
25 (Robotics; lezen, + concreet robot-programma),
grotendeels in deze volgorde.
Lees ook eens Hoofdstuk 26 (Philosophical foundations).
En als MOOC
is het vak ook beschikbaar!
Daarnaast werd in een redelijk ver verleden nog speciaal aandacht besteed aan het onderwerp
Data mining, maar aangezien er nu een apart
derdejaars vak is met die titel ...
Overige literatuur (niet kopen — tenzij je erg veel geld hebt):
-
Ethem Alpaydin,
Introduction to machine learning,
The MIT Press, Second edition, 2010.
-
Christopher M. Bishop,
Pattern recognition and machine learning,
Springer, 2006.
- George F. Luger,
Artificial intelligence, Structures and strategies for complex problem solving,
Addison-Wesley, Sixth edition, 2009.
- Tom M. Mitchell,
Machine learning,
McGraw-Hill, 1997.
- Mehryar Mohri, Afshin Rostamizadeh and Ameet Talwalkar,
Foundations of machine learning,
The MIT Press, 2012.
- Michael Negnevitsky,
Artificial intelligence, A guide to intelligent systems, Addison-Wesley, Third edition, 2011.
- Georgios N. Yannakakis and Julian Togelius,
Artificial intelligence and games,
Springer, 2019.
Een stel oude tentamens:
Er is meer informatie te vinden over het college gedurende
de afgelopen jaren.
Voor iedere practicumopgave
(met maximaal twee personen te maken) moeten worden ingeleverd:
een minstens drie pagina's
(laten we zeggen vijf pagina's, afgezien van de Appendix)
tellend verslag in
LaTeX
(dit is een GROTE tekst in PDF;
zie ook LaTeX in één pagina;
of een heel korte zichzelf uitleggende
voorbeeldfile)
en een werkend programma (digitaal (mailen aan de docent)
en uitgeprint in de Appendix
van het verslag;
stuur geen LaTeX/PS/PDF-files en ook geen executables).
Het verslag moet een duidelijke opbouw hebben, bijvoorbeeld:
- Inleiding ("dit is de tweede opdracht van het college ...", met verwijzing naar de website)
- Uitleg probleem (plaatje; "de spelregels zijn ...", gebruikte definities)
- Relevant werk ("stelling zegt dat ...")
- Aanpak (plaatje; "een drielaags neuraal netwerk ...")
- Implementatie ("een 2-dimensionaal array"; "C++"; kort!)
- Experimenten (tabel, grafiek)
- Conclusie en verder onderzoek ("ging fout als de testopstelling niet verlicht was")
- Referenties (genummerd; naar alle wordt verwezen; "handleiding Java-robots ...", "Russell en Norvig ...", "sheets college ...")
Een fatsoenlijke referentie ziet er uit als:
[1] S.J. Russell en P. Norvig, Artificial intelligence, A modern approach,
third edition, Prentice Hall, 2010
- Appendix: het programma;
gebruik package listings, zie onder.
In geval van aangepaste code: geef alleen de wijzigingen.
Er is een klein skelet voor de verslagen:
verslag.tex,
dat deze PDF-versie op kan leveren.
Zie ook
diverse opmerkingen.
De deadlines zijn strikt, overleg eventueel
met de docent(en).
Voor alle opdrachten geldt dat ze nog voorlopig zijn, aanvullingen
tijdens het semester zullen zeker voorkomen.
Eigen initiatief wordt —na overleg— op prijs gesteld.
De opgaven worden per stuk als volgt beoordeeld:
er wordt gekeken naar het verslag en het
programma (met name werking en leesbaarheid);
originaliteit beinvloedt de eind-afronding.
Het practicum bestaat zoals gezegd uit vier opgaven:
-
Schaken; deadline donderdag 28 februari 2019, 11:00 uur
Zie hier.
-
Agenten & Robotica; deadline donderdag 28 maart 2019, 11:00 uur
Zie hier.
-
α-β: Gomoku en Othello; deadline donderdag 25 april 2019, 11:00 uur
Zie hier.
-
Neurale netwerken; deadline donderdag 23 mei 2019, 11:00 uur
Zie hier.
Tijdens de colleges wordt het volgende behandeld.
Het programma is uiteraard voorlopig,
zelfs als het semester voorbij is — op deze webpagina is steeds
de meest actuele versie te vinden.
En voor de liefhebbers:
alle 369 sheets (in PDF; versie 2019).
Geen tentamenstof: sheets over Lego en RoboCom;
sheets over MDP's.
(In de 2019-versie met 369 sheets gaat het om sheets 100-108, 197, 238,
249-255, 282, 314-319 en 360;
vaak aangegeven met Ξ.)
Er wordt op het
tentamen vanzelfsprekend nog wel eens iets gevraagd wat niet (letterlijk)
op de sheets staat ...
Let op: dit zijn (deels) nog de colleges van vorig jaar (2018).
- donderdag 7 februari 2019
Algemene introductie; het
practicum, met name de eerste opgave.
Hoofdstuk 1
(Introductie) in vogelvlucht, p. 1-30; zie de sheets:
Introductie
- donderdag 14 februari 2019
Hoofdstuk 2 (Intelligente agenten), p. 34-59; zie de sheets:
Intelligente agenten
- donderdag 21 februari 2019
Hoofdstukken 7 (Logisch redenerende agenten) en
8 (Eerste orde logica), p. 234-252, 265-267 en 285-306; zie de sheets:
Logische agenten
- donderdag 28 februari 2019
Algemene informatie over de tweede
practicum-opgave.
Hoofdstuk 3 (Probleemoplossen en zoeken), p. 64-109; zie de sheets:
Probleemoplossen en zoeken
- donderdag 7 maart 2019
(vervolg vorig college) Hoofdstuk 4 (Gericht zoeken), p. 120-130; zie de sheets:
Gericht zoeken
Op donderdagmiddag 7 maart 2019 is in zaal 302 een werkcollege met sommen, zie
Opgaven 1 (van 2): 2, 3, 7, 8, 14.
- donderdag 21 maart 2019
Hoofdstuk 5 (Spel(l)en), p. 161-190; zie de sheets:
Spel(l)en
leuk leesvoer |
H. Jaap van den Herik, Jos W.H.M. Uiterwijk en Jack van Rijswijck,
Games solved: Now and in the future
Artificial Intelligence 134 (2002) 277-311
doi:10.1016/S0004-3702(01)00152-7; ophalen vanaf een PC binnen de universiteit
|
Jonathan Schaeffer, Neil Burch, Yngvi Björnsson, Akihiro Kishimoto, Martin Müller, Robert Lake, Paul Lu en Steve Sutphen,
Checkers is solved
Science 317 (2007) 1518-1522
doi:10.1126/science.1144079; ophalen vanaf een PC binnen de universiteit
|
David Silver et al., A general reinforcement learning algorithm that masters chess, shogi and Go through self-play
Science 362 (2018) 1140-1144
doi:10.1126/science.aar6404; ophalen vanaf een PC binnen de universiteit
|
- donderdag 28 maart 2019
Spel(l)en — vervolg.
[En voor de liefhebbers: Combinatorial Game Theory.]
Algemene informatie over de derde
practicum-opgave.
- donderdag 4 april 2019
Hoofdstuk 6 (Constraint Satisfaction Problemen), p. 202-223;
zie de sheets:
CSP's
Op donderdagmiddag 4 april 2019 is in zaal 302 een werkcollege met sommen, zie
Opgaven 1 (van 2): 11, 16, 17.
- donderdag 11 april 2019
Robotica.
Bekijk Hoofdstuk 25 (Robotica), p. 971-1019;
zie ook de sheets:
Robotica
leuk leesvoer |
Rodney A. Brooks, Intelligence without representation
Artificial Intelligence 47 (1991) 139-159
doi:10.1016/0004-3702(91)90053-M; ophalen vanaf een PC binnen de universiteit
|
Hoofdstuk 18.7 (Neurale netwerken), p. 727-737;
zie de sheets:
Neurale netwerken
leuk leesvoer |
William S. Noble, What is a support vector machine?
Nature Biotechnology 24 (2006) 1565-1567
doi:10.1038/nbt1206-1565; ophalen vanaf een PC binnen de universiteit
|
Yann LeCun, Yoshua Bengio en Geoffrey Hinton, Deep learning
Nature 521 (2015) 436-444
doi:10.1038/nature14539; ophalen vanaf een PC binnen de universiteit
|
- donderdag 18 april 2019
Vervolg Neurale netwerken.
- donderdag 25 april 2019
Hoofdstuk 18 (Leren van/uit observaties),
met name ID3, en Hoofdstuk 19.1, kort;
Hoofdstuk 21.1,2,3 (Reinforcement leren, geillustreerd met 17.1,2 (deels)), p. 693-758, 768-776 (en 830-845);
zie de sheets:
Leren
Algemene informatie over de vierde
practicum-opgave.
Op donderdag 2 mei 2019 is er geen college, wel 's middags werkcollege met sommen
in zaal 302, zie
Opgaven 2 (van 2): 19, 23, 27, 29, 10.
- donderdag 9 mei 2019
Vervolg Leren.
Hoofdstuk 4.3 (Genetische algoritmen), p. 126-129;
zie de sheets:
Genetische algoritmen
- donderdag 16 mei 2019
Hoofdstuk 13 (Onzekerheid; kort) en
Hoofdstuk 14 (Bayesiaanse netwerken), p. 480-499 en 510-529;
zie de sheets:
Bayesiaanse netwerken
- donderdag 23 mei 2019
Vervolg plus van alles, waaronder een
oud tentamen (met
antwoorden).
Op donderdagmiddag 23 mei 2019 is in zaal 302 een werkcollege met sommen, zie
Opgaven 2 (van 2): 30, 31, 33, 13, 14.
Genoemde hoofdstukken komen steeds uit het boek van Russell en Norvig,
derde druk — met dank voor een flink gedeelte van de sheets en veel plaatjes.
8 mei 2019 — http://www.liacs.leidenuniv.nl/~kosterswa/AI/index.html