Od reguły Perceptron do zejścia gradientu: Czym różnią się Perceptrony z funkcją aktywacji sigmoidalnej od regresji logistycznej?

21

Zasadniczo moje pytanie brzmi: w perceptronach wielowarstwowych perceptrony są używane z funkcją aktywacji sigmoidalnej. Tak więc w regule aktualizacji jest obliczany jakoy^

y^=11+exp(wTxi)

Czym zatem ten „sigmoidalny” Perceptron różni się od regresji logistycznej?

Powiedziałbym, że jednowarstwowy sigmoidalny perceptron jest równoważny regresji logistycznej w tym sensie, że obaj używają w regule aktualizacji. Również oba zwracają w prognozie. Jednak w wielowarstwowych perceptronach funkcja aktywacji sigmoidalnej jest używana do zwracania prawdopodobieństwa, a nie sygnału włączenia i wyłączenia w przeciwieństwie do regresji logistycznej i perceptronu jednowarstwowego. znak( y =1y^=11+exp(wTxi)sign(y^=11+exp(wTxi))

Myślę, że użycie terminu „Perceptron” może być nieco niejednoznaczne, dlatego przedstawię nieco tła w oparciu o moje obecne rozumienie perceptronów jednowarstwowych:

Klasyczna reguła perceptronowa

Po pierwsze, klasyczny perceptron F. Rosenblatta, w którym mamy funkcję krokową:

Δwre=η(yja-yja^)xjareyja,yja^{-1,1}

zaktualizować wagi

wk: =wk+Δwk(k{1,...,re})

Więc y^ jest obliczany jako

y^=znak(wT.xja)=znak(w0+w1xja1+...+wrexjare)


Spadek gradientu

Korzystając z opadania gradientu, optymalizujemy (minimalizujemy) funkcję kosztów

jot(w)=ja12)(yja-yja^)2)yja,yja^R

gdzie mamy „rzeczywiste” liczby, więc widzę to w zasadzie analogiczne do regresji liniowej z tą różnicą, że nasze wyniki klasyfikacji są progowe.

W tym przypadku robimy krok w kierunku ujemnego gradientu, gdy aktualizujemy wagi

Δwk=-ηjotwk=-ηja(yja-yja^)(-xjak)=ηja(yja-yja^)xjak

Ale tutaj mamy zamiast y =y^=wT.xjay^=znak(wT.xja)

wk: =wk+Δwk(k{1,...,re})

Ponadto obliczamy sumę błędów kwadratowych dla pełnego przejścia przez cały zestaw danych treningowych (w trybie uczenia wsadowego) w przeciwieństwie do klasycznej reguły perceptronów, która aktualizuje wagi wraz z nadejściem nowych próbek treningowych (analogicznie do stochastycznego spadku gradientu - online uczenie się).


Funkcja aktywacji sigmoidalnej

Oto moje pytanie:

W wielowarstwowych perceptronach perceptrony są używane z funkcją aktywacji sigmoidalnej. Tak więc w regule aktualizacji jest obliczany jakoy^

y^=11+exp(-wT.xja)

Czym zatem ten „sigmoidalny” Perceptron różni się od regresji logistycznej?


źródło
4
Zadziwiające, to pytanie samo w sobie pozwoliło mi zagęścić moje uczenie maszynowe i podstawy sieci neuronowej!
varun

Odpowiedzi:

4

Korzystając z opadania gradientu, optymalizujemy (minimalizujemy) funkcję kosztów

jot(w)=ja12)(yja-yja^)2)yja,yja^R

Jeśli zminimalizujesz średni błąd kwadratu, różni się on od regresji logistycznej. Regresja logistyczna jest zwykle związana z utratą entropii krzyżowej, oto strona wprowadzająca z biblioteki scikit-learn .


(Zakładam, że perceptrony wielowarstwowe to to samo, co nazywane sieciami neuronowymi).

Jeśli zastosowałeś utratę entropii krzyżowej (z regularyzacją) dla jednowarstwowej sieci neuronowej, to będzie to ten sam model (model log-liniowy) co regresja logistyczna. Jeśli zamiast tego używasz sieci wielowarstwowej, można ją traktować jako regresję logistyczną z parametrycznymi nieliniowymi funkcjami podstawowymi.


Jednak w wielowarstwowych perceptronach funkcja aktywacji sigmoidalnej jest używana do zwracania prawdopodobieństwa, a nie sygnału włączenia i wyłączenia w przeciwieństwie do regresji logistycznej i perceptronu jednowarstwowego.

Wynik zarówno regresji logistycznej, jak i sieci neuronowych z funkcją aktywacji sigmoidalnej można interpretować jako prawdopodobieństwa. Ponieważ utrata entropii krzyżowej jest w rzeczywistości prawdopodobieństwem ujemnej logi zdefiniowanym przez rozkład Bernoulliego.

dontloo
źródło
2

Ponieważ opadanie gradientu aktualizuje każdy parametr w taki sposób, że zmniejsza błąd wyjściowy, który musi być kontynuacją funkcji wszystkich parametrów. Aktywacji opartej na progu nie można rozróżnić, dlatego stosuje się aktywację sigmoidalną lub tanh.

Oto jednowarstwowy NN

rejot(w,b)reωkjot=rejot(w,b)rezkrezkreωkjot

rejot(w,b)rezk=(zak-yk)(zak(1-zak))

rezkreωkjot=xk

jot(w,b)=12)(yk-zak)2)

zak=sjasolm(zk)=sjasolm(W.kjotxk+bk)

jeśli funkcja aktywacyjna byłaby podstawową funkcją krokową (progową), pochodna wrt byłaby .jotzk

tutaj jest link, który to ogólnie wyjaśnia.

Edycja: Może źle zrozumiałem, co masz na myśli przez perceptron. Jeśli się nie mylę, perceptron jest ważoną sumą danych wejściowych. Jeśli zmienisz progowość za pomocą funkcji logistycznej, zmieni się ona w regresję logistyczną. Wielowarstwowe NN z sigmoidalnymi (logistycznymi) funkcjami aktywacyjnymi to kaskadowe warstwy złożone z regresji logistycznych.

yasin.yazici
źródło
3
To nie odpowiada na pytanie.
Neil G
Dzięki za napisanie tego miłego komentarza, ale nie o to prosiłem. Moje pytanie nie brzmiało „dlaczego opadanie gradientu”, ale „co sprawia, że ​​perceptron z funkcją aktywacji sigmoidalnej różni się od regresji logistycznej”
y=W.T.X
1
y=wjotT.xjotja
η(y-sjasoln(wT.xja))xη(y-wT.xja)xja
2

Intuicyjnie myślę o perceptronie wielowarstwowym jako o obliczaniu nieliniowej transformacji na moich cechach wejściowych, a następnie zasilaniu tych transformowanych zmiennych w regresję logistyczną.

βjaXjaβjaXjotβjotX

Nie wiem o tobie, ale na moich kursach modelarskich i badaniach próbowałem wszelkiego rodzaju rozsądnych i głupich transformacji cech wejściowych, aby poprawić ich znaczenie i ogólne przewidywanie modelu. Wyrównywanie rzeczy, przyjmowanie kłód, łączenie dwóch w jedną stawkę itp. Nie miałem wstydu, ale miałem ograniczoną cierpliwość.

Xβja

Dan Van Boxel
źródło