Dlaczego w sieci neuronowej backpropagation musi być używana nieliniowa funkcja aktywacji?

Czytałem kilka rzeczy na temat sieci neuronowych i Rozumiem ogólną zasadę jednowarstwowej sieci neuronowej. Rozumiem potrzebę dodatkowych warstw, ale dlaczego używane są nieliniowe funkcje aktywacji?

Po tym pytaniu następuje to: Jaka jest pochodna funkcji aktywacyjnej używanej w odwrotności?

Author: doug, 2012-03-20

8 answers

Celem funkcji aktywacyjnej jest wprowadzenie Nieliniowość w sieci

Z kolei pozwala to modelować zmienną odpowiedzi (aka zmienną docelową, Etykietę klasy lub wynik), która zmienia się nieliniowo ze zmiennymi objaśniającymi

nieliniowy oznacza, że wyjście nie może być odtworzone z liniowej kombinacji wejść (która nie jest taka sama jak wyjście, które renderuje do linii prostej-słowo na to jest affine ).

Inny sposób myślenia o tym: Bez nieliniowej funkcji aktywacyjnej w sieci, NN, bez względu na liczbę warstw, zachowywałby się tak jak jednowarstwowy perceptron, ponieważ sumowanie tych warstw dałoby ci tylko kolejną funkcję liniową (patrz definicja tuż powyżej).

>>> in_vec = NP.random.rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

Wspólna funkcja aktywacji używana w backprop (tangens hiperboliczny) oceniono od -2 do 2:

Tutaj wpisz opis obrazka

 122
Author: doug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-13 04:42:17

Funkcja aktywacji liniowej może być używana, jednak w bardzo ograniczonych przypadkach. W rzeczywistości, aby lepiej zrozumieć funkcje aktywacji, ważne jest, aby spojrzeć na zwykłą najmniej kwadratową lub po prostu regresję liniową. Regresja liniowa ma na celu znalezienie optymalnych wag, które powodują minimalny efekt pionowy między zmiennymi objaśniającymi i docelowymi, w połączeniu z danymi wejściowymi. W skrócie, jeśli oczekiwany wynik odzwierciedla regresję liniową, jak pokazano poniżej, a następnie aktywacja liniowa funkcje mogą być używane: (Górna cyfra). Ale jak na drugim rysunku poniżej funkcja liniowa nie przyniesie pożądanych wyników: (rysunek Środkowy). Jednak funkcja nieliniowa, jak pokazano poniżej, dałaby pożądane wyniki: (rysunek Dolny) Tutaj wpisz opis obrazka

Funkcje aktywacji nie mogą być liniowe, ponieważ sieci neuronowe z liniową funkcją aktywacji są skuteczne tylko w jednej warstwie, niezależnie od tego, jak skomplikowana jest ich architektura. Wejście do sieci to zwykle transformacja liniowa (wejście * waga), ale świat rzeczywisty i problemy są nieliniowe. Aby dane przychodzące były nieliniowe, używamy nieliniowego mapowania zwanego funkcją aktywacji. Funkcja aktywacji jest funkcją decyzyjną, która określa obecność określonej cechy neuronowej. Jest mapowany pomiędzy 0 a 1, Gdzie zero oznacza brak funkcji, podczas gdy jeden oznacza jej obecność. Niestety, drobne zmiany zachodzące w wagach nie mogą być odzwierciedlone w wartości aktywacji, ponieważ może przyjmować tylko 0 LUB 1. Dlatego funkcje nieliniowe muszą być ciągłe i różniczkowalne między tym przedziałem. Sieć neuronowa musi być w stanie przyjąć dowolne wejście od-nieskończoności do +nieskończoności, ale powinna być w stanie odwzorować je na wyjście, które waha się między {0,1} lub między {-1,1} w niektórych przypadkach - stąd potrzeba funkcji aktywacji. Nieliniowość jest potrzebna w funkcjach aktywacji, ponieważ jej celem w sieci neuronowej jest wytworzenie nieliniowej granicy decyzyjnej poprzez nieliniowe kombinacje wagi i wejść.

 30
Author: chibole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-06 08:29:45

Jeśli w sieci neuronowej dopuszczamy tylko funkcje aktywacji liniowej, to wyjście będzie tylkotransformacją liniową wejścia, co nie wystarczy, aby utworzyćUniwersalny aproksymator funkcji . Taka sieć może być po prostu reprezentowana jako mnożenie macierzy, A z takiej sieci nie można uzyskać bardzo interesujących zachowań.

To samo dotyczy przypadku, gdy wszystkie neurony mają funkcje aktywacji afinowej (tj. funkcja aktywacji na postać f(x) = a*x + c, gdzie a i c są stałymi, co jest uogólnieniem funkcji aktywacji liniowej), co po prostu spowoduje transformację afiniczną z wejścia na wyjście, co również nie jest zbyt ekscytujące.

Sieć neuronowa może bardzo dobrze zawierać neurony z liniowymi funkcjami aktywacji, takimi jak w warstwie wyjściowej, ale wymagają one Towarzystwa neuronów z nieliniową funkcją aktywacji w innych częściach sieci.

 14
Author: HelloGoodbye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-15 17:24:19

"niniejszy artykuł wykorzystuje twierdzenie Stone'A-Weierstrassa i cosinus squasher Gallant i White' a, aby ustalić, że standardowe wielowarstwowe architektury sieciowe wykorzystujące funkcje abritrary squashing mogą przybliżać praktycznie każdą interesującą funkcję do dowolnego pożądanego stopnia dokładności, pod warunkiem, że dostępnych jest wystarczająco wiele ukrytych jednostek."(Hornik et al., 1989, Sieci Neuronowe )

Funkcja zgniatania jest na przykład nieliniową funkcją aktywacyjną, która mapuje do [0,1] jak funkcja aktywacji sigmoid.

 3
Author: alfa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 08:01:13

Są czasy, kiedy sieć czysto liniowa może dać użyteczne wyniki. Powiedzmy, że mamy sieć trzech warstw o kształtach (3,2,3). Ograniczając warstwę środkową tylko do dwóch wymiarów, otrzymujemy wynik, który jest "płaszczyzną najlepszego dopasowania" w pierwotnej przestrzeni trójwymiarowej.

Ale są łatwiejsze sposoby znajdowania przekształceń liniowych tej postaci, np. NMF, PCA itp. Jest to jednak przypadek, w którym sieć wielowarstwowa nie zachowuje się tak samo jak pojedyncza warstwa perceptron.

 2
Author: markemus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-16 17:41:38

Jak pamiętam-funkcje sigmoid są używane, ponieważ ich pochodna, która pasuje do algorytmu BP jest łatwa do obliczenia, coś prostego jak f (x) (1-f (x)). Nie pamiętam dokładnie matematyki. W rzeczywistości można użyć dowolnej funkcji z pochodnymi.

 1
Author: Anton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-20 12:26:39

Warstwowy NN kilku neuronów może być używany do uczenia się nierozłącznych liniowo problemów. Na przykład funkcja XOR może być uzyskana z dwóch warstw z funkcją aktywacji krokowej.

 0
Author: david,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-21 15:24:38

To wcale nie jest wymóg. W rzeczywistości rektyfikowana funkcja aktywacji liniowej jest bardzo przydatna w dużych sieciach neuronowych. Obliczanie gradientu jest znacznie szybsze i indukuje sparsity przez ustawienie minimalnej granicy na 0.

Zobacz poniżej, aby uzyskać więcej szczegółów: https://www.academia.edu/7826776/Mathematical_Intuition_for_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


Edit:

Była dyskusja nad czy funkcję liniową można nazwać funkcją liniową.

Tak, technicznie jest to funkcja nieliniowa, ponieważ nie jest liniowa w punkcie x=0, jednak nadal poprawne jest stwierdzenie, że jest liniowa we wszystkich innych punktach, więc nie sądzę, że jest to przydatne do nitpick tutaj,

Mogłem wybrać funkcję tożsamości i nadal byłaby to prawda, ale wybrałem ReLU jako przykład ze względu na jego niedawną popularność.

 -3
Author: eski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-15 18:00:22