Gradiënt afkoms is die gewildste optimaliseringstegniek in masjienleer (ML) modellering. Die algoritme verminder die fout tussen die voorspelde waardes en die grondwaarheid. Aangesien die tegniek elke datapunt in ag neem om die fout te verstaan en te minimaliseer, hang die prestasie daarvan af van die opleidingsdatagrootte. Tegnieke soos Stogastiese Gradient Descent (SGD) is ontwerp om die berekeningsprestasie te verbeter, maar ten koste van konvergensie-akkuraatheid.
Stogastiese Gemiddelde Gradiënt balanseer die klassieke benadering, bekend as Full Gradient Descent en SGD, en bied beide voordele. Maar voordat ons die algoritme kan gebruik, moet ons eers die betekenis daarvan vir modeloptimering verstaan.
Elke ML-algoritme het 'n gepaardgaande verliesfunksie wat daarop gemik is om die model se werkverrigting te minimaliseer of te verbeter. Wiskundig kan die verlies gedefinieer word as:
Dit is bloot die verskil tussen die werklike en die voorspelde uitset, en die vermindering van hierdie verskil beteken dat ons model nader aan die grondwaarheidswaardes kom.
Die minimaliseringsalgoritme gebruik gradiënt-afkoms om die verliesfunksie te deurkruis en 'n globale minimum te vind. Elke deurkruisstap behels die opdatering van die algoritme se gewigte om die uitset te optimaliseer.
Die konvensionele gradiënt-afkomsalgoritme gebruik die gemiddelde van al die gradiënte wat oor die hele datastel bereken is. Die lewensiklus van 'n enkele opleidingsvoorbeeld lyk soos volg:
Die gewigopdateringsvergelyking lyk soos volg:
Waar W
die modelgewigte verteenwoordig en dJ/dW
die afgeleide is van die verliesfunksie met betrekking tot die modelgewig. Die konvensionele metode het 'n hoë konvergensietempo, maar word rekenaarmatig duur wanneer dit met groot datastelle wat miljoene datapunte bestaan, hanteer.
Die SGD-metodologie bly dieselfde as gewone GD, maar in plaas daarvan om die hele datastel te gebruik om die gradiënte te bereken, gebruik dit 'n klein bondel van die insette. Die metode is baie meer doeltreffend, maar kan te veel om die globale minima spring, aangesien elke iterasie slegs 'n deel van die data vir leer gebruik.
Die Stogastiese Gemiddelde Gradiënt (SAG) benadering is ingestel as 'n middeweg tussen GD en SGD. Dit kies 'n ewekansige datapunt en werk die waarde daarvan op gebaseer op die gradiënt op daardie punt en 'n geweegde gemiddelde van die vorige gradiënte wat vir daardie spesifieke datapunt gestoor is.
Soortgelyk aan SGD, modelleer SAG elke probleem as 'n eindige som van konvekse, differensieerbare funksies. By enige gegewe iterasie gebruik dit die huidige gradiënte en die gemiddelde van vorige gradiënte vir gewigsopdatering. Die vergelyking neem die volgende vorm aan:
Tussen die twee gewilde algoritmes, volle gradiënt (FG) en stogastiese gradiënt afkoms (SGD), het die FG-algoritme 'n beter konvergensiekoers aangesien dit die hele datastel tydens elke iterasie vir berekening gebruik.
Alhoewel SAG 'n struktuur soortgelyk aan SGD het, is sy konvergensiekoers vergelykbaar met en soms beter as die volle gradiëntbenadering. Tabel 1 hieronder som die resultate van die eksperimente van
Ten spyte van sy ongelooflike werkverrigting, is verskeie wysigings aan die oorspronklike SGD-algoritme voorgestel om werkverrigting te verbeter.
Gradiënt afkoms is 'n gewilde optimalisering wat gebruik word om globale minima van die verskafde doelfunksies op te spoor. Die algoritme gebruik die gradiënt van die doelfunksie om die funksiehelling te deurkruis totdat dit die laagste punt bereik.
Full Gradient Descent (FG) en Stogastiese Gradient Descent (SGD) is twee gewilde variasies van die algoritme. FG gebruik die hele datastel tydens elke iterasie en bied 'n hoë konvergensiekoers teen 'n hoë berekeningskoste. By elke iterasie gebruik SGD 'n subset van data om die algoritme uit te voer. Dit is baie meer doeltreffend, maar met 'n onsekere konvergensie.
Stogastiese gemiddelde gradiënt (SAG) is nog 'n variasie wat die voordele van beide vorige algoritmes bied. Dit gebruik die gemiddelde van vorige gradiënte en 'n subset van die datastel om 'n hoë konvergensiekoers met lae berekening te verskaf. Die algoritme kan verder gewysig word om die doeltreffendheid daarvan te verbeter deur vektorisering en mini-batches te gebruik.