Uvod
Predstavljajte si, da imamo funkcijo in bi radi našli njen minimum. Kaj bi naredil?
Preprosto kajne? Rešiti moramo samo naslednjo enačbo:
Stvar je v tem, da iskanje formule ni vedno enostavno, saj so ponavadi izjemno zapletene, zlasti pri globokem učenju, kjer imamo opravka s kompleksnimi funkcijami. Zato moramo najti drugo metodo, ki nam lahko zagotovi minimum funkcije, ne da bi bilo treba najti formulo odvoda .
Razvijmo nekaj intuicije
Recimo, da imamo funkcijo f z ustreznim grafom:
Začnimo z naključno točko . Cilj je premakniti to točko in jo vse bolj približati , tako da je x*. Torej lahko problem razdelimo na dva dela:
-
V katero smer naj premaknemo točko ? Levo ali desno ?
-
Koliko naj ga premaknemo?
Smer
Razvijmo nekaj intuicije, da bi odgovorili na prvo vprašanje. Oglejte si naslednjo točko:
Upoštevajte to:
-
ko je točka desno od optimalne točke , gre njena tangenta navzgor.
-
ko je točka desno od optimalne točke , gre njena tangenta navzdol.
Smer črte je določena z znakom njenega naklona:
-
Črta gre navzgor , da je naklon pozitiven.
-
Premica gre navzdol , da je naklon negativen.
Upoštevajte, da: \
Naklon tangente funkcije v določeni točki ni večji od odvoda v tej točki :
Kot odgovor na vprašanje "Kam naj premaknemo ?":
-
desno od moramo premakniti v levo.
-
levo od moramo premakniti v desno.
Koraki
Zdaj pa drugo vprašanje, Koliko naj premaknemo ?
Oglejte si naslednje primere:
Lahko sklepamo, da:
-
je blizu => Naklon tangente je majhen => je majhen.
-
je oddaljen od => Naklon tangente je velik => je velik.
Z odgovorom na obe vprašanji smo ugotovili, da nam le poznavanje odvoda v točki lahko da veliko vpogleda v smer in oddaljenost optimalne točke .
Gradientni spust
Gradientni spust je formulacija odgovorov na prejšnji dve vprašanji. To je optimizacijski iterativni algoritem, ki približa najmanj funkcije, začenši z naključno začetno točko . Algoritem je naveden kot sledi:
kje:
-
ni več kot odvod v točki .
-
je pozitivna konstanta, ki določa, kako veliki bodo koraki.
Upoštevajte, da:
-
je desno od => => => se premakne v levo.
-
je levo od => => => se premakne v desno.
-
blizu => blizu => Majhna posodobitev na .
Kviz
-
Kdaj se gradientni spust preneha ponavljati:
-
Ko je dovolj majhen.
-
Ko je blizu .
-
Ko je . XXX
-
Kako izberemo :
-
Izberemo ga naključno. XXX
-
Vzamemo ga v bližini .
-
Odvisno od problema.
-
Zakaj potrebujemo gradientni spust:
-
Ker računalniki niso dovolj zmogljivi za izračun derivatov.
-
Ker je izredno težko najti formule izpeljank modelov globokega učenja. XXX
-
Ker imajo funkcije več kot en lokalni minimum.