Python实现绘制函数图像——以Sigmoid函数为例

本文介绍了如何利用Python的numpy和matplotlib库绘制Sigmoid激活函数及其导数的图像。通过定义Sigmoid函数并调用matplotlib的plot函数,可以方便快捷地生成函数图像,这对于理解和调整深度学习模型的权重十分有帮助。

        在深度学习的研究中,我们经常需要知道激活函数(阶跃函数)的图像,以此判断该神经网络的阈值,并更好的去对权重进行调整。但对于某些复杂的复合函数而言,我们非常困难手画出它的函数图像,这样不仅费时费力,而且所得函数图像结果还不一定准确。这里我们就可以借助 Python 中的 numpy、matplotlib 来画出某一函数的大致图像。这里我们以常见的激活函数 —— Sigmoid 函数为例,并且为了不偏离主题,不会对numpy、matplotlib 做过多讲解。

一、Python 绘制 Sigmoid 函数及其导数图像

import numpy as np
import matplotlib.pyplot as plt

# 利用 numpy 实现 Sigmoid 函数
def sigmoid(x):
    # x 为输入值
    # y = sigmoid(x)
    y=1/(1+np.exp(-x))
    #dy=y*(1-y)  # 若要实现 Sigmod() 的导数图像,打开此处注释,并返回 dy 值即可。 
    return y
 
# 利用 matplotlib 来进行画图
def plot_sigmoid():
    # param:起点,终点,间距
    x = np.arange(-8, 8, 0.2)
    y = sigmoid(x)
    plt.plot(x, y)
    plt.show()
 
 
if __name__ == '__main__':
    plot_sigmoid()

实现效果:

 y = sigmoid(x) 的函数图像:

 y = sigmoid(x) 的导数图像:

二、 总结

        Python实现绘制函数图像其实非常简单,总共是两个步骤。① 利用 numpy 库实现需要绘制的具体函数方程式;② 利用 matplotlib 库,在限定横坐标范围以及步长,以及将该函数方程式赋值给纵坐标后,进行绘制即可。

### 使用 Python 绘制激活函数图像 为了展示不同类型的激活函数及其特性,可以利用 `matplotlib` 库来绘制这些函数的图形。以下是几种常见的激活函数——阶跃函数Sigmoid 函数、Tanh 函数以及 ReLU 函数的具体实现与绘图方法。 #### 阶跃函数 ```python import numpy as np import matplotlib.pyplot as plt def step_function(x): return np.array(x > 0, dtype=int) x = np.linspace(-5.0, 5.0, 100) y_step = step_function(x) plt.figure(figsize=(8, 6)) plt.plot(x, y_step, label='Step Function', color='blue') plt.title('Step Activation Function') plt.xlabel('Input Value (x)') plt.ylabel('Output Value (f(x))') plt.legend() plt.grid(True) plt.show() ``` 此代码片段定义了一个简单的阶跃函数并将其可视化[^1]。 #### Sigmoid 函数 ```python def sigmoid(x): return 1 / (1 + np.exp(-x)) y_sigmoid = sigmoid(x) plt.figure(figsize=(8, 6)) plt.plot(x, y_sigmoid, label='Sigmoid Function', color='red') plt.title('Sigmoid Activation Function') plt.xlabel('Input Value (x)') plt.ylabel('Output Value (σ(x))') plt.legend() plt.grid(True) plt.show() ``` 这段代码实现Sigmoid 激活函数,并展示了其平滑过渡性质[^2]。 #### Tanh 函数 ```python from math import e def tanh(x): return (e ** x - e ** (-x)) / (e ** x + e ** (-x)) y_tanh = tanh(x) plt.figure(figsize=(8, 6)) plt.plot(x, y_tanh, label='Tanh Function', color='green') plt.title('Hyperbolic Tangent Activation Function') plt.xlabel('Input Value (x)') plt.ylabel('Output Value (tanh(x))') plt.legend() plt.grid(True) plt.show() ``` 这里给出了双曲正切(Tanh)函数的一个版本,并通过图表显示了它相对于输入的变化情况[^3]。 #### ReLU 函数 ```python def relu(x): return np.maximum(0, x) y_relu = relu(x) plt.figure(figsize=(8, 6)) plt.plot(x, y_relu, label='ReLU Function', color='purple') plt.title('Rectified Linear Unit Activation Function') plt.xlabel('Input Value (x)') plt.ylabel('Output Value (max(0,x))') plt.legend() plt.grid(True) plt.show() ``` 最后这部分代码用于创建修正线性单元(ReLU),这是一种广泛应用于现代神经网络中的非线性变换方式。 以上就是四种典型激活函数Python 实现及它们对应的图形表示法。每种函数都有各自的应用场景,在实际建模过程中可以根据需求选择合适的激活机制。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值