Sieć feedforward z propagacją wsteczną zbudowana od podstaw. Bez frameworka – każdy krok obliczeń jest czytelny.
1 · Przykład i dane iDane treningowe to przykłady, z których sieć ma sama odkryć regułę – nigdy reguła wprost. Każdy wiersz to jeden przykład: po lewej wejścia, po prawej (po >) pożądane wyjścia. Sieć porównuje swoją prognozę z wartością docelową i się dostraja. Czego oczekiwać: Szablony poniżej ładują gotowe zadania (krzywe, granice, mini-obrazy). Możesz też dowolnie zmieniać wartości lub wpisać własne dane. Zasada: więcej i czystszych przykładów → lepsza prognoza; za mało → sieć zgaduje.
Pierwsza linia = nazwy kolumn. Oddziel wejścia od wyjść znakiem ">". Wartości przecinkami. Dowolna liczba kolumn i wierszy.
iOdkłada część danych poza trening i mierzy błąd tylko na nich. Tak widać przeuczenie: jeśli błąd treningowy dalej spada, a testowy znów rośnie, sieć uczy się danych na pamięć zamiast reguły. Wypróbuj „Prosta + szum" z dużą siecią.
W zakładce „Krzywa błędu" pojawi się druga, czerwona krzywa dla danych testowych.
2 · Architektura iArchitektura: tu ustalasz, jak zbudowana jest sieć – typ zadania, liczbę i rozmiar warstw ukrytych, funkcję aktywacji, optymalizator, współczynnik uczenia i skalowanie. Większe/liczniejsze warstwy uczą się rzeczy złożonych, ale wymagają więcej danych i łatwiej się przeuczają.
iRegresja: sieć przewiduje ciągłą liczbę (np. czas gotowania). Wyjście liniowe, miara błędu MSE. Klasyfikacja: sieć wybiera między klasą 0 i 1 (np. wewnątrz/na zewnątrz). Wyjście sigmoidalne 0..1, miara błędu BCE (entropia krzyżowa), dodatkowo trafność.
Określa funkcję wyjścia i miarę błędu. Przy klasyfikacji wartości docelowe pozostają surowe (0/1) i nie są skalowane.
iKażda liczba to jedna warstwa, a jej wartość to liczba neuronów. 8,8 = dwie warstwy po 8 neuronów. Każdy neuron oblicza ważoną sumę swoich wejść plus bias i przepuszcza wynik przez funkcję aktywacji. Więcej neuronów = sieć może odwzorować bardziej skomplikowane zależności – ale działa wolniej i może się przeuczyć.
np. "8,8" = dwie warstwy po 8 neuronów. "12" = jedna warstwa. Więcej neuronów = większa pojemność na wzorce nieliniowe.
iOkreśla wielkość kroku uczenia. Po każdym przykładzie sieć zmienia każdą wagę o −współ. uczenia × gradient. Gradient wskazuje kierunek zwiększający błąd – idziemy w przeciwną stronę. Za duży: trening skacze nad celem i oscyluje. Za mały: uczy się bardzo powoli. Typowo 0.01–0.1.
iFunkcja nieliniowa stosowana po ważonej sumie. Bez niej cała sieć byłaby tylko liniowa. tanh: krzywa S od −1 do 1, gładka, symetryczna. sigmoid: krzywa S od 0 do 1. ReLU: zwraca 0 dla ujemnych, w przeciwnym razie wartość wprost – prosta i szybka, ale nieciągła. Dopiero ona pozwala sieci modelować krzywizny.
iStrategia aktualizacji wag. SGD: podąża wprost za gradientem, zatrzymuje się na płaskich fragmentach. Momentum: zbiera pęd jak tocząca się kula i przetacza przez płaszczyzny. Adam: pęd + indywidualny krok na wagę – uczy się najskuteczniej. Wszystkie trzy używają tego samego gradientu, tylko inaczej.
SGD = podąża tylko za gradientem, łatwo utknąć na plateau. Momentum = zbiera pęd. Adam = pęd + automatyczny krok na wagę. Przy przełączeniu na Adam zazwyczaj ustaw współczynnik uczenia ~0.01.
iSkaluje wszystkie wartości do małego zakresu przed wejściem do sieci i przelicza wyjście z powrotem. Niezbędne, bo neuron z surową wartością „180 sekund" i „3 wzrost" źle radzi sobie z mieszanymi rzędami wielkości. [0,1]: standard. [−1,1]: symetryczny wokół zera – pasuje do tanh i funkcji takich jak x³ czy sinus.
Symetryczny bardzo pomaga przy funkcjach punktowo symetrycznych wokół zera (np. x³, sinus). Neurony tanh są same w sobie symetryczne wokół zera – dane i bloki budulcowe wtedy do siebie pasują.
iJedna epoka = jeden przebieg przez wszystkie wiersze danych treningowych. Ta wartość określa, ile epok wykonuje jedno kliknięcie „Rozpocznij trening". Więcej epok = więcej ćwiczeń = mniejszy błąd, aż do momentu gdy przestaje się poprawiać. Po zakończeniu treningu kliknij ponownie, aby dodać kolejne epoki.
iOnline: dostosowanie po każdym pojedynczym przykładzie – szybko, ale niespokojnie. Batch: gradienty wszystkich przykładów są uśredniane, potem jeden krok na epokę – spokojniejsza, gładsza krzywa uczenia. S w SGD oznacza właśnie tę różnicę (stochastyczny = pojedynczo).
Online dostosowuje się często szybciej, batch daje stabilniejsze krzywe.
3 · Curriculum (uczenie fragmentaryczne) iProgram nauczania: najpierw ogranicza trening do części zakresu, a potem go poszerza – jak plan lekcji zaczynający od łatwych rzeczy. Pomaga przy trudnych funkcjach, bo sieć najpierw uczy się zgrubnego kształtu, zanim dojdą szczegóły. „Auto-program“ poszerza okno automatycznie podczas treningu.
Wybierz okno: trenuj tylko fragment krzywej (lewa, prawa lub środek). Pomaga, gdy sieć utyka w środku zakresu. Punkt odniesienia to pierwsze wejście.
aktywny: cały zakres
Auto: zaczyna od małego okna po lewej i automatycznie je poszerza podczas treningu aż do końca.
4 · Wielokrotny trening (statystyki) iTrening wielokrotny: uruchamia to samo zadanie wiele razy z losową inicjalizacją i pokazuje rozrzut końcowych błędów. Tak widać, czy wynik jest stabilny, czy zależy od losowego startu – ważne, bo sieci nie zawsze uczą się równie dobrze.
Trenuje N razy od nowa, za każdym razem ze świeżymi losowymi wagami. Pokazuje, jak bardzo wynik zależy od punktu startowego. Najlepsza sieć pozostaje załadowana na końcu.
5 · Zapisz / wczytaj eksperyment iZapisuje wszystkie ustawienia (zadanie, warstwy, współczynnik uczenia, aktywację, optymalizator, skalowanie, styl aktualizacji, udział testowy, epoki) i dane treningowe w pliku JSON. Możesz tak budować celowe eksperymenty, zapisywać je i później dokładnie powtarzać. Opcjonalnie zapisywany jest też wytrenowany stan (nauczone wagi) – wtedy po imporcie od razu pojawia się gotowy wynik, w przeciwnym razie trzeba jeszcze trenować. Nic nie jest zapisywane w przeglądarce – tylko pobierany lub wczytywany plik.
Jako plik JSON – dane treningowe są zawsze dołączone. Nic nie jest zapisywane w przeglądarce.
Epoka
0
Błąd (MSE)
–
Błąd testowy
–
Trafność
–
Parametry
0
Wiersze danych
0
Struktura sieci
Krzywa błędu
Wzorzec vs. Sieć
Płaszczyzna · podgląd
Płaszczyzna · rysuj
Przestrzeń ukryta
Krajobraz błędu
Matematyka
Co robi teraz korekta
Obliczenia szczegółowo
Trenuje dokładnie ten jeden wiersz raz – liczby zmieniają się w widoczny sposób.
Kliknij „Oblicz 1 krok uczenia", aby zobaczyć, które wagi jak się zmieniają.
Obliczenia tego neuronu iTo jest dokładnie to, co neuron robi z aktualnymi liczbami. Możesz prześledzić to krok po kroku na papierze: każde wejście pomnóż przez jego wagę, zsumuj wszystko z biasem, następnie przepuść przez funkcję aktywacji.
Kliknij neuron w zakładce „Struktura sieci", aby zobaczyć jego obliczenia krok po kroku.
Testuj przewidywanie iTu wpisujesz własne wartości wejściowe, a wytrenowana sieć przewiduje wynik – także dla wartości spoza danych treningowych. Tak sprawdzasz, czy sieć naprawdę uogólniła regułę, czy tylko zapamiętała przykłady. W zakładce granicy możesz kliknąć punkt, aby przejąć jego wartości tutaj.
Wprowadź wartości wejściowe i kliknij „Oblicz".
Pokaż pełne obliczenia
Tutaj sieć zbiera dane treningowe sama, zamiast z tabeli. Dinozaur widzi 6 zmysłów i steruje 2 rzeczami: czy skoczyć i czy przedłużyć skok (wyżej). Przy wysokich kaktusach rozciąganie się opłaca.
Metoda uczenia iObie szukają tego samego: dobrych wag – „mózgu“ dinozaura. Różni je tylko droga do celu.
Selekcja (ewolucja): nie wylicza kierunku. Wiele dinozaurów, każdy z losowo lekko zmienionymi wagami (mutacja). Liczy się tylko, jak daleko zajdzie – najlepsze przekazują wagi, reszta odpada. Postęp przez dobór. Nie wymaga różniczkowalnego błędu, ale potrzebuje wielu dinozaurów i cierpliwości.
Nagroda (próba i błąd): jeden dinozaur. Z każdego wyniku (pokonany/crash) propagacja wsteczna wylicza kierunek, w którym musi pójść każda waga, by zmniejszyć błąd – spadek gradientu. Optymalizator Adam toczy się z rozpędem (momentum) do „doliny“ najmniejszego błędu i sam dobiera krok dla każdej wagi. Losowy jest tu tylko wybierany dystans skoku do wypróbowania.
Jakość, nie tylko przeżycie: przejście nie liczy się tylko jako „pokonane” – jest oceniane według bezpieczeństwa: dużo miejsca nad kaktusem i wystarczający odstęp do następnego to dobrze. Ciasne przejście uczy, by skoczyć nieco wcześniej lub wyżej; dzięki temu dino poprawia się także bez umierania.
Pamięć doświadczeń: każdy sukces i każdy crash trafia do małej pamięci i jest wciąż powtarzany – dzięki temu dino uczy się także między kaktusami i robi szybsze postępy.
Naśladowanie (nauczyciel): ty pokazujesz (Spacja = skok, przytrzymanie = wyżej). Każda decyzja na ziemi od razu staje się przykładem: „czekaj“ przy tym dystansie lub „skocz“ z tą wysokością. Sieć dostraja wagi, by w każdej sytuacji przewidzieć Twoją akcję (uczenie nadzorowane). Uczy się tylko, gdy Ty sterujesz – przy „SI przejmuje“ jest zamrożona i potrafi tylko to, co jej pokażesz.
Kiedy rośnie krzywa (nauczyciel)? Mierzy, jak daleko dochodzi biały uczeń-duch. Rośnie, gdy Twój timing skoku jest wyuczony na tyle, że duch pokonuje więcej kaktusów – czyli gdy przejął od Ciebie regułę dystans→akcja.
Zapamiętaj: selekcja = zmieniaj losowo i zachowaj najlepsze. Nagroda = wylicz, gdzie jest lepiej, i tocz się tam. Naśladowanie = powtarzaj to, co pokazujesz.
Program nauczania: obie zaczynają łatwo (wolno, niskie kaktusy); wysokie pojawiają się dopiero, gdy podstawowy skok działa.
Wskazówka: tego samego dinozaura możesz trenować dalej obiema metodami – po prostu przełącz metodę.
Próby i błędy: dinozaur uczy się z każdego wyniku – pokonany wzmacnia, crash osłabia. Więcej w (i).
iWarstwy ukryte między 6 wejściami a 2 wyjściami. Jedna liczba = jedna warstwa (np. 6); przecinki dla kilku (np. „8,4” = dwie warstwy). Wypróbuj różne rozmiary.
Jedna liczba = jedna warstwa; przecinki dla kilku, np. „8,4”.
iIle dinozaurów biegnie jednocześnie w pokoleniu. Więcej = większa różnorodność, wolniej.
iOdsetek wag zmienianych losowo przy dziedziczeniu. Niskie = populacja szybko się ujednolica, lecz łatwo grzęźnie (optimum lokalne). Wysokie = dużo eksploracji, ale niestabilnie.
iPrędkość gry. Szybciej = uczenie widoczne w sekundach, ale bardziej szarpane. Tempo zmienia tylko jak szybko dino ćwiczy – nie to, czego się uczy.
Utrzymuje stałe tempo i wysokość oraz tłumi losowość, by dino spokojnie wyćwiczyło idealny skok i w końcu przechodziło bezpiecznie. Zaznacza też wyuczony dystans wyzwalający skok.
iPokazuje i ustawia trudność (wyżej = szybciej, ciaśniejsze odstępy, większe kaktusy). W trybie automatycznym rośnie sam, a pole nadąża; po zamrożeniu pozostaje stały na Twojej wartości.
Aktualny poziom – do ustawienia. Zamrożony pozostaje stały, w przeciwnym razie rośnie automatycznie.
Co się teraz dzieje
Jeszcze nie uruchomiony.
Decyzja dinozaura iNa żywo: 6 zmysłów, które widzi sieć, i jej 2 wyjścia. Wyjście „Skok” powyżej 0,5 = skok; wyjście „Trzymaj” powyżej 0,5 = przedłużenie skoku (wyżej). Kliknięcie neuronu wejściowego na canvasie wycisza to wejście (∅) – pozwala sprawdzić, które zmysły sieć naprawdę potrzebuje.
–
Zapisz / wczytaj dinozaura iZapisuje metodę i ustawienia; z zaznaczeniem także stan wytrenowany, aby później wczytać gotowego dinozaura i trenować go dalej.
Z zaznaczeniem zapisywany jest też mózg – gotowego dinozaura można później wczytać i trenować dalej (także w drugim trybie).
Tu zobaczysz na żywo, czego uczy się sieć.
Postęp uczenia
Nauczone wagi iTo mózg dinozaura – ta sama sieć co w laboratorium, tylko dla 6 wejść → warstwa ukryta → 2 wyjścia. Zielony = wzmacniające, czerwony = hamujące połączenie; grubość = siła.