Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Zoals eerder vermeld, zijn er twee basis stappen in machine learning:

  1. Model training

  2. Model inference

Op het moment dat we een model hebben gedefinieerd, willen we de parameters aan de hand van de beschikbare data schatten. Dat doen we door het gepaste leeralgoritme toe te passen. Dit noemen we model training. Een getraind model is een model waarvan de parameters geschat zijn met behulp van een wel bepaalde training dataset en optimalisatie-algoritme.

Pas als het model getraind is, kan het gebruikt worden om nieuwe data te voorspellen op basis van de geleerde patronen. Die stap heet model inference.

Leeralgoritme

Een leer- of optimalisatie-algoritme heeft als doel om de optimale waarde voor een parameter te vinden, gegeven ons model (van de datageneratie) en de beschikbare data. Bij het uitvoeren van het leeralgoritme gebeurt dus het eigenlijke leren in ML. Ook hier zijn vaak verschillende keuzes aan de orde. Daarbij moeten we (a) de effectiviteit om optimale parameterwaarden te vinden en (b) de computationele efficiëntie tegen elkaar afwegen.

De keuze van het algoritme hangt samen met het type model (lineair, neuraal netwerk, random forest, enz.) en, hoewel er voortdurend verder onderzoek gebeurt naar nieuwe technieken, zijn voor veel modellen geijkte keuzes beschikbaar. Zoals we in de uitgebreidere voorbeelden ook zullen zien, zijn leeralgoritmes vaak zeer complex (denk alvast aan het backpropagation algoritme bij neurale netwerken).
In die complexiteit zit vaak ook nog het feit dat er verdere keuzes moeten gemaakt worden met betrekking tot de specifieke configuratie van het algoritme zelf. Bij iteratieve methodes, bijvoorbeeld, waarin er stapsgewijs gezocht wordt naar een optimale waarde, moeten we een keuze maken over de grootte van die stappen (de zogenaamde learning rate).
Die configuratie kan een grote impact hebben op de kwaliteit van het uiteindelijke resultaat. Het is vaak op voorhand ook niet duidelijk welke de beste configuratie voor het optimalisatie-algoritme is, gegeven de specifieke situatie. Daarom wordt ook daar vaak op een (al dan niet principiële manier) iteratief gewerkt om tot optimale waarden te komen.

De numerieke configuratie parameters van een optimalisatie-algoritme worden hyper parameters genoemd. Het proces waarbij de hyper parameters worden geoptimaliseerd heet hyper parameter tuning.

Source
<Figure size 1200x600 with 1 Axes>

Loss functie

De Loss functie is ook gekend onder de namen Error functie en Cost functie. Er wordt in de domeinen van de wiskundige optimalisatie en beslissingstheorie ook soms gesproken over een objectieve functie. Die verwijst ofwel naar een verliesfunctie of zijn tegengestelde vorm. Dan wordt er bijvoorbeeld ook gesproken over een reward functie, profit functie, utility functie, fitness functie, enz.

Bij het zoeken naar de optimale waarden voor de parameters in ons model en/of om te evalueren of het leeralgoritme effectief tot leren leidt, moeten we wiskundig kunnen uitdrukken wat optimaliteit in een specifiek geval betekent om de goodness of fit van de oplossing te kunnen uitdrukken - met andere woorden, we moeten de optimaliteit van parameterschattingen op ieder moment in een cijfer kunnen uitdrukken (kwantificeren). We moeten dus een functie beschrijven die optimaliteit uitdrukt. Het doel van het leeralgoritme is om de output van die functie te maximaliseren.
❗Om wiskundige redenen, draaien we de logica echter om en beschrijven we een functie die de sub-optimaliteit uitdrukt. Die functie trachtten we dan te minimaliseren.

De Loss functie is de wiskundige functie die de sub-optimaliteit uitdrukt van parameterschattingen in een bepaalde context. Het doel van het leeralgoritme is om de output van die functie te minimaliseren. Zoals we nog zullen illustreren, betekent dit niet per se dat het leeralgoritme rechtstreeks gebruik maakt van de Loss functie.

Source
<Figure size 1000x600 with 1 Axes>

Trainingsdata voorbereiden

(On)gebalanceerde trainingsdata en bias

Ongebalanceerdheid van trainingsdata verwijst naar het fenomeen waarbij bepaalde categorieën (bv. hond/kat) of continue waarden (bv. leeftijden) over- of ondervertegenwoordigd zijn in de trainingsdata. Dit kan louter het gevolg zijn van natuurlijke scheefheid ofwel een gevolg van de specifieke manier van trainingsdataverzameling. Dit is een algemeen aandachtspunt bij trainingsdata die op natuurlijke wijze verkregen zijn (bv. verkooptransacties, server logs, enz.). Naargelang de ernst van ongebalanceerdheid, leidt het tot statistische bias. Dit verwijst naar het fenomeen waarbij getrainde modellen systematische predictiefouten maken en dus bepaalde voorkeuren hebben ontwikkeld.

Om ons in te dekken tegen ongebalanceerdheid is exploratieve data analyse een belangrijke tool. Het kan geremedieerd worden door extra data te verzamelen en/of door over-/ondersampling toe te passen op de trainingsdata.

  • Bij under sampling gaan we een random selectie (subsample) maken van overgerepresenteerde categorieën of waarden zodat er een betere balans ontstaat met de ondergerepresenteerde data. Modellen worden dan soms meerdere keren getraind, telkens met een andere subsample om zeker te zijn dat de ondersampling zelf geen artefacten teweeg brengt.

  • Bij over sampling worden nieuwe, meer gebalanceerde datasets gemaakt door random samples uit de ondergerepresenteerde categorieën of waarden toe te voegen. Dit houdt data duplicatie in, maar is in bepaalde gevallen een zeer effectieve strategie tegen bias.

References
  1. Welford, B. P. (1962). Note on a Method for Calculating Corrected Sums of Squares and Products. Technometrics, 4(3), 419–420. 10.1080/00401706.1962.10490022