MLP
Jak działa
Przejście w przód: dane wejściowe przechodzą kolejno przez warstwy; w każdej warstwie liczona jest ważona suma (mnożenie macierzy wag przez wektor wejściowy) z dodanym biasem, a wynik przepuszczany przez funkcję aktywacji. Obliczenie straty: wyjście sieci porównywane jest z wartością docelową za pomocą funkcji kosztu. Propagacja wsteczna: gradienty straty względem wszystkich wag wyznaczane są od warstwy wyjściowej do wejściowej za pomocą reguły łańcuchowej. Aktualizacja wag: optymalizator (np. SGD, Adam) koryguje wagi w kierunku malejącego gradientu. Cykl powtarza się dla kolejnych batchy danych aż do zbieżności.
Rozwiązany problem
Pojedynczy perceptron Rosenblatta potrafił rozdzielać jedynie klasy liniowo separowalne i nie radził sobie z prostymi problemami jak XOR. MLP rozwiązuje to przez dodanie warstw ukrytych z nieliniowymi aktywacjami, co pozwala modelować złożone, nieliniowe zależności. Brakowało jednak skutecznej metody trenowania takich sieci — dostarczyła jej propagacja wsteczna, umożliwiając efektywne uczenie sieci wielowarstwowych od końca do końca.
Komponenty
Przyjmuje wektor cech wejściowych; liczba neuronów odpowiada wymiarowości danych wejściowych.
Warstwa gęsta obliczająca ważoną sumę wejść z biasem; parametryzowana macierzą wag. MLP ma jedną lub wiele takich warstw.
Nieliniowość stosowana po transformacji liniowej (sigmoid, tanh, ReLU i warianty), bez której sieć byłaby równoważna pojedynczej transformacji liniowej.
Oficjalna
Ostatnia warstwa produkująca predykcję; aktywacja zależy od zadania (softmax dla klasyfikacji wieloklasowej, liniowa dla regresji).
Implementacja
Głębokie MLP z saturującymi aktywacjami (sigmoid, tanh) tracą sygnał gradientu, co blokuje trening.
Duża liczba parametrów warstw w pełni połączonych łatwo dopasowuje się do szumu w danych treningowych.
MLP nie uwzględnia struktury przestrzennej ani czasowej danych (obrazy, sekwencje) i wymaga ogromnej liczby parametrów.
Niestandaryzowane cechy wejściowe spowalniają lub destabilizują trening gradientowy.
Ewolucja
Frank Rosenblatt wprowadza perceptron — jednowarstwowy klasyfikator liniowy, protoplasta MLP.
Książka „Perceptrons” pokazuje, że pojedynczy perceptron nie rozwiązuje problemu XOR — przyczynek do pierwszej zimy AI.
Rumelhart, Hinton i Williams popularyzują propagację wsteczną, umożliwiając praktyczny trening MLP.
Cybenko (1989), a następnie Hornik (1991), dowodzą, że MLP z jedną warstwą ukrytą może aproksymować dowolną funkcję ciągłą.
Funkcja aktywacji ReLU (Glorot i in., 2011) łagodzi problem zanikających gradientów i ułatwia trening głębokich sieci.
Architektura oparta wyłącznie na MLP (Tolstikhin i in.) osiąga konkurencyjne wyniki w widzeniu komputerowym, odnawiając zainteresowanie warstwami w pełni połączonymi.
Hiperparametry (konfigurowalne osie)
Liczba warstw ukrytych; większa głębokość zwiększa pojemność reprezentacyjną, ale utrudnia trening (zanikające gradienty).
Liczba neuronów w warstwie ukrytej; wpływa na pojemność modelu i kwadratowo na liczbę parametrów.
Wybór nieliniowości (ReLU, GELU, tanh, sigmoid) wpływa na dynamikę treningu i przepływ gradientów.
Złożoność obliczeniowa
Złożoność czasowa: O(Σₗ nₗ₋₁·nₗ). Złożoność przestrzenna: O(Σₗ nₗ₋₁·nₗ).
Wąskie gardło obliczeniowe
Dominującym kosztem są gęste mnożenia macierzy wag; liczba parametrów i obliczeń rośnie kwadratowo z szerokością warstw.
Paradygmat wykonania
Wszystkie neurony i wszystkie połączenia są aktywne dla każdego wejścia — brak warunkowego routingu czy rzadkiej aktywacji.
Równoległość
Obliczenia wewnątrz warstwy (mnożenie macierzowe) i po przykładach w batchu są w pełni równoległe, ale warstwy muszą być liczone sekwencyjnie (wyjście jednej jest wejściem następnej).
Wymagania sprzętowe
Gęste mnożenia macierzowe idealnie mapują się na rdzenie tensorowe GPU.
Jednostki TPU są zoptymalizowane pod operacje macierzowe typowe dla warstw gęstych.
Mniejsze MLP działają sprawnie na CPU z instrukcjami wektorowymi AVX.