Deep Learning Academy · Lekcja

Minimalizować funkcję ręcznie w Pythonie

Zakodować spadek gradientowy dla prostej krzywej

Lekcja 4 z 413 kroki

Minimalizować funkcję ręcznie w Pythonie to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 4 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.

Małe zadanie praktyczne

Wykonajmy samodzielnie spadek gradientowy na jednej prostej krzywej. Zminimalizujemy podstawową funkcję w czystym Pythonie, zanim zaufamy frameworkowi i pozwolimy mu zrobić to za nas.

Wybierz funkcję

Użyjemy paraboli z jednym zagłębieniem. Jej najniższy punkt znajduje się dla x równego 3, więc właśnie to minimum powinien samodzielnie znaleźć nasz kod.

def f(x):
    return (x - 3) ** 2

Poznaj gradient

Dla tej krzywej nachylenie, czyli gradient, wynosi dwa razy x minus trzy. W rzeczywistych modelach oblicza to za Państwa autograd, ale tutaj zapiszemy wzór bezpośrednio.

def grad(x):
    return 2 * (x - 3)

Zacznij w dowolnym miejscu

Spadek gradientowy wymaga punktu początkowego. Wybieramy dowolną wartość początkową daleką od odpowiedzi, aby obserwować, jak kolejne kroki się do niej zbliżają.

x = 0.0

Wybierz współczynnik uczenia

Ustawiamy umiarkowany współczynnik uczenia, aby kroki były wystarczająco duże do robienia postępów, ale na tyle małe, by uniknąć przeskoczenia zagłębienia.

lr = 0.1

Krok aktualizacji

Każda iteracja stosuje tę samą regułę co wcześniej: od x odejmuje przeskalowany gradient. Jedna linia wykonuje całą pracę związaną ze schodzeniem w dół.

x = x - lr * grad(x)

Wykonaj pętlę

Jeden krok nie wystarczy, dlatego umieszczamy aktualizację w pętli. Około dwudziestu iteracji pozwala x płynnie zbliżać się do minimum.

for i in range(20):
    x = x - lr * grad(x)

Obserwuj zbieżność

Wypisując x i f(x) przy każdym przebiegu, zobaczą Państwo ich zbieżność: x zbliża się do 3, a wartość funkcji do zera.

    print(round(x, 4), round(f(x), 6))

Kroki stają się mniejsze

Proszę zauważyć, że ruchy stają się mniejsze w miarę zbliżania się do dna. W pobliżu minimum gradient jest niewielki, więc każdy krok naturalnie zwalnia bez dodatkowego kodu.

Wypróbuj zły współczynnik

Ustaw współczynnik uczenia na przykład na 1,1 i uruchom program ponownie. Zamiast się ustalać, x zacznie się oddalać, pokazując w praktyce, jak zbyt duży krok prowadzi do rozbieżności.

lr = 1.1

Ta sama idea, większa skala

Te kilka linii robi dokładnie to samo, co uczenie głębokie, tylko z milionami wag i automatycznym gradientem. Główna pętla się nie zmienia.

Szybkie sprawdzenie

Co sygnalizuje zbieżność spadku gradientowego?

Podsumowanie

Ręcznie zakodowano spadek gradientowy: zdefiniowano funkcję i jej gradient, rozpoczęto w wybranym miejscu, a następnie powtarzano regułę aktualizacji, aż x zbiegnie do minimum. ✅

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 „Minimalizować funkcję ręcznie w Pythonie” jest bezpłatna?

Tak — pełny tekst „Minimalizować funkcję ręcznie w Pythonie” 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 „Minimalizować funkcję ręcznie w Pythonie”?

Zakodować spadek gradientowy dla prostej krzywej Ć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 4 z 4.

Ile czasu zajmuje lekcja „Minimalizować funkcję ręcznie w Pythonie”?

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. Funkcja straty jako krajobraz do pokonania
  2. Gradienty wskazują pod górę — więc należy iść w przeciwną stronę
  3. Learning rate: za duży, za mały czy idealny
  4. Minimalizować funkcję ręcznie w Pythonie
← Powrót do Deep Learning Academy