【激活函数--中】激活函数和阶跃函数的可视化及对比

文章目录

  • 一、Python中绘制阶跃函数的图形
  • 二、实现和可视化Sigmoid函数
    • 2.1 Python实现
    • 2.2 可视化Sigmoid函数
  • 三、比较Sigmoid函数与阶跃函数
    • 3.1 Sigmoid函数与阶跃函数的差异
    • 3.2 Sigmoid函数与阶跃函数的共同点

一、Python中绘制阶跃函数的图形

在Python中实现阶跃函数的代码如下:

import numpy as np

def step_function(x):
    return np.array(x > 0, dtype=np.int)

这个函数接受一个NumPy数组x,并返回一个整数数组,其中大于0的元素被置为1,其余为0。

为了可视化阶跃函数,我们使用matplotlib库绘制其图形。首先,我们生成一个从-5.0到5.0的数组x,然后应用step_function函数计算对应的y值,并使用matplotlib.pyplot进行绘图:

import matplotlib.pylab as plt

x = np.arange(-5.0, 5.0, 0.1)  # 生成从-5到5的值,步长为0.1
y = step_function(x)            # 应用阶跃函数
plt.plot(x, y)                  # 绘制x和y
plt.ylim(-0.1, 1.1)             # 设置y轴的范围
plt.show()

绘制的结果如图所示,可以清晰地看到阶跃函数的特征:当输入小于或等于0时,输出为0;当输入大于0时,输出为1。这种从0到1的突变正是阶跃函数的核心特性,也是其名称的由来。

在这里插入图片描述

二、实现和可视化Sigmoid函数

2.1 Python实现

在Python中,可以通过使用NumPy库中的exp函数来实现Sigmoid函数,如下所示:

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

此实现利用了NumPy的广播功能,使得函数能够接受单个数值、列表或NumPy数组作为输入,并对每个元素执行Sigmoid运算。

Sigmoid函数的输出始终在0和1之间,这对于模拟概率非常有用。当输入接近正无穷时,输出趋近于1;当输入接近负无穷时,输出趋近于0;当输入为0时,输出为0.5。

2.2 可视化Sigmoid函数

为了更好地理解Sigmoid函数的行为,我们可以使用matplotlib库来绘制其图形。以下是绘制Sigmoid函数的Python代码:

import matplotlib.pyplot as plt
import numpy as np

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

# 生成数据
x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)

# 绘图
plt.plot(x, y)
plt.title("Sigmoid Function")
plt.ylim(-0.1, 1.1)  # 设置y轴范围
plt.show()

执行上述代码后,将得到如下图所示的Sigmoid函数图形:

在这里插入图片描述

Sigmoid函数由于其平滑的梯度和输出范围限制在(0,1)之间的特性,曾广泛用于神经网络的输出层,尤其是在二分类问题中。然而,由于它在输入值很大或很小时导致的梯度消失问题,现在在隐藏层中较少使用,被ReLU等函数所取代。但是,了解Sigmoid函数仍然对于理解神经网络的历史和基本理论非常重要。

三、比较Sigmoid函数与阶跃函数

Sigmoid函数和阶跃函数都作为神经网络中的激活函数,但它们各有不同的属性和对模型行为的影响。通过检查它们的图形表示并讨论它们的含义,我们来探讨它们之间的差异和相似之处。

3.1 Sigmoid函数与阶跃函数的差异

  1. 平滑性和连续性

    • Sigmoid函数:它是平滑且连续的,从0渐变到1。这种平滑性允许进行导数计算,这对于在训练神经网络时使用的反向传播算法至关重要。
    • 阶跃函数:在阈值(x=0)处从0跳跃到1。这种突然的变化意味着它在传统意义上缺乏导数,这可能会使基于梯度的学习方法复杂化。

    Sigmoid函数的平滑性对于基于梯度的优化方法特别重要,因为它在每个点上都提供了梯度,这有助于有效的网络训练。

  2. 输出范围

    • Sigmoid函数:输出值在0到1之间,这使得它非常适合用作概率表示。它可以返回介于0和1之间的任何值,如0.731、0.880等。
    • 阶跃函数:只能输出0或1,这限制了它的输出能表示的信息量。

3.2 Sigmoid函数与阶跃函数的共同点

尽管在平滑性上存在差异,从宏观视角看,Sigmoid函数和阶跃函数具有相似的形状。实际上,它们的结构都是“输入小时,输出接近0(或为0);随着输入增大,输出向1靠近(或变成1)”。这意味着:

  • 当输入信号是重要信息时,阶跃函数和Sigmoid函数都会输出较大的值。
  • 当输入信号不重要时,两者都输出较小的值。
  • 无论输入信号多小或多大,输出信号的值都限制在0到1之间。

在这里插入图片描述

阶跃函数和Sigmoid函数虽然处理信息的方式有所不同,但它们都是为了在神经网络中实现输入到输出的有效映射。Sigmoid函数因其平滑性和连续的输出范围而广泛用于早期的神经网络模型中,尤其是在需要概率输出的应用中。然而,由于梯度消失的问题,现代更多使用ReLU等其他激活函数来代替Sigmoid函数。阶跃函数因其简单和直观,常被用于理论演示和二元分类的最终决策阶段。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/613572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能AI个人名片小程序源码系统 带完整的安装代码包以及搭建部署教程

在当今数字化时代,个人名片不再仅仅是一张简单的纸质卡片,而是演变成了一种更加智能、便捷的数字化工具。为了满足这一需求,小编给大家分享一款智能AI个人名片小程序源码系统,该系统不仅提供了完整的安装代码包,还附带…

(41)5.6-5.8数据结构(栈和队列的应用和数组)

1.栈在括号匹配中的应用 #define _CRT_SECURE_NO_WARNINGS #define MaxSize 10 typedef struct { char data[MaxSize];//静态数组存放栈中元素 int top; //栈顶指针 }SqStack;//初始化栈 void InitStack(SqStack& S);//判断栈是否为空 bool StackEmpty(SqStack S…

轮式机器人简介

迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率, 如图所示, 而且用比较简单的机械就可实现它的制作。 另外,在轮式机器人设计中,平衡通常不是一个研究问题。 因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接…

vue3父子组件相互调用方法详解

💟 上一篇文章 Vue2中父子组件互相传值和方法调用 📝 系列专栏 vue从基础到起飞 目录 1、前言 2、子组件调用父组件方法(setup组合式) 2.1 父组件Father.vue 2.2 子组件Child.vue 3、父组件调用子组件方法(setup组…

每天五分钟计算机视觉:使用极大值抑制来寻找最优的目标检测对象

本文重点 在目标检测领域,当模型预测出多个候选框(bounding boxes)时,我们需要一种方法来确定哪些候选框最有可能表示真实的目标。由于模型的不完美性和图像中目标的重叠性,往往会有多个候选框对应于同一个目标。此时,极大值抑制(Non-Maximum Suppression,NMS)技术就…

租用香港Windows服务器要注意的几种安全防护措施

在网络世界里,永远没有绝对的安全,但我们可以通过采取适当的措施使风险降低。对于选择香港Windows服务器租赁的企业和个人来说,保护数据的安全性与隐私至关重要。下面将介绍几种关键的租用香港Windows服务器时应注意的安全防护措施。 1.使用本…

汽车线控转向系统介绍

汽车线控转向系统由方向盘总成、转向执行总成和主控制器(ECU)三个主要部分以及自动防故障系统、电源等辅助系统组成。 线控转向系统(Steering-By-Wire),取消了方向盘和转向车轮之间的机械连接部件,彻底摆脱了机械固件的限制,完全由电能来实现…

【qt】联合容器和集合容器

联合容器和集合容器 一.QMap1.应用场景2.添加数据3.删除数据4.修改数据5.查找数据6.数据个数7.是否包含8.返回所有的键名 二.QHash1.应用场景: 三.QMultiMap四.QMultiHash五.QSet1.应用场景2.交集3.并集4.差集 总结: 一.QMap 1.应用场景 QMap的底层实现…

智能座舱语音助手产品方案

一、用户调研与痛点分析 1.目标用户分析 用户画像 性别女性年龄50地域2-3线城市职业退休或退居二线教育中专、 大专、 本科财务家庭财务管理者爱好享受生活、 照顾家庭标签有闲有小钱二、产品定位与卖点提炼 购车目的 愉悦自我, 专属于自己的座驾: 家…

接口自动化入门: Requests请求头设置详解!

在进行接口自动化测试时,设置请求头是非常重要的一步。请求头可以包含各种信息,例如身份验证、内容类型、接受语言等。在实际的测试中,我们使用Python的Requests库来发送HTTP请求,并设置请求头来模拟不同的场景和需求。 下面将通…

【系统架构师】-案例篇(八)数据流图

数据流:数据流是系统中数据的流动,它可以是输入、输出或存储在系统中的数据。 数据处理过程:数据处理过程是对数据进行处理的单元,可以是一个物理设备或软件模块。 数据存储:数据存储是系统中存储数据的单元&#xff0…

共享云桌面如何助力企业信息化和数字化?

随着科技的飞速发展,信息化和数字化已经成为企业转型的重要方向。共享云桌面作为一种新兴的信息化工具,正以其独特的优势助力企业实现信息化和数字化的目标。本文将详细探讨共享云桌面如何助力企业信息化和数字化的过程,以及它所带来的效益。…

使用图网络和视频嵌入预测物理场

文章目录 一、说明二、为什么要预测?三、流体动力学模拟的可视化四、DeepMind神经网络建模五、图形编码六、图形处理器七、图形解码器八、具有不同弹簧常数的轨迹可视化九、预测的物理编码和推出轨迹 一、说明 这是一篇国外流体力学专家在可视化流体物理属性的设计…

vcomp140.dll丢失怎么修复,四种vcomp140.dll丢失的修复办法

vcomp140.dll文件丢失可能会导致一些程序无法正常运行。这些程序通常是使用Microsoft Visual Studio 2015开发的,并且依赖于该动态链接库文件来处理并行计算相关的功能。一旦vcomp140.dll文件丢失或损坏,这些程序在启动或执行特定任务时可能会遇到各种问…

视频批量剪辑神器,一键修改尺寸,轻松打造专业视觉盛宴!

视频已经成为我们生活中不可或缺的一部分。无论是制作精美的短视频,还是编辑专业的宣传片,视频剪辑都是一项必不可少的工作。然而,面对大量的视频素材,如何高效地进行批量剪辑,特别是修改视频尺寸,成为了许…

【大华可见光摄像头】ffmpeg获取视频流并下载mp4 报错‘subtype‘ 不是内部或外部命令,也不是可运行的程序

我现在要通过ffmpeg获取大华摄像头视频流并下载成mp4,但我在cmd窗口运行下面命令的时候,发现报错: D:\Java\ffmpeg\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe -y -i rtsp://admin:123xxx.xxx.xxx.xxx/cam/realmonitor?channel1&s…

[Kubernetes] Istio on Kubernetes 实践

文章目录 1.Kubernetes 创建2.Istio 部署2.1 下载 Istio2.2 安装 Istio 3.Istio on Kubernetes 实践3.1 部署 Bookinfo 示例应用3.2 确定入站 IP 和端口 1.Kubernetes 创建 主机名内部ip外部ipmaster192.168.66.2139.198.36.40node1192.168.66.3139.198.1.192node2192.168.66.…

SG-PEG-SG能与许多生物分子如蛋白质和核酸等进行有效结合

【试剂详情】 英文名称 SG-PEG-SG 中文名称 聚乙二醇二琥珀酰亚胺戊二酸酯, 琥珀酰亚胺酯-聚乙二醇-琥珀酰亚胺酯 外观性状 由分子量决定,固体或者液体。 分子量 0.4k,0.6k,1k,2k,3.4k,5…

(已解决)org.springframework.amqp.rabbit.support.ListenerExecutionFailedException

报错截图 解决方案 1、登录rabbitMQ网址,删除所有队列 2、重启rabbitMQ 亲测有效!!!亲测有效!!!亲测有效!!!