神经网络常见激活函数 4-LeakyReLU函数
文章目录
- LeakyReLU
- 函数+导函数
- 函数和导函数图像
- 优缺点
- pytorch中的LeakyReLU函数
- tensorflow 中的LeakyReLU函数
LeakyReLU
- LeakyReLU: Leaky Rectified Linear Unit
函数+导函数
-
LeakyReLU函数
L e a k y R e L U = { x x > = 0 p x x < 0 p ∈ ( 0 , 1 ) \rm Leaky{ReLU} = \left\{ \begin{array}{} x \quad x>=0 \\ px \quad x<0 \end{array} \right. \quad p \in (0,1) LeakyReLU={xx>=0pxx<0p∈(0,1) -
LeakyReLU函数导数
d d x L e a k y R e L U = { 1 x ≥ 1 p x < 0 p ∈ ( 0 , 1 ) \frac{d}{dx} \rm LeakyReLU = \left\{ \begin{array}{} 1 \quad x \ge1 \\ p \quad x < 0 \end{array} \right. \quad p \in (0,1) dxdLeakyReLU={1x≥1px<0p∈(0,1)
它和 ReLU 函数的不同之处在于,当 x 小于零时,LeakyReLU 函数的导数值并不为 0,而 是常数𝑝,p 一般设置为某较小的数值,如 0.01 或 0.02
函数和导函数图像
-
画图
下面是的 p = 0.5 p=0.5 p=0.5 时候的情况,请注意,p 一般设置为较小值。
import numpy as np from matplotlib import pyplot as plt# 定义 PReLU 函数 def prelu(x, alpha=0.25):return np.where(x < 0, alpha * x, x)# 定义 PReLU 的导数 def prelu_derivative(x, alpha=0.25):d = np.where(x < 0, alpha, 1)return d# 生成数据 x = np.linspace(-2, 2, 1000) alpha = 0.5 # 可以调整 alpha 的值 y = prelu(x, alpha) y1 = prelu_derivative(x, alpha)# 绘制图形 plt.figure(figsize=(12, 8)) ax = plt.gca() plt.plot(x, y, label='PReLU') plt.plot(x, y1, label='Derivative') plt.title(f'PReLU (alpha={alpha}) and Partial Derivative')# 设置上边和右边无边框 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none')# 设置 x 坐标刻度数字或名称的位置 ax.xaxis.set_ticks_position('bottom')# 设置边框位置 ax.spines['bottom'].set_position(('data', 0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0))plt.legend(loc=2) plt.show()

LeakyReLU 函数有效的克服了 ReLU 函数的缺陷,使用也比较广泛。
优缺点
-
Leaky Relu 的优点(相对 ReLU的改进)
- 与 ReLU 函数相比,Leaky ReLU 通过在负半轴引入一个小的线性分量(如 0.01x)来调整负值的梯度问题;这有助于扩大 ReLU 函数的范围,通常斜率 p 的值为 0.01 左右;函数范围是负无穷到正无穷。
- Leaky ReLU 激活函数通过在负半轴添加一个小的正斜率(如 0.01),使得负轴的信息不会全部丢失。通过这种方式,Leaky ReLU 激活函数可以确保模型训练过程中神经元的权重在输入小于 0 的情况下依然会得到更新。
- 不会出现 Dead ReLU 问题,但关于输入函数 f(x)的部分仍然容易出现梯度爆炸的情况,因此必要时可以搭配 Sigmoid 或 Tanh 使用。
-
Leaky Relu 的缺点
- 经典(以及广泛使用的)ReLU 激活函数的变体,带泄露修正线性单元(Leaky ReLU)的输出对负值输入有很小的坡度。由于导数总是不为零,这能减少静默神经元的出现,允许基于梯度的学习(虽然会很慢)。
- 从理论上讲,Leaky ReLU 具有 ReLU 的所有优点,而且 Dead ReLU 不会有任何问题,但在实际应用中,尚未完全证明 Leaky ReLU 总是比 ReLU 更好。
pytorch中的LeakyReLU函数
-
代码
import torchx = torch.randn(2) f = torch.nn.LeakyReLU(negative_slope=0.1) # negative_slope是个常数,即负值部分的斜率leakyRelu_x = f(x)print(f"x: \n{x}") print(f"leakyRelu_x:\n{leakyRelu_x}")"""输出""" x: tensor([-1.7098, 0.3351]) leakyRelu_x: tensor([-0.1710, 0.3351])为了便于演示,这里的
p设置成了0.1,即代码中的negative_slope,我们可以看到输出,当x小于0 的时候,leakyRelu_x的结果被乘以0.1。
tensorflow 中的LeakyReLU函数
-
代码
python: 3.10.9
tensorflow: 2.18.0
import tensorflow as tfalpha = 0.1 # 定义 LeakyReLU 函数,alpha 是负值部分的斜率 f = lambda x: tf.nn.leaky_relu(x, alpha=alpha)x = tf.random.normal([2]) leaky_relu_x = f(x)print(f"x: \n{x}") print(f"leaky_relu_x:\n{leaky_relu_x}")"""输出""" x: [-0.733668 0.06844683] leaky_relu_x: [-0.07336681 0.06844683]同上,这里的
p设置成了0.1,即代码中的alpha,我们可以看到输出,当x小于0 的时候,leakyRelu_x的结果被乘以0.1。
相关文章:
神经网络常见激活函数 4-LeakyReLU函数
文章目录 LeakyReLU函数导函数函数和导函数图像优缺点pytorch中的LeakyReLU函数tensorflow 中的LeakyReLU函数 LeakyReLU LeakyReLU: Leaky Rectified Linear Unit 函数导函数 LeakyReLU函数 L e a k y R e L U { x x > 0 p x x < 0 p ∈ ( 0 , 1 ) \rm …...
PHP盲盒商城系统源码 晒图+免签+短信验证+在线回收 thinkphp框架
源码介绍 PHP盲盒商城系统源码 晒图免签短信验证在线回收 thinkphp框架 源码前端uniapp开发,可以打包成APP(非H5封壳)H5,接其他平台支付通道,前后端全开源 H5盲盒首页可以直接开盒新UI 修复优化BUG,修复无…...
单例模式详解(Java)
单例模式详解(Java) 一、引言 1.1 概述单例模式的基本概念和重要性 单例模式是一种常用的软件设计模式,它确保一个类在整个应用程序中只有一个实例,并提供一个全局访问点来访问这个唯一实例。这种模式在资源管理、配置设置和日志记录等方面非常有用,因为它们通常只需要…...
2025年度Python最新整理的免费股票数据API接口
在2025年这个充满变革与机遇的年份,随着金融市场的蓬勃发展,量化交易逐渐成为了投资者们追求高效、精准交易的重要手段。而在这个领域中,一个实时、准确、稳定的股票API无疑是每位交易者梦寐以求的工具。 现将200多个实测可用且免费的专业股票…...
2.10学习总结
今天接着看了数据结构,但是跟指针有关的看不懂(万恶的指针),写了考试的补题。 #include <stdio.h> #include <stdlib.h> int a[1000005]; int main() {int n,i,x0;scanf("%d",&n);for(i1;i<n;i){x;i…...
原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力 在科技飞速发展的当下,人工智能与操作系统的融合正深刻改变着我们的数字生活。近日,原生鸿蒙版小艺APP成功接入DeepSeek-R1,这一突破性进展不仅为用户带来了更智…...
从Word里面用VBA调用NVIDIA的免费DeepSeekR1
看上去能用而已。 选中的文字作为输入,运行对应的宏即可;会先MSGBOX提示一下,然后相关内容追加到word文档中。 需要自己注册生成好用的apikey Option ExplicitSub DeepSeek()Dim selectedText As StringDim apiKey As StringDim response A…...
【SpringBoot篇】基于Redis分布式锁的 误删问题 和 原子性问题
文章目录 ??Redis的分布式锁??误删问题 ??解决方法??代码实现 ??原子性问题 ??Lua脚本 ?利用Java代码调用Lua脚本改造分布式锁??代码实现 ??Redis的分布式锁 Redis的分布式锁是通过利用Redis的原子操作和特性来实现的。在分布式环境中,多个应用…...
【JVM详解三】垃圾回收机制
一、对象是否存活 强引用:Object obj new Object(); 只要强引用还在,垃圾收集器永远不会回收掉被引用的对象。在不用对象的时将引用赋值为 null,能够帮助垃圾回收器回收对象。比如 ArrayList 的 clear() 方法实现。软引用(SoftRe…...
MySQL的字符集(Character Set)和排序规则(Collation)
MySQL的字符集(Character Set)和排序规则(Collation) 字符集(Character Set)和排序规则(Collation)是数据库中处理文本数据的两个核心概念,二者紧密相关但作用不同。 1…...
2025影视泛目录站群程序设计_源码二次开发新版本无缓存刷新不变实现原理
1. 引言 本设站群程序计书旨在详细阐述苹果CMS泛目录的创新设计与实现,介绍无缓存刷新技术、数据统一化、局部URL控制及性能优化等核心功能,以提升网站访问速度和用户体验。 2. 技术概述 2.1 无缓存刷新技术 功能特点: 内容不变性&#x…...
常用的python库-安装与使用
常用的python库函数 yield关键字openslide库openslide库的安装-linuxopenslide的使用openslide对象的常用属性 cv2库numpy库ASAP库-multiresolutionimageinterface库ASAP库的安装ASAP库的使用 concurrent.futures.ThreadPoolExecutorxml.etree.ElementTree库skimage库PIL.Image…...
array_walk. array_map. array_filter
1. array_walk 函数 array_walk 用于遍历数组并对每个元素执行回调函数。它不会受到数组内部指针位置的影响,会遍历整个数组。回调函数接收的前两个参数分别是元素的值和键名,如果有第三个参数,则数组所有的值都共用这个参数。 示例代码&am…...
数据仓库和商务智能:洞察数据,驱动决策
在数据管理的众多领域中,数据仓库和商务智能(BI)是将数据转化为洞察力、支持决策制定的关键环节。它们通过整合、存储和分析数据,帮助组织更好地理解业务运营,预测市场趋势,从而制定出更明智的战略。今天&a…...
Vue设计模式到底多少种?
Vue设计模式到底多少种? 很多同学问,Vue到底有多少种设计模式??各个模式到底是什么意思??又各自适合什么场景?? 这里我给大家直接说下,Vue的设计模式没有一个固定的数值…...
HTML 属性
HTML 属性 HTML(超文本标记语言)是构建网页的基础,而HTML属性则是赋予HTML元素额外功能和样式的关键。本文将详细介绍HTML属性的概念、常用属性及其应用,帮助您更好地理解和使用HTML。 一、HTML属性概述 HTML属性是HTML元素的组成部分,用于描述元素的状态或行为。属性总…...
oracle如何查询历史最大进程数?
oracle如何查询历史最大进程数? SQL> desc dba_hist_resource_limitName Null? Type---------------------------------------------------- -------- ------------------------------------SNAP_ID …...
SpringBoot单机模式,能否支持一万用户请求并发?
Spring Boot 单机模式能否支持一万用户请求并发,取决于多个因素: 硬件配置:CPU、内存、磁盘I/O和网络带宽是关键。高性能硬件能显著提升并发处理能力。 应用复杂度:业务逻辑复杂度和数据库操作频率会影响性能。复杂的业务逻辑和高…...
[前端]CRX持久化
在 Chrome 扩展开发中,持久化保存数据通常使用 Chrome 的 storage API。storage API 提供了两种存储选项:local 和 sync。使用 local 存储的数据保存在本地浏览器中,只能在同一设备上访问。使用 sync 存储的数据可以在用户登录其 Google 帐户…...
模型 替身决策
系列文章分享模型,了解更多👉 模型_思维模型目录。替身决策,换位思考,多角度决策。 1 替身决策模型的应用 1.1 替身决策模型在面试中的应用-小李的求职面试 小李是一名应届毕业生,正在积极寻找工作机会。在面试过程中…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...
基于 HTTP 的单向流式通信协议SSE详解
SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…...
