【激活函数】PReLU 激活函数

 1、介绍

       PReLU(Parametric Rectified Linear Unit)激活函数是ReLU(Rectified Linear Unit)激活函数的一种改进。它是由 He et al. 在 2015 年提出的,旨在解决ReLU激活函数的一些局限性。

# 定义 PReLU 激活函数
prelu_activation = torch.nn.PReLU(num_parameters=1, init=0.25, device=None, dtype=None)
  • num_parameters:可学习参数的数量。默认值为 1。对于每个输入通道,都会有一个可学习的参数。

  • init:可学习参数的初始值。默认值为 0.25。这个参数用于初始化可学习的 alpha 参数。

  • device:指定在哪个设备上创建参数。默认为 None,表示使用当前设备。

  • dtype:指定参数的数据类型。默认为 None,表示使用默认的数据类型。

2、公式

$\begin{array}{l}f(x)=\left\{\begin{array}{ll}\alpha x & \text { for } x<0 \\ x & \text { for } x \geq 0\end{array}\right. \\ f(x)=\operatorname{PReLU}(x)=\max (\alpha x, x)\end{array}$

其中,{x} 是输入值,\alpha 是一个可学习的参数,通常是一个小于1的常数。

        这个参数使得PReLU能够在输入值为负数时调整其输出,而不是像传统的ReLU那样直接输出0。 当 x \geq 0 时,PReLU的行为与标准的ReLU相同,即直接输出输入值。但当 x<0 时,PReLU输出的是 \alpha x。这种设计使得PReLU在处理负输入时比标准的ReLU更加灵活和有效。

3、图像

4、特点  

  • 改进梯度消失问题:PReLU通过为负输入值提供一个非零斜率(由参数 \alpha 控制),有助于缓解ReLU在负输入部分的梯度消失问题。

  • 参数化:参数 \alpha 是可学习的,这使得网络可以自适应地调整激活函数的形状,提高了模型的灵活性。当网络需要对激活函数的行为进行自适应调整时,PReLU是一个不错的选择。

  • 计算资源允许:虽然PReLU增加了一些计算负担(因为 \alpha 需要学习),但当计算资源充足时,这通常是可以接受的。

对比 PReLU 和 LeakyReLU 

PReLU(Parametric Rectified Linear Unit)激活函数和 Leaky ReLU 激活函数之间的主要区别在于参数化的方式和灵活性。

        PReLU 数学表达式:

$\begin{array}{l}f(x)=\left\{\begin{array}{ll}\alpha x & \text { for } x<0 \\ x & \text { for } x \geq 0\end{array}\right. \\ f(x)=\operatorname{PReLU}(x)=\max (\alpha x, x)\end{array}$

         Leaky ReLU 数学表达式:

$\begin{array}{l}f(x)=\left\{\begin{array}{ll}\alpha x & \text { for } x<0 \\ x & \text { for } x \geq 0\end{array}\right. \\ f(x)=\operatorname{LeakyReLU}(x)=\max (\alpha x, x)\end{array}$

        从数学表达式上可以看到,这两个激活函数计算方式非常相近,唯一不同的就是 PReLU 负输入部分的斜率(即 \alpha)是可学习的参数,而 Leaky ReLU 负输入部分的斜率(即 \alpha)是初始设定好的固定参数

  1. 参数化:

    • PReLU: 在PReLU中,负输入部分的斜率(即 \alpha)是可学习的参数。这意味着在训练过程中,\alpha 的值是根据数据自动调整的,从而允许网络根据训练数据自适应地调整其激活函数的形状。
    • Leaky ReLU: 在Leaky ReLU中,负输入部分的斜率也是非零的,但它是固定的,通常是一个非常小的常数(如0.01)。这意味着激活函数的形状在整个训练过程中保持不变。
  2. 灵活性和适应性:

    • 由于PReLU的 \alpha 是可学习的,它在理论上能提供更高的灵活性,使得激活函数可以更好地适应特定的数据集和任务。
    • Leaky ReLU由于其简单性,在实现上更直接,但它缺乏PReLU所提供的自适应性。
  3. 在实践中的应用:

    • PReLU通常在深层网络中更受欢迎,尤其是在任务对模型的灵活性有较高要求的场合,例如大规模的图像或语音识别任务。
    • Leaky ReLU由于其简单性,适用于需要快速实现和较少调参的场景。

        总结来说,PReLU通过引入可学习的参数为激活函数提供了更大的灵活性,而Leaky ReLU则提供了一个简单但效果稳定的非零斜率选项,用于处理ReLU激活函数在负输入部分的梯度消失问题。选择哪一个主要取决于特定任务的需求和计算资源的可用性。

对比ReLU和其他变体

PReLU是ReLU的多个变体之一。其他常见的变体包括:

  • ReLU:最简单的形式,输出是输入的正部分。
  • Leaky ReLU:固定一个小的非零斜率(例如0.01)用于负输入部分,与PReLU类似,但斜率不是可学习的。
  • ELU(Exponential Linear Unit):为负输入提供一个指数曲线,以平滑地逼近负无穷。

更多深度学习内容请翻阅本人主页,下列是快速链接:

【激活函数】深度学习中你必须了解的几种激活函数 Sigmoid、Tanh、ReLU、LeakyReLU 和 ELU 激活函数(2024最新整理)-CSDN博客

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

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

相关文章

从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(二),工厂模式创建数据库连接

一、回顾 在第五天的时候我们开始创建后台所以需项目,并创建项目所需要的相关实体类,具体内容没有掌握的小伙伴可以看点击下面的链接去学习。 从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(一)-CSDN博客文章浏览阅读…

记一次实战云渗透总结

点击星标&#xff0c;即时接收最新推文 云渗透思路 所谓的云渗透通常指SaaS或PaaS渗透&#xff0c;即将服务器端的某些服务搭建在云服务器上&#xff0c;源代码的开发、升级、维护等工作都由提供方进行。从原理上看&#xff0c;云渗透思路与传统渗透思路相差无几。站点必须由底…

竞赛练一练 第24期:NOC大赛每日一练,scratch题目刷题第3天,包含答案解析

023年NOC大赛创客智慧编程赛项图形化复赛模拟题一,包含答案解析 本次题目来源:NOC 大赛创客智慧编程赛项图形化复赛模拟题(一) 第一题: 制作一个生日贺卡小程序. 1.点击绿旗后蛋糕出现在 (0,-80) 的位置,大小为 100,造型为 cake-b2.当碰到鼠标指针时,将造型切换为 cak…

MyBatis 源码分析(四):反射模块

前言 上一篇我们了解了Mybatis解析器模块&#xff0c;MyBatis 源码分析&#xff08;三&#xff09;&#xff1a;解析器模块 本篇我们来了解反射模块。相比 parsing 包来说&#xff0c;reflection 包的代码量大概是 2-3 倍。当然&#xff0c;不要慌&#xff0c;都是比较简单的代…

CAN通信的基本原理与实现方法

一. CAN协议概念 1.1 CAN 协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称&#xff0c;它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的&#xff0c;并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下&…

Linux系统安全及应用

目录 一、账号安全控制 1. 系统账号清理 1.1 将用户设置为无法登录 1.2 锁定用户 1.3 删除用户 1.4 锁定配置文件 2. 密码安全控制 2.1 设置密码规则 3. 命令历史 4. 切换用户 4.1 su和su - 4.2 限制使用su命令的用户 5. PAM安全认证 5.1 概述 5.2 pam相关…

通信触发流程

该示例方案主要介绍如何通过建立的Modbus或TCP通信来实现触发方案、协议解析、发送事件和以及响应配置等功能。 需求&#xff1a;使用Modbus通信触发指定流程运行。 搭建思路&#xff1a;在接收事件中使用协议组装&#xff0c;比较规则选择上升沿&#xff0c;当接收到的值从其…

JavaWeb——新闻管理系统(Jsp+Servlet)之jsp新闻查询

java-ee项目结构设计 1.dao:对数据库的访问&#xff0c;实现了增删改查 2.entity:定义了新闻、评论、用户三个实体&#xff0c;并设置对应实体的属性 3.filter&#xff1a;过滤器&#xff0c;设置字符编码都为utf8&#xff0c;防止乱码出现 4.service:业务逻辑处理 5.servlet:处…

软件测试|深入解析Docker Run命令:创建和启动容器的完全指南

简介 Docker是一种流行的容器化平台&#xff0c;用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是docker run&#xff0c;用于创建和启动容器。本文将详细解析docker run命令的用途、参数和示例&#xff0c;帮助您全面掌握创建和启动容器的过程。 docker r…

前端面试题-nodejs

1.什么是nodejs&#xff0c;它与传统的网页服务器有什么不同&#xff1f; 是什么&#xff1f;nodejs是基于Chrome V8引擎的JavaScript运行环境&#xff0c;它可以使JavaScript代码在服务器上运行。 有什么不同&#xff1f;第一&#xff0c;nodejs采用事件驱动、非阻塞式I/O模型…

k8s的网络

k8s的网络 k8s中的通信模式&#xff1a; 1、pod内部之间容器与容器之间的通信 在同一个pod中的容器共享资源和网络&#xff0c;使用同一个网络命名空间&#xff0c;可以直接通信的 2、同一个node节点之内&#xff0c;不同pod之间的通信 每个pod都有一个全局的真实的ip地址…

日志高亮 | notepad

高亮显示日志 日志文件无法清晰看到关键问题所在? 看到一堆日志头疼?高亮日志可以清晰展示出日志的 ERROR级等各种等级的问题, 一下浏览出日志关键所在 tailspin 项目地址&#xff1a; https://githubfast.com/bensadeh/tailspin 使用Rust包管理器cargo安装 安装 - Cargo 手…

【ASP.NET Core 基础知识】--环境设置

一、简介 1.1 .NET Core SDK 概述 .NET Core SDK&#xff08;Software Development Kit&#xff09;是Microsoft推出的一个开源跨平台框架&#xff0c;用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一&#xff0c;为开发者提供了在多个操作系统上构建高性能、可…

《数字图像处理》 第11章 表示和描述 学习笔记附部分例子代码(c++opencv)

表示和描述 0. 前言1. 表示1.1 边界追踪1.2 链码1.3 使用最小周长多边形的多边形近似 2. 边界描绘子2.1 一些简单的描绘子![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/45dddc76217e4fde93a11e2631b2a71a.png#pic_center 500x)2.2 形状数2.3 傅里叶描绘子2.4 统计…

智慧地球(AI•Earth)社区成立一周年啦!独家福利与惊喜彩蛋等你来拿!

原文&#xff1a;智慧地球&#xff08;AI•Earth&#xff09;社区成立一周年啦&#xff01; 智慧地球社区 一周年庆典&#x1f38a; 独家福利&#x1f381;与惊喜彩蛋&#x1f389;等你来拿&#xff01; 智慧地球&#xff08;AI•Earth&#xff09;社区自2023年1月11日建立以…

软件测试|Docker Kill/Pause/Unpause命令详细使用指南

简介 Docker是一种流行的容器化平台&#xff0c;提供了各种命令和功能来管理和操作容器。本文将详细介绍Docker中的三个重要命令&#xff1a;kill、pause和unpause。我们将深入了解它们的作用、用法和示例&#xff0c;帮助您更好地理解和使用这些命令。 什么是Docker Kill/Pa…

C++异常处理机制

文章目录 C语言传统的处理错误的方式C异常概念异常的使用自定义异常体系C标准库的异常体系异常的优缺点 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击…

Mysql为什么只能支持2000w左右的数据量?

首先说明一下&#xff1a; MySQL并没有硬性规定只能支持到2000万左右的数据量。 其实&#xff0c;MySQL能够处理的数据量远远超过这个数字。无论是开源社区版还是商业版&#xff0c; MySQL在适当的硬件和配置下&#xff0c;都能够支持非常大的数据集。 通常所说的“MySQL只能…

延迟加载:提升性能的隐形利器

引言 想象一下&#xff0c;你正在玩一款大型电子游戏。如果游戏在启动的时候就加载了所有的关卡、角色和道具&#xff0c;那玩家可能需要等待很长时间才能开始游戏&#xff0c;而且大部分内容可能在游戏的初期都不会被用到。显然&#xff0c;这样的做法既低效又耗时。 而延迟加…

科研学习|论文解读——超准确性反馈:使用眼动追踪来检测阅读过程中的可理解性和兴趣

摘要&#xff1a; 了解用户想要什么信息是信息科学和技术面临的最大挑战。隐式反馈是解决这一挑战的关键&#xff0c;因为它允许信息系统了解用户的需求和偏好。然而&#xff0c;可用的反馈往往是有限的&#xff0c;而且其解释也很困难。为了应对这一挑战&#xff0c;我们提出了…