Możliwość zastosowania okresowego lub stochastycznego spadku gradientu naprawdę zależy od oczekiwanego rozmaitości błędów.
Opadanie gradientu wsadowego oblicza gradient na podstawie całego zestawu danych. Jest to idealne rozwiązanie dla wypukłych lub względnie gładkich rozmaitości błędów. W tym przypadku przechodzimy nieco bezpośrednio w kierunku optymalnego rozwiązania, lokalnego lub globalnego. Dodatkowo, opadanie gradientu partii, przy wyższym współczynniku uczenia się, ostatecznie znajdzie minimum w swoim basenie z atrakcją.
Stochastyczne pochylenie gradientu (SGD) oblicza gradient za pomocą pojedynczej próbki. Większość aplikacji SGD faktycznie korzysta z minibatchu kilku próbek, z powodów, które zostaną wyjaśnione nieco później. SGD działa dobrze (chyba nie dobrze, ale lepiej niż opadanie gradientu wsadowego) dla rozmaitości błędów, które mają wiele lokalnych maksimów / minimów. W tym przypadku nieco głośniejszy gradient obliczony przy użyciu zmniejszonej liczby próbek ma tendencję do szarpnięcia modelu z lokalnych minimów do regionu, który, miejmy nadzieję, jest bardziej optymalny. Pojedyncze próbki są naprawdę hałaśliwe, podczas gdy minibatche mają tendencję do zmniejszania hałasu. W ten sposób ilość szarpnięcia jest zmniejszona podczas korzystania z minibatch. Utrzymuje się dobrą równowagę, gdy rozmiar minibatchu jest wystarczająco mały, aby uniknąć niektórych złych lokalnych minimów, ale wystarczająco duży, aby nie Unikaj globalnych minimów lub lokalnych minimów o lepszych parametrach. (Nawiasem mówiąc, zakłada to, że najlepsze minima mają większy i głębszy basen przyciągania i dlatego łatwiej do nich wpaść).
Jedną z zalet SGD jest to, że jest obliczeniowo dużo szybszy. Dużych zestawów danych często nie można przechowywać w pamięci RAM, co sprawia, że wektoryzacja jest znacznie mniej wydajna. Raczej każda próbka lub partia próbek musi zostać załadowana, poddana obróbce, przechowywać wyniki itd. Z drugiej strony Minibatch SGD jest zwykle celowo wystarczająco mały, aby był wykonalny obliczeniowo.
Zwykle tę przewagę obliczeniową wykorzystuje się, wykonując znacznie więcej iteracji SGD, wykonując znacznie więcej kroków niż konwencjonalne opadanie gradientem wsadowym. Zwykle powoduje to, że model jest bardzo zbliżony do modelu, który można znaleźć poprzez opadanie gradientu partii lub lepiej.
Sposób, w jaki lubię myśleć o tym, jak działa SGD, polega na wyobrażeniu sobie, że mam jeden punkt reprezentujący mój rozkład wejściowy. Mój model próbuje nauczyć się tego rozkładu wejściowego. Wokół rozkładu wejściowego jest zacieniony obszar, który reprezentuje rozkłady wejściowe wszystkich możliwych minibatchów, które mogłem próbkować. Zazwyczaj jest to słuszne założenie, że rozkłady wejściowe minibatch są zbliżone do prawdziwego rozkładu wejściowego. Opadanie gradientu wsadowego na wszystkich etapach prowadzi najostrzejszą drogą do osiągnięcia prawdziwego rozkładu wejściowego. Z drugiej strony SGD wybiera losowy punkt w zacienionym obszarze i wybiera najbardziej stromą drogę do tego punktu. Jednak przy każdej iteracji wybiera nowy punkt. Średnia wszystkich tych kroków przybliża prawdziwy rozkład danych wejściowych, zwykle całkiem dobrze.