Introductie

In dit practicum zullen we naar een aantal Reinforcement-Learning technieken kijken: technieken waarmee een agent (zoals een computer of een robot) een probleem kan leren op te lossen, zonder dat deze agent expliciet geprogrammeerd hoeft te worden hoe hij dit moet doen. In plaats van expliciete instructies krijgt agent `reward' op het moment dat hij een (deel)probleem op heeft gelost. Met dit soort technieken is het inmiddels gelukt om computers helikopters te laten besturen. Ook gebruiken online advertentie-verkopers zoals Google en Facebook dit soort technieken om online advertenties zo effectief mogelijk in te zetten.

Om dit soort kunstmatige, lerende systemen te maken en er experimenten mee te doen, is het noodzakelijk om te kunnen programmeren: je moet algoritmes uit kunnen schrijven en ze correct kunnen initialiseren en `aansluiten' op het probleem dat je probeert op te lossen.

In dit practicum hebben we zoveel mogelijk al voor je geprogrammeerd, in de programmeertaal Javascript: deze taal wordt meestal gebruikt om websites interactief te maken. Websites als Facebook en Youtube zijn voor een deel in javascript geprogrammeerd. Een voordeel van deze taal is dat hij geinterpreteerd kan worden door alle grote browsers, zoals Chrome, Firefox en Safari. Veel Machine Learning-experimenten worden in lastigere, maar krachtigere talen zoals Python en Matlab geimplementeerd. Het voordeel van Javascript is echter dat we een interface in de vorm van een website hebben kunnen maken, die jullie kunnen gebruiken om kleine stukjes code aan te passen. We hopen dat jullie zo een idee krijgen van hoe je machine learning-algoritmen implementeert, zonder dat jullie meteen heel goed hoeven te kunnen programmeren.

Om dit practicum te doen is kennis van enkele basic javascript-concepten wel noodzakelijk.

Daarom begint dit practicum met een korte cursus javascript van Code Academy. Code Academy is een website die je automatisch helpt met leren programmeren: je krijgt opdrachten, die steeds ietsje lastiger wordt, als het niet lukt geeft de website automatisch tips (als het echt niet lukt kun je ons uiteraard ook wat vragen). Het eerste deel van dit practicum bestaat dan ook uit les 1 van de Javascript-course op

http://www.codecademy.com/tracks/javascript. Sla de projecten over.

Het is handig om een account aan te maken of even in te loggen met je Facebook/Google-account, zodat de website opslaat wat je hebt gedaan (het is de bedoeling dat jullie deze opdrachten in paren van 2 maken, slechts een iemand hoeft in te loggen).

Als je les 1: "Getting started with programming" van Code Academy Javascript hebt afgerond of je er inmiddels 1,5 uur mee bezig bent geweest, kan je beginnen aan het tweede deel van het practicum: het Reinforcement-Learning gedeelte (lees daarvoor intro 2, hieronder).

Succes!

Introductie 2

Nu je hebt geoefend met programmeren in Javascript op Code Academy, zullen we in het volgende deel van het practicum daadwerkelijk wat experimenten met Reinforcement Learning gaan doen.

In het practicum zal je experimenteren met het implementeren en aanpassen van verschillende algoritmes. Het is de bedoeling dat je voor elke opdracht je resultaten ergens opschrijft, zodat je aan de practicumbegeleiders kan laten zien dat je de opdracht gedaan en begrepen hebt. Daarvoor zal je vooral korte tekstjes op moeten schrijven en grafiekjes moeten maken.

We raden je daarom aan om, naast de practicum-website, ook te openen:

  1. Een word processing document (bijvoorbeeld Google Docs), waarin je voor elke opdracht een antwoord noteert, liefst bijgestaan door wat cijfers of grafieken.
  2. Een spreadsheet-document (bijvoorbeeld Google Docs). De practicum-website heeft een functie `get data', waarmee je makkelijk tabellen met dat kan exporteren naar een spreadsheet, zodat je er grafieken van kunt maken.
Eventueel kun je ook Microsoft Word en Excel gebruiken.

Ga nu verder naar de practicum-website