sigmoid函数(sigmoid function)或logistic函数(logistic function)称为logistic函数的原因为该函数是两类别逻辑回归模型的预测表达式。
表达式:
导数:
特点:导数由其本身表示,无论是在理论上还是实现上,这个特性都非常有用。
作用:除了作为两类别逻辑回归模型的预测表达式外,常作为神经网络隐藏层、两类别分类输出层的激活函数。
图形:
代码:
import theano
import theano.tensor as T
import numpy as np
from matplotlib import pyplot as plt
x = T.dvector('x')
y = T.nnet.sigmoid(x)
J, updates = theano.scan(lambda i, y, x : T.grad(y[i], x),
sequences=T.arange(y.shape[0]),
non_sequences=[y, x])
f = theano.function([x], [y, T.sum(J,axis=1)], updates=updates)
x_data = np.arange(-10, 10, 0.01)
y_data, y_differential_data = f(x_data)
plt.figure(figsize=(12, 6))
ax = plt.subplot(2,2,1)
plt.plot(x_data, y_data)
ax.set_title('sigmoid')
ax = plt.subplot(2,2,3)
plt.plot(x_data, y_differential_data)
ax.set_title('differential')
ax = plt.subplot(2,2,2)
plt.plot(x_data, y_data, label='sigmoid')
plt.plot(x_data, y_differential_data, label='sigmoid differential')
plt.axhline(y=0.25,ls=":",c="grey")#添加水平直线
plt.axvline(x=0,ls=":",c="grey")#添加垂直直线
ax.set_title('sigmoid and differential')
plt.show()