当前位置: 首页 > article >正文

神经网络激活函数汇总

神经网络中的激活函数用于引入非线性,使模型能够学习和表示复杂的模式。不同的激活函数有各自的特性和用途。常见的激活函数包括以下几种:

1. Sigmoid(S型函数)

  • 公式:
    σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1
  • 输出范围: (0, 1)
  • 特点:
    • 将输入值压缩到 (0, 1) 之间,适合用于输出为概率的场景。
    • 缺点:当输入值极大或极小时,梯度趋近于零,容易引发梯度消失问题
  • 应用场景: 通常用于二分类问题的输出层。

2. Tanh(双曲正切函数)

  • 公式:
    tanh ( x ) = e x − e − x e x + e − x \text{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+exexex
  • 输出范围: (-1, 1)
  • 特点:
    • 输出范围比 Sigmoid 更广(-1 到 1),使得输出能更好地表示负数和正数。
    • 与 Sigmoid 一样,tanh 函数在极大或极小值时,梯度也会趋近于零。
  • 应用场景: 在隐藏层中常用,因为其输出的均值为 0,能更好地处理数据的对称性。

3. ReLU(Rectified Linear Unit,修正线性单元)

  • 公式:
    ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)
  • 输出范围: [0, ∞)
  • 特点:
    • 在正区间保持线性,负区间为零。计算简单且不会有梯度消失问题(在正区间)。
    • 缺点:在负区间的梯度为零,神经元可能“死亡”,导致无法更新参数(称为ReLU 死亡问题)。
  • 应用场景: 广泛用于隐藏层,尤其是深度神经网络中。

4. Leaky ReLU

  • 公式:
    Leaky ReLU ( x ) = max ⁡ ( 0.01 x , x ) \text{Leaky ReLU}(x) = \max(0.01x, x) Leaky ReLU(x)=max(0.01x,x)
  • 输出范围: (-∞, ∞)
  • 特点:
    • 与 ReLU 类似,但允许负值有一个很小的斜率(通常为 0.01),以防止“死亡神经元”的问题。
  • 应用场景: 是 ReLU 的改进版本,适用于深度神经网络,能解决部分 ReLU 的问题。

5. ELU(Exponential Linear Unit,指数线性单元)

  • 公式:
    ELU ( x ) = { x , if  x > 0 α ( e x − 1 ) , if  x ≤ 0 \text{ELU}(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha(e^x - 1), & \text{if } x \leq 0 \end{cases} ELU(x)={x,α(ex1),if x>0if x0
    其中 α \alpha α 是一个超参数,通常取 α = 1 \alpha = 1 α=1
  • 输出范围: (-∞, ∞)
  • 特点:
    • 在负值区间平滑过渡,而不像 ReLU 那样直接为零,避免了“死亡神经元”的问题。
    • 在正值区间与 ReLU 类似。
  • 应用场景: 适用于深层神经网络,通常效果优于 ReLU。

6. Softmax(用于多分类的激活函数)

  • 公式:
    Softmax ( x i ) = e x i ∑ j e x j \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} Softmax(xi)=jexjexi
  • 输出范围: (0, 1)
  • 特点:
    • 将输出值规范化为概率分布(所有输出值加起来为 1)。
    • 通常用于多分类问题的输出层。
  • 应用场景: 用于多分类问题的最后一层,生成每个类别的概率分布。

7. Swish(由 Google 提出的激活函数)

  • 公式:
    Swish ( x ) = x ⋅ σ ( x ) = x 1 + e − x \text{Swish}(x) = x \cdot \sigma(x) = \frac{x}{1 + e^{-x}} Swish(x)=xσ(x)=1+exx
  • 输出范围: (-∞, ∞)
  • 特点:
    • 平滑且无界,类似于 ReLU,但其导数连续,不像 ReLU 在 0 点有非连续导数。
    • Swish 在一些深度神经网络任务中表现优于 ReLU 和 Sigmoid。
  • 应用场景: 新型的激活函数,适用于深度学习中的各种任务,常在卷积神经网络(CNN)中使用。

总结:

  • Sigmoid 和 Tanh:适合浅层网络,但容易出现梯度消失问题。
  • ReLU 和其变种(Leaky ReLU, ELU):适合深度神经网络,避免了梯度消失问题。
  • Softmax:用于多分类问题的输出层。
  • Swish:新型激活函数,在某些任务中效果优于传统激活函数。

http://www.kler.cn/news/341459.html

相关文章:

  • 【d59】【Java】【力扣】146.LRU缓存
  • 输出平方矩阵
  • C++游戏开发指南
  • 利用Spring Boot的RestTemplate进行REST客户端开发
  • 字节豆包推出AI智能体耳机Ola Friend 售价1199元
  • JavaScript 数组简单学习
  • LeetCode 3162.优质数对的总数 I:暴力模拟
  • 光路科技TSN交换机:驱动自动驾驶技术革新,保障高精度实时数据传输
  • 【vue3】分页功能实现(nodejs)
  • 通用代码生成器应用场景七,初学者学习使用
  • mysql学习教程,从入门到精通,SQL窗口函数(38)
  • 【测试】用例篇——测试用例的概念
  • C# DotNetty客户端,包含心跳发送,断线重连机制
  • Ubuntu使用SSH以及常用的命令
  • 工程机械车辆挖掘机自卸卡车轮式装载机检测数据集VOC+YOLO格式2644张3类别
  • Linux下载安装MySQL8.4
  • 【unity踩坑】打开vs2022没有文字联想/杂项文件
  • 解决 GPTQ 模型导入后推理生成 Tokens 速度很慢的问题(从源码重新安装 Auto-GPTQ)
  • 在树莓派上部署安装OAK
  • 用echarts画天气预报