Relu Funkcja aktywująca

Funkcja aktywacji jest niezbędnym elementem przy projektowaniu sieci neuronowej. Wybór funkcji aktywacji da Ci pełną kontrolę nad procesem uczenia modelu sieciowego. Po dodaniu tych funkcji w warstwach ukrytych, model będzie się efektywnie uczył. Rodzaj predykcji zależy od wyboru funkcji aktywacji. Dlatego powinieneś starannie wybrać funkcję aktywacji dla każdej sieci głębokiego uczenia.
Funkcja aktywacji oznacza transformację danych wejściowych za pomocą sumy ważonej do danych wyjściowych. Wykorzystuje ona pojedynczy węzeł lub więcej dla sieci do generowania predykcji. Możesz również odnieść się do funkcji aktywacji jako funkcji transferu. Lub, można nazwać to squashing funkcji, gdy zakres wyjściowy ma ograniczenia. Funkcje aktywacji mogą być również nieliniowe i określane jako nieliniowość projektu sieci. Bez względu na to, jaką funkcję aktywacji wybierzesz, będzie ona miała znaczący wpływ na wydajność i możliwości różnych części modelu uczenia maszynowego.
Lepiej jest używać funkcji aktywacji w ramach i po użyciu wewnętrznego przetwarzania dla każdego węzła w sieci. Jednak konstrukcja modelu zachęca do stosowania identycznych funkcji aktywacji w warstwie. Oto trzy warstwy, które zawiera sieć:
Warstwy wejściowe zbierają surowe dane wejściowe i wykorzystują je w procesie obliczeniowym.
Warstwy ukryte zbierają dane wejściowe z innych warstw i generują dane wyjściowe dla innych warstw.
Warstwy wyjściowe będą przewidywać wynik.
Każda warstwa ukryta opiera się na tej samej funkcji aktywacji. Warstwa wyjściowa zawiera różne funkcje aktywacji. Zbiera ona informacje z warstw ukrytych. Warstwa ta jest zależna od generowania różnych typów przewidywań, których wymaga model.
Sieci neuronowe uczą się w oparciu o algorytm wstecznej propagacji błędów. Aby zaktualizować wagi warstwy ukrytej, model wymaga pochodnych błędu predykcji. Możesz łatwo rozróżnić funkcje aktywacji, aby obliczyć pochodną pierwszego rzędu dla danej wartości wejściowej. Sieci neuronowe zawierają wiele typów funkcji aktywacji. Ale aby poprawić wydajność warstwy ukrytej i wyjściowej, powinieneś użyć tylko kilku funkcji.
Podczas opracowywania różnych typów sieci neuronowych, rektyfikowana liniowa funkcja aktywacji staje się domyślnym wyborem naukowców zajmujących się danymi. Głównymi zaletami funkcji aktywacji Relu są:
Nie ma znaczenia implementacja funkcji prostownika, gdy wymagana jest funkcja max(). Jest to inne niż w przypadku funkcji aktywacji sigmoidalnej i tanh, dla których wymagane jest obliczenie wykładnicze.
Kolejną zaletą funkcji prostownika jest możliwość generowania wyjścia z prawdziwym zerem. Oznacza to, że ujemne wejścia dadzą na wyjściu prawdziwe zero. W ten sposób w sieciach neuronowych można włączyć warstwy ukryte i uwzględnić jedną lub dodatkowe wartości prawdziwego zera. Można to określić jako reprezentację sparse, ponieważ upraszcza ona model i przyspiesza proces uczenia. Dzięki temu funkcja ta jest pożądana w uczeniu reprezentacyjnym.
Funkcja prostownika jest podobna do liniowej funkcji aktywacji. Ma taką samą wydajność i działania. Ogólnie rzecz biorąc, można łatwo zoptymalizować zachowanie sieci neuronowych, gdy ich zachowanie jest zbliżone do liniowego.
Będziemy używać Pythona do implementacji rektyfikowanej liniowej z łatwą i prostą metodą. Najprostszym zastosowaniem użycia tej funkcji byłaby funkcja max(). Oto przykład prawidłowego użycia funkcji:
# rectified linear Funkcja.
def rectified(x):
return max(0.0,x)
Zgodnie z oczekiwaniami, wartość dodatnia powróci bez zmian. Jednak wartość ujemna lub wartość wejściowa 0,0 powróci z powrotem do 0,0. Tutaj możesz znaleźć kilka przykładów wejść i wyjść funkcji aktywacji Relu:
# zademonstruj prostą funkcję liniową
# prostowana funkcja liniowa
def rectified(x):
returnmax(0.0,x)
# zademonstruj z dodatnim wejściem
x=1.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x)))
x=1000.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x)))
# demonstracja z zerową wartością wejściową
x=0.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x)))
# zademonstruj z ujemną wartością wejściową
x=-1.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x)))
x=-1000.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x)))
Wykonując powyższe przykłady, możemy zidentyfikować zwracanie wartości dodatnich niezależnie od ich wielkości. Natomiast wartości ujemne będą zwracały wartość 0.0.
1 rectified(1.0) ma wartość 1.0
2 rectified(1000.0) to 1000.0
3 rectified(0.0) jest równe 0.0
4 rectified(-1.0) wynosi 0.0
5 rectified(-1000.0) wynosi 0.0
Po wykreśleniu serii danych wejściowych i obliczonych danych wyjściowych, zrozumiemy związek pomiędzy danymi wejściowymi i wyjściowymi. Oto kilka przykładów generowania serii liczb całkowitych zaczynających się od -10 do 10. Pomaga to w obliczeniu Reluaktywacji dla poszczególnych danych wejściowych. Następnie model wykreśli wyniki.
# wykreślić dane wejściowe i wyjściowe
from matplotlib import pyplot
# wyprostowana funkcja liniowa
def rectified(x):
returnmax(0.0,x)
# zdefiniuj serię danych wejściowych
series_in=[xforxinrange(-10,11)]
# oblicz wyjścia dla naszych danych wejściowych
series_out=[rectified(x)forxinseries_in]
# wykres liniowy surowych danych wejściowych do wyprostowanych danych wyjściowych
pyplot.plot(series_in,series_out)
pyplot.show()
Funkcja Reluaktywacja pomaga sieciom neuronowym tworzyć modele głębokiego uczenia. Ze względu na problemy ze znikającym gradientem w różnych warstwach, nie można używać aktywacji tangensem hiperbolicznym i sigmoidą. Możesz przezwyciężyć problemy z gradientem za pomocą funkcji aktywacji Relu. Dzięki temu model może działać lepiej i uczyć się szybciej. Kiedy rozwijasz perceptron konwencjonalny i wielowarstwowy, sieci neuronowe prostoliniowa funkcja aktywacji będzie domyślną opcją.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.