当前位置: 首页 > article >正文

从阶跃到ReLU:用Python和Matplotlib手把手画一遍,彻底搞懂激活函数怎么选

从阶跃到ReLU用Python和Matplotlib手把手画一遍彻底搞懂激活函数怎么选神经网络中的激活函数就像交通信号灯决定信息是否能够继续向前传递。对于初学者来说面对各种数学公式往往感到抽象难懂。本文将通过Python代码和可视化图表带你亲手绘制四种经典激活函数在动手实践中理解它们的特性和应用场景。1. 环境准备与基础函数实现在开始绘制之前我们需要准备好Python环境。推荐使用Jupyter Notebook进行交互式编程这样可以实时看到每一步的代码执行结果。首先安装必要的库pip install numpy matplotlib接下来导入我们将要用到的库import numpy as np import matplotlib.pyplot as plt %matplotlib inline # 在Jupyter中显示图表1.1 阶跃函数实现阶跃函数是最简单的激活函数之一它像开关一样输入超过阈值就打开否则保持关闭。用Python实现如下def step_function(x): return np.array(x 0, dtypenp.float32)这个实现利用了NumPy的广播特性可以同时处理标量和数组输入。让我们测试一下print(step_function(-1)) # 输出0.0 print(step_function(0.5)) # 输出1.0 print(step_function(np.array([-2, -1, 0, 1, 2]))) # 输出[0. 0. 0. 1. 1.]1.2 Sigmoid函数实现Sigmoid函数将输入压缩到0到1之间实现软开关效果def sigmoid(x): return 1 / (1 np.exp(-x))测试Sigmoid函数print(sigmoid(0)) # 输出0.5 print(sigmoid(100)) # 接近1.0 print(sigmoid(-100)) # 接近0.02. 函数可视化与特性分析现在我们已经实现了两个基本激活函数接下来通过可视化来直观比较它们的特性。2.1 绘制阶跃函数x np.arange(-5, 5, 0.1) y_step step_function(x) plt.figure(figsize(8, 6)) plt.plot(x, y_step, labelStep Function) plt.title(Step Function Visualization) plt.xlabel(Input) plt.ylabel(Output) plt.grid(True) plt.legend() plt.show()阶跃函数的图形呈现明显的阶梯状跳跃在x0处发生突变。这种特性使得它在感知机中表现良好但在神经网络训练中可能导致梯度消失问题。2.2 绘制Sigmoid函数y_sigmoid sigmoid(x) plt.figure(figsize(8, 6)) plt.plot(x, y_sigmoid, labelSigmoid, colororange) plt.title(Sigmoid Function Visualization) plt.xlabel(Input) plt.ylabel(Output) plt.grid(True) plt.legend() plt.show()Sigmoid函数呈现平滑的S形曲线输出在0到1之间连续变化。这种平滑性使其在反向传播中能够提供有效的梯度信号。2.3 对比阶跃与Sigmoid将两个函数放在同一图表中对比plt.figure(figsize(10, 6)) plt.plot(x, y_step, labelStep Function) plt.plot(x, y_sigmoid, labelSigmoid, linestyle--) plt.title(Comparison: Step vs Sigmoid) plt.xlabel(Input) plt.ylabel(Output) plt.grid(True) plt.legend() plt.show()通过对比可以明显看出响应曲线阶跃函数是突变的Sigmoid是渐变的输出范围两者都在[0,1]区间但Sigmoid能输出中间值梯度特性Sigmoid在任何点都有非零梯度而阶跃函数在x0处梯度无限大其他位置梯度为零3. 现代激活函数实现与比较随着深度学习的发展研究者发现了更适合深度网络的激活函数。下面我们实现并分析两个现代激活函数。3.1 ReLU函数实现ReLU(Rectified Linear Unit)是当前最流行的激活函数之一def relu(x): return np.maximum(0, x)测试ReLU函数print(relu(-1)) # 输出0.0 print(relu(0.5)) # 输出0.5 print(relu(10)) # 输出10.03.2 Tanh函数实现Tanh函数是Sigmoid的变体输出范围在-1到1之间def tanh(x): return np.tanh(x)测试Tanh函数print(tanh(0)) # 输出0.0 print(tanh(1)) # 约0.7615 print(tanh(-1)) # 约-0.76153.3 四种函数综合对比现在我们将四种函数绘制在同一图表中y_relu relu(x) y_tanh tanh(x) plt.figure(figsize(12, 7)) plt.plot(x, y_step, labelStep) plt.plot(x, y_sigmoid, labelSigmoid, linestyle--) plt.plot(x, y_relu, labelReLU, colorgreen) plt.plot(x, y_tanh, labelTanh, colorred) plt.title(Activation Functions Comparison) plt.xlabel(Input) plt.ylabel(Output) plt.grid(True) plt.legend() plt.ylim(-1.5, 2.5) plt.show()从对比图中我们可以总结出特性阶跃SigmoidReLUTanh输出范围[0,1](0,1)[0,∞)(-1,1)非线性是是是是梯度特性差中等好好计算复杂度低中极低中死亡神经元风险无有有有提示在实际项目中ReLU通常是默认选择但在输出层需要特定范围时可能需要使用Sigmoid或Tanh。4. 激活函数选择实践指南理解了各种激活函数的特性后我们来看如何在实际项目中做出选择。4.1 不同场景下的选择建议二分类问题输出层Sigmoid输出在0-1之间可解释为概率多分类问题输出层SoftmaxSigmoid的多分类扩展隐藏层大多数情况ReLU及其变体LeakyReLU, PReLU等RNN/LSTMTanh或Sigmoid回归问题输出层线性激活无激活函数或特定范围激活4.2 梯度特性实验让我们通过代码观察不同激活函数的梯度表现def plot_gradients(): x np.arange(-3, 3, 0.1) # 计算函数值 y_sig sigmoid(x) y_relu relu(x) y_tanh tanh(x) # 计算梯度(近似导数) grad_sig np.gradient(y_sig, 0.1) grad_relu np.gradient(y_relu, 0.1) grad_tanh np.gradient(y_tanh, 0.1) # 绘制梯度 plt.figure(figsize(12, 8)) plt.subplot(2, 1, 1) plt.plot(x, y_sig, labelSigmoid) plt.plot(x, y_relu, labelReLU) plt.plot(x, y_tanh, labelTanh) plt.title(Activation Functions) plt.legend() plt.subplot(2, 1, 2) plt.plot(x, grad_sig, labelSigmoid Gradient) plt.plot(x, grad_relu, labelReLU Gradient) plt.plot(x, grad_tanh, labelTanh Gradient) plt.title(Gradients of Activation Functions) plt.legend() plt.tight_layout() plt.show() plot_gradients()从梯度图中可以看到Sigmoid梯度在输入绝对值较大时接近0导致梯度消失ReLU正区间梯度恒为1负区间为0Tanh类似Sigmoid但梯度范围更大4.3 实际应用中的变体为了解决标准激活函数的问题研究者提出了多种改进版本# LeakyReLU实现 def leaky_relu(x, alpha0.01): return np.where(x 0, x, alpha * x) # ELU实现 def elu(x, alpha1.0): return np.where(x 0, x, alpha * (np.exp(x) - 1)) # 绘制比较 x np.arange(-3, 3, 0.1) plt.figure(figsize(10, 6)) plt.plot(x, relu(x), labelReLU) plt.plot(x, leaky_relu(x), labelLeakyReLU, linestyle--) plt.plot(x, elu(x), labelELU, linestyle:) plt.title(ReLU Variants Comparison) plt.legend() plt.grid(True) plt.show()这些变体解决了标准ReLU的死亡神经元问题在特定场景下表现更好。

相关文章:

从阶跃到ReLU:用Python和Matplotlib手把手画一遍,彻底搞懂激活函数怎么选

从阶跃到ReLU:用Python和Matplotlib手把手画一遍,彻底搞懂激活函数怎么选 神经网络中的激活函数就像交通信号灯,决定信息是否能够继续向前传递。对于初学者来说,面对各种数学公式往往感到抽象难懂。本文将通过Python代码和可视化图…...

ChatGpt-Pro项目解析:构建可私有化部署的多模型AI生产力平台

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“Roycegao/ChatGpt-Pro”。光看名字,你可能会觉得这又是一个简单的ChatGPT套壳应用,市面上不是一抓一大把吗?但当我真正点进去,花时间研究了一下它的代…...

别再只用filter了!MATLAB的filtfilt函数如何帮你消除心电信号里的相位延迟?

零相位滤波实战:如何用MATLAB的filtfilt精准提取心电信号特征 生物医学信号处理工程师们经常面临一个棘手问题:传统滤波器在消除噪声的同时,会扭曲信号的时间特征。想象一下,当你精心设计的算法因为滤波导致的相位延迟&#xff0c…...

别再只调WebRTC的NS了:试试用RNNoise的‘DSP+深度学习’思路改造你的音频流水线

突破传统降噪瓶颈:用混合信号处理架构重构音频流水线 音频降噪技术正站在一个关键的十字路口。传统数字信号处理(DSP)方法虽然稳定可靠,但在复杂环境下的表现往往差强人意;而端到端的深度学习方案虽然效果惊艳&#xf…...

5分钟掌握Translumo:Windows平台终极屏幕实时翻译神器

5分钟掌握Translumo:Windows平台终极屏幕实时翻译神器 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 想要瞬间…...

不是解的解【牛客tracker 每日一题】

不是解的解 时间限制:1秒 空间限制:256M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有…...

MediaCreationTool.bat:Windows系统部署的终极自动化解决方案

MediaCreationTool.bat:Windows系统部署的终极自动化解决方案 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat …...

3分钟上手OK-WW:终极鸣潮游戏自动化工具完全指南

3分钟上手OK-WW:终极鸣潮游戏自动化工具完全指南 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 你是否每天花费大量时…...

在Node.js后端服务中集成Taotoken实现多模型智能问答接口

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Node.js后端服务中集成Taotoken实现多模型智能问答接口 现代Web应用集成AI能力已成为提升用户体验和功能价值的重要手段。对于后…...

SITS 2026架构图首次公开:从Token级流控到Agent级协同,6大核心模块接口规范全披露

更多请点击: https://intelliparadigm.com 第一章:AI原生对话系统设计:SITS 2026聊天机器人架构解析 SITS 2026(Semantic Interaction & Temporal Synthesis)是面向生产环境的AI原生对话系统参考架构,…...

Windows与Office一键激活终极指南:KMS_VL_ALL_AIO智能脚本完整教程

Windows与Office一键激活终极指南:KMS_VL_ALL_AIO智能脚本完整教程 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活和Office办公软件激活而烦恼吗?…...

CSDN技术委员会内部纪要流出(SITS 2026评审标准首次公开):算法创新性权重下调15%,工程可复现性跃居第一指标

更多请点击: https://intelliparadigm.com 第一章:CSDN主办SITS 2026:2026奇点智能技术大会亮点全解析 SITS 2026(Singularity Intelligence Technology Summit)由CSDN联合中国人工智能学会、中科院自动化所共同主办&…...

从论文到工具:如何快速复现一篇OCT图像分割的顶会算法?

从论文到工具:OCT图像分割算法的工程化实践指南 在眼科医学影像研究领域,光学相干断层扫描(OCT)已成为视网膜疾病诊断的重要工具。当一篇关于OCT图像自动分割的顶会论文引起你的注意时,如何将那些令人印象深刻的量化指标转化为能处理你手中数…...

WorkshopDL实用指南:如何高效下载Steam创意工坊模组?

WorkshopDL实用指南:如何高效下载Steam创意工坊模组? 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL WorkshopDL是一款专为跨平台游戏玩家设计的Steam创…...

从HDLbits做题到项目实战:一个简单状态机的四种写法,哪种综合出来的时序报告最好?

状态机编码风格实战评测:四种写法对综合结果的影响深度解析 在数字电路设计中,状态机(FSM)作为控制逻辑的核心组件,其编码风格直接影响着最终实现的时序性能、资源占用和功耗表现。许多工程师在仿真阶段验证功能正确后,往往发现实…...

ViGEmBus:Windows内核级虚拟手柄驱动的终极解决方案

ViGEmBus:Windows内核级虚拟手柄驱动的终极解决方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在Windows游戏生态中,手柄兼容性…...

Blender Datasmith导出插件实战:打通Blender与虚幻引擎的终极桥梁

Blender Datasmith导出插件实战:打通Blender与虚幻引擎的终极桥梁 【免费下载链接】bl_datasmith UE Datasmith importer/exporter for Blender 项目地址: https://gitcode.com/gh_mirrors/bl/bl_datasmith 在当今3D创作领域,Blender和虚幻引擎无…...

如何5分钟完成高质量AI语音转文字:免费音频转录神器终极指南

如何5分钟完成高质量AI语音转文字:免费音频转录神器终极指南 【免费下载链接】faster-whisper-GUI faster_whisper GUI with PySide6 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper-GUI 还在为会议录音整理而烦恼吗?还在为视频字幕…...

如何在Vue项目中快速实现Office文档预览:vue-office完整指南

如何在Vue项目中快速实现Office文档预览:vue-office完整指南 【免费下载链接】vue-office 支持word(.docx)、excel(.xlsx,.xls)、pdf、pptx等各类型office文件预览的vue组件集合,提供一站式office文件预览方案,支持vue2和3,也支持…...

渐进式形态学滤波实战:PCL库参数调优与城市/山区场景应用解析

1. 渐进式形态学滤波入门:从原理到PCL实战 第一次接触渐进式形态学滤波(PMF)时,我被它处理城市点云数据的效率震惊了。记得当时手头有个包含大量建筑物和树木的机载LiDAR数据集,传统滤波方法要么把屋顶误判为地面&…...

AI原生知识图谱构建终极路径图(含2026奇点大会内部评估矩阵V3.2与准入清单)

更多请点击: https://intelliparadigm.com 第一章:AI原生知识图谱构建:2026奇点智能技术大会KG实践指南 AI原生知识图谱(AI-Native KG)不再将图谱视为静态结构化知识库,而是作为大模型推理的实时协同体——…...

别再手动改图号了!Word 2016 交叉引用功能,让你的论文排版效率翻倍

告别手动编号:用Word 2016交叉引用功能打造智能学术文档 在撰写学术论文或技术报告时,最令人头疼的莫过于图表编号的维护。想象一下这样的场景:你刚刚完成了一篇50页的论文,导师要求在第20页和第35页之间插入三张新图表——这意味…...

2026奇点大会嘉宾阵容深度解码(含17位中国本土AI领军人物+29位海外实验室负责人):这可能是你今年唯一能系统追踪全球AI顶层智识流向的机会

更多请点击: https://intelliparadigm.com 第一章:2026奇点智能技术大会嘉宾名单公布:50AI顶尖科学家齐聚上海 全球人工智能领域最具前瞻性的年度盛会——2026奇点智能技术大会(Singularity AI Summit 2026)于今日正式…...

模型版本爆炸、依赖漂移、推理熵增——SITS 2026提出的“动态契约管理”如何让AI系统稳定性提升4.8倍?

更多请点击: https://intelliparadigm.com 第一章:AI原生模型管理:SITS 2026 MLOps完整解决方案 SITS 2026 是面向AI原生工作负载设计的下一代MLOps平台,深度集成模型生命周期治理、可观测性引擎与边缘协同推理能力。其核心突破在…...

5步掌握抖音下载神器:高效解决视频批量下载难题

5步掌握抖音下载神器:高效解决视频批量下载难题 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

2025届毕业生推荐的降AI率助手推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下的学术评价体系里头,维普AIGC检测系统被大范围地运用起来,用以…...

视频硬字幕提取终极实战:如何用深度学习实现本地化高效提取?

视频硬字幕提取终极实战:如何用深度学习实现本地化高效提取? 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕…...

2026最权威的五大降AI率神器实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网AI检测系统凭借剖析文本当中的语言模式,以及逻辑结构,还有词汇分…...

终极ARP扫描实战指南:高效网络设备发现与安全审计

终极ARP扫描实战指南:高效网络设备发现与安全审计 【免费下载链接】arp-scan The ARP Scanner 项目地址: https://gitcode.com/gh_mirrors/ar/arp-scan ARP扫描技术作为网络设备发现的核心手段,在网络安全审计和网络管理中扮演着关键角色。arp-sc…...

GitHub加速插件:让国内开发者告别龟速下载的终极解决方案

GitHub加速插件:让国内开发者告别龟速下载的终极解决方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在为GitHub…...