Sieć neuronowa to model matematyczny, który zamienia dane wejściowe na wyjściowe, przepuszczając liczby przez warstwy prostych operacji. Każda warstwa bierze poprzednie wartości, tworzy sumy ważone, dodaje biasy, stosuje nieliniową funkcję aktywacji i przekazuje wynik dalej.
Ten opis brzmi abstrakcyjnie, ale główna idea jest prosta: sieć uczy się wielu regulowanych wag, tak aby użyteczne wzorce w danych wejściowych prowadziły do użytecznych przewidywań na wyjściu.
Czym jest sieć neuronowa
Dla jednego neuronu z wejściami podstawowe obliczenie ma postać
a następnie stosuje się aktywację:
Tutaj to wagi, to bias, a to funkcja aktywacji, taka jak ReLU, sigmoida lub tanh.
Pełna jednokierunkowa sieć neuronowa powtarza ten schemat w kolejnych warstwach. W zwartej postaci jedną warstwę często zapisuje się jako
gdzie jest wyjściem poprzedniej warstwy.
Intuicja, która zwykle pomaga to zrozumieć
Każdy neuron zadaje ważone pytanie o dane wejściowe, które widzi. Duże dodatnie wagi sprawiają, że niektóre cechy mają większe znaczenie. Ujemne wagi mogą działać przeciwko danemu wzorcowi. Bias przesuwa próg. Funkcja aktywacji decyduje potem, jak silnie neuron powinien zareagować.
Układanie warstw pozwala sieci budować cechy etapami. Wczesne warstwy wykrywają proste wzorce. Późniejsze łączą je w bardziej użyteczne sygnały wewnętrzne dla końcowego zadania.
Dlatego sieci neuronowe to coś więcej niż „wiele wzorów naraz”. Są złożeniami prostych funkcji, a to właśnie złożenie daje im elastyczność.
Jeden przykład krok po kroku
Rozważ małą sieć z dwoma wejściami, jedną warstwą ukrytą i jednym wyjściem. Niech dane wejściowe będą równe
Załóżmy, że warstwa ukryta ma dwa neurony i używa ReLU, gdzie
Przyjmijmy następujące obliczenia w warstwie ukrytej:
Teraz przekaż te wartości ukryte do neuronu wyjściowego:
Jeśli reguła brzmi „przewiduj klasę 1, gdy ”, to to wejście zostaje sklasyfikowane jako klasa 1.
Ważne nie są konkretne liczby. Ważna jest struktura:
- weź dane wejściowe
- utwórz sumy ważone
- zastosuj nieliniowe aktywacje
- powtórz
- odczytaj końcowy wynik
To właśnie sieć neuronowa wykonująca przejście w przód.
Jak uczy się sieć neuronowa
Korzystanie z sieci to jeden problem. Jej trenowanie to inny.
W standardowym uczeniu nadzorowanym sieć najpierw tworzy przewidywanie. Następnie funkcja straty mierzy, jak daleko to przewidywanie jest od wartości docelowej. Uczenie oparte na gradientach oblicza, jak strata zmienia się względem każdej wagi i każdego biasu, a potem aktualizuje je tak, by zmniejszyć stratę.
We współczesnej praktyce zwykle oznacza to wsteczną propagację plus spadek gradientowy albo pokrewny optymalizator. Taki układ opiera się na modelu i funkcji straty, które są różniczkowalne lub przynajmniej odcinkowo różniczkowalne na tyle, by metody gradientowe mogły działać.
Krótka wersja wygląda tak:
Na wielu przykładach wagi przesuwają się w stronę wzorców, które pomagają w zadaniu.
Częste błędy
Myślenie, że więcej warstw automatycznie daje lepsze wyniki
Tak nie jest. Więcej warstw zwiększa pojemność modelu, ale jednocześnie stawia większe wymagania optymalizacji, danym i kontroli nad przeuczeniem.
Zapominanie, dlaczego nieliniowość ma znaczenie
Jeśli każda warstwa jest tylko liniowa, cała sieć nadal pozostaje jedną mapą liniową. To funkcje aktywacji pozwalają głębokim sieciom reprezentować bardziej złożone zależności.
Traktowanie wyjścia jako gwarantowanej pewności
Wyjście sieci jest użyteczne tylko na tyle, na ile użyteczne są model, dane i sposób treningu, które za nim stoją. Wysoki wynik to nie to samo co dowód.
Ignorowanie reprezentacji danych wejściowych
Sieci nie uczą się z surowego znaczenia. Uczą się z reprezentacji numerycznej, którą dostają. Jeśli dane wejściowe są słabe, niespójne albo brakuje im ważnej struktury, działanie sieci zwykle na tym cierpi.
Kiedy używa się sieci neuronowych
Sieci neuronowe stosuje się wtedy, gdy zależność między wejściem a wyjściem jest na tyle złożona, że ręcznie zapisane reguły są kruche albo niepełne. Typowe zastosowania to rozpoznawanie obrazów, mowy, modelowanie języka, systemy rekomendacyjne i niektóre zadania prognostyczne.
Nie są one automatycznie najlepszym wyborem dla każdego problemu. Na małych, uporządkowanych zbiorach danych prostsze modele mogą być łatwiejsze do trenowania, łatwiejsze do interpretacji, a czasem równie skuteczne.
Dobry model myślowy
Myśl o sieci neuronowej jak o warstwowej funkcji z wieloma regulowanymi pokrętłami. Przejście w przód zamienia jedno wejście w jedno wyjście. Trening zmienia te pokrętła tak, aby przyszłe wyjścia były bardziej użyteczne dla danego zadania.
To najprostszy sposób, by utrzymać obie idee naraz: sieci neuronowe obliczają przez składanie funkcji i uczą się przez dostrajanie parametrów w celu zmniejszenia błędu.
Wypróbuj własną wersję
Zachowaj tę samą małą sieć, ale zmień dane wejściowe z na . Oblicz ponownie , , , oraz końcowy wynik . Następnie zmień jedną wagę i zobacz, która część wyjścia się poruszy. To małe ćwiczenie sprawia, że idea przejścia w przód staje się dużo bardziej konkretna niż samo zapamiętywanie definicji.
Potrzebujesz pomocy z zadaniem?
Prześlij pytanie i otrzymaj zweryfikowane rozwiązanie krok po kroku w kilka sekund.
Otwórz GPAI Solver →