Gradient descent, gradient descent-metoden är en numerisk metod för att hitta ett lokalt minimum eller maximum för en funktion genom att flytta längs en gradient , en av de viktigaste numeriska metoderna för modern optimering.
Det används aktivt i beräkningsmatematik, inte bara för direkt lösning av optimeringsproblem (minimering), utan också för problem som kan skrivas om i optimeringsspråket (lösning av olinjära ekvationer, sökning efter jämvikter, inversa problem, etc.). Gradient descent-metoden kan användas för optimeringsproblem i oändligt dimensionella rum, till exempel för numerisk lösning av optimala kontrollproblem.
Särskilt stort intresse för gradientmetoder de senaste åren beror på att gradientnedgångar och deras stokastiska/randomiserade varianter ligger till grund för nästan alla moderna inlärningsalgoritmer som utvecklats inom dataanalys.
Låt objektivfunktionen se ut så här:
.Och optimeringsproblemet ges som följer:
I fallet när det krävs för att hitta det maximala, istället för att använda
Huvudidén med metoden är att gå i riktning mot den brantaste nedstigningen, och denna riktning ges av antigradienten :
där anger gradientens nedstigningshastighet och kan väljas
För en kvadratisk funktion av formen konvergerar den brantaste gradientsökningsmetoden från vilken utgångspunkt som helst i takt med en geometrisk progression (linjärt) med en nämnare som inte överstiger . I det här fallet är följande uppskattningar giltiga:
, , ,där och är de minsta och maximala egenvärdena för matrisen av andraderivator .
Eftersom funktionen på ett litet sätt är nära sin kvadratiska approximation, beror konvergenshastigheten, i närheten av minimipunkten, på förhållandet mellan egenvärdena. Ju större detta förhållande, desto sämre konvergens av metoden.
Låt oss tillämpa gradientmetoden på funktionen . Sedan kommer successiva approximationer att se ut så här:
Detta är ett typiskt exempel på en ravinfunktion. Gradientmetoden "hoppar" från en sluttning av ravinen till en annan och tillbaka, ibland nästan utan att röra sig i rätt riktning, vilket avsevärt saktar ner konvergensen. Ett annat exempel på en testbrunnsfunktion är Rosenbrock-funktionen .
För att minimera funktionen i gradientens riktning används endimensionella optimeringsmetoder , såsom gyllene snittmetoden . Du kan också söka inte efter den bästa punkten i gradientens riktning, utan efter något bättre än den nuvarande.
Gradient descent-metoden är den enklaste att implementera av alla lokala optimeringsmetoder. Den har ganska svaga konvergensförhållanden, men konvergenshastigheten är ganska liten (linjär). Gradientmetodsteget används ofta som en del av andra optimeringsmetoder, som Fletcher-Reeves-metoden .
Gradientnedstigningsmetoden visar sig vara mycket långsam när man rör sig längs en ravin, och när antalet objektiva funktionsvariabler ökar blir detta beteende hos metoden typiskt. För att bekämpa detta fenomen används ravinmetoden , vars kärna är mycket enkel. Efter att ha gjort två steg av gradientnedstigning och efter att ha fått tre poäng, bör det tredje steget tas i riktning mot vektorn som förbinder de första och tredje punkterna, längs botten av ravinen.
För funktioner nära kvadratisk är den konjugerade gradientmetoden effektiv .
Gradient descentmetoden med viss modifiering används i stor utsträckning för att träna perceptronen och är känd i teorin om artificiella neurala nätverk som backpropagation-metoden . När man tränar ett neuralt nätverk av perceptrontyp krävs det att nätverkets viktkoefficienter ändras på ett sådant sätt att medelfelet vid utgången av det neurala nätverket minimeras när en sekvens av träningsinmatningsdata matas till ingången. . Formellt, för att bara ta ett steg enligt metoden för gradientnedstigning (gör endast en ändring i nätverksparametrarna), är det nödvändigt att sekventiellt mata hela uppsättningen träningsdata till nätverksingången, beräkna felet för varje träningsdata objekt och beräkna den nödvändiga korrigeringen av nätverkskoefficienterna (men gör inte denna korrigering), och efter att ha skickat in all data, beräkna summan i korrigeringen av varje nätverkskoefficient (summan av gradienter) och korrigera koefficienterna "med ett steg" . Uppenbarligen, med en stor uppsättning träningsdata kommer algoritmen att arbeta extremt långsamt, därför justeras nätverkskoefficienterna i praktiken ofta efter varje träningselement, där gradientvärdet approximeras av gradienten för kostnadsfunktionen beräknad på endast en träningsmoment. Denna metod kallas stokastisk gradientnedstigning eller operationell gradientnedstigning . Stokastisk gradientnedstigning är en form av stokastisk approximation. Teorin om stokastiska approximationer ger förutsättningar för konvergensen av den stokastiska gradientdescentmetoden.
_ | Optimeringsmetoder|
---|---|
En-dimensionell |
|
Noll ordning | |
Första beställning | |
andra beställning | |
Stokastisk | |
Linjära programmeringsmetoder _ | |
Icke -linjära programmeringsmetoder |