Hyperparameter
Wat is een hyperparameter?
Een hyperparameter is een instelling die je voor de training van een model kiest, en die bepaalt hoe die training verloopt. De learning rate, de diepte van een decision tree, het aantal lagen in een neuraal netwerk, het aantal keren dat het model door de data gaat: dat zijn allemaal hyperparameters. Jij stelt ze in. Het model leert ze niet zelf.
Daar zit precies de grens tussen een hyperparameter en een gewone parameter. Parameters zijn wat het model tijdens de training uit de data leert: de gewichten, de coëfficiënten, de splitspunten in een boom. Hyperparameters zijn de knoppen die je vooraf zet en die beslissen hoe die parameters geleerd worden.
Denk aan een cake bakken. De temperatuur van de oven en de baktijd zijn instellingen die je vooraf kiest, net als hyperparameters. Hoe de cake rijst en welke kleur hij krijgt, is het resultaat, net als de geleerde parameters. Jij kiest de instellingen, en het resultaat volgt eruit.
Parameters versus hyperparameters
Een klein voorbeeld maakt het verschil duidelijk. In een simpel lineair model geschreven als y = b0 + b1x zijn de waarden b0 en b1 parameters: het model leert ze door de data te volgen. Hoe hard je grote coëfficiënten afstraft om het model eenvoudig te houden, is een hyperparameter: die zet je voor de training begint.
Een random forest toont dezelfde scheiding. Het aantal bomen en hoe diep elke boom mag groeien, zijn hyperparameters die jij kiest. De concrete vragen die elke boom bij elke split stelt, zijn parameters die het model uit de data afleidt. Zet de knoppen, en de training vult de rest in.
Veelvoorkomende hyperparameters
Verschillende modellen hebben verschillende knoppen, maar een paar komen keer op keer terug.
Learning rate. Hoe grote stap de training bij elke update zet. Te hoog en ze schiet voorbij het doel; te laag en ze kruipt vooruit, of geraakt er niet binnen de tijd die je toelaat.
Grootte en complexiteit van het model. De diepte van een boom, het aantal bomen, het aantal lagen of neuronen in een neuraal netwerk. Meer capaciteit kan meer vatten, maar maakt overfitting ook makkelijker.
Sterkte van de regularisatie. Hoe hard de training complexiteit afstraft. Dit is de belangrijkste hendel om te vermijden dat een model zijn trainingsdata van buiten leert.
Batch size en aantal doorgangen. Hoeveel data het model per update ziet, en hoe vaak het door de volledige dataset gaat.
Hoe stel je hyperparameters af?
Omdat je de beste instellingen niet uit de data kan aflezen, zoek je ze. De eenvoudige aanpakken zijn grid search, waarbij je elke combinatie uit een lijst probeert die je zelf opstelt, en random search, waarbij je combinaties willekeurig trekt en zo vaak sneller een goede vindt. Meer gestuurde methodes, zoals Bayesiaanse optimalisatie, gebruiken eerdere resultaten om te beslissen wat ze daarna proberen.
Welke methode je ook gebruikt, beoordeel elke combinatie met cross-validation, niet met de uiteindelijke testset. Door het apart gehouden deel te laten rouleren, krijg je een stabielere lezing van welke instellingen echt generaliseren. Omdat zo'n zoektocht tientallen combinaties oplevert, verdient experiment tracking zijn plek: noteer elke instelling en haar score, zodat je kan zeggen waarom het ene model het andere klopte en de winnaar later opnieuw kan maken. Die administratie is een kerngewoonte in MLOps.
Waar moet je op letten bij hyperparameters?
Stel niet af op de testset. Als je instellingen kiest op basis van hun score op dezelfde data waarmee je het eindoordeel velt, is dat oordeel opgeblazen. Het is een vorm van data leakage. Houd een zuivere scheiding tussen afstellen en de eindbeoordeling.
De winst wordt kleiner. Een enorme ruimte aan combinaties afzoeken verbruikt rekenkracht voor steeds kleinere winst. Voor de meeste algoritmes bestaan er verstandige standaardwaarden, en betere kenmerken verslaan vaak een net iets betere learning rate.
Schrijf ze op. Een model is alleen reproduceerbaar als je de exacte instellingen kent die het opleverden. Niet-genoteerde hyperparameters zijn de reden waarom een resultaat een maand later niet herhaald raakt.