Deep Learning Academy · Lekcja

Ręczna propagacja wsteczna w małej sieci

Obliczać gradienty na papierze i potwierdzać je w kodzie

Lekcja 3 z 413 kroki

Ręczna propagacja wsteczna w małej sieci to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Deep Learning Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.

Nasza mała sieć

Prześledźmy ręcznie najmniejszą sieć: jedno wejście x, jedna waga w i brak obciążenia. Wynik to po prostu y = w razy x. Jest na tyle mała, że można ją policzyć na papierze.

y = w * x

Dodaj prostą funkcję straty

Porównujemy wynik z wartością docelową t za pomocą błędu kwadratowego. Ta funkcja straty karze za duże odchylenie od celu i łatwo obliczyć jej pochodną ręcznie.

loss = (y - t) ** 2

Przejście w przód z liczbami

Podstaw x = 2, w = 3, t = 10. Przejście w przód daje y = 6 oraz loss = (6 - 10) squared = 16. Teraz przejdziemy wstecz, aby znaleźć dloss/dw.

Krok pierwszy: od straty do wyniku

Pierwsze ogniwo: jak strata zmienia się względem y? Pochodna (y - t) squared to 2(y - t), co tutaj daje 2 razy (6 - 10) = -8.

dloss_dy = 2 * (y - t)

Krok drugi: od wyniku do wagi

Drugie ogniwo: jak y zmienia się względem w? Ponieważ y = w razy x, dy/dw to po prostu x, czyli w naszym przykładzie 2.

dy_dw = x

Połącz oba ogniwa

Reguła łańcuchowa mnoży ogniwa: dloss/dw = dloss/dy razy dy/dw = -8 razy 2 = -16. Ta pojedyncza liczba jest naszym gradientem.

dloss_dw = dloss_dy * dy_dw

Odczytaj znak gradientu

Ujemny gradient oznacza, że zwiększenie w obniżyłoby stratę. Należy więc nieznacznie zwiększyć w, aby następnym razem uzyskać lepszy wynik.

Wykonaj jeden krok aktualizacji

Przy współczynniku uczenia 0.1 aktualizacja wygląda tak: w = w - 0.1 razy (-16) = 3 + 1.6 = 4.6. Waga przesunęła się w kierunku lepszej wartości.

w = w - lr * dloss_dw

Potwierdź poprawę

Powtórz przejście w przód dla w = 4.6: y = 9.2, a loss = (9.2 - 10) squared = 0.64. To znacznie mniej niż 16, więc krok rzeczywiście pomógł.

Sprawdź to w PyTorch

PyTorch automatycznie oblicza ten sam gradient. Ustaw requires_grad dla w, wykonaj przejście w przód, wywołaj backward i odczytaj w.grad, aby zobaczyć -16.

w = torch.tensor(3.0, requires_grad=True)
loss = (w * 2 - 10) ** 2
loss.backward()
print(w.grad)

Te same kroki, większe sieci

Sieć z milionem wag robi dokładnie to samo, tylko z większą liczbą połączonych ogniw. Matematyka wykonana ręcznie skaluje się bezpośrednio.

Szybkie sprawdzenie

Sprawdźmy wykonane przez Ciebie obliczenia.

Podsumowanie

Prześledzili Państwo małą sieć: przejście w przód dla wartości, następnie przejście wstecz z mnożeniem lokalnych pochodnych w celu uzyskania gradientu, a na końcu krok obniżający stratę. ✏️

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Ręczna propagacja wsteczna w małej sieci” jest bezpłatna?

Tak — pełny tekst „Ręczna propagacja wsteczna w małej sieci” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Deep Learning Academy, przejdź na CoddyKit PRO. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Ręczna propagacja wsteczna w małej sieci”?

Obliczać gradienty na papierze i potwierdzać je w kodzie Ćwiczysz Deep Learning Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Deep Learning Academy?

Nie wymagamy żadnego doświadczenia. Deep Learning Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Ręczna propagacja wsteczna w małej sieci”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Deep Learning Academy?

Tak. Każda lekcja Deep Learning Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Reguła łańcuchowa, warstwa po warstwie
  2. Przejście w przód zapisuje dane, wsteczne je wykorzystuje
  3. Ręczna propagacja wsteczna w małej sieci
  4. Zanikające i eksplodujące gradienty
← Powrót do Deep Learning Academy