游戏类网站备案,wordpress2345,在IIs下建设一个网站,工控主机做网站服务器文章目录 1、Sigmoid函数1.1 公式1.2 对应图像1.2 生成图像代码1.4 优点与不足1.5 torch.sigmoid()函数 1、Sigmoid函数
1.1 公式
Sigmoid函数的公式#xff1a; f ( x ) 1 1 e − x f(x) \frac{1}{1e^{-x}} f(x)1e−x1 Sigmoid函数的导函数#xff1a; f ′ ( x ) e … 文章目录 1、Sigmoid函数1.1 公式1.2 对应图像1.2 生成图像代码1.4 优点与不足1.5 torch.sigmoid()函数 1、Sigmoid函数
1.1 公式
Sigmoid函数的公式 f ( x ) 1 1 e − x f(x) \frac{1}{1e^{-x}} f(x)1e−x1 Sigmoid函数的导函数 f ′ ( x ) e − x ( 1 e − x ) 2 f ( x ) ( 1 − f ( x ) ) f(x) \frac{e^{-x}}{(1e^{-x})^2}f(x)(1-f(x)) f′(x)(1e−x)2e−xf(x)(1−f(x))
1.2 对应图像 1.2 生成图像代码
import numpy as np
import matplotlib.pyplot as plt# 定义Sigmoid函数
def sigmoid(x):return 1 / (1 np.exp(-x))# 定义Sigmoid函数的导数
def sigmoid_derivative(x):return sigmoid(x) * (1 - sigmoid(x))# 创建一个x值的数组从-10到10间隔为0.01
x np.arange(-10, 10, 0.01)# 计算Sigmoid函数和它的导数的值
y_sigmoid sigmoid(x)
y_sigmoid_derivative sigmoid_derivative(x)# 绘制Sigmoid函数和它的导数的图像
plt.figure(figsize(8, 6))
plt.plot(x, y_sigmoid, labelSigmoid Function)
plt.plot(x, y_sigmoid_derivative, labelSigmoid Derivative)# 设置图表的标题和坐标轴标签
plt.title(Sigmoid Function and Its Derivative)
plt.xlabel(x)
plt.ylabel(y)# 显示图例
plt.legend()# 设置网格线
plt.grid(True)# 显示图像
plt.show()1.4 优点与不足
优点 1、其值域为[0,1]非常适合作为模型的输出函数用于输出一个(0,1)范围内的概率值可用于将预测概率作为输出的模型比如用于表示二分类的类别或者用于表示置信度。 2、Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在0到1因此它对每个神经元的输出进行了归一化。 3、该函数是连续可导的即可微可以提供非常平滑的梯度值防止模型训练过程中出现突变的梯度即避免「跳跃」的输出值。 不足 1、从其导数的函数图像上可以看到其导数的最大值只有0.25而且当x在[-5,5]的范围外时其导数值就已经几乎接近于0了。这种情况会导致训练过程中神经元处于一种饱和状态反向传播时其权重几乎得不到更新从而使得模型变得难以训练这种现象被称为梯度消失问题。 2、其输出不是以0为中心而是都大于0的这会降低权重更新的效率这样下一层的神经元会得到上一层输出的全正信号作为输入所以Sigmoid激活函数不适合放在神经网络的前面层而一般是放在最后的输出层中使用。 3、需要进行指数运算计算机运行得较慢计算量大及计算复杂度高训练耗时指数的越大其倒数就越小容易产生梯度消失。
1.5 torch.sigmoid()函数
在PyTorch中torch.sigmoid函数用于计算输入张量每个元素的Sigmoid函数值。Sigmoid函数是一个逻辑函数它可以将任何实数映射到0和1之间
在PyTorch中torch.sigmoid 函数的签名如下
torch.sigmoid(input, *, outNone) → Tensor这里的参数解释如下
input (Tensor): 输入张量。out (Tensor, optional): 输出张量。如果提供则函数的结果将写入此张量中并且函数将返回这个张量。
torch.sigmoid 函数返回一个新的张量其中包含了输入张量 input 每个元素的Sigmoid函数值。如果提供了 out 参数则结果将直接写入这个张量中并且返回这个张量。
例如你可以像下面这样调用 torch.sigmoid 函数
import torch# 创建一个输入张量
input_tensor torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])# 计算Sigmoid函数值
output_tensor torch.sigmoid(input_tensor)# 打印结果
print(output_tensor)
# tensor([0.1192, 0.2689, 0.5000, 0.7311, 0.8808])