首页 > 其他分享 >ReLU 激活函数

ReLU 激活函数

时间:2024-10-19 20:53:25浏览次数:3  
标签:函数 max ReLU xx exp 梯度 激活

ReLU(Rectified Linear Unit,整流线性单元)是一种常用的激活函数,在深度学习中广泛应用于神经网络的隐藏层。ReLU 激活函数的定义非常简单:

ReLU(x)=max⁡(0,x)ReLU(x)=max(0,x)

这意味着对于输入 xx,如果 xx 大于 0,则输出 xx;如果 xx 小于或等于 0,则输出 0。

ReLU 的优点

  1. 计算简单

    • ReLU 函数在正区间是线性的,因此计算非常高效,只需要一个阈值操作。
  2. 缓解梯度消失问题

    • 与 Sigmoid 和 Tanh 等饱和激活函数相比,ReLU 在正区间内梯度为 1,不会出现梯度消失的问题,有助于加速训练过程。
  3. 稀疏性

    • ReLU 会使负值部分变为 0,从而引入稀疏性,这有助于简化模型并提高效率。
  4. 生物合理性

    • ReLU 的行为类似于神经元的“全或无”响应模式,更符合生物学上的神经元行为

ReLU 的缺点

  1. 死亡 ReLU 问题

    • 如果输入数据导致 ReLU 输出很多 0,这些神经元将不再对任何数据有响应,即它们的梯度永远为 0,无法进行更新。这种情况被称为“死亡 ReLU”。
  2. 非零中心

    • ReLU 输出的数据是非零中心的,可能会导致后续层的输入数据分布偏移,影响训练效果。

变种

为了克服 ReLU 的一些缺点,研究者提出了几种变种:

  1. Leaky ReLU

    • 定义为:Leaky ReLU(x)=max⁡(αx,x)Leaky ReLU(x)=max(αx,x)
    • 其中 αα 是一个小常数(例如 0.01),使得负区间也有一个较小的斜率,避免了死亡 ReLU 问题。
  2. Parametric ReLU (PReLU)

    • 定义为:PReLU(x)=max⁡(αx,x)PReLU(x)=max(αx,x)
    • 其中 αα 是一个可学习的参数,每个神经元可以有不同的 αα 值。
  3. Exponential Linear Units (ELU)

    • 定义为:ELU(x)={xif x>0α(exp⁡(x)−1)if x≤0ELU(x)={xα(exp(x)−1)​if x>0if x≤0​
    • ELU 在负区间有一个平滑的曲线,有助于使数据更加接近零中心,并且具有更好的梯度特性。
  4. Scaled Exponential Linear Units (SELU)

    • 定义为:SELU(x)=λ{xif x>0α(exp⁡(x)−1)if x≤0SELU(x)=λ{xα(exp(x)−1)​if x>0if x≤0​
    • SELU 通过特定的 λλ 和 αα 参数,使得网络能够自归一化(self-normalizing)。

import torch

# 创建一个张量
x = torch.tensor([-1.0, 0.0, 1.0])

# 应用 ReLU 激活函数
relu_output = torch.relu(x)

print(relu_output)

标签:函数,max,ReLU,xx,exp,梯度,激活
From: https://blog.csdn.net/2403_83147124/article/details/142965005

相关文章

  • Python算法题常用函数记忆清单
    系统设计题&模拟题链接:https://leetcode.cn/problem-list/design/字符串操作splite按指定分隔符转成liststr_list=text.split() #默认按空格分割(函数写在后面,用.来调用)str_list=text.split(",") #按逗号分割 strip()去除两边的空格trimmed_text=text......
  • Scala中reduce函数
    reduce()方法是一个高阶函数,它接受集合中的所有元素(数组,列表等),并使用二进制运算将它们组合以产生单个值。必须确保运算是可交换的和关联的。匿名函数作为参数传递给reduce函数。reduce作用:是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的......
  • 线性可分支持向量机的原理推导【补充知识部分】9-10最大化函数max α,β L(x,α,β)关
    本文是将文章《线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。在主文章中,有一个部分是关于补充拉格朗日对偶性的相关知识,此公式即为这部分里的内容。公式9-10是基于公式9-9的进一步引申,它通过引入拉格朗日乘子,将约束优化问......
  • access数据库中的round函数是什么意思
    access数据库中的round函数是内置的四舍五入的函数,主要应用于对带小数位的数据字段进行格式化处理。Round函数的语法如下:Round(number,[numdecimalplaces]),其中,number是要进行四舍五入的数字;numdecimalplaces是可选参数,用于指定要保留的小数位数,如果省略,则默认为0。一、acces......
  • 【C语言】strncat、strncmp、strstr函数讲解
    本篇博客将讲解函数:strncat、strncmp、strstr函数注意:使用strncat、strncmp、strstr函数时要包含头文件:string.h1、strncat函数的使用(是从目标空间中第一个的‘\0’位置开始追加的)strncat函数原型: char*   strncat(char*destination,  const char* sourc......
  • MYSQL-窗口函数
    判断函数if(expr,v1,v2):表达式结果为true返回v1,否则返回v2ifnull(列名,dv):列值为null返回dv,否则返回列值.nullif(expr1,expr2):表达式1=表达式2返回null,不等于返回表达式1的值.窗口函数作用:可以为表新增一列,新增的列是什么取决于over()函数前面的函数.主......
  • 面对配分函数 - 噪扰对比估计(NCE)篇
    序言配分函数(也叫归一化因子)在概率分布和统计模型的计算中扮演着至关重要的角色。然而,在许多实际应用中,特别是自然语言处理和图像处理领域,配分函数的计算往往异常复杂且难以直接实现。为了解决这一难题,噪音对比估计(Noise Contras......
  • Java自定义函数查看OS的File Cache — 从原理到实战
    全文目录:开篇语......
  • 【YOLOv10改进[损失函数]】使用结合InnerIoU和Focaler的各种损失函数助力YOLOv10更优
    目录一损失函数二改进v10的损失函数1总体修改①ultralytics/utils/metrics.py文件② ultralytics/utils/loss.py文件③ ultralytics/utils/tal.py文件2各种机制的使用3训练一损失函数【DL】损失函数:IOU|GIOU|DIOU|CIOU|EIOU|MPDIoU|SIOU|InnerIoU|Focaler......
  • 打开文件和文件夹工具类 - C#小函数类推荐
          此文记录的是打开文件和文件夹工具类。/***打开文件和文件夹工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00***/names......