Die Aktivierungsfunktion ist ein wesentliches Element beim Entwurf eines neuronalen Netzes. Die Wahl der Aktivierungsfunktion gibt Ihnen die vollständige Kontrolle über den Trainingsprozess des Netzwerkmodells. Nachdem Sie diese Funktionen in den versteckten Schichten hinzugefügt haben, wird das Modell effizient lernen. Die Art der Vorhersagen hängt von der Wahl der Aktivierungsfunktion ab. Daher sollten Sie die Aktivierungsfunktion für jedes Deep Learning-Netzwerk sorgfältig auswählen.

Aktivierungsfunktionen

Eine Aktivierungsfunktion bedeutet die Umwandlung der Eingabe mit Hilfe einer gewichteten Summe in die Ausgabe. Sie verwendet einen einzelnen Knoten oder mehrere für das Netzwerk, um die Vorhersage zu generieren. Sie können die Aktivierungsfunktion auch als Übertragungsfunktion bezeichnen. Oder man kann sie als Squashing-Funktion bezeichnen, wenn der Ausgabebereich begrenzt ist. Aktivierungsfunktionen können auch nichtlinear sein und werden als Nichtlinearität des Netzentwurfs bezeichnet. Unabhängig davon, welche Aktivierungsfunktion Sie wählen, wird sie einen erheblichen Einfluss auf die Leistung und die Fähigkeit der verschiedenen Teile im maschinellen Lernmodell haben.
Es ist besser, die Aktivierungsfunktion innerhalb und nach der Verwendung der internen Verarbeitung für jeden Knoten im Netzwerk zu verwenden. Das Design des Modells begünstigt jedoch die Verwendung von identischen Aktivierungsfunktionen in einer Schicht. Hier sind die drei Schichten, die ein Netzwerk umfasst:

– Eingabeschichten

Eingabeschichten sammeln die Roheingabe und verwenden sie im Berechnungsprozess.

– Ausgeblendete Schichten

Ausgeblendete Schichten sammeln die Eingaben der anderen Schicht und erzeugen die Ausgabe für die andere Schicht.

– Ausgabeschichten

Die Ausgabeschichten sagen das Ergebnis voraus.

Jede ausgeblendete Schicht stützt sich auf die gleiche Aktivierungsfunktion. Die Ausgabeschicht enthält verschiedene Aktivierungsfunktionen. Sie sammelt Informationen aus den versteckten Schichten. Diese Schicht ist darauf angewiesen, verschiedene Arten von Vorhersagen zu generieren, die das Modell benötigt.
Die neuronalen Netze lernen durch den Backpropagation-Algorithmus des Fehlers. Um die Gewichte der ausgeblendeten Schicht zu aktualisieren, benötigt das Modell Ableitungen des Vorhersagefehlers. Sie können leicht zwischen Aktivierungsfunktionen unterscheiden, um die Ableitung erster Ordnung für einen bestimmten Eingabewert zu berechnen. Neuronale Netze enthalten zahlreiche Arten von Aktivierungsfunktionen. Aber um die Leistung der versteckten und der Ausgabeschicht zu verbessern, sollten Sie nur einige wenige Funktionen verwenden.

Vorteile der gleichgerichteten linearen Aktivierungsfunktion

Bei der Entwicklung verschiedener neuronaler Netzwerktypen wird die gleichgerichtete lineare Aktivierungsfunktion immer mehr zur Standardwahl von Datenwissenschaftlern. Die Hauptvorteile der Relu-Aktivierungsfunktion sind:

1. Einfachheit in der Berechnung

Es ist unwichtig, die Gleichrichterfunktion zu implementieren, wenn Sie eine max()-Funktion benötigen. Dies ist anders als bei der Sigmoid- und tanh-Aktivierungsfunktion, für die Sie die Exponentialberechnung benötigen.

2. Repräsentative Sparsamkeit

Ein weiterer Vorteil der Gleichrichterfunktion ist die Fähigkeit, Ausgaben mit einem echten Nullwert zu erzeugen. Das bedeutet, dass die negativen Eingaben eine Ausgabe mit echtem Nullwert erzeugen. Auf diese Weise können neuronale Netze versteckte Schichten aktivieren und einen oder zusätzliche wahre Nullwerte einschließen. Man kann dies als spärliche Darstellung bezeichnen, da es das Modell vereinfacht und den Lernprozess beschleunigt. Dies macht die Funktion für das repräsentative Lernen wünschenswert.

3. Lineares Verhalten

Die Gleichrichterfunktion ist ähnlich wie die lineare Aktivierungsfunktion. Sie hat die gleiche Leistung und die gleichen Aktionen. Im Allgemeinen können Sie das Verhalten der neuronalen Netze leicht optimieren, wenn das Verhalten annähernd linear ist.

So codieren Sie die ReluAktivierungsfunktion

Wir werden Python für die Implementierung der ReluActivation-Funktion verwenden, und zwar mit einer einfachen und geradlinigen Methode. Die einfachste Anwendung für die Verwendung dieser Funktion wäre die max()-Funktion. Hier ist das Beispiel für die richtige Anwendung der Funktion:
# rectified linear function
def gleichgerichtet(x):
return max(0.0,x)
Dem Erwartungswert entsprechend wird der positive Wert unverändert zurückgegeben. Der negative Wert oder der Eingabewert von 0,0 wird jedoch auf 0,0 zurückkehren. Hier finden Sie einige Beispiele für Eingaben und Ausgaben der Aktivierungsfunktion Relu:
# Demonstration der gleichgerichteten linearen Funktion

# gleichgerichtete lineare Funktion
def gleichgerichtet(x):
returnmax(0.0,x)

# demonstrieren mit einer positiven Eingabe
x=1.0
print(‘rectified(%.1f) ist %.1f’%(x,rectified(x)))
x=1000.0
print(‘gleichgerichtet(%.1f) ist %.1f’%(x,gleichgerichtet(x)))
# mit einer Nulleingabe demonstrieren
x=0.0
print(‘gleichgerichtet(%.1f) ist %.1f’%(x,gleichgerichtet(x)))
# demonstrieren mit einer negativen Eingabe
x=-1.0
print(‘gleichgerichtet(%.1f) ist %.1f’%(x,gleichgerichtet(x)))
x=-1000.0
print(‘gleichgerichtet(%.1f) ist %.1f’%(x,gleichgerichtet(x)))
Beim Ausführen der obigen Beispiele können wir die Rückgabe positiver Werte unabhängig von ihrer Größe erkennen. Die negativen Werte werden jedoch auf den Wert 0.0 einrasten.
1 gleichgerichtet(1.0) ist 1.0
2 gleichgerichtet(1000.0) ist 1000.0
3 gleichgerichtet(0.0) ist 0.0
4 gleichgerichtet(-1.0) ist 0.0
5 gleichgerichtet(-1000,0) ist 0,0
Nachdem wir die Eingangsreihen und die berechneten Ausgänge geplottet haben, werden wir die Beziehung zwischen den Eingängen und Ausgängen verstehen. Hier sind einige Beispiele für die Erzeugung einer Reihe von ganzen Zahlen von -10 bis 10. Das hilft bei der Berechnung der Reluaktivierung für einzelne Eingaben. Als nächstes wird das Modell die Ergebnisse plotten.
# Plotten der Eingaben und Ausgaben
from matplotlib import pyplot
# gleichgerichtete lineare Funktion
def rectified(x):
returnmax(0.0,x)

# eine Reihe von Eingaben definieren
series_in=[xforxinrange(-10,11)]
# Ausgänge für unsere Eingänge berechnen
series_out=[rectified(x)forxinseries_in]
# Liniendiagramm der rohen Eingaben zu den gleichgerichteten Ausgaben
pyplot.plot(reihe_in,reihe_out)
pyplot.show()

Fazit

Die Funktion Reluactivation hilft neuronalen Netzen, Deep-Learning-Modelle zu bilden. Aufgrund der Probleme mit dem verschwindenden Gradienten in verschiedenen Schichten können Sie die hyperbolische Tangente und die Sigmoid-Aktivierung nicht verwenden. Sie können die Gradientenprobleme durch die Relu-Aktivierungsfunktion überwinden. Dies ermöglicht dem Modell eine bessere Leistung und schnelleres Lernen. Wenn Sie das Faltungsmodell und das mehrschichtige Perzeptron entwickeln, wird die gleichgerichtete lineare Aktivierungsfunktion für neuronale Netzwerke die Standardoption sein.