Ableitung der ReLU-Funktion in Python

Migel Hewage Nimesha 10 Oktober 2023
  1. Implementieren Sie die ReLU-Funktion in Python
  2. Ableitung der ReLU-Funktion in Python
  3. Abschluss
Ableitung der ReLU-Funktion in Python

ReLU steht für Rectified Linear Activation Function, die beliebteste Alternative der Aktivierungsfunktion im Bereich Deep Learning. ReLU ist ein Teil der linearen Funktion, die die Eingabe als gleich ausgibt, wenn der Eingabewert positiv ist; wenn nicht, wird es die Ausgabe Null geben.

Dieser Artikel zeigt, wie Sie mit der Programmiersprache Python eine Ableitung der ReLU-Funktion erstellen.

Implementieren Sie die ReLU-Funktion in Python

Als mathematische Funktion können wir die ReLU-Funktion wie folgt definieren:

f(x) = max(0,x)

Diese Funktion ist linear um x und gibt Null für alle negativen Werte aus.

Der folgende Pseudocode repräsentiert die ReLU-Funktion.

if input > 0:
    return input
else:
    return 0

Als obigen Pseudocode können wir unsere Implementierung der ReLU-Funktion wie folgt erstellen:

import numpy as nm


def relu_func(x):
    return nm.maximum(0, x)


print(relu_func(2))
print(relu_func(0))
print(relu_func(0.1))
print(relu_func(-3))

In diesem Beispiel wurde die Funktion relu_func mit dem Parameter x definiert. Diese Funktion gibt die Ausgabe unter Berücksichtigung der ReLU-Funktion zurück.

Wir haben der Funktion relu_func sofort eine einzelne Ganzzahl als Argument übergeben.

Die Funktion maximum() gibt den höchsten Wert zurück. Wenn die Ganzzahl größer als 0 ist, wird dieselbe Ganzzahl wie die Eingabe gedruckt; wenn nicht, wird Null ausgegeben.

Die ReLU-Funktion, die wir im obigen Code implementiert haben, funktioniert also mit jeder einzelnen Ganzzahl. auch mit numpy-Arrays.

Wir können die Ausgabe wie folgt erhalten:

relu-Funktion

Ableitung der ReLU-Funktion in Python

Die Ableitung der ReLU-Funktion ruft ansonsten den Gradienten von ReLu auf. Die Ableitung der Funktion ist die Steigung.

Wenn wir einen Graphen erstellen, zum Beispiel y= ReLu(x) und x größer als Null ist, ist der Gradient 1.

Wenn x kleiner Null ist, ist die Steigung 0. Wenn x = 0, ist die Ableitung nicht vorhanden.

Die mathematische Ableitung der ReLu-Funktion kann wie folgt definiert werden:

f'(x) = 1, x >= 0
	  = 0, x < 0

Wir können die Ableitung der ReLu-Funktion auf den Graphen anwenden. Schauen wir uns also das folgende Beispiel an.

# %matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

# define relu function


def relu_func(z):
    return np.maximum(0, z)


z = np.arange(-3, 5, 1)
print(z)
Y = relu_func(z)
print(Y)
plt.plot(z, Y, "o-")
plt.xlabel("X")
plt.ylabel("F(x)")
plt.grid()

Es ist definiert als relu_func, wobei der Parameter z unter Berücksichtigung des obigen Codes übergeben wird. Unter dieser Funktion geben wir die Funktion relu und die Variable z zurück, die definiert sind, um den Bereich der x-Achse zu erhalten.

Auch definierte Y-Variable definiert, um relu_func mit einem Parameter zu übergeben. Die Funktion relu_func(Z) berechnet die reLU für alle z-Werte.

Daher bezeichnen alle negativen Werte eine Null. Der x-Achsen-Plot ist X, der y-Achsen-Plot ist F(x).

Das folgende Diagramm ist die Ausgabe, die wir aus dem obigen Code erhalten.

abgeleitete relu-Funktion

Wie bereits erwähnt, bedeutet Ableitung die Steigung des Graphen an einem bestimmten Punkt. Die Steigung von x=1 ist also 1.

Alle anderen Punkte größer als 0 erhalten eine Steigung von 1. Aber wie groß ist die Steigung von x=-3?

Wir können sehen, dass es für diesen Punkt keine Steigung gibt.

Alle anderen Punkte kleiner als 0 erhalten keine Steigung, was eine Steigung von 0 bedeutet. Dies wird also die abgeleitete, eingebaute Python-Programmiersprache der ReLu-Funktion genannt.

Abschluss

Dieser Artikel zeigt, wie die ReLu-Funktion in Python implementiert wird, und behandelt hauptsächlich, wie die ReLu-Ableitungsfunktion implementiert wird. Die ReLU-Funktion wird häufig im Deep Learning verwendet.

Aber es hat einige Probleme. Wenn beispielsweise der Eingangswert kleiner als 0 ist, ist der Ausgang 0.

Daher ist das neuronale Netzwerk nicht in der Lage, seine Arbeiten fortzusetzen. Als Lösung dafür wird meist die Leaky ReLU-Funktion verwendet.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.