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

文章目录

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

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

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

import numpy as npdef 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 pltx = 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 npdef 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函数。阶跃函数因其简单和直观,常被用于理论演示和二元分类的最终决策阶段。


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NodeJS编写后端接口

技术栈 1.express:Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建 各种 Web 应用,和丰富的 HTTP 工具,使用 Express 可以快速地搭建一个完整功能的网站。 2.mysql:用于操作MySQL数据库 3.bod…

高校普法|基于SSM+vue的高校普法系统的设计与实现(源码+数据库+文档)

高校普法系统 目录 基于SSM+vue的高校普法系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3律师功能模块 4学生功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…

2024中国(厦门)国际医用消毒及感控设备展览会

2024中国(厦门)国际医用消毒及感控设备展览会 2024 China (Xiamen) International Medical Disinfection And Infection Control Exhibition 致力于打造医用消毒及感控设备产业采购一站式平台 时 间:2024年11月1-3日 November 1-3, 2024 …

揭秘奇葩环境问题:IDEA与Maven版本兼容性解析

1.问题描述 最近在实现通过Java爬虫获取网页源码,然后紧接着将源码转换为图片上传到OSS服务器,其中探索了很多办法,但是在实现过程中遇到一个奇葩问题,就是我无论下载任何Maven依赖,都无法正常下载,简直是…

零基础HTML教程(32)--HTML5语义化标签

文章目录 1. div时代2. div的缺点3. 语义化标签4. 语义化标签有哪些5. 实战演练6. 小结 1. div时代 我是2009年开始学习网页开发的,那时候HTML里面到处是div。 这么说吧,那时候div就是网页的骨架,支撑着网页的主结构。 2. div的缺点 div作…

vulhub靶机struts2环境下的s2-032(CVE-2016-3081)(远程命令执行漏洞)

影响范围 Struts 2.3.19至2.3.20.2、2.3.21至2.3.24.1和2.3.25至2.3.28 当用户提交表单数据并验证失败时,后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析,然后重新填充到对应的表单数据中。 漏洞搭建 没有特殊要求,请看 (3…

C#知识|上位机UI设计-详情窗体设计思路及流程(实例)

哈喽,你好啊,我是雷工! 上两节练习记录了登录窗体和主窗体的实现过程,本节继续练习内容窗体的实现,以下为练习笔记。 01 详情窗体效果展示: 02 添加窗体并设置属性 在之前练习项目的基础上添加一个Windows窗体,设置名称为:FrmIPManage.cs 设置窗体的边框和标题栏的外…

Vision Mamba 代码调试---Pycharm+AutoDL

《AutoDL使用手册》 1. 服务器租用与配置 先上项目链接: GitHub - hustvl/Vim: Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model 1.1 服务器租用与配置 根据环境要求,去租一个服务器:AutoDL算…

基于FPGA的音视频监视器,音视频接口采集器的应用

① 支持1路HDMI1路SDI 输入 ② 支持1路HDMI输出 ③ 支持1080P高清屏显示实时画面以 及叠加的分析结果 ④ 支持同时查看波形图(亮度/RGB)、 直方图、矢量图 ⑤ 支持峰值对焦、斑马纹、伪彩色、 单色、安全框遮幅标记 ⑥ 支持任意缩放画面,支…

深入解析RedisJSON:在Redis中直接处理JSON数据

码到三十五 : 个人主页 JSON已经成为现代应用程序之间数据传输的通用格式。然而,传统的关系型数据库在处理JSON数据时可能会遇到性能瓶颈。为了解决这一问题,Redis推出了RedisJSON模块,它允许开发者在Redis数据库中直接存储、查询…

文心一言 VS 讯飞星火 VS chatgpt (259)-- 算法导论19.3 2题

二、使用聚合分析来证明 FIB-HEAP-DECREASE-KEY 的 O(1) 摊还时间是每一个操作的平均代价。如果要写代码,请用go语言。 文心一言: FIB-HEAP-DECREASE-KEY 是斐波那契堆(Fibonacci Heap)操作中的一个,它允许我们减少堆…

Excel如何设置密码保护【图文详情】

文章目录 前言一、Excel如何设置密码保护?二、Excel如何取消密码保护?总结 前言 在软件项目开发过程中,会输出很多技术文档,其中也包括保密级别很高的服务器账号Excel文档。为了确保服务器账号相关的Excel文档的安全性&#xff0…

1-1ARM开发环境搭建(GD32)

1:安装MDK最好是5.27以及以上版本,避免后续学习中出现相关错误 2:安装芯片支持包 双击安装即可,也可以是默认路径,也可以自己更改路径 3:安装jlink下载器驱动(下载调试器) 具体安装步骤如下所示…

汇昌联信科技:拼多多电商的运营流程有哪些?

在当今互联网高速发展的时代,电商平台层出不穷,其中拼多多以其独特的团购模式和低价策略迅速崛起,成为众多消费者和商家的新宠。那么,拼多多电商的运营流程究竟包含哪些环节呢?接下来,我们将从商品上架、营销推广、订…

ctfshow web入门 php反序列化 web267--web270

web267 查看源代码发现这三个页面 然后发现登录页面直接admin/admin登录成功 然后看到了 ///backdoor/shell unserialize(base64_decode($_GET[code]))EXP <?php namespace yii\rest{class IndexAction{public $checkAccess;public $id;public function __construct(){…

一篇详解Git版本控制工具

华子目录 版本控制集中化版本控制分布式版本控制 Git简史Git工作机制Git和代码托管中心局域网互联网 Git安装基础配置git的--local&#xff0c;--global&#xff0c;--system的区别 创建仓库方式1git init方式2git clone git网址 工作区&#xff0c;暂存区&#xff0c;本地仓库…

k8s v1.20二进制部署 部署 CNI 网络组件 部署 Calico

一、部署 flannel 1.1.K8S 中 Pod 网络通信 ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容器是不会跨宿主机的&#xff09;共享同一个网络命名空间&#xff0c;相当于它们在同一台机器上一样&#xff0c;可以用 localhost 地址访问彼此的端口。…

ROS2 conda 环境下报 No module named ‘catkin_pkg‘

这里使用的环境是&#xff1a;Ubuntu 22.04, ROS2, Conda python 虚拟环境是3.10 ~/.bashrc 里注释掉 conda&#xff0c;并添加 export PYTHONPATH$PYTHONPATH:/usr/lib/python3/dist-packages sudo gedit ~/.bashrc source ~/.bashrc

springboot3 集成spring-authorization-server (一 基础篇)

官方文档 Spring Authorization Server 环境介绍 java&#xff1a;17 SpringBoot&#xff1a;3.2.0 SpringCloud&#xff1a;2023.0.0 引入maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

C语言(指针)7

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…