Introduksjon
Tenk deg at vi har en funksjon og vi vil gjerne finne dens minimum. Hva ville du gjort ?
Enkelt ikke sant? Vi trenger bare å løse følgende ligning:
Saken er at det ikke alltid er lett å finne formelen , 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 .
La oss bygge litt intuisjon
La oss anta at vi har en funksjon f med den tilsvarende grafen:
La oss starte med et tilfeldig punkt . Målet er å flytte dette punktet og gjøre det nærmere og nærmere slik at x*. Så problemet kan deles i to deler:
-
I hvilken retning skal vi flytte punktet ? 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:
Noter det:
-
når punktet er til høyre for det optimale punktet går tangentlinjen opp.
-
når punktet er til høyre for det optimale punktet går tangentlinjen ned.
Retningen til en linje bestemmes av tegnet på skråningen:
-
En linje går opp helningen er positiv.
-
En linje går ned helningen er negativ.
Merk at: \
Helningen til tangentlinjen til en funksjon i et bestemt punkt er ikke mer enn den deriverte i det punktet :
Så som et svar på spørsmålet "Hvor skal vi flytte ?":
-
til høyre for Vi må flytte til venstre.
-
til venstre for Vi må flytte til høyre.
Stegene
Nå til det andre spørsmålet, Hvor mye bør vi flytte ?
Ta en titt på følgende eksempler:
Vi kan konkludere med at:
-
er nær => Helningen til tangenten er liten => er liten.
-
er langt fra => Hellingen til tangenten er stor => er stor.
Ved å svare på begge spørsmålene konkluderte vi med at kun kunnskapen om den deriverte i punktet kan gi oss mye innsikt om retningen og avstanden til det optimale punktet .
Gradientnedstigning
Gradientnedstigning er formuleringen av svarene på de to foregående spørsmålene. Det er en iterativ optimaliseringsalgoritme som tilnærmer minimum funksjon fra et tilfeldig startpunkt . Algoritmen er angitt som følger:
hvor:
-
er ikke mer enn den deriverte av i punktet .
-
er en positiv konstant som bestemmer hvor store trinnene skal være.
Legg merke til det:
-
er til høyre for => => => flyttes til venstre.
-
er til venstre for => => => flyttes til høyre.
-
nær => nær => Liten oppdatering til .
Quiz
-
Når slutter gradientnedstigning å iterere:
-
Når er liten nok.
-
Når er nær .
-
Når . XXX
– Hvordan velger vi :
– Vi plukker det tilfeldig. XXX
- Vi tar det i nærheten av .
– 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.