La fonction sigmoïde en Python
-
Implémenter la fonction Sigmoid en Python à l’aide du module
math
-
Implémenter la fonction sigmoïde en Python en utilisant la méthode
numpy.exp()
-
Implémenter la fonction Sigmoid en Python à l’aide de la bibliothèque
SciPy
Dans ce tutoriel, nous examinerons différentes méthodes pour utiliser la fonction sigmoïde en Python. La fonction sigmoïde est une fonction logistique mathématique. Il est couramment utilisé dans les statistiques, le traitement du signal audio, la biochimie et la fonction d’activation des neurones artificiels. La formule de la fonction sigmoïde est F(x) = 1/(1 + e^(-x))
.
Implémenter la fonction Sigmoid en Python à l’aide du module math
Nous pouvons implémenter notre propre fonction sigmoïde en Python en utilisant le module math
. Nous avons besoin de la méthode math.exp()
du module math
pour implémenter la fonction sigmoïde.
L’exemple de code ci-dessous montre comment utiliser la fonction sigmoid en Python.
import math
def sigmoid(x):
sig = 1 / (1 + math.exp(-x))
return sig
Le problème avec cette implémentation est qu’elle n’est pas numériquement stable et le débordement peut se produire.
L’exemple de code de l’implémentation numériquement stable de la fonction sigmoïde en Python est donné ci-dessous.
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
Implémenter la fonction sigmoïde en Python en utilisant la méthode numpy.exp()
Nous pouvons également implémenter la fonction sigmoïde en utilisant la méthode numpy.exp()
en Python. Comme les implémentations de la fonction sigmoïde utilisant la méthode math.exp()
, nous pouvons également implémenter la fonction sigmoïde en utilisant la méthode numpy.exp()
.
L’avantage de la méthode numpy.exp()
par rapport à math.exp()
est qu’en dehors de l’entier ou du flottant, elle peut également gérer l’entrée sous la forme d’un tableau.
Ci-dessous, l’implémentation de la fonction sigmoïde régulière en utilisant la méthode numpy.exp()
en Python.
import numpy as np
def sigmoid(x):
z = np.exp(-x)
sig = 1 / (1 + z)
return sig
Pour l’implémentation numériquement stable de la fonction sigmoïde, nous devons d’abord vérifier la valeur de chaque valeur du tableau d’entrée, puis passer la valeur du sigmoïde. Pour cela, nous pouvons utiliser la méthode np.where()
, comme indiqué dans l’exemple de code ci-dessous.
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
Implémenter la fonction Sigmoid en Python à l’aide de la bibliothèque SciPy
On peut également utiliser la version SciPy
de la fonction sigmoïde de Python en important simplement la fonction sigmoïde appelée expit
dans la bibliothèque SciPy
.
L’exemple de code ci-dessous montre comment utiliser la fonction sigmoïde à l’aide de la bibliothèque SciPy
:
from scipy.special import expit
x = 0.25
sig = expit(x)
La méthode expit()
est plus lente que les implémentations ci-dessus. L’avantage de la méthode expit()
est qu’elle peut gérer automatiquement les différents types d’entrées comme liste, tableau, etc.
from scipy.special import expit
sig = expit(np.array([0.25, 0.5, 0.6, 0.7, 0.4]))
print(sig)
Production:
[0.5621765 0.62245933 0.64565631 0.66818777 0.59868766]