Sobes.tech
Middle+

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.