【NLP 37、激活函数 ③ relu激活函数】
—— 25.2.23
ReLU广泛应用于卷积神经网络(CNN)和全连接网络,尤其在图像分类(如ImageNet)、语音识别等领域表现优异。其高效性和非线性特性使其成为深度学习默认激活函数的首选
一、定义与数学表达式
ReLU(Rectified Linear Unit,修正线性单元)是一种分段线性激活函数,
其数学表达式为:ReLU(x)=max(0,x)
即当输入 x 大于 0 时,输出为 x;当 x≤0 时,输出为 0。
二、核心特点
非线性特性:通过引入分段线性特性,ReLU为神经网络引入非线性,使其能拟合复杂函数。
计算高效:仅通过阈值判断(x>0)即可完成计算,避免了指数运算(如Sigmoid、Tanh),显著提升速度。
缓解梯度消失:在 x>0 时梯度恒为 1,反向传播时梯度不会饱和,加速收敛。
稀疏激活性:负输入时输出为 0,导致部分神经元“休眠”,减少参数依赖和过拟合风险。
三、优点
简单高效:实现和计算成本低,适合深度网络。
收敛速度快:相比Sigmoid/Tanh,ReLU在训练中梯度更稳定,收敛更快。
非零中心性:输出范围为 [0,+∞),虽非严格零中心,但简化了优化过程
四、局限性
Dead ReLU问题:若神经元输入长期为负,梯度恒为 0,导致权重无法更新,神经元“死亡”。
非零中心性:输出偏向非负值,可能影响梯度下降效率。
对初始化敏感:若学习率过高,负输入区域可能使神经元永久失效。
五、变体
Leaky ReLU:允许负输入时输出 αx(α为小常数,如0.01)。
PReLU(Parametric ReLU):将 α 设为可学习参数,动态调整负区斜率。
ELU(Exponential Linear Unit):负输入时输出 α(ex−1),使输出均值接近零。
Swish:自门控激活函数,结合ReLU和Sigmoid特性,平滑且无上界。
六、代码示例
1.通过 nn.ReLU() 作为网络层
nn.ReLU() :PyTorch 中的修正线性单元(ReLU)激活函数模块,用于神经网络中引入非线性。其功能是将输入张量中所有负值置为 0,保留正值不变
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| inplace | bool | 否 | 是否原地操作(直接修改输入张量)。 |
默认值为 False,此时会返回新张量。若设为 True,则直接在原张量上操作。 |
import torch
import torch.nn as nn
import torch.optim as optim# 定义一个简单的网络,包含两个线性层和 ReLU 激活
class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 = nn.Linear(784, 256) # 输入层:784 → 256self.relu = nn.ReLU() # ReLU 激活层self.fc2 = nn.Linear(256, 10) # 输出层:256 → 10(如分类任务)def forward(self, x):x = self.relu(self.fc1(x)) # 在第一层后应用 ReLUx = self.fc2(x)return x# 初始化网络、损失函数和优化器
model = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)# 输入数据示例(如 MNIST 图像,形状为 [batch_size, 784])
input_data = torch.randn(32, 784)# 前向传播
output = model(input_data)
print(output.shape) # 输出形状: (32, 10)
2. 直接使用 torch.relu() 函数
torch.relu(): PyTorch 中实现修正线性单元(ReLU)激活函数的函数
其数学表达式为:ReLU(x)=max(0,x)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
inplace | bool | 否 | 是否原地修改输入张量。若为 True,则直接修改输入张量以节省内存;若为 False(默认),则返回新张量。 |
import torch# 示例输入
x = torch.tensor([-1.0, 0.0, 1.0])# 应用 ReLU 函数(非原地)
y = torch.relu(x)
print(y) # 输出: tensor([0., 0., 1.])# 应用 ReLU 函数(原地)
torch.relu_(x)
print(x) # 输出: tensor([0., 0., 1.]),原始张量被修改[1,7](@ref)。
相关文章:
【NLP 37、激活函数 ③ relu激活函数】
—— 25.2.23 ReLU广泛应用于卷积神经网络(CNN)和全连接网络,尤其在图像分类(如ImageNet)、语音识别等领域表现优异。其高效性和非线性特性使其成为深度学习默认激活函数的首选 一、定义与数学表达式 ReLU࿰…...
顶刊配图复现:Origin+DeepSeek完美协同
学习目标: (1)软件掌握熟练安装并配置Origin,掌握基础操作与核心功能。学会利用Origin进行多类型图表绘制及美化。掌握DeepSeek的数据清洗、统计分析与可视化方法。(2)设计能力理解顶刊图表的设计原则&…...
Fisher信息矩阵(Fisher Information Matrix, FIM)与自然梯度下降:机器学习中的优化利器
Fisher信息矩阵与自然梯度下降:机器学习中的优化利器 在机器学习尤其是深度学习中,优化模型参数是一个核心任务。我们通常依赖梯度下降(Gradient Descent)来调整参数,但普通的梯度下降有时会显得“笨拙”,…...
Scratch032(百发百中)
提示:知识回顾 1、排列克隆体的方法 2、复习“发送广播并等待”积木 3、“获取第几个字符”积木的使用 4、使用角色显示得分 前言 提示:中国射箭拥有悠久的历史,是最早进入教育体系的运动项目之一,君子六艺中“礼,乐,射,御,书,数”的射 ,就是指的射箭。这节课我带你…...
DeepSeek技术全景解析:架构创新与行业差异化竞争力
一、DeepSeek技术体系的核心突破 架构设计:效率与性能的双重革新 Multi-head Latent Attention (MLA):通过将注意力头维度与隐藏层解耦,实现显存占用降低30%的同时支持4096超长上下文窗口。深度优化的MoE架构:结合256个路由专家…...
开课倒计时 | 3月1-2日,DeepSeek时代下的可观测性(Observability)认证培训
前言: 随着DeepSeek等前沿AI技术的广泛应用,企业对可观测性的需求日益增长。DeepSeek作为一款强大的AI模型,已经在多个领域展现出其卓越的性能。然而,随着技术复杂性的增加,如何有效监控和优化这些系统成为关键挑战。…...
相似性搜索(2)
在本篇中,我们通过播客相似性搜索为例,进一步研究基于chroma 的相似性搜索: 参考: https://www.kaggle.com/code/switkowski/building-a-podcast-recommendation-engine/notebook 数据集来源: https://www.kaggle.…...
Python天梯赛L1-018-大笨钟详解
018-大笨钟 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点…...
HTTP代理与HTTPS代理的区别及HTTPS的工作原理
在互联网世界中,数据的传输与访问安全性是用户和企业共同关注的焦点。HTTP和HTTPS代理作为两种常用的网络协议代理,它们在工作原理和应用场景上存在显著区别。本文将深入浅出地解析HTTP代理与HTTPS代理的区别,并简明扼要地介绍HTTPS的工作原理…...
【Godot4.3】静态模板字符串函数库
概述 Godot的静态函数从3.4版本一直用到现在的4.3,也曾经编写过不少的静态函数库。 但是一直没怎么用过静态变量。这几天有心重新开发一下静态网页生成器。需要编写一些类,还有保存HTML页面或局部的模板字符串以及生成函数。静态变量就刚好用上了。 这…...
Minio分布式多节点多驱动器集群部署
Minio分布式多节点多驱动器集群部署 Minio分布式多节点多驱动器集群部署节点规划先决条件开放防火墙端口设置主机名更新域名映射文件时间同步存储要求内存要求 增加虚拟机磁盘(所有机器都要执行)部署分布式 MinIO测试上传与预览测试高可用MinIO 配置限制模拟单节点磁盘故障模拟…...
忽略Git文件的修改,让它不被提交
使用Git托管的工程中,经常有这样的需求,希望文件只是本地修改,不提交到服务端。 如果仅仅是本地存在的文件,我们可以通过.gitignore配置避免文件被提交。 有的时候文件是由git托管的,但是我们希望只在本地修改&#…...
EntityFrameCore DbFirst 迁移
ORM框架:不用关心sql语句,只需要以类为单位,去操作数据库,以面向对象的思想来完成对数据库的操作。 EntityFrameCore-DbFirst Nuget引入程序集 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.SqlServer.Design…...
【信号量】
信号量 目录操作系统信号信号的默认处理动作示例解释信号的捕获与处理使用 signal 函数使用 sigaction 函数 信号的阻塞 信号的生命周期1. 信号产生2. 信号在进程中注册3. 信号在进程中注销4. 信号处理main 7 signal命令含义使用场景手册页包含的关键信息1. 信号概述2. 信号列表…...
安卓cmake修改版本设置路径
有两个位置需要修改: 1、local.properties 在这里设置cmake的本地路径 cmake.dirE\:\\Android_Studio\\sdk\\cmake\\3.22.1 sdk.dirE\:\\Android_Studio\\sdk2、build.gradle里面内容的修改 apply plugin: com.android.applicationandroid {compileSdkVersion 24b…...
如何安装VMware
安装VM...
一篇文章学懂Vuex
一、基于VueCli自定义创建项目 233 344 二、Vuex 初始准备 建项目的时候把vuex勾选上就不用再yarn add vuex3了 store/index.js // 这里面存放的就是vuex相关的核心代码 import Vuex from vuex import Vue from vue// 插件安装 Vue.use(Vuex)// 创建仓库(空仓库…...
DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
选择排序:简单高效的选择
大家好,今天我们来聊聊选择排序(Selection Sort)算法。这是一个非常简单的排序算法,适合用来学习排序的基本思路和操作。选择排序在许多排序算法中以其直观和易于实现的特点著称,虽然它的效率不如其他高效算法…...
图像处理篇---图像处理中常见参数
文章目录 前言一、分贝(dB)的原理1.公式 二、峰值信噪比(PSNR, Peak Signal-to-Noise Ratio)1.用途2.公式3.示例 三、信噪比(SNR, Signal-to-Noise Ratio)1.用途2.公式3.示例 四、动态范围(Dyna…...
【Java】—— 二叉树
一、树型结构 树形结构是一种重要的数据结构,它类似于现实生活中的树的结构,由结点和边构成。树形结构具有以下特点: 树形结构是一种层次化的结构,由根结点、内部结点和叶子结点组成。根结点是树的顶部结点,没有父结点…...
C++....................4
1. using namespace std; class mystring { private:char* p;int len;// 辅助函数:复制字符串void copy(const char* source) {len strlen(source);p new char[len 1];strcpy(p, source);}// 辅助函数:释放内存void release() {if (…...
机场导航系统有哪些功能?精准定位与高效路径规划技术深度剖析
本文专为关注机场服务优化、乘客体验提升的IT技术员及航空业同仁而写。将深入探讨机场室内导航系统的核心功能,旨在解决乘客在机场内部定位、路径规划、服务寻找等方面的痛点。如需获取机场导航系统解决方案可前往文章最下方获取,如有项目合作及技术交流…...
医疗AI领域中GPU集群训练的关键技术与实践经验探究(上)
医疗AI领域中GPU集群训练的关键技术与实践经验探究(上) 一、引言 1.1 研究背景与意义 在科技飞速发展的当下,医疗 AI 作为人工智能技术与医疗领域深度融合的产物,正引领着医疗行业的深刻变革。近年来,医疗 AI 在疾病诊断、药物研发、健康管理等诸多方面取得了显著进展,…...
STM32-智能小车项目
项目框图 ST-link接线 实物图: 正面: 反面: 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 一、让小车动起来 新建文件夹智能小车项目 在里面复制19-串口打印功能 重命名为01-让小车动起来 新建文件夹motor&…...
Qt基础之四十九:Qt属性系统(Property System)
Qt提供了一个复杂的属性系统,类似于一些编译器供应商提供的属性系统。然而,作为一个独立于编译器和平台的库,Qt不依赖于__property或[property]等非标准编译器功能。Qt解决方案适用于Qt支持的每个平台上的任何标准C++编译器。它基于元对象系统(Meta-Object System),该系统…...
Java 中的泛型讲解与使用(超全详解)
Java 中的泛型(超全详解) 在 Java 编程中,泛型是一种强大的特性,它允许我们编写可以处理多种数据类型的代码,从而提高代码的复用性和安全性。本文将对 Java 中的泛型进行超全详解,包括泛型的基本概念、基本…...
星环科技推出DeepSeek全场景解决方案:即开即用、企业级部署、端侧智能三位一体
星环科技(688031.SH)正式发布DeepSeek全场景解决方案,全面覆盖个人用户、企业客户及行业场景需求,为用户提供从个人到企业、从云端到本地的全方位AI应用支持,为不同需求的用户提供了灵活、高效且安全的AI解决方案。 省…...
《全星质量管理 QMS 软件系统》:赋能企业高效质量管理
《全星质量管理 QMS 软件系统》:赋能企业高效质量管理 在当今竞争激烈的商业环境中,《全星质量管理 QMS 软件系统》脱颖而出,展现出了显著且无可比拟的应用优势。 首先,《全星质量管理 QMS 软件系统》犹如一张严密的质量管控大网…...
[分披萨]
分批萨 真题目录: 点击去查看 E 卷 100分题型 题目描述 "吃货"和"馋嘴"两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。但是粗心的服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两…...
