Introductie
Stel je voor dat we een functie hebben en we willen het minimum ervan vinden. Wat zou jij doen ?
Simpel toch? We hoeven alleen de volgende vergelijking op te lossen:
Het punt is dat het vinden van de formule van 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 hoeven te vinden.
Laten we wat intuïtie opbouwen
Laten we aannemen dat we een functie f hebben met de bijbehorende grafiek:
Laten we beginnen met een willekeurig punt . Het doel is om dit punt te verplaatsen en steeds dichter bij te brengen, zodat x*. Het probleem kan dus in twee delen worden verdeeld:
-
In welke richting moeten we het punt 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:
Let daar op:
-
wanneer het punt zich rechts van het optimale punt bevindt, gaat de raaklijn omhoog.
-
wanneer het punt zich rechts van het optimale punt bevindt, gaat de raaklijn naar beneden.
De richting van een lijn wordt bepaald door het teken van de helling:
-
Een lijn gaat omhoog de helling is positief.
-
Een lijn gaat naar beneden de helling is negatief.
Merk op dat: \
De helling van de raaklijn van een functie in een bepaald punt is niet groter dan de afgeleide in dat punt :
Dus als antwoord op de vraag "Waar moeten we naartoe verplaatsen?":
-
rechts van We moeten naar links verplaatsen.
-
links van We moeten naar rechts verplaatsen.
De stappen
Nu de tweede vraag: Hoeveel moeten we verplaatsen?
Bekijk de volgende voorbeelden:
We kunnen dat concluderen:
-
ligt dichtbij => De helling van de raaklijn is klein => is klein.
-
ligt ver van => De helling van de raaklijn is groot => is groot.
Door beide vragen te beantwoorden kwamen we tot de conclusie dat alleen de kennis van de afgeleide in het punt ons veel inzicht kan geven over de richting en de afstand van het optimale punt .
Gradiënt afdaling
Gradiëntdaling is de formulering van de antwoorden op de vorige twee vragen. Het is een iteratief optimaliseringsalgoritme dat het minimum van de functie benadert, beginnend bij een willekeurig beginpunt . Het algoritme wordt als volgt weergegeven:
waar:
-
is niet meer dan de afgeleide van in het punt .
-
is een positieve constante die bepaalt hoe groot de stappen zullen zijn.
Let erop dat:
-
staat rechts van => => => beweegt naar links.
-
staat links van => => => beweegt naar rechts.
-
dichtbij => dichtbij => Kleine update naar .
Quizz
-
Wanneer stopt de gradiëntafdaling met itereren:
-
Als klein genoeg is.
-
Wanneer dichtbij ligt.
-
Wanneer . XXX
-
Hoe kiezen we :
-
We kiezen het willekeurig. XXX
-
We nemen het in de buurt van .
-
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.