Die Sigmoid-Funktion in Python
-
Implementieren Sie die Sigmoid-Funktion in Python mithilfe dem Modul
math
-
Implementierung der Sigmoid-Funktion in Python mit der Methode
numpy.exp()
-
Implementieren der Sigmoid-Funktion in Python unter Verwendung der
SciPy
-Bibliothek
In diesem Tutorial werden verschiedene Methoden zur Verwendung der Sigmoid-Funktion in Python untersucht. Die Sigmoidfunktion ist eine mathematische logistische Funktion. Es wird häufig in der Statistik, der Audiosignalverarbeitung, der Biochemie und der Aktivierungsfunktion in künstlichen Neuronen verwendet. Die Formel für die Sigmoidfunktion lautet F(x) = 1/(1 + e^(-x))
.
Implementieren Sie die Sigmoid-Funktion in Python mithilfe dem Modul math
Mit dem Modul math
können wir unsere eigene Sigmoid-Funktion in Python implementieren. Wir benötigen die Methode math.exp()
aus dem Modul math
, um die Sigmoid-Funktion zu implementieren.
Der folgende Beispielcode zeigt, wie die Sigmoid-Funktion in Python verwendet wird.
import math
def sigmoid(x):
sig = 1 / (1 + math.exp(-x))
return sig
Das Problem bei dieser Implementierung ist, dass sie numerisch nicht stabil ist und der Überlauf auftreten kann.
Der Beispielcode für die numerisch stabile Implementierung der Sigmoid-Funktion in Python ist unten angegeben.
import math
def stable_sigmoid(x):
if x >= 0:
z = math.exp(-x)
sig = 1 / (1 + z)
return sig
else:
z = math.exp(x)
sig = z / (1 + z)
return sig
Implementierung der Sigmoid-Funktion in Python mit der Methode numpy.exp()
Wir können die Sigmoid-Funktion auch mit der Methode numpy.exp()
in Python implementieren. Wie die Implementierungen der Sigmoid-Funktion mit der Methode math.exp()
können wir auch die Sigmoid-Funktion mit der Methode numpy.exp()
implementieren.
Der Vorteil der Methode numpy.exp()
gegenüber math.exp()
besteht darin, dass sie neben Integer oder Float auch die Eingabe in Form eines Arrays verarbeiten kann.
Unten sehen Sie die Implementierung der regulären Sigmoid-Funktion mit der Methode numpy.exp()
in Python.
import numpy as np
def sigmoid(x):
z = np.exp(-x)
sig = 1 / (1 + z)
return sig
Für die numerisch stabile Implementierung der Sigmoid-Funktion müssen wir zuerst den Wert jedes Werts des Eingabearrays überprüfen und dann den Wert des Sigmoid übergeben. Hierfür können wir die Methode np.where()
verwenden, wie im folgenden Beispielcode gezeigt.
import numpy as np
def stable_sigmoid(x):
sig = np.where(x < 0, np.exp(x) / (1 + np.exp(x)), 1 / (1 + np.exp(-x)))
return sig
Implementieren der Sigmoid-Funktion in Python unter Verwendung der SciPy
-Bibliothek
Wir können auch die SciPy
-Version der Sigmoid-Funktion von Python verwenden, indem wir einfach die Sigmoid-Funktion expit
in die SciPy
-Bibliothek importieren.
Der folgende Beispielcode zeigt, wie die Sigmoid-Funktion mithilfe der Bibliothek SciPy
verwendet wird:
from scipy.special import expit
x = 0.25
sig = expit(x)
Die Methode expit()
ist langsamer als die obigen Implementierungen. Der Vorteil der Methode expit()
besteht darin, dass sie die verschiedenen Arten von Eingaben wie Liste, Array usw. automatisch verarbeiten kann.
from scipy.special import expit
sig = expit(np.array([0.25, 0.5, 0.6, 0.7, 0.4]))
print(sig)
Ausgabe:
[0.5621765 0.62245933 0.64565631 0.66818777 0.59868766]