Perceptron a algorytm gradientowy

0

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)?

0

SDG to nie wiem, ale SGD tak.

0

zależy od funkcji aktywacji, w SGD musi być różniczkowalna

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1