常用的激活函数汇总及可视化

news/2024/9/16 23:43:44/ 标签: 深度学习, 机器学习, 人工智能

1. Sigmoid 函数

  • 公式:
    Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x) = \frac{1}{1 + e^{-x}} Sigmoid(x)=1+ex1
  • 特点:输出范围在 (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 函数相比,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 ) = { x if  x g t ; 0 α x if  x ≤ 0 \text{Leaky ReLU}(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{if } x \leq 0 \end{cases} Leaky ReLU(x)={xαxif xif x0gt;0
    其中, α \alpha α 是一个小的正数,通常取 0.01。
  • 特点:解决了“死亡 ReLU”问题,因为它允许负输入有一个小的负斜率。

5. Parametric ReLU (PReLU) 函数

  • 公式:
    PReLU ( x ) = { x if  x g t ; 0 α x if  x ≤ 0 \text{PReLU}(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{if } x \leq 0 \end{cases} PReLU(x)={xαxif xif x0gt;0
    其中, α \alpha α 是一个可以学习的参数。
  • 特点:是 Leaky ReLU 的推广,允许模型学习负斜率的值。

6. Exponential Linear Unit (ELU) 函数

  • 公式:
    ELU ( x ) = { x if  x g t ; 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 xif x0gt;0
    其中, α \alpha α 通常取 1。
  • 特点:在 ReLU 基础上进行改进,使得负输入能够有较大的负输出,从而有助于中心化数据以更好地加速学习。

7. Swish 函数

  • 公式:
    Swish ( x ) = x ⋅ Sigmoid ( x ) \text{Swish}(x) = x \cdot \text{Sigmoid}(x) Swish(x)=xSigmoid(x)
  • 特点:是一种自门控激活函数,由 Google 提出。具有平滑的非线性,有助于缓解梯度消失问题,并且在某些任务上表现优于 ReLU。

8. 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
  • 特点:通常用于多分类任务的输出层。将输入向量转化为概率分布。

9. GELU(Gaussian Error Linear Unit)函数

  • 公式:
    GELU ( x ) = x ⋅ Φ ( x ) \text{GELU}(x) = x \cdot \Phi(x) GELU(x)=xΦ(x)
    其中, Φ ( x ) \Phi(x) Φ(x) 是标准正态分布的累积分布函数。
  • 特点:是一种平滑的激活函数,近年来在 Transformer 等模型中得到广泛应用。
    这些激活函数各有优劣,选择适合的激活函数对于不同的任务和网络结构至关重要。ReLU 及其变种是当前最为常用的激活函数,但根据任务的需求,也可以考虑使用其他激活函数。

可视化
在这里插入图片描述


http://www.ppmy.cn/news/1523367.html

相关文章

npm 清除缓存

npm cache clean --forcenpm cache verify# 安装依赖 npm install# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 npm install --registryhttps://registry.npmmirror.com npm彻底清理缓存_npm cache verify-CSD…

Vue 中实现视频播放的艺术

随着前端技术的飞速发展,视频播放在 Web 应用中已经成为了一个不可或缺的功能。从社交媒体平台到教育网站,再到在线购物平台,视频元素无处不在。而 Vue.js 作为当今最流行的前端框架之一,在实现视频播放时提供了很多强大的工具和技…

【C语言】揭开计数制的面纱:深入浅出二进制及二进制计算

欢迎来到 CILMY23 的博客 🏆本篇主题为:揭开计数制的面纱:深入浅出二进制及二进制计算 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux |…

FreeRTOS学习笔记(一)初认RTOS

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是RTOS1.1 引入1.2 和Linux操作系统的区别 二、Free RTOS的基本内容2.1 FreeRTOS的特点2.2 Free RTOS编程风格2.3 Free RTOS的配置文件 前言 笔者在去年…

Spring框架的核心模块有哪些

Spring框架的核心模块构成了其基础架构,并为开发者提供了丰富的功能。以下是一些主要的Spring核心模块: Spring Core: 这是Spring框架中最基础的模块,提供了依赖注入(DI)功能,这是Spring的基石。…

Python自带日志库实现springboot彩色效果

整体目标 涉及的库均为Python3自带库实现 loggingsysenum 终端显示彩色基本原理参考👉Terminal里的颜色的那些事 Python打印日志可以直接借用logging自带的库实现,但是默认的打印实在太丑了,长下面这样 这只是一条日志看着还好比较清爽&…

关于OceanBase 多模一体化的浅析

在当今多元化的业务生态中,各行各业对数据库系统的需求各有侧重。举例来说,金融风控领域对数据库的高效事务处理(TP)和分析处理(AP)能力有着严格要求;游戏行业则更加注重文档数据库的灵活性和性…

stm32驱动开发与linux驱动的区别

stm32,gpio设置原理 下图,定义了gpio E的基地址,只要将这个地址强制转换成gpiotypedf的类型,解析时,结构体地址就会自增。这样就可以对不同gpio组,就像定义。 全部gpio定义,强制为结构体类型…

FPGA低功耗设计

FPGA低功耗设计 文章目录 FPGA低功耗设计前言一、功耗类型1.1 动态功耗1.2 静态功耗1.3 浪涌功耗 二、系统级低功耗设计2.1 **多电压技术:**即工作频率、电压和功耗的关系2.2 系统时钟分配:2.3 软硬件划分2.4 p 或单元库选择 三、RTL级别低功耗设计3.1 并…

VBA高级应用30例应用3ListObject对象:循环列出当前工作表中的表

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…

AI基础 L10 Adversarial Search I 对抗性搜索

Multiagent Environments In multiagent environments, each agent must: — Consider everyone else’s actions — Coordinate in order to act coherently 多个智能体(agent)相互作用,每个智能体都具有自己的目标和行动策略。在多智能体环…

【OpenCV-图像梯度】Scharr算子和laplacian算子

1 图像梯度-Sobel算子 import cv2 # 导入 OpenCV 库# 读取灰度图像 img cv2.imread(./img/pie.png, cv2.IMREAD_GRAYSCALE) # 使用 imread 函数读取图像文件,路径为 ./img/pie.png # cv2.IMREAD_GRAYSCALE 表示以灰度模式读取图像# 显示图像 cv2.imshow("im…

windows安装git

windows安装git 1.通过git官网下载 官网:https://git-scm.com/downloads 2.安装git (1)找到下载到的文件,进行双击进行安装 (2)安装使用说明点击Next (3)选择自己的安装地址&a…

哈希表 和 算法

1.哈希表的作用:将我们要存储的数据,通过关键字与位置的关系函数,来确定具体的位置。 2.写哈希表时常出现的问题:哈希冲突/矛盾:当多个数据满足哈希函数的映射时出现 解决的方法为: 1)开放地址…

[AHK]编写Dialog类代替内置的InputBox命令

更灵活的自定义的Dialog类,可以用来平替内置的InputBox命令 AHK v1代码 #requires Autohotkey v1.0 answer : Dialog("输出结果:", "good") MsgBox, % "you answered: " answer ExitAppDialog(Question, DefaultValue :…

k8s中的层级结构,及节点组件的作用

可以从三个层面来看待k8s集群 第一个层 是client主机 为什么要有client主机 不是在控制节点上管理计算节点吗 是的 但是,当有多个k8s集群需要管理的时候 一般不会每管理一个集群,就登录到那个集群的控制节点上 这样来来回回切换登录 client主机…

ThreadLocal 释放的方式有哪些

ThreadLocal基础概念:IT-BLOG-CN ThreadLocal是Java中用于在同一个线程中存储和隔离变量的一种机制。通常情况下,我们使用ThreadLocal来存储线程独有的变量,并在任务完成后通过remove方法清理这些变量,以防止内存泄漏。然而&…

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸 在默认情况下 这两个壁纸是相同的 如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.* &#…

记录一下blender烘焙贴图黑边的一个坑

首先是拆UV这里 margin 0.1 better share better 这个也大一点好了 这样烘焙的猴头就是正常的 这里的坑点是 降噪!!烘焙如果开启降噪 如果关闭下面那一个 会好一点,都关闭了,才是最上面的效果

SockJS的使用方法

SockJS 是一个 JavaScript 库,用于在浏览器和服务器之间创建 WebSocket 连接,并提供 WebSocket 的备用方案,以应对浏览器或网络环境不支持 WebSocket 的情况。以下是 SockJS 主要方法的详细语法和逻辑。 1. SockJS(url, [options]) 功能: 创…