A função Sigmoid é uma função matemática que tem a característica de uma curva com formato de 'S' ou 'curva sigmoid'.
Frequentemente, a função sigmoid refere-se ao caso especial de função logística, ela é limitada, diferenciável e real e é definida para todos os valores de entrada reais e tem uma derivada não-negativa em cada ponto.
Ela é definida pela fórmula:
\begin{equation} \sigma(x)=\frac{1}{1+e^{-x}} \end{equation}Como podemos observar, ela basicamente recebe um número de valor real como entrada e coloca ele entre $0$ e $1$. Seu objetivo é introduzir não-linearidade no espaço de entrada. Baseado na representação matemática acima, um número negativo grande passado pela função sigmoid se torna $0$ e um número positivo grande se torna $1$.
Por causa desta propriedade, a função sigmoid normalmente tem uma interpretação associada com a taxa de disparo de um neurônio em Deep Neural Networks, onde o não disparo seria dado como $0$, para um disparo completamente saturado em uma frequência máxima assumida, nesse caso seria $1$. Entretanto, é válido lembrar que a função de ativação sigmoid se tornou menos popular nas aplicações de redes neurais por questões técnicas, as funções mais utilizadas atualmente nesse contexto são as funções de Unidade Linear Retificada (ReLU).
Vamos então importar as bibliotecas necessárias para vermos um exemplo da função sigmoid em ação:
import matplotlib.pyplot as plt
import numpy as np
Definimos a função sigmoid:
def sigma(x):
return 1 / (1 + np.exp(-x))
Definimos os valores de entrada X:
X = np.linspace(-5, 5, 100)
Calculamos os valores de saída Y:
Y = sigma(X)
Plotamos o gráfico da função sigmoid:
plt.figure(figsize=(16,9))
plt.axis([-5,5, 0,1])
plt.plot(X, Y, linewidth=3, color='b')
plt.xlabel('Eixo X')
plt.ylabel('Eixo Y')
plt.title('Função Sigmoid', fontsize=16)
plt.grid()
plt.text(3.3, 0.85, r'$\sigma(x)=\frac{1}{1+e^{-x}}$', fontsize=20)
plt.show()