13.1 Wat is machinaal leren
Alvorens in te gaan op een aantal algoritmen voor machinaal leren, is het goed stil te staan bij de
algemene opzet en filosofie van experimenten en toepassingen van machinaal leren.
Uitgangspunt van veel experimenten met machinaal leren is een gegevensverzameling (data
set) bestaande uit een (bij voorkeur) groot aantal gelabelde voorbeelden (soms ook wel instanties
genoemd). Ter illustratie toont tabel 13.1.1 een eenvoudige gegevensverzameling bestaande
uit acht voorbeelden, die alle tot een bepaalde klasse behoren.
Tabel 13.1.1 Voorbeeld van een gegevensverzameling.
Voorbeeld | Invoervector | Klasse label |
1 | 000 | A |
2 | 001 | B |
3 | 010 | A |
4 | 011 | B |
5 | 100 | A |
6 | 101 | B |
7 | 110 | A |
8 | 111 | B |
Uitgaande van de gegevensverzameling dient een algoritme voor machinaal leren een kennisrepresentatie (of een model) op te bouwen, op basis waarvan voorbeelden uit de gegevensverzameling, maar vooral nieuwe voorbeelden, op de juiste wijze kunnen worden geclassificeerd.
13.1.1 Attributen en attribuutwaarden
De voorbeelden zijn in dit geval binaire invoervectoren. De elementen (bits) van deze vectoren worden vaak attributen genoemd. Een attribuut kan de aan- of afwezigheid van een bepaald kenmerk representeren of in het geval van reëelwaardige vectoren een waarde representeren. Zo hebben bijvoorbeeld de binaire attributen getrouwd en geslacht als mogelijke attribuutwaarden ja/nee en man/vrouw. De betekenis van een attribuutwaarde is irrelevant voor het algoritme voor machinaal leren en kan om die reden worden gerepresenteerd door (bijvoorbeeld) een 0 en een 1. Om dezelfde reden kunnen reëelwaardige attributen zoals gewicht en lengte worden gerepresenteerd door arbitrair geschaalde reële getallen.
13.1.2 Generaliserend vermogen
De voornaamste taak van een leeralgoritme is het genereren van een model op basis van
een verzameling voorbeelden. Deze taak is eenvoudigweg op te lossen door de gehele
gegevensverzameling als model te beschouwen. Immers, alle beschikbare voorbeelden zijn
opgeslagen in de gegevensverzameling. Voor de gegevensverzameling van tabel 13.1.1 is dit
een mogelijke oplossing, aangezien deze alle acht mogelijke voorbeelden bevat. De methode
is te vergelijken met een rechter die een straf bepaalt door de te behandelen casus (het
voorbeeld) op te zoeken in het wetboek en de daarbij voorgeschreven straf (de classificatie) over te nemen. Uiteraard wordt er
van een rechter meer verwacht, anders zou een computer net zo goed die taken over kunnen
nemen.
Het probleem is dat de gegevensverzameling over het algemeen een steekproef vormt van de
beschikbare gegevens. Een getraind leeralgoritme
voor de automatische herkenning van handgeschreven postcodes zal, wanneer het in de
praktijk wordt toegepast, veel nieuwe voorbeelden tegenkomen. Uiteraard dient het
leeralgoritme in staat te zijn deze nieuwe voorbeelden zo goed mogelijk te herkennen. Om
die reden dient het leeralgoritme op basis van de beschikbare voorbeelden een model te
genereren dat nieuwe voorbeelden zo goed mogelijk classificeert. Vaak wordt hiertoe
de beschikbare verzameling van voorbeelden (de gegevensverzameling) opgedeeld in een
trainingset en een testset. De trainingset wordt gebruikt om het model te genereren en
vervolgens wordt de testset gebruikt om vast te stellen in hoeverre het model nieuwe
voorbeelden correct kan classificeren. In de praktijk houdt dit in dat gedurende een
trainingfase de voorbeelden uit de trainingset worden gepresenteerd aan het leeralgoritme.
Na de trainingfase worden in de testfase de voorbeelden uit de testset gepresenteerd. Het
leeralgoritme past zijn model niet aan in de testfase. Het genereert alleen klasselabels
voor de voorbeelden in de testset. De wijze waarop deze labels worden gegenereerd, is
afhankelijk van het gevormde model. Door de gegenereerde klasselabels, te vergelijken met
de werkelijke klasselabels wordt het generaliserend
vermogen van het leeralgoritme vastgesteld. Het generaliserend vermogen vormt een
maat voor de betrouwbaarheid waarmee nieuwe (nog niet eerder geziene) voorbeelden worden
geclassificeerd. Zo zou het generaliserend vermogen kunnen worden bepaald door een rechter
casussen te laten oplossen die niet letterlijk in het wetboek staan, maar waarvan wel
bekend is wat de voorgeschreven straf zou moeten zijn. Het generaliserend vermogen van de
rechter komt overeen met het percentage correcte straffen.
13.1.3 N-fold cross-validation
Aangezien de toevallige keuze van de testset de schatting van het generaliserend vermogen beïnvloedt, verdient het de aanbeveling om de gegevensverzameling meerdere malen te verdelen in training- en testsetcombinaties. Een veelgebruikte methode is de zogenaamde n-fold cross-validation (of kortweg: n-fold cv). In deze methode wordt uit een gegevensverzameling bestaande uit N voorbeelden, n maal een testset gedefinieerd. Tezamen omvatten deze testsets alle voorbeelden uit de gegevensverzameling. Bij de methode n-fold cv is het generaliserend vermogen gelijk aan de gemiddelde prestatie over de n folds (testset-trainingset-combinaties). Wanneer de methode n-fold cv met n = 4 wordt toegepast op een gegevensverzameling van N = 20 voorbeelden (genummerd 1 t/m 20), dan bestaan de vier folds uit de training- en testsets getoond in tabel 13.1.2.
Tabel 13.1.2. Illustratie van het resultaat van 4-fold cv op een gegevensverzameling van N = 20 voorbeelden
fold | de trainingset bevat voorbeelden |
de testset bevat voorbeelden |
1 | 6-20 | 1-5 |
2 | 1-5 en 11-20 | 6-10 |
3 | 1-10 en 16-20 | 11-15 |
4 | 1-15 | 16-20 |