ML Atlas

Kurs · 12 lekcji

Kurs: sieci neuronowe od środka

Po kursie rozumiesz każdy klocek transformera i umiesz przewidzieć, co zepsuje trening sieci. Na koniec projekt: własna sieć na cyfrach, sprawdzona uczciwie na ukrytym teście. W każdej lekcji najpierw przewidujesz wynik, potem sprawdzasz go w eksperymencie z celem do osiągnięcia.

Zacznij lekcję 1 Kurs ML od zera

Dla osób po kursie ML (albo z tą samą wiedzą), które chcą zrozumieć, dlaczego sieć się uczy, a nie tylko wywołać gotową funkcję. Kurs nie uczy PyTorcha ani TensorFlow: warstwa „W kodzie” to numpy.

Czy jesteś gotowy?

Pięć pytań o to, czego ten kurs potrzebuje z kursu ML. Przy błędzie albo „Nie wiem” zobaczysz lekcję do powtórki. Nic się nie zapisuje.

1. Spadek gradientu z krokiem uczenia η dużo za dużym. Co zwykle dzieje się ze stratą?
Pokaż odpowiedź

Odpowiedź: Przeskakuje minimum i rośnie z kroku na krok

Za duży krok przeskakuje dno straty, i to coraz dalej, więc strata rośnie zamiast spadać. Sieć uczy się tym samym spadkiem gradientu.

Powtórz: lekcja 1.6 „Spadek gradientu: nauka małymi krokami” w kursie ML

2. Regresja logistyczna daje dla przykładu wynik 0,8. Co on znaczy?
Pokaż odpowiedź

Odpowiedź: Model ocenia na 80%, że to klasa pozytywna

Regresja logistyczna zwraca prawdopodobieństwo klasy pozytywnej, a decyzję daje dopiero próg, zwykle 0,5. Neuron z sigmoidą liczy to samo.

Powtórz: lekcja 2.1 „Klasyfikacja: rysowanie granicy” w kursie ML

3. Model ma 99% trafności na treningu i 70% na walidacji. Co to najpewniej znaczy?
Pokaż odpowiedź

Odpowiedź: Model się przeuczył: zapamiętał trening

Duża luka między treningiem a walidacją to znak przeuczenia: model dopasował się do szczegółów treningu, które nie powtarzają się w nowych danych.

Powtórz: lekcja 3.1 „Przeuczenie: gdy model uczy się na pamięć” w kursie ML

4. Po co zbiór walidacyjny, skoro na końcu i tak jest zbiór testowy?
Pokaż odpowiedź

Odpowiedź: Żeby wybierać ustawienia bez zaglądania w test

Ustawienia wybrane na teście dopasowują się do testu, a wtedy test przestaje uczciwie mierzyć nowe dane. Walidacja służy do wyboru, test do jednej oceny na końcu.

Powtórz: lekcja 3.2 „Walidacja i walidacja krzyżowa” w kursie ML

5. Ile wynosi macierz [[2, 1], [0, 3]] razy wektor [1, 2]?
Pokaż odpowiedź

Odpowiedź: [4, 6]

Każdy wiersz macierzy mnożysz przez wektor i sumujesz: 2·1 + 1·2 = 4 oraz 0·1 + 3·2 = 6. Tak warstwa sieci liczy swoje sumy ważone.

Powtórz: hasło „Macierze jako przekształcenia” w Atlasie

Lekcje

Cztery moduły, od jednego neuronu do transformera. Na końcu projekt, test końcowy i karta ukończenia kursu.

Moduł 1 · Neuron i sieć

Co sieć liczy, zanim zacznie się uczyć?

Pomiń, jeśli umiesz: test modułu 1 · 8 zadań

Zadania o pierwszy krok. Co najmniej 80% dobrych odpowiedzi to moduł zaliczony testem, a lekcje zostają jako materiał. Przy błędzie albo „Nie wiem” zobaczysz lekcję do powtórki. Zaliczenie zapamięta tylko ta przeglądarka.

1. Perceptron uczony na versicolor i virginice po wielu epokach wciąż robi 4–11 poprawek na epokę. Od czego zaczniesz?
Pokaż odpowiedź

Odpowiedź: Od wykresu dwóch cech: czy jedna prosta w ogóle oddziela te gatunki

Perceptron kończy poprawki tylko wtedy, gdy klasy da się oddzielić jedną prostą. Versicolor i virginica się nakładają, więc dłuższy trening nic nie da.

Powtórz: lekcja 1 „Neuron: jedna prosta”

2. Sieć 64 → 32 → 10 rozpoznaje ok. 95% cyfr testowych. Chcesz wiedzieć, z czym ma kłopot. Pierwszy krok?
Pokaż odpowiedź

Odpowiedź: Macierz pomyłek: które cyfry myli z którymi

Macierz pomyłek pokazuje, które pary cyfr się mylą. Dopiero wtedy wiesz, co poprawiać.

Powtórz: lekcja 2 „Sieć wielowarstwowa na cyfrach”

3. Na irysach sieć z 32 neuronami ukrytymi ma 70,7% na teście, a z 2 neuronami 81,3%. Co sprawdzasz najpierw?
Pokaż odpowiedź

Odpowiedź: Trafność na treningu: czy duża sieć nie zapamiętała danych

Więcej neuronów to więcej swobody, także do zapamiętania treningu. Luka między treningiem a testem to pierwszy znak przeuczenia.

Powtórz: lekcja 2 „Sieć wielowarstwowa na cyfrach”

4. Sieć z kilkoma warstwami, ale bez funkcji aktywacji, rysuje na dwóch księżycach prostą granicę. Co zmieniasz najpierw?
Pokaż odpowiedź

Odpowiedź: Wstawiasz nieliniowość, np. ReLU, między warstwy

Złożenie przekształceń liniowych jest liniowe, więc bez aktywacji każda liczba warstw daje jedną prostą.

Powtórz: lekcja 3 „Funkcje aktywacji: po co zginać”

5. Sieć 2 → 8 → 2 z sigmoidą kończy 1000 epok na dwóch księżycach ze stratą 0,269 przy kroku 0,5. Sigmoidę chcesz zostawić. Co zmieniasz najpierw?
Pokaż odpowiedź

Odpowiedź: Krok na większy, bo sigmoida skraca kroki

Pochodna sigmoidy nie przekracza 0,25, więc ten sam krok przesuwa wagi słabiej. W labie krok 8 daje sigmoidzie stratę 0,036, tyle co ReLU przy swoim najlepszym kroku (0,035). Mniejszy krok jeszcze spowalnia naukę, a trafność zmienia się skokami, więc jej gradient prawie wszędzie wynosi zero.

Powtórz: lekcja 3 „Funkcje aktywacji: po co zginać”

6. Model daje prawdziwej klasie prawdopodobieństwo 0,01. Pierwszy krok do straty entropii krzyżowej tego przykładu?
Pokaż odpowiedź

Odpowiedź: Policzyć −ln 0,01 ≈ 4,6

Entropia krzyżowa to −ln prawdopodobieństwa prawdziwej klasy. Pewna siebie pomyłka kosztuje dużo: przy 0,4 strata to tylko 0,92.

Powtórz: lekcja 4 „Wyjście i strata: softmax i entropia krzyżowa”

7. Chcesz uczyć klasyfikator spadkiem gradientu. Co minimalizujesz?
Pokaż odpowiedź

Odpowiedź: Entropię krzyżową

Trafność zmienia się skokami, więc jej gradient prawie wszędzie wynosi zero. Entropia krzyżowa daje gradient zawsze.

Powtórz: lekcja 4 „Wyjście i strata: softmax i entropia krzyżowa”

8. Sieć ma 3 klasy i wyniki z = [2, 1, 0]. Pierwszy krok do prawdopodobieństw?
Pokaż odpowiedź

Odpowiedź: Softmax: e do potęgi z każdej klasy przez sumę takich potęg

Softmax daje tu ok. 0,67, 0,24 i 0,09: liczby dodatnie, które sumują się do 1. Dzielenie przez sumę wyników psuje się przy wynikach ujemnych.

Powtórz: lekcja 4 „Wyjście i strata: softmax i entropia krzyżowa”

  1. 1Neuron: jedna prostaNeuron liczy ważoną sumę pomiarów, dodaje bias i patrzy na znak wyniku, więc rysuje jedną prostą. Lekcja pokazuje, kiedy taka prosta wystarcza, a kiedy nie.12 min · Interaktywne
  2. 2Sieć wielowarstwowa na cyfrachJeden neuron rysuje jedną prostą. Warstwa ukryta składa wiele takich prostych w jedną decyzję, a macierz pomyłek pokazuje, gdzie ta decyzja wciąż zawodzi.14 min · Interaktywne
  3. 3Funkcje aktywacji: po co zginaćBez funkcji aktywacji dziesięć warstw liczy to samo co jedna. Lekcja pokazuje, jak aktywacja zgina granicę i czemu przy tym samym kroku ReLU wyprzedza sigmoidę.12 min · Interaktywne
  4. 4Wyjście i strata: softmax i entropia krzyżowaSoftmax zamienia wyniki sieci w prawdopodobieństwa, a entropia krzyżowa mierzy, jak bardzo się mylą. Czemu sieć uczy się na niej, a nie na trafności?13 min · Interaktywne

Moduł 2 · Jak sieć się uczy

Skąd sieć wie, w którą stronę zmienić miliony wag, i co psuje ten ruch?

Pomiń, jeśli umiesz: test modułu 2 · 7 zadań

Zadania o pierwszy krok. Co najmniej 80% dobrych odpowiedzi to moduł zaliczony testem, a lekcje zostają jako materiał. Przy błędzie albo „Nie wiem” zobaczysz lekcję do powtórki. Zaliczenie zapamięta tylko ta przeglądarka.

1. Napisałeś własną propagację wsteczną. Jak sprawdzisz, czy gradient jest dobry?
Pokaż odpowiedź

Odpowiedź: Różnicą skończoną: (L(w + h) − L(w − h)) / 2h dla małego h

Różnica skończona przybliża pochodną bez reguły łańcuchowej. W lekcji 5 obie dają −0,255.

Powtórz: lekcja 5 „Propagacja wsteczna krok po kroku”

2. Gradient ∂L/∂w₁ = −0,255. W którą stronę przesunie w₁ krok spadku gradientu?
Pokaż odpowiedź

Odpowiedź: W górę, bo krok idzie przeciw gradientowi

Krok to w₁ − η·∂L/∂w₁ = w₁ + η·0,255, więc w₁ rośnie, a strata spada.

Powtórz: lekcja 5 „Propagacja wsteczna krok po kroku”

3. Strata rośnie z kroku na krok, a po kilku epokach wychodzi NaN. Pierwszy krok?
Pokaż odpowiedź

Odpowiedź: Zmniejszyć krok uczenia

Za duży krok przeskakuje dno straty, i to coraz dalej. Mniejszy krok to pierwsza rzecz do sprawdzenia.

Powtórz: lekcja 6 „Krok, paczka i optymalizator”

4. Adam przy kroku 0,5 trafia na cyfrach poniżej 25%. Co zmieniasz najpierw, żeby przekroczyć 90%?
Pokaż odpowiedź

Odpowiedź: Krok: Adam przekracza 90% przy 0,001, 0,01 i 0,1

Adam wybacza więcej przy wyborze kroku, ale nie wszystko. Za duży krok wybija wagi z doliny także jemu: dwa razy więcej epok wciąż daje poniżej 25%. SGD z momentem przy kroku 0,5 też przestrzeliwuje i zostaje daleko poniżej 90%.

Powtórz: lekcja 6 „Krok, paczka i optymalizator”

5. Uczysz na 499 cyfrach paczkami po 1 przykładzie. Ile kroków to 5 epok?
Pokaż odpowiedź

Odpowiedź: 2495

Jedna epoka to 499 kroków po 1 przykładzie, więc 5 epok to 2495 kroków. Cały zbiór naraz dałby 5 kroków.

Powtórz: lekcja 6 „Krok, paczka i optymalizator”

6. Sieć z 10 warstwami tanh stoi na poziomie zgadywania. Co sprawdzasz najpierw?
Pokaż odpowiedź

Odpowiedź: Normy gradientu każdej warstwy na pierwszej paczce

Spadek o rzędy wielkości w stronę wejścia to zanikający gradient. W labie warstwa 1 ma tuż po starcie gradient 1,4·10⁻³.

Powtórz: lekcja 7 „Głęboka sieć: gdy sygnał nie dociera”

7. Do pierwszej warstwy dociera mniej niż 1% sygnału wstecznego. Co zmieniasz najpierw?
Pokaż odpowiedź

Odpowiedź: Dodajesz skróty h + F(h) albo ReLU z inicjalizacją He

Skrót dodaje do pochodnej jedynkę, więc gradient ma prostą drogę do wejścia. W labie skróty podnoszą gradient warstwy 1 ponad 1000 razy.

Powtórz: lekcja 7 „Głęboka sieć: gdy sygnał nie dociera”

  1. 5Propagacja wsteczna krok po krokuSieć przesuwa wagi tam, gdzie wskazuje gradient. Liczymy go dla jednego neuronu regułą łańcuchową, węzeł po węźle, i sprawdzamy bez wzorów.13 min · Interaktywne
  2. 6Krok, paczka i optymalizatorGradient mówi, w którą stronę iść. Jak daleko, na ilu przykładach go liczyć i jak łączyć kolejne kroki, decydują krok uczenia, paczka i optymalizator.14 min · Interaktywne
  3. 7Głęboka sieć: gdy sygnał nie docieraWięcej warstw nie znaczy mocniejsza sieć. Bez właściwej budowy sygnał błędu gaśnie, zanim dotrze do pierwszych warstw. Cztery lekarstwa naprawiają to od środka.14 min · Interaktywne

Moduł 3 · Sieć, która uogólnia

Czy sieć nauczyła się zadania, czy skrótu?

Pomiń, jeśli umiesz: test modułu 3 · 6 zadań

Zadania o pierwszy krok. Co najmniej 80% dobrych odpowiedzi to moduł zaliczony testem, a lekcje zostają jako materiał. Przy błędzie albo „Nie wiem” zobaczysz lekcję do powtórki. Zaliczenie zapamięta tylko ta przeglądarka.

1. Sieć ma 100% na treningu i 93,3% na teście. Chcesz dobrać dropout. Na czym wybierzesz p?
Pokaż odpowiedź

Odpowiedź: Na wyniku walidacji

Luka może zmaleć, bo spadły obie trafności, a test użyty do strojenia przestaje uczciwie mierzyć nowe dane. W labie p = 0,8 ma najmniejszą lukę i gorszy test.

Powtórz: lekcja 8 „Przeuczenie w sieciach: dropout i wczesne zatrzymanie”

2. Dropout p = 0,8 zmniejszył lukę z 6,7 do 3,7 pkt proc. Co sprawdzasz najpierw?
Pokaż odpowiedź

Odpowiedź: Czy wynik na walidacji wzrósł, czy spadły obie trafności

W labie test spadł z 93,3% do 90,3%: luka zmalała, bo trening spadł bardziej.

Powtórz: lekcja 8 „Przeuczenie w sieciach: dropout i wczesne zatrzymanie”

3. Strata walidacyjna od pewnej epoki rośnie, a treningowa wciąż spada. Pierwszy krok?
Pokaż odpowiedź

Odpowiedź: Wczesne zatrzymanie: wrócić do wag z epoki z najniższą stratą walidacyjną

Rosnąca strata walidacyjna znaczy, że sieć zaczyna dopasowywać szum. Przy 20% błędnych etykiet 100 epok obniża test z 86,1% do 76,3%.

Powtórz: lekcja 8 „Przeuczenie w sieciach: dropout i wczesne zatrzymanie”

4. Sieć ma 97,5% na teście. Jak sprawdzisz, czy małe zmiany pikseli jej nie zmylą?
Pokaż odpowiedź

Odpowiedź: Atakiem w kierunku gradientu, np. FGSM, a nie tylko losowym szumem

Losowy szum o sile 2 poziomów zostawia 95,0%, atak tej samej siły 41,8%. Szum nie sprawdza najgorszego kierunku.

Powtórz: lekcja 9 „Co sieć naprawdę widzi: skróty i ataki”

5. Model ma wysoką trafność na teście, ale wszystkie zdjęcia jednej klasy zrobiono jednym aparatem. Pierwszy krok?
Pokaż odpowiedź

Odpowiedź: Test na zdjęciach tej klasy z innych aparatów

Aparat może być skrótem, jak znak wodny w lekcji: model z 96,4% na teście z tą samą zależnością ma 93,0% bez znaku i 71,9%, gdy znak trafia na inne cyfry.

Powtórz: lekcja 9 „Co sieć naprawdę widzi: skróty i ataki”

6. Atak o sile 2 poziomów obniżył trafność do 41,8%, a szum tej samej siły tylko do 95,0%. Co z tego wynika?
Pokaż odpowiedź

Odpowiedź: Liczy się kierunek zmiany, nie jej wielkość

Oba przesuwają każdy piksel o tyle samo. Atak dokłada wszystkie zmiany w stronę błędu, szum w przypadkowe strony.

Powtórz: lekcja 9 „Co sieć naprawdę widzi: skróty i ataki”

  1. 8Przeuczenie w sieciach: dropout i wczesne zatrzymanieSieć zapamiętuje 299 cyfr treningowych bez błędu. Dropout i wczesne zatrzymanie mają to hamować. Ile dają i czemu mniejsza luka nie znaczy lepszej sieci?13 min · Interaktywne
  2. 9Co sieć naprawdę widzi: skróty i atakiWysoka trafność testowa nie dowodzi, że sieć nauczyła się zadania. Celowana drobna zmiana pikseli myli ją bardziej niż szum, a model chętnie uczy się skrótu.13 min · Interaktywne

Moduł 4 · Architektury: obrazy, sekwencje, uwaga

Jak budowa sieci wbudowuje wiedzę o danych?

Pomiń, jeśli umiesz: test modułu 4 · 8 zadań

Zadania o pierwszy krok. Co najmniej 80% dobrych odpowiedzi to moduł zaliczony testem, a lekcje zostają jako materiał. Przy błędzie albo „Nie wiem” zobaczysz lekcję do powtórki. Zaliczenie zapamięta tylko ta przeglądarka.

1. Sieć ma rozpoznawać cyfry w różnych miejscach obrazu, a MLP ma za dużo wag. Od czego zaczniesz?
Pokaż odpowiedź

Odpowiedź: Od warstwy splotowej: ten sam filtr 3×3 w każdym miejscu obrazu

Filtr ma te same wagi w każdym miejscu, więc 8 filtrów 3×3 to 80 liczb, a warstwa gęsta 64 → 32 ma 2080.

Powtórz: lekcja 10 „Konwolucja: ten sam filtr w każdym miejscu”

2. Sieć splotowa ma 97,2% na cyfrach testowych, a na tych samych cyfrach przesuniętych o 1 piksel 50,4%. Co z tego wynika?
Pokaż odpowiedź

Odpowiedź: Sam splot daje tylko część odporności na przesunięcie, bo warstwa gęsta na końcu ma wagę dla każdego miejsca mapy

Filtr przesuwa mapę cech razem z cyfrą, ale warstwa gęsta czyta każde miejsce mapy osobną wagą. MLP spada przy tym przesunięciu jeszcze niżej.

Powtórz: lekcja 10 „Konwolucja: ten sam filtr w każdym miejscu”

3. Chcesz wiedzieć, czy sieć rekurencyjna korzysta z dalekiego kontekstu. Pierwszy krok?
Pokaż odpowiedź

Odpowiedź: Sztuczne zadanie pamięci: zapamiętaj pierwszy symbol ciągu, reszta to szum

Sztuczne zadanie mówi wprost, jak daleko sięga pamięć. W labie, przy 200 krokach treningu zwykła RNN z 8 neuronami przy 20 symbolach zgaduje na każdym z pięciu startów wag, a GRU trafia w 100%.

Powtórz: lekcja 11 „Sekwencje: od pamięci RNN do uwagi”

4. Zwykła RNN z 8 neuronami w 200 krokach treningu nie pamięta pierwszego z 20 symboli. Co zmieniasz najpierw, żeby zadziałało na każdym starcie wag?
Pokaż odpowiedź

Odpowiedź: Komórkę na GRU albo LSTM

GRU w tych samych 200 krokach trafia w 100% na każdym z pięciu startów, bo jej bramka przepuszcza stan i gradient prawie bez zmian. Pięć razy dłuższy trening uczy RNN 20 symboli tylko na 2 z 5 startów. Dropout nie pomoże: RNN zgaduje także na ciągach takich jak treningowe, więc nie ma przeuczenia.

Powtórz: lekcja 11 „Sekwencje: od pamięci RNN do uwagi”

5. Słowo na końcu długiego zdania zależy od słowa na początku. Czym uwaga różni się tu od RNN?
Pokaż odpowiedź

Odpowiedź: Uwaga łączy te dwa słowa w jednym kroku

Każde słowo liczy wagę dla każdego innego wprost, więc sygnał nie przechodzi przez wiele mnożeń jak w RNN.

Powtórz: lekcja 11 „Sekwencje: od pamięci RNN do uwagi”

6. Budujesz model z samej uwagi, bez maski, jak w labie, który ma rozumieć kolejność słów. Czego nie może zabraknąć?
Pokaż odpowiedź

Odpowiedź: Kodowania pozycji dodanego do wektorów słów

Bez kodowania pozycji „uderzyło” wychodzi z bloku identyczne w zdaniach „auto uderzyło drzewo” i „drzewo uderzyło auto”, choć blok ma 2 głowy i softmax na wyjściu: uwaga bez maski widzi tylko zbiór słów.

Powtórz: lekcja 12 „Transformer: klocki, które już znasz”

7. Chcesz sprawdzić, czy model widzi kolejność słów. Którą parę zdań weźmiesz?
Pokaż odpowiedź

Odpowiedź: „auto uderzyło drzewo” i „drzewo uderzyło auto”

Para o psie ma inne słowa (pies i psa), więc blok rozróżnia ją nawet bez pozycji. Kolejność sprawdza tylko para z tymi samymi słowami.

Powtórz: lekcja 12 „Transformer: klocki, które już znasz”

8. Stos wielu bloków transformera nie chce się uczyć. Co sprawdzasz najpierw?
Pokaż odpowiedź

Odpowiedź: Czy każdy blok ma skrót wokół uwagi i wokół MLP

Skrót daje gradientowi prostą drogę przez wiele bloków, jak w sieci rezydualnej z lekcji 7. Bez niego sygnał słabnie w drodze do pierwszych bloków.

Powtórz: lekcja 12 „Transformer: klocki, które już znasz”

  1. 10Konwolucja: ten sam filtr w każdym miejscuJądro 3×3 sprawdza każde miejsce obrazu tymi samymi 9 wagami. Mapa cech, padding i współdzielenie wag: 80 liczb zamiast 2080, a na cyfrach 8×8 trafność podobna.14 min · Interaktywne
  2. 11Sekwencje: od pamięci RNN do uwagiRNN czyta po jednym symbolu i niesie pamięć w stanie. Sygnał błędu słabnie z każdym krokiem wstecz, GRU go przepuszcza, a uwaga patrzy wprost na każde słowo.15 min · Interaktywne
  3. 12Transformer: klocki, które już znaszBlok transformera to osadzenie z pozycją, uwaga, MLP, dwa skróty z normalizacją i softmax. Uwaga bez maski zna kolejność słów tylko z kodowania pozycji.15 min · Interaktywne
  4. Projekt: Twoja sieć na cyfrachProjekt końcowy kursu NN: ułóż z bloków sieć na cyfrach 8×8, wybierz ją na walidacji i wyślij na ukryty test. Ma dorównać regresji logistycznej.Projekt
  5. Test końcowy i karta kursuDwanaście nowych pytań, po jednym z każdej lekcji. Po teście i projekcie pobierzesz kartę ukończenia kursu.Zakończenie kursu