La función sigmoidea en Python
-
Implementar la función sigmoidea en Python usando el módulo
math
-
Implementar la función sigmoidea en Python usando el método
numpy.exp()
-
Implementar la función sigmoidea en Python usando la biblioteca
SciPy
En este tutorial, veremos varios métodos para usar la función sigmoidea en Python. La función sigmoidea es una función logística matemática. Se usa comúnmente en estadística, procesamiento de señales de audio, bioquímica y la función de activación en neuronas artificiales. La fórmula para la función sigmoidea es F(x) = 1/(1 + e^(-x))
.
Implementar la función sigmoidea en Python usando el módulo math
Podemos implementar nuestra propia función sigmoidea en Python usando el módulo math
. Necesitamos el método math.exp()
del módulo math
para implementar la función sigmoidea.
El siguiente código de ejemplo demuestra cómo utilizar la función sigmoidea en Python.
import math
def sigmoid(x):
sig = 1 / (1 + math.exp(-x))
return sig
El problema con esta implementación es que no es estable numéricamente y puede ocurrir el desbordamiento.
El código de ejemplo de la implementación numéricamente estable de la función sigmoidea en Python se da a continuación.
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
Implementar la función sigmoidea en Python usando el método numpy.exp()
También podemos implementar la función sigmoidea usando el método numpy.exp()
en Python. Al igual que las implementaciones de la función sigmoidea usando el método math.exp()
, también podemos implementar la función sigmoidea usando el método numpy.exp()
.
La ventaja del método numpy.exp()
sobre math.exp()
es que, además de integer o float, también puede manejar la entrada en forma de array.
A continuación se muestra la implementación de la función sigmoidea normal utilizando el método numpy.exp()
en Python.
import numpy as np
def sigmoid(x):
z = np.exp(-x)
sig = 1 / (1 + z)
return sig
Para la implementación numéricamente estable de la función sigmoidea, primero necesitamos verificar el valor de cada valor del array de entrada y luego pasar el valor de la sigmoidea. Para esto, podemos usar el método np.where()
, como se muestra en el código de ejemplo a continuación.
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
Implementar la función sigmoidea en Python usando la biblioteca SciPy
También podemos usar la versión SciPy
de la función sigmoidea de Python simplemente importando la función sigmoide llamada expit
en la biblioteca SciPy
.
El siguiente código de ejemplo demuestra cómo utilizar la función sigmoidea utilizando la biblioteca SciPy
:
from scipy.special import expit
x = 0.25
sig = expit(x)
El método expit()
es más lento que las implementaciones anteriores. La ventaja del método expit()
es que puede manejar automáticamente varios tipos de entradas como lista, matriz, etc.
from scipy.special import expit
sig = expit(np.array([0.25, 0.5, 0.6, 0.7, 0.4]))
print(sig)
Producción :
[0.5621765 0.62245933 0.64565631 0.66818777 0.59868766]