Regresja liniowa: opadanie gradientowe

Efekt gradientu to to technika matematyczna, która iteracyjnie znajduje wagi i uprzedzenia, które generują model o najniższej stracie. Spadek gradientowy określa najlepszą wagę i odchylenie powtarzając ten proces dla kilku kolejnych iteracji zdefiniowanych przez użytkownika.

Model rozpoczyna trenowanie z losowymi wagami i odchyleniami blisko zera, a potem powtarza te czynności:

  1. Oblicz stratę przy użyciu bieżącej wagi i odchylenia.

  2. Określ kierunek przenoszenia wagi i odchylenia, które zmniejszają stratę.

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

  4. Wróć do kroku 1 i powtórz ten proces, dopóki model nie będzie w stanie zmniejszyć na dalszą stratę.

Poniższy diagram przedstawia iteracyjne kroki opadania gradientowego, aby znaleźć wagi i uprzedzeń, które generują model o najniższej stracie.

Rysunek 12. Ilustracja procesu opadania gradientem.

Rysunek 12. Spadek gradientowy to proces iteracyjny, w którym określane są wagi i uprzedzenia, które generują model o najniższej stracie.

Kliknij ikonę plusa, aby dowiedzieć się więcej o funkcjach matematycznych wykorzystujących opadanie gradientowe.

Na betonowym poziomie możemy przejść gradientowymi stopniami za pomocą małego zbioru danych z 7 przykładami ciężaru samochodu w funtach i jego wartość 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 odchylenia 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 tangensa do funkcji straty przy każdej wadze oraz tendencyjności:
  6. $$ \small{Weight\ slope: -119.7} $$ $$ \small{Bias\ slope: -34.3} $$

    Aby dowiedzieć się, jak obliczać nachylenie, kliknij ikonę plusa.

    Aby uzyskać nachylenie dla linii stycznych do wagi i uprzedzenia, weźmiemy pochodną funkcji straty za pomocą funkcji w odniesieniu do wagi i uprzedzeń, a następnie rozwiązać równaniach.

    Równanie służące do formułowania prognozy zapiszemy w taki sposób:
    $ f_{w,b}(x) = (szer*x)+b $.

    Rzeczywistą wartość zapiszemy jako: $ y $.

    Przeliczymy MSE na podstawie:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) – y_{(i)})^2
    USD gdzie $i$ reprezentuje przykład trenowania ($ith$), a $M$ liczby przykładów.

    Pochodna wagi

    Pochodna funkcji straty w odniesieniu do wagi jest zapisana w ten sposób:
    $ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) – y_{(i)})^2 USD

    i przyjmuje wartość:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) – y_{(i)}) * 2x_{(i)} PLN

    Najpierw sumujemy każdą prognozowaną wartość pomniejszoną o wartość rzeczywistą i pomnóż go przez dwa razy wartość cechy. Następnie dzielimy sumę przez liczbę przykładów. Wynik to nachylenie linii stycznej do wartości wagi.

    Jeśli rozwiążemy to równanie przy wadze i odchyleniu równym zero to -119, 7 dla nachylenia linii.

    Pochodna stronnicza

    Pochodna funkcji straty w odniesieniu do odchylenie jest zapisywane jako:
    $ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) – y_{(i)})^2 USD

    i przyjmuje wartość:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) – y_{(i)}) * 2 USD

    Najpierw sumujemy każdą prognozowaną wartość pomniejszoną o wartość rzeczywistą i pomnóż wynik przez dwa. Następnie dzielimy sumę przez liczby przykładów. Wynikiem jest nachylenie linii tangens do wartości uprzedzenia.

    Jeśli rozwiążemy to równanie przy wadze i odchyleniu równym zero, to dla nachylenia linii otrzymamy -34,3.

  7. Przesuń niewielką część w kierunku ujemnego nachylenia, aby uzyskać kolejną wagę i uprzedzenia. Na razie będziemy arbitralnie definiować „mała kwota” 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. Kończenie w przypadku 6 iteracji otrzymalibyśmy następujące wagi, odchylenia i straty:

Iteracja Waga Uprzedzenia 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 odtwarzanie po 6 iteracjach. W praktyce model trenuje, aż konwersji. Gdy model jest zbieżny, dodatkowe iteracje nie zmniejszają strat w większym stopniu ponieważ gradient gradientowy wykrył ciężar i odchylenia, które są prawie zminimalizować straty.

Jeśli model będzie nadal trenować wcześniejszą zbieżność, utrata rozpocznie się wahają się od niewielkich kwot, ponieważ model stale aktualizuje wokół najniższych wartości. Może to utrudnić aby sprawdzić, czy model faktycznie się zbieżał. Aby potwierdzić model zmniejszy się, trenuj tak długo, aż straty będą ustabilizowane.

Krzywe zbieżności modelu i straty

Podczas trenowania modelu można zauważyć strata aby określić, czy model z konwersją. Krzywa strat pokazuje: jak zmienia się strata w trakcie trenowania modelu. Poniżej przedstawiono typową stratę jak krzywa. Strata jest przedstawiona na osi Y, a iteracja – na osi X.

Rysunek 13. Wykres krzywej straty pokazujący stromy spadek, a potem łagodny spadek.

Rysunek 13. Krzywa straty pokazująca zbieg modelu Po raz tysięczny.

Widać, że straty gwałtownie spadają już na początku iteracji, po czym stopniowo maleje,a następnie około 1000. iteracji zostaje spłaszczony znaku towarowego. Po 1000 iteracji możemy mieć większą pewność, że model są zbieżne.

Na poniższych ilustracjach model jest rysowany w trzech punktach podczas trenowania. początku, środka i końca. Wizualizacja stanu modelu na zrzutach ekranu podczas procesu trenowania, aby wzmocnić związek między aktualizacjami. wagi i uprzedzeń, zmniejszając straty i zgodność modelu.

Na wykresach używamy wag pochodnych i odchylenia w konkretnej iteracji, aby reprezentują model. Na wykresie z punktami danych i migawką modelu niebieskie linie straty między modelem a punktami danych wskazują wielkość utraty. im dłuższe linie, tym większe straty.

Na poniższym rysunku widać, że w okolicach drugiej iteracji model nie sprawdziłby się w prognozach z powodu dużej straty.

Rysunek 14. Krzywa utraty i odpowiadający jej wykres modelu, który przechyla się w odległości od punktów danych.

Rysunek 14. Krzywa straty i podsumowanie modelu na początku podczas trenowania.

Przy około 400. iteracji widać, że gradient gradientowy odkrył wagi i uprzedzeń, 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 utraty i migawka modelu w połowie trenowania.

Przy około 1000. iteracji widać, że model się zkonwertował, uzyskać model o najniższej możliwej stracie.

Rysunek 16. Krzywa straty i odpowiadający jej wykres modelu, które dobrze pasują do danych.

Rysunek 16. Krzywa utraty i migawka modelu pod koniec trenowania proces tworzenia konta.

Ćwiczenie: sprawdź swoją wiedzę

Jaka jest rola opadania gradientowego w regresji liniowej?
Spadek gradientowy to iteracyjny proces, który znajduje najlepszą ważeń i uprzedzeń, które minimalizują stratę.
Spadek gradientowy pomaga określić, jakiego rodzaju straty należy użyć, gdy podczas trenowania modelu, na przykład L1 lub L2.
Spadek gradientowy nie ma wpływu na wybór straty do trenowania modelu.
Spadek gradientowy usuwa ze zbioru danych wartości odstające, ułatwiając model i przewidywać trafniejsze prognozy.
Przesunięcie gradientu nie zmienia zbioru danych.

Funkcje zbieżności i wypukłe

Funkcje straty dla modeli liniowych zawsze generują wypukłą. W wyniku w tej właściwości, gdy model regresji liniowej zbiega się, wiemy, że model odkryliśmy wagi i uprzedzenia, które przynoszą najmniejszą stratę.

Jeśli na wykresie zostanie podana powierzchnia straty modelu z jedną cechą, wypukły. Poniżej przedstawiono powierzchnię utraty w zbiorze danych z milami na galon wykorzystane w poprzednich przykładach. Waga jest na osi X, a odchylenie na osi Y. a strata jest na osi Z.

Rysunek 17. Wykres 3D powierzchni straty.

Rysunek 17. Powierzchnia tracona pokazująca jej wypukły kształt.

W tym przykładzie waga –5,44 i odchylenie wynoszące 35,94 zapewniają najniższą stratę o 5,54:

Rysunek 18. Trójwymiarowy wykres powierzchni straty, z wartościami (-5,44; 35,94; 5,54) na dole.

Rysunek 18. Powierzchnia straty, na której widać wartości wagi i odchylenia, które generują czyli najmniejszej straty.

Model liniowy jest zbieżny, gdy znajdzie minimalną stratę. W związku z tym dodatkowe powoduje tylko opadanie gradientu, więc waga i wartość odchylenia bardzo niewielkie kwoty w pobliżu minimum. Jeśli przedstawimy na wykresie wagi i punkty uprzedzeń podczas opadania gradientowego, punkty wyglądałyby jak kula tocząca się w dół wzgórza, zatrzymując się w punkcie, w którym nie ma już gorszej strony.

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

Rysunek 19. Wykres straty przedstawiający punkty opadu gradientu na najniższym poziomie na wykresie.

Zwróć uwagę, że czarne punkty utraty tworzą dokładny kształt krzywej utraty: gwałtowny spadek, zanim następnie stopniowo maleje, aż do najniższego na powierzchni straty.

Warto zauważyć, że model prawie nigdy nie znajduje dokładnego minimalna dla każdej wagi i odchylenia, a zamiast tego znajduje wartość bardzo zbliżoną do niej. Warto też pamiętać, że minimalna wartość dla wag i uprzedzeń nie musi odpowiada zerowej stracie, tylko wartość, która generuje najniższą stratę .

Użycie 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, 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. Wykres przedstawiający model na podstawie wartości wagi i odchyleń, które dają czyli najmniejszej straty.

To byłby najlepszy model dla tego zbioru danych, ponieważ nie ma żadnych innych wagi ani uprzedzeń co daje model o mniejszej stracie.