Witam.
Czy jest ktoś kto zna się na algorytmie Perceptronu i jest mi w stanie powiedzieć czy w algorytmie uczenia perceptronu można zastosować algorytm gradientowy (np. SDG)?
Witam.
Czy jest ktoś kto zna się na algorytmie Perceptronu i jest mi w stanie powiedzieć czy w algorytmie uczenia perceptronu można zastosować algorytm gradientowy (np. SDG)?
SDG to nie wiem, ale SGD tak.
zależy od funkcji aktywacji, w SGD musi być różniczkowalna
Można i nawet należy.
Sieć neuronowa (której szczególnym przypadkiem jest perceptron) dostaje wektor X na wejściu, i wektor Y oczekiwany. Po środku masz swój perceptron (zakładam jedną warstwę dla uproszczenia), który jest różniczkowalną funkcją matematyczną w całym zakresie. czyli sigmoid([a]*[X]) = [Y]. Po podstawieniu danych na wejście i wyjście generujesz sobie funkcję kosztu, mówiącą jak daleko jest wynik funkcji od wyniku oczekiwanego. Funkcja kosztu musi być różniczkowalna. Nauczenie perceptronu to znalezienie minimum funkcji kosztu dla aktualnych danych uczących i oczekiwanych wyników. W tym miejscu wchodzi do użycia gradient, czyli losujesz ileś tam miejsc od których zaczynasz optymalizację, liczysz wartości pochodnych w punkcie, mnożysz przez jakiś tam arbitralnie ustalony współczynnik szybkości uczenia i obliczasz nowe [a].
Jeżeli chcesz znać szczegóły, to dokładniej można się tego dowiedzieć z tego kursu.
Jako ciekawostkę dodam, że Tensorflow robi to wszystko za ciebie, opiera się właśnie na małych, ~różniczkowalnych funkcjach, które następnie składa w całość przy użyciu znanych wzorów na pochodne funkcji złożonych i na koniec leci gradientem.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.