stomp Wat is gradiëntversterking? - Verenig AI
Verbind je met ons

AI 101

Wat is gradiëntversterking?

mm
Bijgewerkt on

Een veelgebruikt type machine learning-model dat uiterst nuttig is gebleken in data science-wedstrijden is een gradiëntversterkingsmodel. gradiëntversterking is eigenlijk het proces van het omzetten van zwakke leermodellen in sterke leermodellen. Maar hoe wordt dit precies bereikt? Laten we de algoritmen voor het stimuleren van gradiënten en beter eens nader bekijken begrijpen hoe een gradiëntverhogend model zet zwakke leerlingen om in sterke leerlingen.

Gradiëntversterking definiëren

Dit artikel is bedoeld om u een goede intuïtie te geven voor wat gradiëntversterking is, zonder veel uitsplitsingen van de wiskunde die ten grondslag ligt aan de algoritmen. Als je eenmaal begrijpt hoe gradiëntversterking op een hoog niveau werkt, wordt je aangemoedigd om dieper te gaan en de wiskunde te onderzoeken die dit mogelijk maakt.

Laten we beginnen met te definiëren wat het betekent om een ​​leerling een boost te geven. Zwakke leerlingen worden omgezet in sterke leerlingen door de eigenschappen van het leermodel aan te passen. Welk leeralgoritme wordt precies gestimuleerd?

Boosting-modellen werken door een ander veelvoorkomend machine learning-model uit te breiden, een beslisboom.

A beslissingsboom model functioneert door een dataset op te splitsen in steeds kleinere delen, en zodra de subsets niet verder kunnen worden gesplitst, is het resultaat een boom met knooppunten en bladeren. Knooppunten in een beslissingsboom zijn de plaatsen waar beslissingen over gegevenspunten worden genomen met behulp van verschillende filtercriteria. De bladeren in een beslisboom zijn de gegevenspunten die zijn geclassificeerd. Beslisboomalgoritmen kunnen zowel numerieke als categorische gegevens verwerken, en splitsingen in de boom zijn gebaseerd op specifieke variabelen/kenmerken.

Illustratie van de manier waarop boosting-modellen worden getraind.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

Een type boosting-algoritme is de AdaBoost-algoritme. AdaBoost-algoritmen beginnen met het trainen van een beslisboommodel en kennen aan elke waarneming een gelijk gewicht toe. Nadat de eerste boom op nauwkeurigheid is beoordeeld, worden de gewichten voor de verschillende waarnemingen aangepast. Waarnemingen die gemakkelijk te classificeren waren, hebben een lager gewicht, terwijl waarnemingen die moeilijk te classificeren waren, een hoger gewicht kregen. Met deze aangepaste gewichten wordt een tweede boom gemaakt, met als doel dat de voorspellingen van de tweede boom nauwkeuriger zullen zijn dan de voorspellingen van de eerste boom.

Het model bestaat nu uit de voorspellingen voor de oorspronkelijke boom en de nieuwe boom (of Boom 1 + Boom 2). De classificatienauwkeurigheid wordt opnieuw beoordeeld op basis van het nieuwe model. Er wordt een derde boom gemaakt op basis van de berekende fout voor het model, en de gewichten worden opnieuw aangepast. Dit proces gaat een bepaald aantal iteraties door en het uiteindelijke model is een ensemblemodel dat de gewogen som gebruikt van de voorspellingen van alle eerder geconstrueerde bomen.

Het hierboven beschreven proces maakt gebruik van beslissingsbomen en de basisvoorspellers/modellen, maar een stimulerende aanpak kan worden uitgevoerd met een breed scala aan modellen, zoals de vele standaard classificatie- en regressormodellen. De belangrijkste concepten die u moet begrijpen, zijn dat volgende voorspellers leren van de fouten die door voorgaande zijn gemaakt en dat de voorspellers opeenvolgend worden gemaakt.

Het belangrijkste voordeel van het stimuleren van algoritmen is dat ze minder tijd nodig hebben om de huidige voorspellingen te vinden in vergelijking met andere machine learning-modellen. Voorzichtigheid is echter geboden bij het gebruik van boosting-algoritmen, aangezien deze vatbaar zijn voor overfitting.

Verloopversterking

We zullen nu kijken naar een van de meest voorkomende boosting-algoritmen. Gradient Boosting Models (GBM) staan ​​bekend om hun hoge nauwkeurigheid en ze versterken de algemene principes die in AdaBoost worden gebruikt.

Het belangrijkste verschil tussen een Gradient Boosting-model en AdaBoost is dat GBM's een andere methode gebruiken om te berekenen welke leerlingen gegevenspunten verkeerd identificeren. AdaBoost berekent waar een model ondermaats presteert door gegevenspunten te onderzoeken die zwaar wegen. Ondertussen gebruiken GBM's gradiënten om de nauwkeurigheid van leerlingen te bepalen, door een verliesfunctie toe te passen op een model. Verliesfuncties zijn een manier om de nauwkeurigheid van de pasvorm van een model op de dataset te meten, een fout te berekenen en het model te optimaliseren om die fout te verminderen. Met GBM's kan de gebruiker een gespecificeerde verliesfunctie optimaliseren op basis van het gewenste doel.

De meest voorkomende verliesfunctie nemen - Gemiddelde kwadratische fout (MSE) - als voorbeeld, gradiënt afdaling wordt gebruikt om voorspellingen bij te werken op basis van een vooraf gedefinieerde leersnelheid, met als doel de waarden te vinden waarbij het verlies minimaal is.

Om het duidelijker te maken:

Nieuwe modelvoorspellingen = uitvoervariabelen - oude onvolmaakte voorspellingen.

In meer statistische zin streven GBM's ernaar relevante patronen in de residuen van een model te vinden, het model aan te passen aan het patroon en de residuen zo dicht mogelijk bij nul te brengen. Als je een regressie zou uitvoeren op de voorspellingen van het model, zouden de residuen rond 0 worden verdeeld (perfect passend), en GBM's vinden patronen binnen de residuen en updaten het model rond deze patronen.

Met andere woorden, de voorspellingen worden bijgewerkt zodat de som van alle residuen zo dicht mogelijk bij 0 ligt, wat betekent dat de voorspelde waarden zeer dicht bij de werkelijke waarden liggen.

Merk op dat een groot aantal andere verliesfuncties (zoals logaritmisch verlies) kan worden gebruikt door een GBM. MSE is hierboven geselecteerd vanwege de eenvoud.

Variaties op gradiëntverhogende modellen

Gradient Boosting Models zijn hebzuchtige algoritmen die vatbaar zijn voor overfitting op een dataset. Hiertegen kan worden gewaakt met verschillende methoden die de prestaties van een GBM kunnen verbeteren.

GBM's kunnen op vier verschillende manieren worden gereguleerd: Krimp, Boombeperkingen, Stochastic Gradient Boosting en Penalized Learning.

inkrimping

Zoals eerder vermeld, worden voorspellingen in GBM's op een sequentiële manier bij elkaar opgeteld. In "Krimp" worden de toevoegingen van elke boom aan de totale som aangepast. Er worden gewichten toegepast die de leersnelheid van het algoritme vertragen, waardoor er meer bomen aan het model moeten worden toegevoegd, wat doorgaans de robuustheid en prestaties van het model verbetert. Het nadeel is dat het model langer nodig heeft om te trainen.

Boombeperkingen

Door de boom te beperken met verschillende aanpassingen, zoals het toevoegen van meer diepte aan de boom of het vergroten van het aantal knopen of bladeren in de boom, kan het moeilijker worden voor het model om overfit te raken. Een beperking opleggen aan het minimum aantal waarnemingen per splitsing heeft een vergelijkbaar effect. Nogmaals, de wisselwerking is dat het model langer nodig heeft om te trainen.

Willekeurige bemonstering

De individuele leerlingen kunnen worden gemaakt via een stochastisch proces, gebaseerd op willekeurig geselecteerde deelstammen van de trainingsdataset. Dit heeft tot gevolg dat correlaties tussen bomen worden verminderd, wat beschermt tegen overfitting. De dataset kan worden gesubstampeld voordat de bomen worden gemaakt of voordat een splitsing in de boom wordt overwogen.

Gestraft leren

Naast het beperken van het model door de structuur van de boom te beperken, is het mogelijk om een ​​regressieboom te gebruiken. Regressiebomen hebben numerieke waarden die aan elk van de bladeren zijn gekoppeld, en deze functioneren als gewichten en kunnen worden aangepast met algemene regularisatiefuncties zoals L1- en L2-regularisatie.

Blogger en programmeur met specialiteiten in Machine leren en Diepe leren onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor maatschappelijk welzijn.