Słownik AI

Sieć neuronowa z propagacją do przodu – ang. Feedforward Neural Network, FNN

Sieć neuronowa z propagacją do przodu (Feedforward NN)

Czym jest Sieć neuronowa z propagacją do przodu (Feedforward neural network)?

Sieć neuronowa z propagacją do przodu, określana skrótem FNN, to najprostszy, a zarazem fundamentowy typ sztucznej sieci neuronowej. Informacja przepływa w niej wyłącznie w jednym kierunku: od warstwy wejściowej, przez ewentualne warstwy ukryte, aż do warstwy wyjściowej, bez tworzenia pętli zwrotnych. Ten linearny przebieg obliczeń sprawia, że FNN stanowi punkt wyjścia do bardziej złożonych architektur wykorzystywanych współcześnie.

Krótki kontekst historyczny

Pierwsze inspiracje pojawiły się już w 1943 r., gdy Warren McCulloch i Walter Pitts opisali teoretyczny model neuronu logicznego. W 1958 r. Frank Rosenblatt z Cornell Aeronautical Laboratory zbudował perceptron, będący jednopoziomowym przykładem sieci z propagacją do przodu. Przełomowe dla praktycznego uczenia stało się jednak dopiero wprowadzenie algorytmu wstecznej propagacji błędu przez Davida Rumelharta, Geoffreya Hintona i Ronalda Williamsa w 1986 r., co pozwoliło efektywnie trenować wielowarstwowe FNN.

Jak dokładnie działa Sieć neuronowa z propagacją do przodu?

Podczas inferencji każdy neuron oblicza ważoną sumę swoich wejść, dodaje przesunięcie, a następnie przepuszcza wynik przez funkcję aktywacji. Proces rozpoczyna się od surowych danych wejściowych, które przekształcane są w przestrzeni kolejnych warstw, aż do uzyskania reprezentacji wyjściowej. Kluczowe jest to, że sygnał nigdy nie wraca do poprzednich warstw, dzięki czemu obliczenia są deterministyczne oraz łatwe do prześledzenia. Uczenie polega na minimalizacji funkcji kosztu poprzez iteracyjną aktualizację wag metodą spadku gradientu, dla którego gradient wyznaczany jest algorytmem backpropagation.

Zastosowania w praktyce

FNN spotyka się w zadaniach klasyfikacji obrazów o niskiej rozdzielczości, rozpoznawania cyfr (np. zbiór MNIST), podstawowej analizy tekstu oraz prognozowaniu prostych szeregów czasowych. Przykładowo, bank może wykorzystać wielowarstwową sieć z propagacją do przodu do oceny ryzyka kredytowego, gdzie wejściem są cechy klienta, a wyjściem prawdopodobieństwo terminowej spłaty.

Zalety i ograniczenia

Niezaprzeczalnym atutem FNN jest przejrzysta struktura oraz relatywnie niewielka złożoność obliczeniowa przy inferencji, co ułatwia wdrożenie na urządzeniach o ograniczonych zasobach. Model dobrze radzi sobie z danymi o ustalonej długości i niezależnych przykładach. Ograniczeniem pozostaje brak pamięci kontekstowej – sieć nie uwzględnia zależności czasowych czy sekwencyjnych, dlatego przy analizie tekstu czy sygnałów czasowych ustępuje sieciom rekurencyjnym lub transformerom. Ponadto rośnie ryzyko przeuczenia, gdy liczba parametrów przewyższa informację zawartą w zbiorze treningowym.

Na co uważać?

Kluczowe jest odpowiednie znormalizowanie danych wejściowych, ponieważ skrajnie różne skale mogą spowolnić uczenie. Warto także zadbać o właściwy dobór funkcji aktywacji – zbyt proste (np. liniowa) ograniczą zdolność aproksymacyjną, natomiast niektóre (sigmoidalne) przy dużych głębokościach grożą zanikiem gradientu. Rekomenduje się stosowanie regularizacji, takiej jak dropout lub normy wag, by ograniczyć nadmierne dopasowanie.

Subtelne porównanie z klasycznymi rozwiązaniami

W odróżnieniu od regresji logistycznej czy drzew decyzyjnych, FNN samodzielnie konstruuje reprezentacje pośrednie, co zmniejsza potrzebę ręcznego inżynierowania cech. Z drugiej strony, interpretacja poszczególnych wag bywa trudniejsza, a proces uczenia wymaga starannej kalibracji hipermetrów.

Dodatkowe źródła

Więcej informacji można znaleźć w artykule Feedforward neural network – Wikipedia, a także w klasycznej pracy Learning representations by back-propagating errors autorstwa Rumelharta, Hintona i Williamsa. Szczegółowe wprowadzenie matematyczne oferuje rozdział 6 książki Deep Learning Goodfellowa, Bengio i Courville’a. Osoby poszukujące przykładów kodu mogą skorzystać z repozytorium Keras – mnist_mlp.py.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *