Machine learning
Een computer die leert van voorbeelden in plaats van regels: dat is machine learning. De route hieronder bouwt dat op in kleine projecten, die je in je browser maakt. Elk project bestaat uit korte stappen, en elke stap zet één nieuw idee of een klein stuk Python bij wat je al kunt. Aan het eind van een fase staat een opstap: die bouwt een project uit CS50 AI, de gratis AI-cursus van Harvard, na op eigen oefendata, met functies die hetzelfde doen. Daarna ben je klaar voor het echte project. Op welke concepten je docent je beoordeelt, staat bij de leerdoelen van niveau 1.
De route
| Fase | Projecten | Daarna bij CS50 |
|---|---|---|
| A. AI met regels | een chatbot, een spamfilter met regels, een spamfilter dat leert | |
| B. Voorspellen met afstand | welk fruit is dit?, laat de buren stemmen, eerlijk testen, opstap: klaar voor Shopping | Shopping |
| C. Kans en toeval | een dobbelsteen simuleren, een surfer die willekeurig klikt, PageRank, opstap: op weg naar PageRank | PageRank |
| D. Spellen | Nim met een vaste strategie, Nim die van zichzelf leert, opstap: op weg naar Nim, minimax | Nim, Tic-Tac-Toe |
| E. Zoeken | de buren van een vakje, de kortste weg met een wachtrij, opstap: op weg naar Degrees | Degrees |
| F. Neuronen | één neuron met gewichten, een neuron dat zelf leert, opstap: op weg naar Traffic | Traffic |
PageRank en minimax zijn hoofdstukken van deze cursus, en zwaarder dan de projecten ervoor. Daar bouw je het algoritme stap voor stap op.
Wat moet je al kunnen?
De eerste stap van elk project noemt bovenaan, in een blauw blok, welke Python het gebruikt en waar je die leert. Per fase staat het hieronder bij elkaar, zodat je ziet waar je kunt instappen. Fase A vraagt alleen de basis van de python-cursus. Elke fase daarna gebruikt ook wat in de fases van de laatste kolom staat.
De CS50-projecten
De CS50-projecten zijn Engelstalig, en je maakt ze op je eigen computer. Bij elk project hoort een gratis hoorcollege dat de theorie uitlegt; begin daar. Ze staan hier in de volgorde van de route.
Shopping
Je eerste echte machine learning. Je voorspelt of een webshopbezoeker iets gaat kopen, op basis van duizenden eerdere bezoeken, met k-nearest neighbors uit scikit-learn. Onderweg leer je waarom "95% goed voorspeld" weinig hoeft te betekenen, en hoe je een voorspeller wél eerlijk beoordeelt. Hoe je je erop voorbereidt, staat bij aan de slag met Shopping.
cs50.harvard.edu/ai/projects/4/shopping
PageRank
Dit algoritme bouw je ook hier. CS50 voegt een tweede aanpak toe: in plaats van iteratief rekenen simuleer je een random surfer die willekeurig rondklikt over het web (een Markov-keten) en telt waar hij uitkomt. Twee wegen naar hetzelfde antwoord. De surfer bouw je eerst in een surfer die willekeurig klikt. Hoe je je erop voorbereidt, staat bij aan de slag met PageRank.
cs50.harvard.edu/ai/projects/2/pagerank
Nim
Reinforcement learning: je AI krijgt geen dataset, maar leert het spelletje Nim door duizenden keren tegen zichzelf te spelen en te onthouden welke zetten tot winst leidden (Q-learning). Daarna mag jij proberen ervan te winnen. Hoe je je erop voorbereidt, staat bij aan de slag met Nim.
cs50.harvard.edu/ai/projects/4/nim
Tic-Tac-Toe
De minimax-module van deze cursus is een Nederlandse bewerking van dit project. Bij CS50 bouw je dezelfde acht functies in het echte project, met een klikbare spelinterface eromheen. Je hebt er recursie voor nodig: een functie die zichzelf aanroept.
cs50.harvard.edu/ai/projects/0/tictactoe
Degrees
Via hoeveel films zijn twee acteurs met elkaar verbonden? Je zoekt de kortste weg door een netwerk van acteurs en films, met breadth-first search: eerst alles op één stap afstand, dan alles op twee stappen. Hoe je je erop voorbereidt, staat bij aan de slag met Degrees.
cs50.harvard.edu/ai/projects/0/degrees
Traffic
Neurale netwerken. Je traint met TensorFlow een netwerk dat verkeersborden herkent op foto's, de techniek achter moderne beeldherkenning. Dit is het zwaarste project van de route. Hoe je je erop voorbereidt, staat bij aan de slag met Traffic.
cs50.harvard.edu/ai/projects/5/traffic
Buiten de route: Crossword
Je krijgt een leeg kruiswoordraster en een woordenlijst; jouw programma zoekt uit welke woorden passen zonder elkaar in de weg te zitten. Dat heet een constraint satisfaction problem: keuzes wegstrepen die met elkaar botsen (AC-3) en terugkeren op je schreden als je vastloopt (backtracking). Het vraagt veel Python voor wat het aan machine learning toevoegt, daarom staat het niet in de route.
cs50.harvard.edu/ai/projects/3/crossword
Kaggle: oefenen in de browser
Liever niets installeren? Kaggle Learn heeft korte gratis cursussen die volledig in de browser draaien (gratis account nodig). Begin met Intro to Machine Learning: in een paar uur bouw je je eerste voorspellende model met beslisbomen. Intermediate Machine Learning sluit daar direct op aan.