|

用 Python 实现并可视化 Sigmoid 函数:深入理解衍生工具

乙状结肠功能是深度学习中的一个重要激活函数,主要用于二元分类问题。在本篇文章中,我们将学习如何使用 Python此外,我们还将向您展示如何自己实现这一功能,并在图表中将其可视化、 正余弦函数的导数请跟随实验代码,更清楚地了解 Sigmoid 函数的工作原理。

什么是乙格函数?

西格莫德函数的定义公式为

S(x) = \frac{1}{1 + e^{-x}}

该函数是一个非线性函数,用于将输入值转换为介于 0 和 1 之间的值。现在,让我们用 Python 实现这个公式的可视化,并绘制它。

实现西格莫德函数的 Python 可视化

首先,让我们用 Python 代码实现 sigmoid 函数。

将 numpy 导入 np
import matplotlib.pyplot as plt

定义 # sigmoid 函数
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

设置 # x 范围
x = np.linspace(-10, 10, 100)

应用 # sigmoid 函数
y = sigmoid(x)

可视化 #
plt.plot(x, y, label='Sigmoid')
plt.title('Sigmoid 函数')
plt.xlabel('x')
plt.ylabel('S(x)')
plt.grid(True)
plt.legend()
plt.show()

上面的代码定义了一个 Sigmoid 函数,并将其可视化。 np.linspace生成从 -10 到 10 的值,然后将每个值应用到 Sigmoid 函数,创建 y 计算出数值后,绘制图表。

代码评注

  • 导入 numpy 为 np导入 NumPy 库进行数值计算。
  • import matplotlib.pyplot as plt导入 Matplotlib 库以实现图形可视化。
  • def sigmoid(x): return 1 / (1 + np.exp(-x))定义 Sigmoid 函数。该函数将输入值转换为介于 0 和 1 之间的值。
  • x = np.linspace(-10, 10, 100):生成 100 个间隔均匀的点,从 -10 到 10,用作 x 轴值。
  • y = sigmoid(x)计算 y 值:对生成的 x 值应用 Sigmoid 函数计算 y 值。
  • plt.plot(x, y, label='Sigmoid')用 x 和 y 的值绘制 Sigmoid 函数的图形。
  • plt.title('Sigmoid 函数')设置图表标题为 "西格莫函数"。
  • plt.xlabel('x')plt.ylabel('S(x)')设置 x 轴和 y 轴的标签分别为 "x "和 "S(x)"。
  • plt.grid(True)在图形上显示网格。
  • plt.legend()图例:为图表添加图例。
  • plt.show()在屏幕上显示完成的图形。
시그모이드 함수 시각화
(在 Python 中可视化的 Sigmoid 函数)

乙次函数衍生物

sigmoid 函数的导数定义如下

S'(x) = S(x) \times (1 - S(x))

让我们也用 Python 来实现并可视化这个微分函数。

# 西格莫函数导数定义
def sigmoid_derivative(x):
    return sigmoid(x) * (1 - sigmoid(x))

应用 # sigmoid 函数导数
y_deriv = sigmoid_derivative(x)

可视化 #
plt.plot(x, y_deriv, label='Sigmoid Derivative', color='orange')
plt.title('Sigmoid 衍生函数')
plt.xlabel('x')
plt.ylabel("S'(x)")
plt.grid(True)
plt.legend()
plt.show()

这段代码计算一个 Sigmoid 函数的导数,并将结果可视化。导数是从原始 Sigmoid 函数导出的,从图中可以看出,斜率最大的区域在 x=0 附近。

代码评注

  • def sigmoid_derivative(x): return sigmoid(x) * (1 - sigmoid(x))定义 sigmoid 函数的导数。Sigmoid 函数的导数表示为 S(x) * (1 - S(x))。
  • y_deriv = sigmoid_derivative(x)计算 y_deriv 的值,方法是将 Sigmoid 函数的导数应用于前面定义的 x 值。
  • plt.plot(x, y_deriv, label='Sigmoid Derivative', color='orange')说明:使用 x 和 y_deriv 的值绘制橙色的 Sigmoid 函数导数图。
  • plt.title('Sigmoid 衍生函数')设置图表标题为 "Sigmoid 衍生函数"。
  • plt.xlabel('x')plt.ylabel("S'(x)")设置 x 轴和 y 轴的标签分别为 "x "和 "S'(x)"。
  • plt.grid(True)在图形上显示网格。
  • plt.legend()图例:为图表添加图例。
  • plt.show()在屏幕上显示完成的图形。
시그모이드 함수 미 분 시각화
(直观显示曲线函数的导数)

可视化 Sigmoid 函数和微分函数

现在,让我们在同一张图上比较一下 sigmoid 函数及其导数,这样我们就能一目了然地看到 sigmoid 函数的特征及其导数的变化。

将 numpy 导入 np
import matplotlib.pyplot as plt

定义 # Sigmoid 函数
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

设置 # x 的范围
x = np.linspace(-10, 10, 100)

# 应用 sigmoid 函数
y = sigmoid(x)

计算 # Sigmoid 函数的导数
y_deriv = y * (1 - y) # sigmoid 的导数

# 将 sigmoid 函数和导数函数可视化
plt.plot(x, y, label='Sigmoid', color='blue')
plt.plot(x, y_deriv, label='Sigmoid Derivative', color='orange') # 现在已定义 y_deriv
plt.title('Sigmoid 函数及其导数')
plt.xlabel('x')
plt.ylabel('Value')
plt.grid(True)
plt.legend()
plt.show()

上面的代码同时显示了 sigmoid 函数及其导数,图形显示了 sigmoid 函数如何随 x 变化,以及其导数如何显示一种模式。

시그모이드 함수와 미분 함수 비교 시각화
(直观显示乙次函数与微分函数的关系)

为什么使用西格函数?

乙状结肠功能在深度学习中发挥重要作用有几个原因,其中最重要的是,它可以通过限制输出值在 0 和 1 之间来解释二元分类问题中的概率。不过,它们也有缺点,那就是可能会导致梯度消失问题,这也是 ReLU 等函数现在更常用的原因。

组织起来

在本帖中,我们将使用 用 Python 实现西格莫函数并可视化其导数。sigmoid 函数是深度学习中的一个重要激活函数,常用于计算二元分类问题中的概率。我们希望通过学习 sigmoid 函数的概念并在 Python 中进行练习,您将能够更好地理解并在深度学习模型中使用它。

类似文章