Gradiënt afdaling

diep leren
wiskunde
gradiëntafdaling
Gradiënt afdaling cover image

Introductie

Stel je voor dat we een functie f(x)f(x) hebben en we willen het minimum ervan vinden. Wat zou jij doen ?

Simpel toch? We hoeven alleen de volgende vergelijking op te lossen:

f(x)=0f'(x) = 0

Het punt is dat het vinden van de formule van ff' niet altijd gemakkelijk is, omdat ze vaak extreem ingewikkeld zijn, vooral bij deep learning, waar we te maken hebben met complexe functies. We moeten dus een andere methode vinden die ons het minimum van een functie kan opleveren zonder dat we de formule van de afgeleide ff' hoeven te vinden.

Laten we wat intuïtie opbouwen

Laten we aannemen dat we een functie f hebben met de bijbehorende grafiek:

Graph 1

Laten we beginnen met een willekeurig punt x0x_{0}. Het doel is om dit punt te verplaatsen en steeds dichter bij xx* te brengen, zodat f(f'(x*)=0) = 0. Het probleem kan dus in twee delen worden verdeeld:

  • In welke richting moeten we het punt xx verplaatsen? Links of rechts ?

  • Hoeveel moeten we verplaatsen?

De richting

Laten we wat intuïtie opbouwen om de eerste vraag te kunnen beantwoorden. Kijk eens naar het volgende punt:

Graph 2

Graph 3

Let daar op:

  • wanneer het punt x0x_{0} zich rechts van het optimale punt xx* bevindt, gaat de raaklijn omhoog.

  • wanneer het punt x0x_{0} zich rechts van het optimale punt xx* bevindt, gaat de raaklijn naar beneden.

De richting van een lijn wordt bepaald door het teken van de helling:

  • Een lijn gaat omhoog \impliceert\impliceert de helling aa is positief.

  • Een lijn gaat naar beneden \impliceert\impliceert de helling aa is negatief.

Merk op dat: \

De helling van de raaklijn van een functie in een bepaald punt x0x_{0} is niet groter dan de afgeleide in dat punt f(x0)f'(x_{0}):

tangent(x0):g(x)=f(x0).(xx0)+f(x0)tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0})

Dus als antwoord op de vraag "Waar moeten we x0x_{0} naartoe verplaatsen?":

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0} rechts van xx*     \implies We moeten x0x_{0} naar links verplaatsen.

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0} links van xx*     \implies We moeten x0x_{0} naar rechts verplaatsen.

De stappen

Nu de tweede vraag: Hoeveel moeten we x0x_{0} verplaatsen?

Bekijk de volgende voorbeelden:

Graph 4

Graph 5

We kunnen dat concluderen:

  • x0x_{0} ligt dichtbij xx* => De helling van de raaklijn is klein => f(x0)f'(x_{0}) is klein.

  • x0x_{0} ligt ver van xx* => De helling van de raaklijn is groot => f(x0)f'(x_{0}) is groot.

Door beide vragen te beantwoorden kwamen we tot de conclusie dat alleen de kennis van de afgeleide in het punt x0x_{0} ons veel inzicht kan geven over de richting en de afstand van het optimale punt x0x_{0}.

Gradiënt afdaling

Gradiëntdaling is de formulering van de antwoorden op de vorige twee vragen. Het is een iteratief optimaliseringsalgoritme dat het minimum xx* van de functie benadert, beginnend bij een willekeurig beginpunt x0x_{0}. Het algoritme wordt als volgt weergegeven:

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

waar:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}} is niet meer dan de afgeleide van ff in het punt xnx*{n}.

  • lrlr is een positieve constante die bepaalt hoe groot de stappen zullen zijn.

Let erop dat:

  • xnx_{n} staat rechts van xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xnpositiefx_{n+ 1} = x_{n} - positief => xnx_{n} beweegt naar links.

  • xnx_{n} staat links van xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn+1=xn+positiefx*{n +1} = x*{n} + positief => xnx_{n} beweegt naar rechts.

  • xnx_{n} dichtbij xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} dichtbij 00 => Kleine update naar xnx_{ n}.

Quizz

  • Wanneer stopt de gradiëntafdaling met itereren:

  • Als xnx_{n} klein genoeg is.

  • Wanneer xnx_{n} dichtbij x0x_{0} ligt.

  • Wanneer dfdx_n=0\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0 . XXX

  • Hoe kiezen we x0x_{0}:

  • We kiezen het willekeurig. XXX

  • We nemen het in de buurt van xnx{n}.

  • Het hangt van het probleem af.

  • Waarom hebben we gradiëntafdaling nodig:

  • Omdat computers niet krachtig genoeg zijn om afgeleiden te berekenen.

  • Omdat het extreem moeilijk is om de afgeleide formules van deep learning-modellen te vinden. XXX

  • Omdat functies meer dan één lokaal minimum hebben.


Career Services background pattern

Carrièrediensten

Contact Section background image

Laten we in contact blijven

Code Labs Academy © 2025 Alle rechten voorbehouden.