Lekcja 2.3
Sieci neuronowe i głębokie uczenie
Miliony neuronów w warstwach potrafią rozpoznać twarz, głos i sens zdania.
2.3Sieci neuronowe i głębokie uczenie
Pojedynczy neuron rysuje tylko proste granice. Ale gdy połączysz ich wiele w warstwy, dzieje się coś niezwykłego: sieć zaczyna rozpoznawać twarze, głos i sens zdań. Zobaczmy, jak to możliwe.
Każdy rozdział zaczyna się prosto. Chcesz więcej? Otwórz Zaawansowany, a w nim Ekspert.
Warstwa po warstwie
Sieć neuronowa to wiele neuronów ułożonych w warstwy. Każda warstwa dostaje wyniki poprzedniej i przetwarza je dalej.
Przy rozpoznawaniu zdjęcia pierwsze warstwy mogą wychwytywać krawędzie i plamy koloru, dalsze — kształty takie jak oko czy ucho, a ostatnie — całe obiekty: „to kot”.
Wyobraź to sobie tak
„Sieć jest jak zespół przygotowujący przedstawienie: jedni robią dekoracje, inni światło, a reżyser łączy wszystko w całość.”
Sieć składa się z warstwy wejściowej, warstw ukrytych i warstwy wyjściowej. Warstwy ukryte wytwarzają cechy pośrednie, których nikt nie zaprogramował — sieć sama je odkrywa. Ich znaczenie nie musi odpowiadać pojęciom znanym człowiekowi ani być przypisane do jednego neuronu.
Głębokie uczenie to po prostu sieci z wieloma warstwami. Im więcej warstw, tym bardziej złożone wzory sieć może składać z prostszych.
Częsty błąd
Im głębsza sieć, tym zawsze lepiej.
Jak jest naprawdę
Większa głębokość może pomóc, ale utrudnia trening i zwiększa koszty. Wynik zależy od zadania i danych.
Bez nieliniowych aktywacji złożenie wielu warstw liniowych pozostaje jednym przekształceniem liniowym — sama liczba warstw nie daje wtedy żadnej nowej mocy. To nieliniowość między warstwami pozwala sieci przybliżać złożone funkcje.
W głębokich sieciach równie ważne jak liczba parametrów są inicjalizacja wag, normalizacja i geometria optymalizacji. ResNet (He i in., 2015) wprowadził połączenia rezydualne: blok uczy się poprawki F(x), a wynikiem jest x + F(x). To ułatwiło trening sieci mających nawet setki warstw.
Jak sieć się uczy
Sieć uczy się podobnie jak pojedynczy neuron, tylko na wielką skalę. Zgaduje odpowiedź, sprawdza, jak bardzo się pomyliła, i poprawia miliony wag po troszeczku.
Ten cykl powtarza się miliardy razy. Każda poprawka jest maleńka, ale razem dają sieć, która trafia coraz częściej.
Najpierw propagacja w przód oblicza przewidywanie. Funkcja straty porównuje je z prawidłową odpowiedzią. Następnie propagacja wsteczna przechodzi przez sieć od końca i wyznacza gradienty — informację, w którą stronę i jak mocno zmienić każdą wagę. Na końcu optymalizator aktualizuje wagi.
Propagacja wsteczna i optymalizator to dwa różne etapy: pierwsza tylko liczy kierunki zmian, drugi decyduje, jak duży krok zrobić. Cały cykl powtarza się dla kolejnych porcji danych.
- 1Oblicz przewidywanie
- 2Zmierz stratę
- 3Wyznacz gradienty
- 4Zaktualizuj wagi
- 5Powtórz i sprawdź na teście
Propagacja wsteczna stosuje regułę łańcuchową różniczkowania do całej sieci, dzięki czemu gradient względem wszystkich parametrów liczy się kosztem porównywalnym z jednym przejściem w przód. Najprostszy krok to spadek gradientu: θ ← θ − η∇L.
W praktyce używa się ulepszonych optymalizatorów. Adam (Kingma i Ba, 2014) dobiera wielkość kroku osobno dla każdego parametru na podstawie historii gradientów. Trening na losowych porcjach danych (mini-batchach) przyspiesza obliczenia i pomaga uniknąć złych ustawień.
Zapis formalny
θ ← θ − η · ∇θ L
Różne sieci do różnych zadań
Nie ma jednej sieci do wszystkiego. Do zdjęć używa się sieci, które przyglądają się obrazowi małymi fragmentami. Do tekstu — sieci, które potrafią łączyć słowa odległe od siebie w zdaniu.
Najsłynniejszy dziś typ sieci to Transformer. To on napędza chatboty, o których porozmawiamy w następnej lekcji.
Sieci konwolucyjne (CNN) przesuwają po obrazie małe filtry, które wykrywają lokalne wzory, dlatego tak dobrze radzą sobie ze zdjęciami. Transformery łączą informacje z różnych miejsc sekwencji dzięki mechanizmowi uwagi — każde słowo może „spojrzeć” na każde inne.
Architekturę i wielkość sieci dobiera się do danych, budżetu obliczeń i wymagań niezawodności. Największa sieć nie zawsze jest najlepszym wyborem — zwłaszcza gdy ma działać szybko w telefonie.
Transformer (Vaswani i in., 2017) zastąpił rekurencję mechanizmem uwagi w tłumaczeniu maszynowym. Przyspieszył równoległy trening na długich sekwencjach, ale standardowa pełna uwaga ma koszt rosnący kwadratowo z długością tekstu — stąd liczne prace nad wydajniejszymi wariantami.
Ocena architektury powinna obejmować koszt inferencji, zużycie pamięci i odporność na zmiany danych, a nie wyłącznie wynik w jednym teście.
Zapamiętaj
- Sieci uczą się hierarchii cech: od prostych do złożonych.
- Transformer i mechanizm uwagi to serce dzisiejszych modeli.
- Rozmiar modelu mierzy się liczbą parametrów.
Sygnał płynie przez sieć
wybierz obraz → uruchom
Każda kolejna warstwa łączy proste cechy w bardziej złożone.
Ciekawostka
W 2024 roku badacze Anthropic znaleźli w modelu Claude cechę odpowiadającą mostowi Golden Gate. Gdy ją wzmocnili, model zaczął twierdzić, że… sam jest tym mostem.
W liczbach
175 mld
parametrów miał GPT-3 w 2020 roku
Źródło: Brown i in., OpenAI 2020
Ewaluacja · 3 pytania
Sprawdź się
Co oznacza „głębokie” w głębokim uczeniu?
Dokąd dalej
Następny przystanek: Jak działa model językowy?
Sieć neuronowa to warstwy prostych neuronów, które same odkrywają coraz bardziej złożone cechy. Uczy się w pętli: przewidywanie, błąd, gradienty, poprawka — powtórzone miliardy razy.
Najsłynniejsza dziś sieć, Transformer, potrafi pisać teksty. Jak dokładnie to robi? W ostatniej lekcji tego poziomu rozbierzemy model językowy na części: tokeny, przewidywanie i losowanie kolejnego słowa.