【漫画机器学习系列】102.带泄露线性整流函数(Leaky ReLU)

Leaky ReLU(带泄露线性整流函数)详解

1. 什么是 Leaky ReLU?

Leaky ReLU(带泄露线性整流函数)是一种改进的 ReLU(Rectified Linear Unit,线性整流单元)激活函数。与标准 ReLU 不同,Leaky ReLU 在输入值小于 0 时,不会直接将输出置为 0,而是给予一个小的非零梯度(通常是 0.01 倍的输入值)。这种特性使得 Leaky ReLU 在面对负输入时不会完全消失,从而减轻了“神经元死亡”(Dead Neurons)问题。


2. Leaky ReLU 的数学表达式

Leaky ReLU 的数学公式如下:

\phi(z) = \begin{cases} z, & \text{if } z > 0 \\ 0.01z, & \text{otherwise} \end{cases}

其中:

  • 当 z > 0 时,Leaky ReLU 的输出与 ReLU 一样,直接输出 z;

  • 当 z ≤ 0 时,输出不再是 0,而是输入值的 0.01 倍(即:0.01z)。

  • 其中的泄露系数(Leakage Coefficient) 0.01 可以调整,通常记为 α:

    \phi(z) = \begin{cases} z, & z > 0 \\ \alpha z, & z \leq 0 \end{cases}

    其中 α\alphaα 通常取 0.01,但可以根据具体任务进行调整。


3. 为什么需要 Leaky ReLU?

3.1 解决 ReLU 的“神经元死亡”问题

在标准 ReLU 中,所有小于 0 的输入都会输出 0,这意味着在反向传播时,其梯度也是 0。如果某个神经元长期处于负输入状态,它的梯度会一直是 0,导致该神经元无法更新权重,最终可能永远不会被激活,即变成“死神经元”(Dead Neurons)。

Leaky ReLU 通过在负输入部分给予一个小的非零梯度(如 0.01),确保神经元仍然有梯度更新的可能,从而减轻了这个问题。

3.2 允许负值信息通过

在某些任务(如音频信号、金融时间序列预测等)中,输入可能会有重要的负值信息。标准 ReLU 会丢弃所有负输入,而 Leaky ReLU 允许这些信息部分保留,从而提升模型表现。


4. Leaky ReLU 与其他激活函数的比较

激活函数定义特点缺点
ReLUf(z) = \max(0, z)计算简单,减少梯度消失神经元死亡问题
Leaky ReLUf(z) = \max(0.01z, z)解决神经元死亡问题,允许负值通过需要调整 α\alphaα
Parametric ReLU(PReLU)f(z) = \max(\alpha z, z)允许学习 α 值,提升适应性增加了超参数
ELU(Exponential Linear Unit)f(z) = z, z > 0; \alpha (e^z - 1), z \leq 0负输入平滑过渡,均值接近 0计算较复杂
Sigmoidf(z) = \frac{1}{1+e^{-z}}输出在 (0,1) 之间容易梯度消失
Tanhf(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}输出范围 (-1,1),比 Sigmoid 更优仍存在梯度消失问题

总结

  • Leaky ReLU 是 ReLU 的改进版,适用于大多数深度学习任务。
  • 如果希望让负值信息更多参与训练,可以使用 ELUTanh
  • 如果希望让神经元自行学习负斜率,可以使用 PReLU

5. Leaky ReLU 在深度学习中的应用

5.1 计算机视觉

在 CNN(卷积神经网络)中,Leaky ReLU 被广泛用于特征提取层,例如:

  • 目标检测(Object Detection):如 YOLO(You Only Look Once)网络中广泛使用 Leaky ReLU。
  • 图像分类(Image Classification):如 ResNet 等模型。

5.2 自然语言处理(NLP)

在 NLP 任务中,Leaky ReLU 主要用于:

  • 文本情感分析:处理文本向量化后的数据时,Leaky ReLU 允许更多信息流动。
  • 序列生成(如 Transformer 结构):有时会用 Leaky ReLU 替代标准 ReLU,以减少梯度消失问题。

5.3 强化学习

在 DQN(深度 Q 网络)等强化学习模型中,Leaky ReLU 通过保持负值信息,提升策略学习的稳定性。


6. Leaky ReLU 的超参数调优

Leaky ReLU 主要有一个超参数 α(泄露系数),常见的选择方法:

  1. 固定值:通常设为 0.01 或 0.1。
  2. 超参数搜索:使用 Grid Search 或 Random Search 选择最优的 α。
  3. 可学习参数(PReLU):将 α 作为神经网络的可训练参数,让模型自动学习最优值。

7. 代码示例

7.1 在 NumPy 中实现 Leaky ReLU

import numpy as np

def leaky_relu(z, alpha=0.01):
    return np.where(z > 0, z, alpha * z)

# 示例
z = np.array([-3, -1, 0, 1, 3])
print(leaky_relu(z))

运行结果 

[-0.03 -0.01  0.    1.    3.  ]

7.2 在 TensorFlow/Keras 中使用 Leaky ReLU

from tensorflow.keras.layers import Dense, LeakyReLU
from tensorflow.keras.models import Sequential

model = Sequential([
    Dense(128, input_shape=(10,)),
    LeakyReLU(alpha=0.01),  # 使用 Leaky ReLU
    Dense(64),
    LeakyReLU(alpha=0.01),
    Dense(1, activation='sigmoid')
])

7.3 在 PyTorch 中使用 Leaky ReLU

import torch
import torch.nn as nn

# 定义 Leaky ReLU 层
leaky_relu = nn.LeakyReLU(negative_slope=0.01)

# 示例数据
x = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])
print(leaky_relu(x))

运行结果 

tensor([-0.0300, -0.0100,  0.0000,  1.0000,  3.0000])


8. 总结

Leaky ReLU 是 ReLU 的改进版本,解决了神经元死亡问题,同时允许负值信息通过。

  • 不会让负值的梯度完全消失
  • 计算简单,适用于 CNN、NLP、强化学习等任务
  • 适用于深度神经网络,避免梯度消失
  • 需要调整泄露系数 α,或使用 PReLU 让模型自动学习 α

在大多数情况下,Leaky ReLU 比 ReLU 更稳定,是深度学习模型的一个重要工具!

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

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

相关文章

GeoHD - 一种用于智慧城市热点探测的Python工具箱

GeoHD - 一种用于智慧城市热点探测的Python工具箱 详细原理请参考:Yan, Y., Quan, W., Wang, H., 2024. A data‐driven adaptive geospatial hotspot detection approach in smart cities. Trans. GIS tgis.13137. 代码下载:下载 1. 简介 在城市数据…

Github 2025-02-23 php开源项目日报 Top9

根据Github Trendings的统计,今日(2025-02-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9JavaScript项目2Shell项目1TypeScript项目1Blade项目1Java项目1ASP项目1Vue项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:…

使用大语言模型(Deepseek)构建一个基于 SQL 数据的问答系统

GitHub代码仓库 架构 从高层次来看,这些系统的步骤如下: 将问题转换为SQL查询:模型将用户输入转换为SQL查询。 执行SQL查询:执行查询。 回答问题:模型根据查询结果响应用户输入。 样本数据 下载样本数据&#xf…

AI学习之-阿里天池

阿里天池(Tianchi)是阿里巴巴集团旗下的一个数据科学与人工智能竞赛平台,致力于推动数据科学和人工智能的发展。在天池平台上,人们可以参与各种数据竞赛和挑战,解决实际问题,提升数据科学技能。天池平台提供…

数据库管理-第295期 IT架构与爆炸半径(20250221)

数据库管理295期 2025-02-21 数据库管理-第295期 架构与爆炸半径(20250221)1 术语新解2 硬件:存储VS本地盘3 数据库3.1 多模VS专用3.2 集中式VS分布式 4 公有云VS非公有云总结 数据库管理-第295期 架构与爆炸半径(20250221&#x…

嵌入式 Linux:使用设备树驱动GPIO全流程

文章目录 前言 一、设备树配置 1.1 添加 pinctrl 节点 1.2 添加 LED 设备节点 二、编写驱动程序 2.1 驱动程序框架 2.2 编译驱动程序 三、测试 总结 前言 在嵌入式 Linux 开发中,设备树(Device Tree)和 GPIO 子系统是控制硬件设备的重要工具…

w803|联盛德|WM IoT SDK2.X测试|pinout|(2):w803开发板简介

概述 W803-Pico是一款基于联盛德W803芯片为主控的开发板,支持IEEE802.11 b/g/n Wi-Fi,以及BT/BLE4.2协议蓝牙。芯片内置高性能32位处理器,主频高达240MHz。内置2MB Flash以及288KB RAM。硬件采用DIP封装,PCB板载天线,…

网络安全之探险

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 因为工作相关性,看着第三方公司出具的网络安全和shentou测试报告就想更深入研究一下,于是乎开始探索网络安全方面的知识,度娘、…

Seata1.5.2学习(二)——使用分布式事务锁@GlobalLock

目录 一、创建数据库 二、配置consumer-service 1.pom.xml 2.application.properties 3.启动类 4.其他代码 三、配置provider-service 1.pom.xml 2.application.properties 3.启动类 4.其他代码 四、分布式事务问题演示与解决办法 (一)分布式事务问题演示 (二)…

2024信息技术、信息安全、网络安全、数据安全等国家标准合集共125份。

2024信息技术、信息安全、网络安全、数据安全等国家标准合集,共125份。 一、2024信息技术标准(54份) GB_T 17966-2024 信息技术 微处理器系统 浮点运算.pdf GB_T 17969.8-2024 信息技术 对象标识符登记机构操作规程 第8部分:通用…

Linux基本指令(三)+ 权限

文章目录 基本指令grep打包和压缩zip/unzipLinux和windows压缩包互传tar(重要)Linux和Linux压缩包互传 bcuname -r常用的热键关机外壳程序 知识点打包和压缩 Linux中的权限用户权限 基本指令 grep 1. grep可以过滤文本行 done用于标记循环的结束&#x…

C语言番外篇(3)------------>break、continue

看到我的封面图的时候,部分读者可能认为这和编程有什么关系呢? 实际上这个三个人指的是本篇文章有三个部分组成。 在之前的博客中我们提及到了while循环和for循环,在这里面我们学习了它们的基本语法。今天我们要提及的是关于while循环和for…

开源嵌入式实时操作系统uC/OS-II介绍

一、uC/OS-II的诞生:从开源实验到行业标杆 背景与起源 uC/OS-II(Micro-Controller Operating System Version II)诞生于1992年,由嵌入式系统先驱Jean J. Labrosse开发。其前身uC/OS(1991年)最初作为教学工…

PH热榜 | 2025-02-23

1. NYX 标语:你智能化的营销助手,助你提升业绩。 介绍:NYX的人工智能助手简化了从头到尾的广告活动管理,帮助你轻松创建高转化率的广告,启动多渠道营销活动,并通过实时分析来优化表现。它还可以整合主要的…

设备唯一ID获取,支持安卓/iOS/鸿蒙Next(uni-device-id)UTS插件

设备唯一ID获取 支持安卓/iOS/鸿蒙(uni-device-id)UTS插件 介绍 获取设备唯一ID、设备唯一标识,支持安卓(AndroidId/OAID/IMEI/MEID/MacAddress/Serial/UUID/设备基础信息),iOS(Identifier/UUID),鸿蒙&am…

libwebsockets交叉编译全流程

libwebsocket中的webscoket加密功能需要依赖于Openssl库因此需要提前准备好openssl开源库。 交叉编译openssl 下面演示源码方式交叉编译OpenSSL为动态库。 创建个Websocket文件夹,把后续的成果物均放在这个文件中,文件夹中创建子文件夹OpenSSL和libWeb…

图片爬取案例

修改前的代码 但是总显示“失败” 原因是 修改之后的代码 import requests import os from urllib.parse import unquote# 原始URL url https://cn.bing.com/images/search?viewdetailV2&ccidTnImuvQ0&id5AE65CE4BE05EE7A79A73EEFA37578E87AE19421&thidOIP.TnI…

MAC快速本地部署Deepseek (win也可以)

MAC快速本地部署Deepseek (win也可以) 下载安装ollama 地址: https://ollama.com/ Ollama 是一个开源的大型语言模型(LLM)本地运行框架,旨在简化大模型的部署和管理流程,使开发者、研究人员及爱好者能够高效地在本地环境中实验和…

游戏引擎学习第119天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾和今天的议程 如果你们还记得昨天的进展,我们刚刚完成了优化工作,目标是让某个程序能够尽可能快速地运行。我觉得现在可以说它已经快速运行了。虽然可能还没有达到最快的速度,但我们…

deepseek清华大学第二版 如何获取 DeepSeek如何赋能职场应用 PDF文档 电子档(附下载)

deepseek清华大学第二版 DeepSeek如何赋能职场 pdf文件完整版下载 https://pan.baidu.com/s/1aQcNS8UleMldcoH0Jc6C6A?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/3ee62050a2ac