Kuidas erineb stokastiline gradientlangus klassikalisest?
sobes.tech AI
Vastus AI-lt
Stohastiline gradientlangus (SGD) erineb klassikalisest (tavalistest) gradientlangustest selle poolest, kuidas see uuendab mudeli parameetreid:
-
Klassikaline gradientlangus arvutab kaotuse funktsiooni gradienti kogu treeningandmekogumi põhjal ja seejärel uuendab parameetreid. See tagab täpse langusjoone, kuid võib olla väga aeglane suurte andmekogumite puhul.
-
Stohastiline gradientlangus uuendab parameetreid, lähtudes gradientist, mis arvutatakse juhuslikult valitud näite (või väikese mini-partii) põhjal treeningandmekogumist. See muudab uuendused müra täis ja vähem täpseks, kuid kiirendab oluliselt õppimist ja aitab välja tulla lokaalsetest miinimumidest.
Näide:
# Klassikaline gradientlangus
for epoch in range(epochs):
grad = compute_gradient(full_dataset)
weights -= learning_rate * grad
# Stohastiline gradientlangus
for epoch in range(epochs):
for sample in dataset:
grad = compute_gradient(sample)
weights -= learning_rate * grad
Seega on SGD kiirem ja sobivam suuremate andmekogumite jaoks, kuid nõuab parameetrite häälestamist ja võib kõigutada ümber minimaalsele.