Stokastisk gradientnedstigning

Stokastisk gradientnedstigning ( SGD ) är en iterativ metod  för att optimera en objektiv funktion med lämpliga jämnhetsegenskaper ( till exempel differentiabilitet eller subdifferentiering ). Det kan ses som en stokastisk approximation av gradientnedstigningsoptimering , eftersom den ersätter den faktiska gradienten beräknad från hela datasetet med en uppskattning beräknad från en slumpmässigt vald delmängd av data [1] . Detta minskar de involverade beräkningsresurserna och hjälper till att uppnå högre iterationshastigheter i utbyte mot lägre konvergenshastigheter [2] . En särskilt stor effekt uppnås i applikationer relaterade till bearbetning av big data .

Även om grundidén för stokastisk approximation går tillbaka till Robbins-Monroe-algoritmen på 1950-talet [3] har stokastisk gradientnedstigning blivit en viktig optimeringsteknik inom maskininlärning [1] .

Bakgrund

Både statistisk uppskattning och maskininlärning beaktar problemet med att minimera en objektiv funktion som har formen av en summa

där parameterminimeringen ska uppskattas . _ Varje summaterm är vanligtvis associerad med den e observationen i datasetet som används för träning.

I klassisk statistik uppstår summaminimeringsproblem i minsta kvadratmetoden och maximum likelihood-metoden (för oberoende observationer). Den allmänna klassen av estimatorer som uppstår som minimering av summor kallas M-estimatorer . Men redan i slutet av 1900-talet märktes att kravet på ens lokal minimering är för restriktivt för vissa problem med maximum likelihood-metoden [4] . Därför överväger moderna statistiska teoretiker ofta sannolikhetsfunktionens stationära punkter (eller nollor i dess derivata, poängfunktionen och andra metoder för att uppskatta ekvationer ).

Summinimeringsproblemet uppstår också vid minimering av den empiriska risken . I det här fallet är värdet av förlustfunktionen i det -th exemplet, och är den empiriska risken.

När den används för att minimera ovanstående funktion, utför standardmetoden (eller "batch") gradientnedstigning följande iterationer:

var är stegstorleken, kallad inlärningshastigheten i maskininlärning.

I många fall har summerbara funktioner en enkel form, vilket möjliggör lågkostnadsberäkningar för summan av funktioner och gradienten av summan. Till exempel, i statistik, tillåter användningen av enparameters exponentiella familjer ekonomisk beräkning av funktionen och gradienten.

Men i andra fall kan beräkning av gradienten för summan kräva dyra gradientberäkningar för alla summerbara funktioner. På en stor träningsuppsättning, i avsaknad av enkla formler, blir det mycket dyrt att beräkna summorna av gradienterna, eftersom beräkningen av gradienten för summan kräver att man beräknar gradienterna för de individuella termerna av summan. För att minska mängden beräkningar väljer stokastisk gradientnedstigning en delmängd av summerbara funktioner vid varje iteration av algoritmen. Detta tillvägagångssätt är särskilt effektivt för stora maskininlärningsproblem [5] .

Iterativ metod

I stokastisk ("online") gradientnedstigning approximeras den sanna gradienten av gradienten för ett träningsexempel

Genom att köra igenom träningsuppsättningen utför algoritmen ovanstående omräkning för varje träningsexempel. Det kan ta flera pass över träningsdatauppsättningen för att uppnå konvergens av algoritmen. Före varje nytt pass blandas data i uppsättningen för att eliminera möjligheten att loopa algoritmen. Typiska implementeringar kan använda adaptiv inlärningshastighet för förbättra konvergensen.

I pseudokod kan stokastisk gradientnedstigning representeras enligt följande:

En avvägning mellan att beräkna den sanna gradienten och gradienten över ett enskilt träningsexempel kan vara att beräkna gradienten över mer än ett träningsexempel, kallat en "minibatch", vid varje steg. Detta kan vara betydligt bättre än den beskrivna "sanna" stokastiska gradientnedstigningen, eftersom koden kan använda vektorformbibliotek istället för separata beräkningar vid varje steg. Det kan också resultera i jämnare konvergens eftersom gradienten som beräknas vid varje steg beräknas i medeltal över fler träningsexempel.

Konvergensen av stokastisk gradientnedstigning har analyserats med hjälp av teorierna för konvex minimering och stokastisk approximation . I en förenklad form kan resultatet representeras enligt följande: när inlärningshastigheten minskar i en lämplig takt, givet relativt svaga antaganden, konvergerar stokastisk gradientnedstigning nästan säkert till det globala minimumet om den objektiva funktionen är konvex eller pseudokonvex , annars konvergerar metoden nästan säkert till lokalt minimum [6] [7] . I själva verket är detta en följd av Robbins-Sigmund-satsen [8] .

Exempel

Anta att vi vill approximera en linje genom en träningsuppsättning med många observationer och motsvarande svar med hjälp av minsta kvadratmetoden . Den objektiva funktionen för minimering kommer att vara

Den sista raden i ovanstående pseudokod för uppgiften blir

Observera att i varje iteration (som också kallas omsampling) beräknas endast gradienten vid en punkt istället för att beräknas över uppsättningen av alla sampel.

Den viktigaste skillnaden jämfört med standard (batch) gradientnedstigning är att endast en del av data från hela uppsättningen används vid varje steg, och denna del väljs slumpmässigt vid varje steg.

Anmärkningsvärda applikationer

Stokastisk gradientnedstigning är en populär algoritm för att träna ett brett spektrum av modeller inom maskininlärning , i synnerhet i (linjära) stödvektormaskiner , i logistisk regression (se till exempel Vowpal Wabbit ) och i grafiska probabilistiska modeller [9] . När den kombineras med backpropagation- algoritmen är den de facto standardalgoritmen för träning av artificiella neurala nätverk [10] . Dess tillämpning har också setts i det geofysiska samhället, särskilt för Full Waveform Inversion (FWI) applikationer [11] .

Stokastisk gradientnedstigning konkurrerar med L-BFGS -algoritmen , som också används flitigt. Stokastisk gradientnedstigning har använts sedan åtminstone 1960 för att träna linjära regressionsmodeller under namnet ADALINE [12] .

En annan stokastisk gradientnedstigningsalgoritm är det adaptiva filtret för minsta medelkvadrat [ ( LMS) . 

Sorter och modifieringar

Det finns många modifieringar av den stokastiska gradientnedstigningsalgoritmen. I synnerhet inom maskininlärning är problemet valet av inlärningshastighet (stegstorlek): med ett stort steg kan algoritmen divergera, och med ett litet steg är konvergensen för långsam. För att lösa detta problem kan du använda inlärningshastighetsschemat , där inlärningshastigheten minskar när iterationstalet ökar . Samtidigt, vid de första iterationerna, ändras parametrarnas värden avsevärt, och vid senare iterationer förfinas de bara. Sådana scheman har varit kända sedan McQueens arbete med k -means clustering [ 13] . Några praktiska råd om stegval i vissa SGD-varianter ges i avsnitt 4.4, 6.6 och 7.5 i Spall (2003) [14] .

Implicita ändringar (ISGD)

Som nämnts tidigare är klassisk stokastisk gradientnedstigning vanligtvis känslig för inlärningshastighet . Snabb konvergens kräver en snabb hög inlärningshastighet, men detta kan orsaka numerisk instabilitet . Problemet kan huvudsakligen lösas [15] genom att beakta den implicita förändringen i , när den stokastiska gradienten beräknas om vid nästa iteration, och inte vid den nuvarande.

Denna jämlikhet är implicit eftersom den förekommer på båda sidor om jämlikheten. Detta är den stokastiska formen av den proximala gradientmetoden , eftersom omräkningen kan uttryckas som

Som ett exempel, betrakta minsta kvadratmetoden med egenskaper och observationer . Vi vill bestämma:

där betyder den skalära produkten .

Observera att den kan ha "1" som första element. Klassisk stokastisk gradientnedstigning fungerar så här

där är jämnt fördelat mellan 1 och . Även om detta förfarande teoretiskt konvergerar under relativt milda antaganden, kan förfarandet i praktiken vara mycket instabilt. I synnerhet, om de ställs in felaktigt, har de stora absoluta egenvärden med hög sannolikhet, och proceduren kan skilja sig åt i flera iterationer. Däremot kan implicit stokastisk gradientnedstigning ( ISGD ) uttryckas som  

Proceduren kommer att förbli numeriskt stabil för nästan alla , eftersom inlärningshastigheten nu är normaliserad. En sådan jämförelse mellan klassisk och explicit stokastisk gradientnedstigning i minsta kvadratmetoden är mycket lik jämförelsen mellan minsta medelkvadratfiltret ( engelska minsta medelkvadrat , LMS) och det normaliserade minsta kvadratfiltret ( engelska normalized minsta medelkvadratfilter , NLMs).   

Även om den analytiska lösningen för ISGD endast är möjlig i minsta kvadratmetoden, kan proceduren effektivt implementeras i ett brett spektrum av modeller. Antag i synnerhet att beror på endast som en linjär kombination av egenskaperna hos , så att vi kan skriva , där en verklig funktion kan bero på , men inte direkt, endast genom . Minsta kvadratmetoden uppfyller detta villkor, och därför uppfyller logistisk regression och de flesta generaliserade linjära modeller detta villkor . Till exempel, i minsta kvadrater , och i logistisk regression , var är den logistiska funktionen . I Poisson regression , och så vidare.

Under sådana förhållanden är ISGD lätt att implementera enligt följande. Låt , var är en siffra. Då motsvarar ISGD

Skalfaktorn kan hittas genom att halvera , för i de flesta modellerna, som de ovan generaliserade linjära modellerna, minskar funktionen , och då blir sökgränserna för .

Impuls

Nyare utveckling inkluderar momentummetoden , som dök upp i Rumelhart , Hinton och Williams papper om backpropagation learning [16] . Momentum stokastisk gradientnedstigning kommer ihåg förändringen vid varje iteration och bestämmer nästa förändring som en linjär kombination av gradienten och den föregående förändringen [17] [18] :

som leder till

där parametern , som minimerar , ska uppskattas , och är stegstorleken (kallas ibland inlärningshastigheten vid maskininlärning).

Namnet "momentum" härstammar från momentum i fysiken - viktvektorn , förstås som en partikels väg längs parameterrymden [16] , upplever acceleration från förlustfunktionens gradient (" kraft "). Till skillnad från klassisk stokastisk gradientnedstigning försöker metoden hålla framstegen i samma riktning genom att förhindra fluktuationer. Momentum har använts framgångsrikt av datavetare för att träna artificiella neurala nätverk i flera decennier [19] .

Genomsnittlig

Average Stochastic Gradient Descent , utvecklad oberoende av Ruppert och Polyak i slutet av 1980-talet, är en konventionell stokastisk gradientnedstigning som registrerar medelvärdet av en vektor av parametrar. Det vill säga, omräkningen är densamma som i den vanliga stokastiska gradientnedstigningsmetoden, men algoritmen spårar också [20]

.

När optimeringen är klar tar vektorn av medelparametrar platsen för w .

AdaGrad

AdaGrad (adaptive gradient algorithm ), publicerad 2011 [21] [22] , är en modifiering av den stokastiska gradientnedstigningsalgoritmen med en separat  inlärningshastighet för varje parameter . Informellt ökar detta inlärningshastigheten för parametrar med gles data och minskar inlärningshastigheten för parametrar med mindre gles data. Denna strategi ökar konvergenshastigheten jämfört med standardmetoden för stokastisk gradientnedstigning under förhållanden där data är sparsam och motsvarande parametrar är mer informativa. Exempel på sådana tillämpningar är naturlig språkbehandling och mönsterigenkänning [21] . Algoritmen har en basinlärningshastighet men den multipliceras med elementen i vektorn som är diagonalen för den yttre produktmatrisen

där , gradient per iteration . Diagonalen ges av

.

Denna vektor uppdateras efter varje iteration. Konverteringsformel

[a]

eller skriva som omräkning med parametrar,

Varje element ger en multiplikator för inlärningshastighet som tillämpas på en parameter . Eftersom nämnaren i denna faktor, , är ℓ2- normen för den föregående derivatan, dämpas stora parameterändringar, medan parametrar som tar emot små förändringar får högre inlärningshastigheter [19] .

Även om algoritmen utvecklades för konvexa problem , har AdaGrad framgångsrikt använts för icke-konvex optimering [23] .

RMSProp

RMSProp (från Root Mean Square Propagation ) är en  metod där inlärningshastigheten justeras för varje parameter. Tanken är att dela inlärningshastigheten för vikterna med de glidande medelvärdena för de senaste gradienterna för den vikten [24] . Så det första glidande medelvärdet beräknas i termer av rms

var, är den glömska faktorn.

Alternativen uppdateras som

RMSProp har visat bra anpassning av inlärningshastigheten över olika applikationer. RMSProp kan ses som en generalisering av Rprop . Metoden kan fungera med minipaket, inte bara fullpaket [25] .

Adam

Adam [26] (förkortning av Adaptive Moment Estimation ) är en uppdatering av RMSProp- optimeraren .  Denna optimeringsalgoritm använder glidande medelvärden för både gradienterna och de andra momenten av gradienterna. Om parametrarna är givna och förlustfunktionen , där återspeglar indexet för den aktuella iterationen (rapporten börjar med ), ges omräkningen av parametern av Adam-algoritmen av formlerna

där är en liten additiv som används för att förhindra division med 0, och och är glömskoefficienterna för gradienterna respektive de andra momenten av gradienterna. Kvadrat och kvadratrot beräknas element för element.

Naturlig gradientnedstigning och kSGD

Kalmanbaserad Stokastisk Gradient Descent ( kSGD  ) [27] är en online- och offlinealgoritm för inlärning av parametrar för statistiska problem för quasi-likelihood- modeller , som inkluderar linjära modeller , icke-linjära modeller , generaliserade linjära modeller och neurala nätverk med rms-förluster som specialfall. För onlineinlärningsproblem är kSGD ett specialfall av Kalman-filtret för linjära regressionsproblem, ett specialfall av det utökade Kalman-filtret för olinjära regressionsproblem, och kan betraktas som en inkrementell Gauss-Newton- metod . Dessutom, på grund av förhållandet mellan kSGD och Kalman-filtret och förhållandet mellan naturlig gradientnedstigning [28] och Kalman-filtret [29] är kSGD en stor förbättring av den populära metoden för naturlig gradientnedstigning.

Fördelar med kSGD framför andra metoder:

(1) okänslig för antalet tillstånd av problemet, [b] (2) har ett robust urval av hyperparametrar, (3) har ett stoppvillkor.

Nackdelen med kSGD är att algoritmen kräver lagring av en tät kovariansmatris mellan iterationer, och vid varje iteration måste produkten av vektorn och matrisen hittas.

För att beskriva algoritmen antar vi att funktionen , där , definieras genom att använda så att

var är medelvärdesfunktionen (det vill säga det förväntade värdet av ), och är variansfunktionen (det vill säga variansen för ). Därefter ges omräkningen av parametern och omräkningen av den kovarianta matrisen av följande uttryck

var finns hyperparametrar. Omräkning kan göra att den kovarianta matrisen blir odefinierad, vilket kan undvikas genom att multiplicera matris med matris. kan vara vilken positiv-definitiv symmetrisk matris som helst, men identitetsmatrisen tas vanligtvis. Som noterats av Patel [27] , för alla problem, förutom linjär regression, krävs upprepade körningar för att säkerställa konvergensen av algoritmen, men inga teoretiska eller implementeringsdetaljer ges. En närbesläktad offline multi-batch-metod för icke-linjär regression, analyserad av Bertsekas [30] , använde glömska faktorn vid omräkning av den kovarianta matrisen för att bevisa konvergens.

Andra ordningens metoder

Det är känt att den stokastiska analogen av den standardiserade (deterministiska) Newton-Raphson-algoritmen (”andra ordningens”-metoden) ger en asymptotiskt optimal eller nästan optimal form av iterativ optimering under förhållanden av stokastisk approximation. En metod som använder den direkta beräkningen av de hessiska matriserna för summatermerna i den empiriska riskfunktionen utvecklades av Bird, Hansen, Nosedal och Singer [31] . En direkt bestämning av de nödvändiga hessiska matriserna för optimering kanske inte är möjlig i praktiken. Praktiska och teoretiska metoder för en andra ordningens version av SGD - algoritmen som inte kräver direkt hessisk information har getts av Spall et al . ). Dessa metoder, även om de inte direkt kräver information om hessian, är baserade antingen på värdena för summatermerna i den empiriska riskfunktionen som anges ovan, eller på värdena för gradienterna för summatermerna (dvs SGD-ingång) . I synnerhet är andra ordningens optimalitet asymptotiskt uppnåbar utan att direkt beräkna de hessiska matriserna för termerna för summan i den empiriska riskfunktionen.

Kommentarer

  1. är den elementära produkten av .
  2. För ett linjärt regressionsproblem är kSGD:s objektiva funktionsvarians (d.v.s. totalt fel och varians) per iteration lika med sannolikhet som tenderar till 1 med en hastighet som beror på , där är variansen för residualerna. Dessutom, för ett visst val av , kan det visas att kSGD:s iterationsvarians av målfunktionen är lika med sannolikhet som tenderar till 1 med en hastighet som beror på , där är den optimala parametern.

Se även

Anteckningar

  1. 12 Taddy , 2019 , sid. 303–307.
  2. Bottou, Bousquet, 2012 , sid. 351–368.
  3. Mei, 2018 , sid. E7665–E7671.
  4. Ferguson, 1982 , sid. 831–834.
  5. Bottou, Bousquet, 2008 , sid. 161–168.
  6. Bottou, 1998 .
  7. Kiwiel, 2001 , sid. 1–25.
  8. Robbins, Siegmund, 1971 .
  9. Finkel, Kleeman, Manning, 2008 .
  10. LeCun et al., 2012 , sid. 9-48.
  11. Diaz, Guitton, 2011 , sid. 2804-2808.
  12. Avi Pfeffer. CS181 Föreläsning 5 - Perceptroner (Harvard University) .  (inte tillgänglig länk)
  13. Darken, Moody, 1990 .
  14. Spall, 2003 .
  15. Toulis, Airoldi, 2017 , sid. 1694–1727
  16. 1 2 Rumelhart, Hinton, Williams, 1986 , sid. 533–536.
  17. Sutskever, Martens, Dahl, Hinton, 2013 , sid. 1139–1147.
  18. Sutskever, Ilya (2013). Träning av återkommande neurala nätverk (PDF) (Ph.D.). University of Toronto. Arkiverad (PDF) från originalet 2020-02-28 . Hämtad 2020-03-01 . Utfasad parameter används |deadlink=( hjälp )
  19. 1 2 Matthew D. Zeiler (2012), ADADELTA: An adaptive learning rate method, arΧiv : 1212.5701 [cs.LG]. 
  20. Polyak, Juditsky, 1992 , sid. 838–855.
  21. 1 2 Duchi, Hazan, Singer, 2011 , sid. 2121–2159.
  22. Joseph Perla (2014). Anteckningar om AdaGrad (inte tillgänglig länk) . Hämtad 1 mars 2020. Arkiverad från originalet 30 mars 2015. 
  23. Gupta, Bengio, Weston, 2014 , sid. 1461–1492
  24. Tieleman, Tijmen och Hinton, Geoffrey (2012). Föreläsning 6.5-rmsprop: Dela gradienten med ett löpande medelvärde av dess senaste magnitud. KURS: Neurala nätverk för maskininlärning
  25. Hinton, Geoffrey Översikt över mini-batch-gradientnedstigning (länk ej tillgänglig) 27–29. Hämtad 27 september 2016. Arkiverad från originalet 23 november 2016. 
  26. Kingma Diederik, Jimmy Ba (2014), Adam: A method for stochastic optimization, arΧiv : 1412.6980 [cs.LG]. 
  27. 12 Patel , 2016 , sid. 2620–2648.
  28. Cichocki, Chen, Amari, 1997 , sid. 1345–1351.
  29. Ollivier Yann (2017), Online Natural Gradient as a Kalman Filter, arΧiv : 1703.00209 [stat.ML]. 
  30. Bertsekas, 1996 , sid. 807–822.
  31. Byrd, Hansen, Nocedal, Singer, 2016 , sid. 1008–1031.
  32. Spall, 2000 , sid. 1839−1853.
  33. Spall, 2009 , sid. 1216–1229.
  34. Bhatnagar, Prasad, Prashanth, 2013 .
  35. Ruppert, 1985 , sid. 236–245.

Litteratur

Läsning för vidare läsning

Länkar