Zephyrnet-Logo

Eine grundlegende Einführung in die Aktivierungsfunktion im Deep Learning

Datum:

Dieser Artikel wurde als Teil des veröffentlicht Data-Science-Blogathon.

Einleitung

Die Aktivierungsfunktion ist wie folgt definiert: Die Aktivierungsfunktion berechnet eine gewichtete Summe und fügt ihr dann einen Bias hinzu, um zu entscheiden, ob ein Neuron aktiviert werden soll oder nicht. Das Ziel der Aktivierungsfunktion besteht darin, Nichtlinearität in die Ausgabe eines Neurons einzuführen.

Ein neuronales Netzwerk ohne Aktivierungsfunktion ist im Grunde ein lineares Regressionsmodell im Deep Learning, da diese Funktionen nichtlineare Berechnungen an der Eingabe eines neuronalen Netzwerks durchführen, wodurch es lernen und komplexere Aufgaben ausführen kann. Daher ist das Studium der Ableitungen und Anwendung von Aktivierungsfunktionen sowie das Analysieren der Vor- und Nachteile jeder Aktivierungsfunktion für die Auswahl des richtigen Typs von Aktivierungsfunktion, die einem bestimmten neuronalen Netzwerkmodell Nichtlinearität und Genauigkeit verleihen kann, von entscheidender Bedeutung.

Aktivierungsfunktion im Deep Learning
Quelle: Datajango.com

Wir wissen, dass Neuronen in einem neuronalen Netzwerk nach ihrer Gewichtung, Vorspannung und Aktivierungsfunktion arbeiten. Wir würden die Gewichte und Vorspannungen der Neuronen in einem neuronalen Netzwerk basierend auf dem Ausgabefehler ändern. Backpropagation ist der Fachbegriff für diesen Prozess. Da die Gradienten gleichzeitig mit dem Fehler geliefert werden, um die Gewichtungen und Vorspannungen zu aktualisieren, ermöglichen Aktivierungsfunktionen daher eine Rückwärtsausbreitung.

Inhaltsverzeichnis

  1. Warum brauchen wir Aktivierungsfunktionen in CNN?
  2. Varianten der Aktivierungsfunktion
  3. Python-Code-Implementierung
  4. Zusammenfassung

 Warum brauchen wir es?

Nichtlineare Aktivierungsfunktionen: Ohne eine Aktivierungsfunktion ist ein neuronales Netzwerk nur ein lineares Regressionsmodell. Die Aktivierungsfunktion wandelt die Eingabe auf nichtlineare Weise um, sodass sie lernen und komplexere Aufgaben ausführen kann.

Mathematischer Beweis:-

Die Elemente des Diagramms umfassen:- Eine verborgene Ebene, dh Ebene 1:- Eine sichtbare Ebene, dh Ebene 2:- Eine sichtbare Ebene, Ie

Aktivierungsfunktion im Deep Learning

Quelle: geeksforgeeks.com

a(1) = z(1)

= W(1)X + b(1) (1)

Hier

Die vektorisierte Ausgabe von Schicht 1 ist z(1).

W(1) bezeichnet die vektorisierten Gewichte (w1, w2, w3 und w4), die auf die Neuronen der verborgenen Schicht angewendet werden, X bezeichnet die vektorisierten Eingabemerkmale (i1 und i2) und b bezeichnet die vektorisierte Abweichung (b1 und b2).).

Jede lineare Funktion hat eine (1) vektorisierte Form.

(Beachten Sie, dass die Aktivierungsfunktion hier nicht berücksichtigt wird.)

Die Ausgabeschicht oder Schicht 2 sieht wie folgt aus:

Die Eingabe der Schicht 2 ist z(2) = W(2)a(1) + b(2) a(2) = z(2)a(1) + b(2) a(2) = z(2)a (1) + b(2) a(2) = z(2)a(1) + b(2) a(2) = z(2)a(1) + b(2) a(2) (2 )

Berechnung der Ausgabeschicht:

Lue von z(1).

(W(2) * [W(1)X + b(1)]) + b = (W(2) * [W(1)X + b(1)]) (2)

[W(2) * W(1)] = z(2) * [W(2)*b(1) + b(2)] + X

Lassen,

W = [W(2) * W(1)]

b = [W(2)*b(1) + b(2)]

z(2) = W*X + b ist das Endergebnis.

Das ist wieder eine lineare Funktion.

Selbst nach dem Anwenden einer verborgenen Schicht ergibt diese Beobachtung eine lineare Funktion, daher können wir dies unabhängig von der Anzahl der verborgenen Schichten ableiten wir zu einem neuronalen Netzwerk hinzufügen, verhalten sich alle Schichten gleich, weil die Kombination zweier linearer Funktionen eine lineare Funktion ergibt.

1). Lineare Funktion: -

• Gleichung: Die Gleichung für eine lineare Funktion lautet y = ax, was der Gleichung für eine gerade Linie sehr ähnlich ist.

• Bereich von -inf bis +inf

• Anwendungen: Die lineare Aktivierungsfunktion wird nur einmal in der Ausgabeschicht verwendet.

Lineare Aktivierungsfunktion | Aktivierungsfunktion im Deep Learning
Quelle: V7labs 

• Probleme: Wenn wir eine lineare Funktion differenzieren, um Nichtlinearität einzuführen, wird das Ergebnis nicht mehr mit der Eingabe „x“ in Beziehung stehen. und die Funktion wird konstant, daher zeigt unser Verfahren kein Verhalten.

Beispielsweise ist die Bestimmung des Preises eines Eigenheims ein Regressionsproblem. Da der Preis einer Wohnung eine große oder kleine Zahl sein kann, können wir eine lineare Aktivierung auf der Ausgabeschicht verwenden. Auch in diesem Fall ist jede nichtlineare Funktion in den verborgenen Schichten des neuronalen Netzwerks erforderlich.

2) Die Sigmoidfunktion:

• Es handelt sich um eine Funktion, die in Form einer „S“-Form dargestellt wird.

• Formel: A = 1/(1 + ex)

Nichtlinearer Natur. Die Werte von X reichen von -2 bis 2, aber die Y-Werte sind sehr steil. Dies deutet auf geringfügige Änderungen hin in x führt zu massiven Änderungen im Wert von Y.

Sigmoid-Funktion | Aktivierungsfunktion im Deep Learning
Quelle: Medium.com

• 0 bis 1 Wert des Bereichs

3). Tanh-Funktion: Die Tanh-Funktion, auch als Tangenten-Hyperbolie-Funktion bezeichnet, ist eine Aktivierung, die fast immer besser funktioniert als die Sigmoid-Funktion. Es ist einfach eine Sigmoidfunktion, die angepasst wurde. Beide sind verwandt und können voneinander abgeleitet werden.

• Gleichung: f(x) = tanh(x) = 2/(1 + e-2x) – 1 ODER tanh(x) = 2 * sigmoid(2x) – 1 ODER tanh(x) = 2 * sigmoid(2x) – 1

Hyperbolischer Tangens | Aktivierungsfunktion im Deep Learning
Quelle: medium.com

• Wertebereich: -1 bis +1

• Verwendet:- Wird normalerweise in verborgenen Schichten eines neuronalen Netzwerks verwendet, da sich seine Werte von -1 auf 1 ändern, was dazu führt, dass der Mittelwert der verborgenen Schicht 0 oder sehr nahe daran ist, was die Datenzentrierung unterstützt, indem der Mittelwert nahe 0 gebracht wird. Dadurch wird das Lernen der nächsten Schicht viel direkter.

4). RELU (Gleichgerichtete lineare Einheit) ist der vierte Buchstabe im Alphabet. Dies ist die am häufigsten verwendete Aktivierungsmethode. Versteckte Schichten von neuronalen Netzen werden hauptsächlich verwendet.

• Formel: A(x) = Maximum (0,x). Wenn x positiv ist, wird x zurückgegeben; andernfalls gibt es 0 zurück.

• Wertebereich: (inf, 0)

ReLu

Quelle: Medium.com

• Nicht-linearer Natur, was bedeutet, dass Fehler einfach rückwärts propagiert werden und dass auch die ReLU-Funktion viele Schichten von Neuronen aktiviert.

• Anwendungen: Da es weniger mathematische Operationen enthält, ist ReLu weniger rechenintensiv als Tanh und Sigmoid. Nur wenige Neuronen sind gleichzeitig aktiv, was das Netzwerk knapp und effizient für die Berechnung macht.

Einfach ausgedrückt lernt die RELU-Funktion viel schneller als die Sigmoid- und Tanh-Funktionen.

5). Softmax-Funktion: Die Softmax-Funktion ist eine Art Sigmoid-Funktion, die sich als nützlich erweist, wenn es um Kategorisierungsprobleme geht.

• Nichtlinearität in der Natur

• Verwendet: Wird normalerweise verwendet, wenn es um viele Klassen geht. Die Softmax-Funktion würde durch die Summe der Ausgänge dividieren und quetschen der Ausgang

Aktivierungsfunktion im Deep Learning
Quelle: Medium.com

• Ausgabe: Die Softmax-Funktion wird am besten in der Ausgabeschicht des Klassifikators verwendet, wo wir versuchen, die Klasse jeder Eingabe mithilfe von Wahrscheinlichkeiten zu definieren.

Auswahl der richtigen Aktivierungsfunktion

Wenn Sie sich über die zu verwendende Aktivierungsfunktion nicht sicher sind, wählen Sie einfach RELU, eine breite Aktivierungsfunktion, die heutzutage in den meisten Fällen verwendet wird. Wenn unsere Ausgangsschicht zur binären Identifizierung/Erkennung verwendet werden soll, ist die Sigmoidfunktion eine offensichtliche Wahl.

 

importieren numpig as np
#Entwerfen der Funktion für Sigmoid

def Sigmoid(x):
s=1/(1+np.exp(-x))
ds=s*(1-s)
gib s,ds zurückx=np.arange(-6,6,0.01)
sigmoid(x)# Zentrierte Achsen einrichten
fig, ax = plt.subplots(figsize=(9, 5))

#Axis Spines sind im Grunde die Linien, die den gegebenen Plotbereich begrenzen
ax.spines['links'].set_position('center') ax.spines['rechts'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position ('unten') ax.yaxis.set_ticks_position('links')
# Erstellen und zeigen Sie den Sigmoid-Plot

ax.plot(x,sigmoid(x)[0], color=“#307EC7″, linewidth=3, label=“sigmoid“)
ax.plot(x,sigmoid(x)[1], color=“#9621E2″, linewidth=3, label=“derivative“)

#platziere die Legende in der oberen rechten Ecke der Achsen
ax.legend(loc="oben rechts", frameon=False) fig.show()

 

Ausgabe, Quelle: Autor

 

 

Zusammenfassung

Lesen Sie weiter Blogs auf Analytics Vidhya.

Damit beende ich diesen Blog.

Mein Name ist Pranshu Sharma und ich bin ein Data Science Enthusiast

Vielen Dank, dass Sie sich Ihre kostbare Zeit genommen haben, um diesen Blog zu lesen. Fühlen Sie sich frei, auf Fehler hinzuweisen (ich bin schließlich ein Lernender) und entsprechendes Feedback zu geben oder einen Kommentar zu hinterlassen. Email: [E-Mail geschützt]

 

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet. 

spot_img

Neueste Intelligenz

spot_img