Gradiëntafdaling is aantoonbaar de meest erkende optimalisatiestrategie die wordt gebruikt bij diepgaand leren en machinaal leren. Datawetenschappers gebruiken het vaak als er een kans is om elk algoritme te combineren met trainingsmodellen. Het begrijpen van het algoritme voor de afdaling van de gradiënt is relatief eenvoudig, en de implementatie ervan is nog eenvoudiger. Laten we de innerlijke werking van de afdaling van de gradiënt, de verschillende types en de voordelen ervan bespreken.

Wat is gradiëntafname?

Programmeurs gebruiken gradiëntafname als een optimalisatiealgoritme bij het trainen van machine leermodellen. Gebaseerd op convexe functies, past de gradiëntafloop iteratief enkele van zijn parameters aan om een bepaalde functie tot een minimum te beperken.
Gegevenswetenschappers gebruiken gradiëntdaling om de parameterwaarden van een functie te vinden die de kostenfuncties zo veel mogelijk beperken. Ze beginnen met het vaststellen van de beginparameterwaarden. De gradiëntdaling gebruikt calculus voor het iteratief aanpassen van waarden om een specifieke kostenfunctie te minimaliseren. U moet weten welke gradiënten er zijn om gradiëntdaling volledig te begrijpen.

Begrijpen van de gradiënt

De primaire functie van een gradiënt is het meten van veranderingen in elk gewicht met betrekking tot verandering in fouten. Denk aan gradiënten als de helling van een functie. De helling zal steiler zijn op basis van de hoogte van de helling – het is een gunstige voorwaarde voor modellen omdat ze snel kunnen leren. Het model zal echter stoppen met leren als de helling nul wordt. Wiskundig gezien kan een helling het beste worden beschreven als een beperkte afgeleide van de input.
Denk aan een geblinddoekt persoon die met minimale inspanning de top van een heuvel wil beklimmen. Hij zal hoogstwaarschijnlijk lange stappen zetten in de richting van de steilst mogelijke richting. De stappen van deze persoon zullen echter kleiner worden om doorschieten te voorkomen. Je kunt de helling gebruiken om dit proces wiskundig te beschrijven.
Gradiënten die beginnen bij X0 en eindigen bij X1 zijn beduidend langer dan die welke beginnen bij X3 en eindigen bij X4. Waarom? Omdat de helling/steilte van de heuvel de lengte van de vector bepaalt. Het geeft een ideale weergave van de eerder besproken heuvel-analogie omdat deze minder steil wordt naarmate de persoon hoger klimt.

Hoe werkt de afdaling van de helling?

In plaats van het beklimmen van een heuvel, stelt u zich de afdaling van de helling voor als een afdaling naar de bodem van een vallei. Het begrijpen van deze analogie is eenvoudiger, omdat het een algoritme voor minimalisatie is dat een specifieke functie vermindert. Laten we gradiëntafdaling begrijpen met behulp van een vergelijking:
b vertegenwoordigt de volgende positie van de klimmer
a betekent zijn huidige positie
min heeft betrekking op het minimaliseringsdeel van de hellingsgraadafdaling
Het gamma dat zich in het centrum bevindt, vertegenwoordigt een wachtfactor
(Δf (a) ) betekent de richting van de steilste afdaling

Deze formule is in eerste instantie misschien verwarrend, maar het is eenvoudiger dan je denkt. Het informeert ons over de volgende positie die we moeten innemen: de richting van de afdaling.

Waarom is Learning Rate zo belangrijk?

Het is essentieel om de leersnelheid op de juiste waarden in te stellen om de afdaling van de helling te helpen om de lokale minima te bereiken. Het zou dus het beste zijn om ze niet te hoog of te laag in te stellen. Het is van cruciaal belang omdat het bereiken van het minimum gecompliceerd kan worden met te lange stappen. Als we de leerpercentages op kleinere waarden instellen, kan de afdaling van de gradiënt uiteindelijk tot het lokale minimum komen. Het kan echter enige tijd duren.

Hoe zorg je ervoor dat het optimaal functioneert

Een uitstekende manier om ervoor te zorgen dat de gradiëntafdaling optimaal functioneert, is door de kostenfunctie te organiseren terwijl de optimalisatie loopt. Voer het aantal herhalingen op de X-as in en de waarde van de kostenfunctie wordt op de y-as ingevoerd. Het zal u helpen om de waarde van de kostenfunctie te zien na de iteratie van elke gradiëntafname, terwijl u ook de nauwkeurigheid van de leersnelheid kunt zien. U kunt ook verschillende waarden uitproberen en ze samen plotten.
De kostenfunctie zal na elke iteratie verminderen als de gradiëntdaling optimaal functioneert. De gradiëntdaling convergeert wanneer deze niet in staat is om de kostenfunctie te verminderen en op hetzelfde niveau blijft. De hoeveelheid iteraties die de gradiëntdaling nodig heeft voor de convergentie varieert drastisch. Soms zijn er vijftig iteraties nodig, andere keren kan het oplopen tot twee of drie miljoen. Het veroorzaakt problemen bij het vooraf inschatten van de iteraties.
Sommige algoritmen kunnen je automatisch informeren als er een convergentie in gradiëntdaling is geweest. Het zou echter het beste zijn om vooraf een convergentiedrempel vast te stellen, wat ook vrij moeilijk in te schatten is. Het is een belangrijke reden waarom eenvoudige plots het beste zijn voor het testen van de convergentie.

Verschillende gradiëntafdalingstypes

U vindt er drie goed herkenbare hellingstypes voor de afdaling. Laten we ze eens goed bekijken:

Batch Gradiënt Afdaling

Ook wel bekend als vanillegradiëntafdaling, de batchgradiëntdaling berekent fouten voor elk voorbeeld in de trainingsdataset. Het doet dit echter pas nadat elk trainingsvoorbeeld een strenge evaluatie heeft ondergaan. Het is eerlijk om dit proces te vergelijken met een cyclus. Sommige individuen verwijzen ook naar is als een trainingstijdstip.
Batchgradiëntdaling heeft verschillende voordelen. Vooral de rekenkundige efficiëntie is erg handig, omdat het een stabiele convergentie en een stabiel foutenverloop ontwikkelt. Dat gezegd hebbende, heeft batchgradiëntafdaling ook enkele nadelen. Soms kan zijn stabiele foutengradiënt resulteren in een ongunstige staat van convergentie. Bovendien heeft het ook de aanwezigheid van de trainingsdataset in zijn algoritme en geheugen nodig.

Stochastische afdaling van de gradiënt

SGD biedt updates voor individuele parameters voor elk trainingsvoorbeeld. Het helpt de aandacht te vestigen op elk voorbeeld en zorgt ervoor dat het proces foutloos verloopt. Afhankelijk van het probleem kan dit SGD helpen om sneller te worden vergeleken met de afdaling van de batchgradiënt. De regelmatige updates geven ons gedetailleerde verbeteringspercentages.
Deze updates zijn echter rekenkundig gezien duur, vooral als je ze vergelijkt met de aanpak die wordt gebruikt voor de afdaling van de batchgradiënt. Bovendien kan de frequentie van de update lawaaierige hellingen veroorzaken en kan het voorkomen dat het foutenpercentage afneemt. In plaats daarvan springt het foutenpercentage in het rond en wordt het op de lange termijn problematisch.

Mini-Batch Gradiëntafdaling

Gegevenswetenschappers gebruiken de mini-batch gradiëntafdaling als een go-to-methode. Waarom? Omdat het een perfecte mix is van de concepten van stochastische gradiëntafname en batchgradiëntafname. Het splitst de datasets (training) op in batches en voert voor elke batch een update uit, waardoor er een balans ontstaat tussen de efficiëntie van de BGD en de robuustheid van de SCD.
Populaire mini-batches variëren tussen vijftig en tweehonderdzesenvijftig, maar net als verschillende andere machinale leermethoden zijn er geen duidelijke regels, omdat het verschilt van de ene toepassing tot de andere. Mensen gebruiken het als een go-to optie voor het trainen van neurale netwerken. Het is ook een populair type gradiëntafdaling binnen het diepe leerlandschap.