AI-basisprincipes

Wat is Gradient Boosting?

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Een veel voorkomend type machine learning-model dat extreem nuttig is gebleken in data science-wedstrijden, is een gradient boosting-model. Gradient boosting is in wezen het proces van het omzetten van zwakke leermodellen in sterke leermodellen. Maar hoe wordt dit precies gedaan? Laten we een nadere blik werpen op gradient boosting-algoritmes en beter begrijpen hoe een gradient boosting-model zwakke leerlingen omzet in sterke leerlingen.

Definiëren van Gradient Boosting

Dit artikel heeft als doel om u een goed inzicht te geven in wat gradient boosting is, zonder al te veel uitleg over de wiskunde die ten grondslag ligt aan de algoritmes. Zodra u een goed begrip heeft van hoe gradient boosting op hoog niveau werkt, wordt u aangemoedigd om dieper te graven en de wiskunde te onderzoeken die het mogelijk maakt.

Laten we beginnen met het definiëren van wat het betekent om een leerling te “boosten”. Zwakke leerlingen worden omgezet in sterke leerlingen door de eigenschappen van het leermodel aan te passen. Welk leer-algoritme wordt precies versterkt?

Boosting-modellen werken door een andere veelvoorkomende machine learning-model te vergroten, een beslissingsboom.

Een beslissingsboom-model werkt door een dataset te splitsen in kleinere en 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 waar beslissingen over datapunten worden genomen met behulp van verschillende filtercriteria. De bladeren in een beslissingsboom zijn de datapunten die zijn geclassificeerd. Beslissingsboomalgoritmes kunnen zowel numerieke als categorale 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 het AdaBoost-algoritme. AdaBoost-algoritmes beginnen met het trainen van een beslissingsboommodel en het toewijzen van een gelijk gewicht aan elke observatie. Nadat de eerste boom is geëvalueerd op nauwkeurigheid, worden de gewichten voor de verschillende observaties aangepast. Observaties die gemakkelijk te classificeren waren, hebben hun gewichten verlaagd, terwijl observaties die moeilijk te classificeren waren, hun gewichten verhoogd. Een tweede boom wordt gemaakt met behulp van deze aangepaste gewichten, met als doel dat de voorspellingen van de tweede boom nauwkeuriger 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. Een derde boom wordt gemaakt op basis van de berekende fout voor het model, en de gewichten worden opnieuw aangepast. Dit proces wordt herhaald voor een bepaald aantal iteraties, en het finale model is een ensemble-model dat de gewogen som van de voorspellingen van alle eerder geconstrueerde bomen gebruikt.

Het bovenstaande proces gebruikt beslissingsbomen en de basisvoorspellers/modellen, maar een boosting-benadering kan worden uitgevoerd met een breed scala aan modellen, zoals de vele standaard classificerings- en regressiemodellen. De belangrijkste concepten om te begrijpen zijn dat latere voorspellers leren van de fouten die door eerdere voorspellers zijn gemaakt en dat de voorspellers sequentieel worden gemaakt.

Het primaire voordeel van boosting-algoritmes is dat ze minder tijd nodig hebben om de huidige voorspellingen te vinden in vergelijking met andere machine learning-modellen. Echter, moet er voorzichtigheid worden betracht bij het gebruik van boosting-algoritmes, aangezien ze gevoelig zijn voor overfitting.

Gradient Boosting

We zullen nu een van de meest voorkomende boosting-algoritmes onderzoeken. Gradient Boosting-modellen (GBM’s) zijn bekend om hun hoge nauwkeurigheid en ze versterken de algemene principes die worden gebruikt in AdaBoost.

Het primaire verschil tussen een Gradient Boosting-model en AdaBoost is dat GBM’s een andere methode gebruiken om te berekenen welke leerlingen fouten maken. AdaBoost berekent waar een model onderpresteert door naar datapunten te kijken die zwaar zijn gewogen. GBM’s gebruiken daarentegen gradients om de nauwkeurigheid van leerlingen te bepalen, door een verliesfunctie toe te passen op een model. Verliesfuncties zijn een manier om de nauwkeurigheid van een model te meten, door een fout te berekenen en het model te optimaliseren om die fout te verminderen. GBM’s laten de gebruiker toe om een gespecificeerde verliesfunctie te optimaliseren op basis van het gewenste doel.

Als we het meest voorkomende verliesfunctie nemen – Gemiddelde Kwadratische Fout (GKF) – als voorbeeld, wordt gradiënt-daling gebruikt om voorspellingen bij te werken op basis van een vooraf gedefinieerde leerrate, met als doel de waarden te vinden waarbij het verlies minimaal is.

Om het duidelijker te maken:

Nieuwe modelvoorspellingen = uitvoervariabelen – oude onvolkomen voorspellingen.

In een meer statistische zin, hebben GBM’s als doel om relevante patronen te vinden in een modelresiduen, door het model aan te passen om het patroon te volgen en de residuen zo dicht mogelijk bij nul te brengen. Als u een regressie zou uitvoeren op de voorspellingen van het model, zouden de residuen rond 0 (perfecte fit) worden verdeeld, en GBM’s vinden patronen binnen de residuen en passen het model aan op basis van 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 zullen liggen.

Let op dat een breed scala aan andere verliesfuncties (zoals logaritmische verlies) kan worden gebruikt door een GBM. GKF is hierboven geselecteerd voor de eenvoud.

Variaties op Gradient Boosting-modellen

Gradient Boosting-modellen zijn gulzige algoritmes die gevoelig zijn voor overfitting op een dataset. Dit kan worden voorkomen met verschillende methoden die de prestaties van een GBM kunnen verbeteren.

GBM’s kunnen worden gereguleerd met vier verschillende methoden: Shrinkage, Boombeperkingen, Stochastische Gradient Boosting en Gestrafte Leer.

Shrinkage

Zoals eerder vermeld, worden in GBM’s voorspellingen sequentieel samengesteld. In “Shrinkage” worden de toevoegingen van elke boom aan de totale som aangepast. Gewichten worden toegepast die de leerrate van het algoritme vertragen, waardoor meer bomen nodig zijn om het model te trainen, wat het model meestal robuuster en beter presterend maakt. 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 verhogen van het aantal knooppunten of bladeren in de boom, kan het voor het model moeilijker worden om overfitting te veroorzaken. Het opleggen van een beperking aan het minimumaantal observaties per splitsing heeft een soortgelijk effect. Nogmaals, het nadeel is dat het model langer nodig heeft om te trainen.

Willekeurige Steekproeven

De individuele leerlingen kunnen worden gemaakt door een stochastisch proces, op basis van willekeurig geselecteerde steekproeven van de trainingsdataset. Dit heeft het effect van het reduceren van de correlaties tussen bomen, wat overfitting voorkomt. De dataset kan worden gesteekproefd voordat de bomen worden gemaakt of voordat een splitsing in de boom wordt overwogen.

Gestrafte Leer

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 elke bladeren zijn toegevoegd, en deze functioneren als gewichten en kunnen worden aangepast met gemeenschappelijke regularisatiefuncties zoals L1- en L2-regularisatie.

Blogger en programmeur met specialisaties in Machine Learning en Deep Learning onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor het sociale goede.