Leren van voorbeelden
Deep Blue en de spamfilter
Je mailprogramma gebruikt één vaste regel: alles met het woord gratis in het onderwerp, met of zonder hoofdletters, gaat naar de map spam. Hieronder staan vier mails die vandaag binnenkomen. De mails zijn verzonnen voor deze oefening.
Twee manieren om slim te lijken
Rond 2000 werd spam een plaag. Filters met vaste regels, zoals die hierboven, werkten even. Daarna veranderden spammers hun woorden, en moest iemand weer nieuwe regels schrijven.
In 2002 beschreef de programmeur Paul Graham in het stuk "A Plan for Spam" een andere aanpak. Geef het filter een stapel mails die spam zijn en een stapel die het niet zijn, en laat het zelf uitrekenen welke woorden op spam wijzen. Elke keer dat jij op "dit is spam" klikt, leert het filter bij. Dat heet machine learning: leren van voorbeelden. Niemand schrijft de regel; het systeem vindt het patroon zelf.
Beschrijving van dit schema
Twee rijen. Regels: een mens bedenkt het patroon en schrijft het op, de computer past het toe op nieuwe mails. Leren: een mens verzamelt voorbeelden, de computer zoekt daarin zelf het patroon en past dat toe op nieuwe mails.
Een paar jaar eerder, op 11 mei 1997, verloor wereldkampioen schaken Garry Kasparov een match van zes partijen van Deep Blue, een schaakcomputer van IBM. Deep Blue rekende razendsnel enorme aantallen zetten vooruit en beoordeelde stellingen met kennis die schaakexperts en programmeurs erin hadden gestopt. Het was een topprestatie van rekenkracht en vakmanschap, maar de kennis waarmee het werkte, kwam van mensen, en het was gebouwd voor één ding: schaken.

Echte systemen van nu combineren vaak beide. Een mailprogramma kan vaste regels hebben die jij zelf instelt, naast een filter dat leert van wat jij als spam markeert. Hoe een bepaalde app het precies doet, zie je er van buiten meestal niet aan.
Wat je ermee kunt
Bij een systeem dat met regels werkt, kun je de regels nalopen en bijstellen. Bij een systeem dat leert, hangt alles af van de voorbeelden waarmee het leerde, en kun je minder makkelijk aanwijzen waarom het iets doet. Het helpt om te weten welke van de twee je voor je hebt, of welke mix.
Meer weten
De aanpak van Graham. Graham beschreef een filter dat per woord bijhoudt hoe vaak het in spam en in gewone mail voorkomt, en daaruit een kans berekent. Dat is één specifieke aanpak; mailprogramma's van nu gebruiken veel verschillende technieken naast elkaar.
Deep Blue in 1996. Een jaar eerder verloor Deep Blue nog een match van Kasparov. In 1997 won een verbeterde versie de tweede match met 3,5 tegen 2,5.
Bronnen
- Computer History Museum, "Defeating the World Chess Champion". computerhistory.org
- IBM, "Deep Blue". ibm.com
- P. Graham, "A Plan for Spam", augustus 2002. paulgraham.com
In je eigen werk (optioneel)
Dit is een extra naast de oefeningen hierboven. Het voorbeeld laat zien hoe een antwoord eruit kan zien.
Kies drie tools die je deze week gebruikte. Schrijf per tool één functie op, en of die volgens jou met vaste regels werkt, leert van voorbeelden, of allebei. Twijfel je, schrijf dan op waarom.