Gradient nedstigning

dyb læring
matematik
gradient afstamning
Gradient nedstigning cover image

Introduktion

Forestil dig, at vi har en funktion $f(x)$, og vi vil gerne finde dens minimum. Hvad ville du gøre ?

Simpelt ikke? Vi skal kun løse følgende ligning:

$$f'(x) = 0$$

Sagen er, at det ikke altid er let at finde formlen for $f'$, da de har tendens til at være ekstremt komplicerede, især i deep learning, hvor vi beskæftiger os med komplekse funktioner. Så vi skal finde en anden metode, der kan give os minimum af en funktion uden behov for at finde formlen for den afledte $f'$.

Lad os bygge noget intuition

Lad os antage, at vi har en funktion f med den tilsvarende graf:

Graph 1

Lad os starte med et tilfældigt punkt $x_{0}$. Målet er at flytte dette punkt og gøre det tættere og tættere på $x*$, således at $f'($x*$) = 0$. Så problemet kan opdeles i to dele:

  • I hvilken retning skal vi flytte punktet $x$ ? Venstre eller højre ?

  • Hvor meget skal vi flytte den?

Retningen

Lad os bygge noget intuition for at besvare det første spørgsmål. Tag et kig på følgende punkt:

Graph 2

Graph 3

Noter det:

  • når punktet $x_{0}$ er til højre for det optimale punkt $x*$, går dens tangentlinje op.

  • når punktet $x_{0}$ er til højre for det optimale punkt $x*$ går dens tangentlinje ned.

Retningen af ​​en linje bestemmes af tegnet for dens hældning:

  • En linje går op $\implies$ hældningen $a$ er positiv.

  • En linje går ned $\implies$ hældningen $a$ er negativ.

Bemærk at: \

Hældningen af ​​tangentlinjen til en funktion i et bestemt punkt $x_{0}$ er ikke mere end den afledede i det punkt $f'(x_{0})$:

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

Så som svar på spørgsmålet "Hvor skal vi flytte $x_{0}$?":

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ til højre for $x*$ $\implies$ Vi skal flytte $x_{0}$ til venstre.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ til venstre for $x*$ $\implies$ Vi skal flytte $x_{0}$ til højre.

Trinene

Nu til det andet spørgsmål, Hvor meget skal vi flytte $x_{0}$?

Tag et kig på følgende eksempler:

Graph 4

Graph 5

Vi kan konkludere, at:

  • $x_{0}$ er tæt på $x*$ => Tangens hældning er lille => $f'(x_{0})$ er lille.

  • $x_{0}$ er langt fra $x*$ => Tangens hældning er stor => $f'(x_{0})$ er stor.

Ved at besvare begge spørgsmål konkluderede vi, at kun viden om den afledede i punktet $x_{0}$ kan give os en masse indsigt i retningen og afstanden til det optimale punkt $x_{0}$.

Gradientnedstigning

Gradient descent er formuleringen af ​​svarene på de to foregående spørgsmål. Det er en iterativ optimeringsalgoritme, der tilnærmer minimum $x*$ funktion startende fra et tilfældigt startpunkt $x_{0}$. Algoritmen er angivet som følger:

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

hvor:

  • $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ er ikke mere end den afledede af $f$ i punktet $x*{n}$.

  • $lr$ er en positiv konstant, der bestemmer, hvor store trinene bliver.

Læg mærke til det:

  • $x_{n}$ er til højre for $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - positiv $ => $x_{n}$ flytter til venstre.

  • $x_{n}$ er til venstre for $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + positive $ => $x_{n}$ flytter til højre.

  • $x_{n}$ tæt på $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ tæt på $0$ => Lille opdatering til $x_{ n}$.

Quizz

  • Hvornår stopper gradientnedstigning med at iterere:

  • Når $x_{n}$ er lille nok.

  • Når $x_{n}$ er tæt på $x_{0}$ .

  • Når $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX

  • Hvordan vælger vi $x_{0}$:

  • Vi vælger det tilfældigt. XXX

  • Vi tager det i nærheden af ​​$x{n}$.

  • Det kommer an på problemet.

  • Hvorfor har vi brug for gradientnedstigning:

  • Fordi computere ikke er kraftige nok til at beregne derivater.

  • Fordi det er ekstremt svært at finde de afledte formler for deep learning-modeller. XXX

  • Fordi funktioner har mere end ét lokalt minimum.


Career Services background pattern

Karriereservice

Contact Section background image

Lad os holde kontakten

Code Labs Academy © 2024 Alle rettigheder forbeholdes.