Gradient nedstigning

dyp læring
matematikk
gradient nedstigning
Gradient nedstigning cover image

Introduksjon

Tenk deg at vi har en funksjon f(x)f(x) og vi vil gjerne finne dens minimum. Hva ville du gjort ?

Enkelt ikke sant? Vi trenger bare å løse følgende ligning:

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

Saken er at det ikke alltid er lett å finne formelen ff', da de har en tendens til å være ekstremt kompliserte, spesielt i dyp læring hvor vi arbeider med komplekse funksjoner. Så vi må finne en annen metode som kan gi oss minimum av en funksjon uten å måtte finne formelen til den deriverte ff'.

La oss bygge litt intuisjon

La oss anta at vi har en funksjon f med den tilsvarende grafen:

Graph 1

La oss starte med et tilfeldig punkt x0x_{0}. Målet er å flytte dette punktet og gjøre det nærmere og nærmere xx* slik at f(f'(x*)=0) = 0. Så problemet kan deles i to deler:

  • I hvilken retning skal vi flytte punktet xx? Venstre eller høyre ?

  • Hvor mye skal vi flytte den?

Retningen

La oss bygge litt intuisjon for å svare på det første spørsmålet. Ta en titt på følgende punkt:

Graph 2

Graph 3

Noter det:

  • når punktet x0x_{0} er til høyre for det optimale punktet xx* går tangentlinjen opp.

  • når punktet x0x_{0} er til høyre for det optimale punktet xx* går tangentlinjen ned.

Retningen til en linje bestemmes av tegnet på skråningen:

  • En linje går opp     \implies helningen aa er positiv.

  • En linje går ned     \implies helningen aa er negativ.

Merk at: \

Helningen til tangentlinjen til en funksjon i et bestemt punkt x0x_{0} er ikke mer enn den deriverte i det punktet 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})

Så som et svar på spørsmålet "Hvor skal vi flytte x0x_{0}?":

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0} til høyre for xx*     \implies Vi må flytte x0x_{0} til venstre.

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0} til venstre for xx*     \implies Vi må flytte x0x_{0} til høyre.

Stegene

Nå til det andre spørsmålet, Hvor mye bør vi flytte x0x_{0}?

Ta en titt på følgende eksempler:

Graph 4

Graph 5

Vi kan konkludere med at:

  • x0x_{0} er nær xx* => Helningen til tangenten er liten => f(x0)f'(x_{0}) er liten.

  • x0x_{0} er langt fra xx* => Hellingen til tangenten er stor => f(x0)f'(x_{0}) er stor.

Ved å svare på begge spørsmålene konkluderte vi med at kun kunnskapen om den deriverte i punktet x0x_{0} kan gi oss mye innsikt om retningen og avstanden til det optimale punktet x0x_{0}.

Gradientnedstigning

Gradientnedstigning er formuleringen av svarene på de to foregående spørsmålene. Det er en iterativ optimaliseringsalgoritme som tilnærmer minimum xx* funksjon fra et tilfeldig startpunkt x0x_{0}. Algoritmen er angitt som følger:

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

hvor:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}} er ikke mer enn den deriverte av ff i punktet xnx*{n}.

  • lrlr er en positiv konstant som bestemmer hvor store trinnene skal være.

Legg merke til det:

  • xnx_{n} er til høyre for xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xnpositivx_{n+ 1} = x_{n} - positiv => xnx_{n} flyttes til venstre.

  • xnx_{n} er til venstre for xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn+1=xn+positivex*{n +1} = x*{n} + positive => xnx_{n} flyttes til høyre.

  • xnx_{n} nær xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} nær 00 => Liten oppdatering til xnx_{ n}.

Quiz

  • Når slutter gradientnedstigning å iterere:

  • Når xnx_{n} er liten nok.

  • Når xnx_{n} er nær x0x_{0} .

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

– Hvordan velger vi x0x_{0}:

– Vi plukker det tilfeldig. XXX

  • Vi tar det i nærheten av xnx{n}.

– Det kommer an på problemet.

  • Hvorfor trenger vi gradientnedstigning:

– Fordi datamaskiner ikke er kraftige nok til å beregne derivater.

  • Fordi det er ekstremt vanskelig å finne derivatformlene til dyplæringsmodeller. XXX

– Fordi funksjoner har mer enn ett lokalt minimum.


Career Services background pattern

Karrieretjenester

Contact Section background image

La oss holde kontakten

Code Labs Academy © 2025 Alle rettigheter forbeholdes.