Regresja liniowa: opadanie gradientowe

Spadek gradientowy to technika matematyczna, która iteracyjnie odnajduje wagi i odchylenia, dzięki którym powstaje model o najniższej stracie. 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 kroki:

  1. Oblicz stratę przy bieżącej wadze i uświadczeniu.

  2. Określ kierunek zmiany wag i uśrednień, który zmniejszy straty.

  3. Przesuń nieznacznie wartości wagi i odchylenia w kierunku, który zmniejsza straty.

  4. Wróć do kroku 1 i powtarzaj proces, aż model nie będzie już w stanie zmniejszyć strat.

Poniższy diagram przedstawia iteracyjne kroki gradientu gradientu, które pozwala znaleźć wagi i odchylenia, dzięki którym model ma najmniejszą stratę.

Rysunek 12. Ilustracja przedstawiająca proces schodkowego zmniejszania gradientu.

Rysunek 12. Spadek gradientowy to proces iteracyjny, w którym wykrywane są wagi i odchylenia, dzięki którym model ma najmniejszą stratę.

Kliknij ikonę plusa, aby dowiedzieć się więcej o funkcji zjawiska gradientu w postaci gradientu.

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 oceny mil 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
  1. Model rozpoczyna trenowanie od ustawienia wagi i uśrednienia na 0:
  2. $$ \small{Weight:\ 0} $$ $$ \small{Bias:\ 0} $$ $$ \small{y = 0 + 0(x_1)} $$
  3. Oblicz stratę MSE przy użyciu bieżących parametrów modelu:
  4. $$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$ $$ \small{Loss= 303.71} $$
  5. Oblicz nachylenie stycznych do funkcji utraty dla każdej wagi i uśrednienia:
  6. $$ \small{Weight\ slope: -119.7} $$ $$ \small{Bias\ slope: -34.3} $$

    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 $.

    Rzeczywistą wartość zapiszemy jako: $ 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 wagi

    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 zsumujemy każdą prognozowaną wartość pomniejszoną o wartość rzeczywistą, a potem pomnoż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 stronnicza

    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 zwraca:
    $ \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ążemy to równanie z wagą i odchyleniem równym 0, uzyskamy nachylenie prostej wynoszące -34,3.

  7. Przesuń się nieznacznie w kierunku ujemnego nachylenia, aby uzyskać następną wagę i uświadamianie. Na razie dowolnie zdefiniujemy „małą kwotę” jako 0, 01:
  8. $$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$ $$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$ $$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$ $$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$ $$ \small{New\ weight = 1.2} $$ $$ \small{New\ bias = 0.34} $$

Wykorzystaj nową wagę i odchylenie, aby obliczyć stratę i powtórzyć wyniki. Po przeprowadzeniu tego procesu przez 6 iteracjach otrzymamy następujące wagi, przesunięcia 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 strata zmniejsza się z każdym zaktualizowanym ustawieniem wagi i odchylenia. 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 w największym stopniu minimalizują 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 zbieżności modelu i straty

Podczas trenowania modelu można często sprawdzić krzywą straty, aby określić, czy model jest zbieżny. Krzywa strat pokazuje, jak straty zmieniają się podczas trenowania modelu. Tak wygląda typowa krzywa utraty. Straty są na osi y, a iteracje na osi x:

Rysunek 13. Wykres krzywej strat pokazujący gwałtowny spadek, a następnie łagodny spadek.

Rysunek 13. Krzywa utraty pokazująca zbieżność modelu w okolicach 1000 iteracji.

Możesz zauważyć, że strata gwałtownie spada w pierwszych kilku iteracjach, a następnie stopniowo maleje, a następnie zostaje spłaszczony do około 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 wysoką wartość utraty.

Rysunek 14. Krzywa strat i odpowiadający jej wykres modelu, który odchyla się od punktów danych.

Rysunek 14. Krzywa utraty i zrzut modelu na początku procesu trenowania.

Przy około 400. iteracji widać, że gradient gradientowy wykazał ciężar i odchylenia, które zapewniają lepszy model.

Rysunek 15. Krzywa utraty i odpowiadający jej wykres modelu, który przecina punkty danych, ale nie pod optymalnym kątem.

Rysunek 15. Krzywa straty 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 utraty i odpowiadający jej wykres modelu, który dobrze pasuje do danych.

Rysunek 16. Krzywa utraty i zrzut modelu na koniec procesu trenowania.

Ćwiczenie: sprawdź swoją wiedzę

Jaką rolę w regresji liniowej odgrywa gradientne schodkowe zmniejszanie wartości?
Gradient descent to iteracyjny proces, który znajduje najlepsze wagi i uświadczenia, które minimalizują stratę.
Metoda gradientu prostego pomaga określić, jakiego typu straty użyć podczas trenowania modelu, np. L1 lub L2.
Metoda gradientu prostego nie jest wykorzystywana do wyboru funkcji utraty na potrzeby trenowania modelu.
Metoda gradientu prostego usuwa z zbioru danych wartości odstające, aby pomóc modelowi w generowaniu lepszych prognoz.
Metoda gradientu prostego nie zmienia zbioru danych.

Funkcje zbieżności i wypukł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 przedstawiono powierzchnię utraty w zbiorze danych w milach na galon użyty w poprzednich przykładach. Waga jest na osi X, odchylenie na osi Y, a strata – na osi z:

Rysunek 17. Wymiarowy wykres powierzchni strat.

Rysunek 17. Powierzchnia tracąca, która pokazuje jej wypukły kształt.

W tym przykładzie waga -5,44 i uśrednianie 35,94 dają najmniejszą wartość utraty na poziomie 5,54:

Rysunek 18. Wykres 3D powierzchni strat z punktami (-5,44, 35,94, 5,54) na dole.

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. Gdybyśmy podczas zstępowania po łagodnym zboczu narysowali punkty wagowe i punkty przesunięcia, wyglądałyby jak kula tocząca się po zboczu i ostatecznie zatrzymująca się w miejscu, w którym nie ma już ścieżki w dół.

Rysunek 19. Wypukła powierzchnia straty 3D z gradientowymi punktami opadania przesuwającymi się do najniższego punktu.

Rysunek 19. Wykres utraty pokazujący punkty spadku gradientu, który zatrzymuje się w najniższym punkcie wykresu.

Zwróć uwagę, że czarne punkty utraty tworzą dokładny kształt krzywej utraty: gwałtowny spadek, a następnie stopniowe spadki w dół, aż do momentu osiągnięcia najniższego punktu na powierzchni straty.

Pamiętaj, że model prawie nigdy nie znajduje dokładnego minimum dla każdej wagi i uprzednienia, ale zamiast tego znajduje wartość bardzo zbliżoną do niego. Warto też pamiętać, że minimalna wartość wag i odchylenia nie odpowiada zerowej stracie, a jedynie wartości, która generuje najmniejszą stratę dla danego parametru.

Korzystając z wartości wagi i odchylenia, które przynoszą najmniejszą stratę – w tym przypadku waga –5,44 i odchylenie 35,94 – możemy przedstawić model na wykresie, aby sprawdzić, jak dobrze pasuje do danych:

Rysunek 20. Wykres funtów w 1000 s w odniesieniu do mil na galon z modelem dopasowującym dane.

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.