Spadkowy gradient to technika matematyczna, która iteracyjnie znajduje wagi i uśrednione wartości błędów, które dają model o najmniejszym błędzie. Metoda gradientu prostego znajduje najlepsze wartości wag i uśrednienia, powtarzając ten proces przez określoną liczbę iteracji zdefiniowanych przez użytkownika.
Model zaczyna trenowanie z losowymi wagami i uśrednieniami o wartościach zbliżonych do zera, a potem powtarza te czynności:
Oblicz stratę przy bieżącej wadze i uświadczeniu.
Określ kierunek zmiany wag i uśrednień, który zmniejszy stratę.
Zmień wartości wagi i uśrednienia o niewielką wartość w kierunku zmniejszenia utraty informacji.
Wróć do kroku 1 i powtarzaj proces, aż model nie będzie już w stanie zmniejszyć strat.
Schemat poniżej przedstawia iteracyjne kroki, które wykonuje gradientne schodkowe, aby znaleźć wagi i uśrednione wartości błędów, które dają model o najmniejszym błędzie.
Rysunek 12. Metoda gradientu stochastycznego to iteracyjny proces, który znajduje wagi i uśrednia wartości, które dają model o najmniejszych stratach.
Aby dowiedzieć się więcej o matematyce stojącej za gradientowym spadkiem, kliknij ikonę plusa.
Na konkretnym poziomie możemy przejść przez kroki gradientowego spadku, używając małego zbioru danych z 7 przykładami wagi samochodu w funtach i jego oceny w milach na galon:
Funty w tysiącach (funkcja) | Mile na galon (etykieta) |
---|---|
3,5 | 18 |
3,69 | 15 |
3,44 | 18 |
3,43 | 16 |
4,34 | 15 |
4,42 | 14 |
2,37 | 24 |
- Model rozpoczyna trenowanie od ustawienia wagi i uprzedzeń na 0:
- Oblicz stratę MSE przy bieżących parametrach modelu:
- Oblicz nachylenie stycznych do funkcji utraty dla każdej wagi i uśrednienia:
- Przesuń się nieznacznie w kierunku ujemnego nachylenia, aby uzyskać następną wagę i uświadamianie. Na razie dowolnie zdefiniujemy „małą kwotę” jako 0, 01:
Kliknij ikonę plusa, aby dowiedzieć się więcej o obliczaniu nachylenia.
Aby uzyskać nachylenie linii stycznych do wagi i uśrednienia, obliczamy pochodną funkcji utraty w zależności od wagi i uśrednienia, a następnie rozwiązujemy równania.
Równanie służące do przewidywania ma postać:
$ f_{w,b}(x) = (w*x)+b $.
Prawidłowa wartość będzie wyglądać tak: $ y $.
Błąd MSE obliczamy za pomocą wzoru:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
gdzie $i$ to $i$-ty przykład treningowy, a $M$ to liczba przykładów.
Pochodna funkcji straty względem wagi ma postać:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
i wynosi:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
Najpierw zliczamy każdą prognozowaną wartość pomniejszoną o wartość rzeczywistą, a potem mnożymy ją przez podwójną wartość cechy. Następnie dzielimy sumę przez liczbę przykładów. Wynik to nachylenie linii dotyczkowej wartości wagi.
Jeśli rozwiążesz to równanie z wagą i uśrednieniem równymi 0, otrzymasz dla nachylenia linii -119,7.
Pochodna uprzedzeń
Pochodna funkcji straty względem przesunięcia jest zapisana w postaci:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
i ma wartość:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
Najpierw sumujemy każdą przewidywaną wartość pomniejszoną o wartość rzeczywistą, a potem mnożymy ją przez 2. Następnie dzielimy sumę przez liczbę przykładów. Wynik to nachylenie linii dotyczącej wartości przesunięcia.
Jeśli rozwiążesz to równanie z wagą i uśrednieniem równym 0, uzyskasz dla nachylenia linii -34,3.
Użyj nowych wartości wagi i uświadamiania, aby obliczyć stratę i powtórz. Po przeprowadzeniu tego procesu przez 6 iteracjach otrzymamy te wagi, odchylenia i straty:
Iteracja | Waga | Stronniczość | Strata (MSE) |
---|---|---|---|
1 | 0 | 0 | 303,71 |
2 | 1,2 | 0,34 | 170,67 |
3 | 2,75 | 0,59 | 67,3 |
4 | 3,17 | 0,72 | 50,63 |
5 | 3,47 | 0,82 | 42.1 |
6 | 3,68 | 0,9 | 37,74 |
Widać, że wraz z każdą aktualizacją wagi i uśrednienia straty maleją. W tym przykładzie zatrzymaliśmy się po 6 iteracjach. W praktyce model trenuje do momentu, aż zawęzi. Gdy model osiągnie zbieżność, dodatkowe iteracje nie zmniejszą straty, ponieważ zstępczystemu schodzeniu ku minimum udało się znaleźć wagi i uśrednione wartości, które niemal zminimalizowały stratę.
Jeśli model nadal trenuje po osiągnięciu zbieżności, straty zaczynają się wahać o niewielkie wartości, ponieważ model stale aktualizuje parametry wokół ich najniższych wartości. Może to utrudnić weryfikację, czy model rzeczywiście się zbliża do rozwiązania. Aby potwierdzić, że model osiągnął zbieżność, kontynuuj trenowanie, aż straty się ustabilizują.
Krzywe modela i strat
Podczas trenowania modelu często sprawdzasz krzywą utraty, aby określić, czy model zbiegł się. Krzywa strat pokazuje, jak straty zmieniają się podczas trenowania modelu. Poniżej widać typowy przebieg krzywej strat. Straty są na osi y, a iteracje na osi x:
Rysunek 13. Krzywa utraty pokazująca zbieżność modelu w okolicach 1000 iteracji.
Jak widać, straty gwałtownie maleją w ciągu pierwszych kilku iteracji, a potem stopniowo spadają, aż wreszcie ulegają wyrównaniu w okolicach 1000 iteracji. Po 1000 iteracjach możemy być prawie pewni, że model osiągnął zbieżność.
Na poniższych rysunkach model jest przedstawiony w 3 punktach procesu trenowania: na początku, w środku i na końcu. Wizualizacja stanu modelu na podstawie migawek podczas procesu trenowania pozwala lepiej zrozumieć związek między aktualizowaniem wag i uprzedzeń, zmniejszaniem strat i konwergencją modelu.
Na rysunkach do reprezentowania modelu używamy wyodrębnionych wag i uśrednionego błędu w danej iteracji. Na wykresie z punktami danych i migawką modelu niebieskie linie strat od modelu do punktów danych wskazują wielkość strat. Im dłuższe linie, tym większe straty.
Na poniższym rysunku widać, że w drugiej iteracji model nie będzie dobrze przewidywać, ponieważ ma dużą wartość utraty.
Rysunek 14. Krzywa utraty i zrzut modelu na początku procesu trenowania.
Około 400 iteracji widać, że metoda gradientu prostego znalazła współczynnik i błąd, które dają lepszy model.
Rysunek 15. Krzywa strat i migawka modelu w połowie trenowania.
Około 1000 iteracji model osiąga zbieżność, tworząc model o najmniejszych możliwych stratach.
Rysunek 16. Krzywa strat i migawka modelu w pobliżu końca procesu trenowania.
Ćwiczenie: sprawdź swoją wiedzę
Funkcje zbieżne i wklękłe
Funkcje strat w przypadku modeli liniowych zawsze dają wypukłą powierzchnię. Dzięki tej właściwości, gdy model regresji liniowej osiągnie zbieżność, wiemy, że znalazł on współczynniki i błądy, które dają najmniejszą stratę.
Jeśli narysujemy wykres powierzchni strat dla modelu z jedną cechą, zobaczymy, że ma on wypukły kształt. Poniżej znajduje się powierzchnia strat zbioru danych „Mile na galon” użytego w poprzednich przykładach. Waga jest na osi x, odchylenie na osi y, a strata na osi z:
Rysunek 17. Powierzchnia tracąca, która pokazuje jej wypukły kształt.
W tym przykładzie waga -5,44 i uśredniona wartość 35,94 dają najmniejszą stratę na poziomie 5,54:
Rysunek 18. Powierzchnia strat pokazująca wartości wag i uprzedzeń, które dają najmniejsze straty.
Model liniowy osiąga zbieżność, gdy znajdzie minimalną stratę. Dlatego kolejne iteracje powodują tylko niewielkie zmiany wartości wagi i uśrednienia w pobliżu minimum. Jeśli podczas zstępowania po łagodnym zboczu na wykresie przedstawilibyśmy punkty wag i punkty nachylenia, wyglądałyby jak kula tocząca się po zboczu, która wreszcie zatrzymuje się w miejscu, w którym nie ma już ścieżki w dół.
Rysunek 19. Wykres utraty pokazujący punkty spadku gradientu, które zatrzymują się w najniższym punkcie wykresu.
Zwróć uwagę, że czarne punkty strat tworzą dokładny kształt krzywej strat: gwałtowny spadek, a następnie stopniowe opadanie, aż do osiągnięcia najniższego punktu na powierzchni strat.
Pamiętaj, że model prawie nigdy nie znajduje dokładnego minimum dla każdej wagi i uprzedzeń, ale zamiast tego znajduje wartość bardzo zbliżoną do niego. Warto też pamiętać, że minimum dla wag i uśrednienia nie odpowiada zerowej wartości straty, tylko wartości, która daje najniższą stratę dla danego parametru.
Korzystając z wartości wag i uśredników, które dają najmniejszą stratę (w tym przypadku waga –5,44 i uśrednik 35,94), możemy na wykresie sprawdzić, jak dobrze model pasuje do danych:
Rysunek 20. Model na wykresie z wartościami wagi i uśrednienia, które dają najmniejszą stratę.
To najlepszy model dla tego zbioru danych, ponieważ żadne inne wartości wag i uśrednień nie dają modelu z mniejszymi stratami.