Gradient descent, gradient descent-metoden er en numerisk metode til at finde et lokalt minimum eller maksimum for en funktion ved at bevæge sig langs en gradient , en af de vigtigste numeriske metoder til moderne optimering.
Det bruges aktivt i beregningsmatematik ikke kun til den direkte løsning af optimerings- (minimerings-) problemer, men også til problemer, der kan omskrives i optimeringssproget (løsning af ikke-lineære ligninger, søgning efter ligevægte, inverse problemer osv.). Gradient descent-metoden kan bruges til optimeringsproblemer i uendelig-dimensionelle rum, for eksempel til den numeriske løsning af optimale kontrolproblemer.
Særlig stor interesse for gradientmetoder i de senere år skyldes, at gradientnedstigninger og deres stokastiske/randomiserede varianter ligger til grund for næsten alle moderne læringsalgoritmer udviklet inden for dataanalyse.
Lad den objektive funktion se ud som:
.Og optimeringsproblemet er givet som følger:
I det tilfælde, hvor det er nødvendigt at finde det maksimale, i stedet for at bruge
Hovedideen med metoden er at gå i retning af den stejleste nedstigning, og denne retning er givet af anti -gradienten :
hvor angiver gradientens nedstigningshastighed og kan vælges
For en kvadratisk funktion af formen konvergerer den stejleste gradientsøgningsmetode fra et hvilket som helst udgangspunkt med hastigheden af en geometrisk progression (lineært) med en nævner, der ikke overstiger . I dette tilfælde er følgende estimater gyldige:
, , ,hvor og er de minimale og maksimale egenværdier af matrixen af anden afledede .
Da funktionen således på en lille måde er tæt på dens kvadratiske tilnærmelse, afhænger konvergenshastigheden i nærheden af minimumspunktet af forholdet mellem egenværdierne. Jo større dette forhold er, jo dårligere er konvergensen af metoden.
Lad os anvende gradientmetoden på funktionen . Derefter vil successive tilnærmelser se sådan ud:
Dette er et typisk eksempel på en kløftfunktion. Gradientmetoden "hopper" fra en skråning af kløften til en anden og tilbage, nogle gange næsten uden at bevæge sig i den rigtige retning, hvilket betydeligt bremser konvergensen. Et andet eksempel på en testbrøndfunktion er Rosenbrock-funktionen .
For at minimere funktionen i retning af gradienten, bruges endimensionelle optimeringsmetoder , såsom det gyldne snit metoden . Du kan også søge ikke efter det bedste punkt i retningen af gradienten, men efter noget bedre end det nuværende.
Gradient descent-metoden er den nemmeste at implementere af alle lokale optimeringsmetoder. Den har ret svage konvergensbetingelser, men konvergenshastigheden er ret lille (lineær). Gradientmetodetrinnet bruges ofte som en del af andre optimeringsmetoder, såsom Fletcher-Reeves-metoden .
Gradientnedstigningsmetoden viser sig at være meget langsom, når man bevæger sig langs en kløft, og efterhånden som antallet af objektive funktionsvariable stiger, bliver denne opførsel af metoden typisk. For at bekæmpe dette fænomen bruges ravinemetoden , hvis essens er meget enkel. Efter at have lavet to trin med gradientnedstigning og efter at have modtaget tre punkter, skal det tredje trin tages i retning af vektoren, der forbinder det første og tredje punkt langs bunden af kløften.
For funktioner tæt på kvadratisk er den konjugerede gradientmetode effektiv .
Gradient-nedstigningsmetoden med en vis modifikation er meget brugt til at træne perceptronen og er kendt i teorien om kunstige neurale netværk som backpropagation-metoden . Når man træner et neuralt netværk af perceptrontypen, er det nødvendigt at ændre netværkets vægtkoefficienter på en sådan måde, at gennemsnitsfejlen ved udgangen af det neurale netværk minimeres, når en sekvens af træningsinputdata føres til inputtet. . Formelt, for kun at tage et trin i henhold til gradient descent-metoden (foretag kun én ændring i netværksparametrene), er det nødvendigt at sekventielt føre hele sættet af træningsdata til netværksinputtet, beregne fejlen for hver træningsdata objekt og beregne den nødvendige korrektion af netværkskoefficienterne (men gør ikke denne korrektion), og efter at have indsendt alle data, beregne summen i korrektionen af hver netværkskoefficient (summen af gradienter) og korrigere koefficienterne "med ét trin" . Det er klart, at med et stort sæt træningsdata vil algoritmen arbejde ekstremt langsomt, derfor justeres netværkskoefficienterne i praksis ofte efter hvert træningselement, hvor gradientværdien tilnærmes ved gradienten af omkostningsfunktionen beregnet på kun én træningselement. Denne metode kaldes stokastisk gradientnedstigning eller operationel gradientnedstigning . Stokastisk gradientnedstigning er en form for stokastisk tilnærmelse. Teorien om stokastiske tilnærmelser giver betingelser for konvergensen af den stokastiske gradientnedstigningsmetode.
Optimeringsmetoder _ | |
---|---|
Endimensionel |
|
Nul orden | |
Første ordre | |
anden orden | |
Stokastisk | |
Lineære programmeringsmetoder _ | |
Ikke-lineære programmeringsmetoder |