Perceptron a algorytm gradientowy

Perceptron a algorytm gradientowy
M0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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)?

TS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 865
0

SDG to nie wiem, ale SGD tak.

  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 158
0

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

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
piotrpo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3303
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.

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.