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

常见激活函数——作用、意义、特点及实现

文章目录

  • 激活函数的意义
  • 常见激活函数及其特点
    • 1. Sigmoid(Logistic 函数、S型函数)
    • 2. Tanh(双曲正切函数)
    • 3. ReLU(Rectified Linear Unit修正线性单元)
    • 4. Softmax
    • 5. Swish(Google 提出)
  • python实现各类激活函数

激活函数(Activation Function)是神经网络中的核心组件之一,它决定了神经元的输出方式,**直接影响模型的非线性表达能力、梯度传播和训练效果。**不同的激活函数适用于不同的场景,选择合适的激活函数对模型性能至关重要。在一些模型训练中会涉及到激活函数的选择,今天自己查阅资料时总结一下不同激活函数的作用、意义、特点及如何实现。

“激活函数”​(Activation Function,也常被译为“激励函数”​)的作用就是为了给神经网络加入非线性的表达能力,它改进了阈值函数只能单纯比较大小判断是否激发神经元信号的简单逻辑,允许根据实际需要,对输入的加权和进行不受限制的数学处理。
在这里插入图片描述

——周志明《智慧的疆界:从图灵机到人工智能》

一些高质量的文章可供学习
神经网络|(十二)|常见激活函数
图解深度学习中的激活函数

激活函数的意义

引入非线性

  • 突破线性模型限制:如果神经网络中没有激活函数,每一层都只是线性变换,无论网络有多少层,其输出都是输入的线性组合,无法逼近复杂函数。而激活函数可以引入非线性因素,使神经网络能够学习和表达复杂的非线性关系,从而解决诸如图像识别、语音识别等复杂任务。
  • 构造复杂决策边界:激活函数的非线性映射可以使神经网络构造出复杂的决策边界,提高模型的泛化能力,使其能够更好地拟合数据分布,区分不同类别的数据。

控制输出值范围

  • 归一化输出:某些激活函数如sigmoid会将输出限制在特定区间内,如(0,1),tanh的输出范围是(-1,1),这有助于提高网络训练稳定性,并减少梯度爆炸或梯度消失的风险,方便后续处理和计算。
  • 便于概率解释:在二分类问题中,sigmoid函数的输出可以被解释为概率,方便对模型的预测结果进行理解和分析。

影响梯度传播

  • 缓解梯度消失或爆炸问题:不同的激活函数对梯度的传播有不同的影响。例如,relu函数在正区间梯度恒为1,有效缓解了sigmoid和tanh的梯度消失问题,加快了模型的收敛速度;而tanh函数虽然也存在梯度消失问题,但其输出以零为中心,有助于改善梯度下降的效率和网络的收敛速度。
  • 优化训练过程:激活函数的选择会影响反向传播中的梯度计算,从而影响网络的训练效率。合适的激活函数可以使梯度传播更加稳定和有效,

加快模型的训练速度,提高训练效果。
增加网络稀疏性

  • 减少计算量:以relu函数为例,它将输入小于0的部分置为0,大于0的部分保持不变,使得部分神经元输出为0,增加了网络的稀疏性。这可以减少计算量,提高计算效率,特别是在处理大规模数据和深度网络时,这种稀疏性可以显著降低计算成本。
  • 提取关键特征:网络的稀疏性有助于提取更具有区分性的特征,使模型更加关注重要的输入特征,提高模型的性能和泛化能力。

常见激活函数及其特点

在这里插入图片描述

1. Sigmoid(Logistic 函数、S型函数)

在这里插入图片描述

2. Tanh(双曲正切函数)

在这里插入图片描述

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

在这里插入图片描述

4. Softmax

在这里插入图片描述

5. Swish(Google 提出)

在这里插入图片描述

python实现各类激活函数

import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号# Sigmoid
def sigmoid(x):return 1 / (1 + np.exp(-x))# Tanh
def tanh(x):return np.tanh(x)# ReLU
def relu(x):return np.maximum(0, x)# Leaky ReLU
def leaky_relu(x, alpha=0.01):return np.where(x > 0, x, alpha * x)# Softmax
def softmax(x):exp_x = np.exp(x - np.max(x))  # 防止数值溢出return exp_x / exp_x.sum(axis=0)# Swish
def swish(x, beta=1.0):return x * sigmoid(beta * x)# 测试数据
x = np.linspace(-5, 5, 100)# 计算各激活函数输出
y_sigmoid = sigmoid(x)
y_tanh = tanh(x)
y_relu = relu(x)
y_leaky_relu = leaky_relu(x)
y_softmax = softmax(x)
y_swish = swish(x)# 绘制图像
plt.figure(figsize=(12, 8))plt.subplot(2, 3, 1)
plt.plot(x, y_sigmoid, label="Sigmoid")
plt.title("Sigmoid")
plt.grid()plt.subplot(2, 3, 2)
plt.plot(x, y_tanh, label="Tanh", color="orange")
plt.title("Tanh")
plt.grid()plt.subplot(2, 3, 3)
plt.plot(x, y_relu, label="ReLU", color="green")
plt.title("ReLU")
plt.grid()plt.subplot(2, 3, 4)
plt.plot(x, y_leaky_relu, label="Leaky ReLU", color="red")
plt.title("Leaky ReLU")
plt.grid()plt.subplot(2, 3, 5)
inputs = np.vstack([x, 0.5 * x, 0.2 * x])
# 计算Softmax输出
# Softmax计算三个变量各自所占的比例
outputs = softmax(inputs)
for i in range(outputs.shape[0]):plt.plot(x, outputs[i], label=f'变量 {i+1}所占比例')
plt.title("Softmax")
plt.legend() 
plt.grid()plt.subplot(2, 3, 6)
plt.plot(x, y_swish, label="Swish", color="purple")
plt.title("Swish")
plt.grid()plt.tight_layout()
plt.show()

在这里插入图片描述

相关文章:

常见激活函数——作用、意义、特点及实现

文章目录 激活函数的意义常见激活函数及其特点1. Sigmoid(Logistic 函数、S型函数)2. Tanh(双曲正切函数)3. ReLU(Rectified Linear Unit修正线性单元)4. Softmax5. Swish(Google 提出&#xff…...

FC7300 Trigger MCAL配置引导

FC7300包含4个触发器选择(TRGSELs)。详细的连接信息将在章节中描述。Trigger Select (TRGSEL)源。TRGSEL模块允许软件为外设选择触发器源。   TRGSEL提供了一种极其灵活的机制,用于将各种触发器源连接到多个引脚/外设。   在TRGSEL中,每个控制寄存器最多支持4个输出触…...

组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果

组件导航 (Navigation)flutter项目搭建 接上一章flutter项目的环境变量配置并运行flutter 1.flutter创建项目并运行 flutter create fluter_hmrouter 进入ohos目录打开编辑器先自动签名 编译项目-生成签名包 flutter build hap --debug 运行项目 HMRouter搭建安装 1.安…...

WAS和Tomcat的对比

一、WAS和Tomcat的对比 WebSphere Application Server (WAS) 和 Apache Tomcat 是两款常用的 Java 应用服务器,但它们有许多显著的区别。在企业级应用中,它们扮演不同的角色,各自有其特点和适用场景。以下是它们在多个维度上的详细对比&…...

GPU Runtime Suspend 调试与验证:从 sysfs 到 perf 分析

选题背景:在基于 NXP i.MX8MP 平台调试 GPU 时,常常需要确认 Vivante GPU2D/ Vivante GPU2D/\uGPU3D 是否已经进入 runtime suspend ,以降为一篇完整的验证和分析步骤,适合用于实战调试与面试表达。 一、什么是 Runtime Suspend&a…...

响应式布局

布局方式 固定宽度布局:主流的宽度有960px/980px/1190px/1210px等。移动端用户需要缩放查看页面内容 流式布局:百分比设置相对宽度。在不同设备上都能完整显示。兼容性一般,可能发生错位 响应式布局:一套代码自动适配不同终端。检测设备信息,根据设备调整布局。用户体验最…...

简单入门RabbitMQ

本章将带大家来写一个简单的程序,使用 Java 创建RabbitMQ 的生产者和消费者 依赖引入 在 Maven 仓库中输入 amqp-client: 找到第一个 RabbitMQ Java Client ,点击进去找到一个合适的版本然后将依赖引入到我们项目中的 pom.xml 文件中。 …...

金属加工液展|切削液展|2025上海金属加工液展览会

2025上海金属加工液展览会 时间:2025年12月2-4日 地点:上海新国际博览中心 2025上海金属加工液展规划30000平方米展览规模,预设展位1200个,将为国内外加工液产业提供一个集“展示、合作、交易、发展”于一体的综合性平台&#…...

前端实现流式输出《后端返回Markdown格式文本,前端输出类似于打字的那种》

一、使用插件 插件名称:marked 版本:15.0.11 安装插件:npm install marked15.0.11 作用:marked 是一个用于将 Markdown 语法转换为 HTML 的 JavaScript 库 插件2名称:dompurify 版本:3.2.5 安装插件&…...

Python字符串常用方法详解

文章目录 Python字符串常用方法详解一、字符串大小写转换方法(常用)1. 基础大小写转换2. 案例:验证码检查(不区分大小写) 二、字符串查找与替换方法1. 查找相关方法2. 替换相关方法 三、字符串判断方法1. 内容判断方法 四、字符串分割与连接方…...

深度学习中的归一化:提升模型性能的关键因素

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4-turbo模型辅助完成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认…...

【C++】 —— 笔试刷题day_30

一、爱吃素 题目解析 这道题,简单来说就是给定两个数a和b,然后让我们判断a*b是否是素数。 算法思路 这道题还是比较简单的 首先,输入两个数a和b,这两个数的数据范围都是[1, 10^11];10的11次方,那a*b不就是…...

WebMvcConfigurer介绍-笔记

1.WebMvcConfigurer功能简介 org.springframework.web.servlet.config.annotation.WebMvcConfigurer 是 Spring MVC 提供的一个接口,用于自定义 Web 应用的配置。通过实现该接口,开发者可以灵活地添加拦截器(Interceptors)、配置…...

简单图像自适应亮度对比度调整

一、背景介绍 继续在刷对比度调整相关算法,偶然间发现了这个简单的亮度/对比度自适应调整算法,做个简单笔记记录。也许后面用得到。 二、自适应亮度调整 1、基本原理 方法来自论文:Adaptive Local Tone Mapping Based on Retinex for High Dynamic Ran…...

[SpringBoot]Spring MVC(2.0)

紧接上文,这篇我们继续讲剩下的HTTp请求 传递JSON数据 简单来说:JSON就是⼀种数据格式,有⾃⼰的格式和语法,使⽤⽂本表⽰⼀个对象或数组的信息,因此JSON本质是字符串. 主要负责在不同的语⾔中数据传递和交换 JSON的语法 1. 数据在 键值对(Key/Value) …...

GDB 高级调试技术深度解析

1. 引言 GNU调试器(GDB)是软件开发和逆向工程领域中不可或缺的工具。它为开发者提供了一个强大的环境,用于检查正在运行的程序或程序崩溃后产生的核心转储文件的内部状态。虽然许多开发者熟悉GDB的基本命令,如设置断点和单步执行,但GDB的真正威力在于其丰富的高级功能集。…...

【Kuberbetes】详谈网络(第三篇)

目录 前言 一、K8S的三种网络 1.1 Pod 内容器与容器之间的通信 1.2 同一个 Node 内 Pod 之间的通信 1.3 不同 Node 上 Pod 之间的通信 1.4 汇总 二、K8S的三种接口 三、VLAN 和 VXLAN 的区别 3.1 使用场景不同 3.2 支持的数量不同 3.3 是否记录到MAC地址表中…...

【科普】具身智能

一、具身智能的基本概念与理论框架 具身智能(Embodied Intelligence, EI)是指智能体通过物理身体与环境的实时交互,实现感知、决策和行动的能力。其核心思想是“智能源于身体与环境的互动”,而非仅仅依赖于抽象的计算或符号处理。…...

java -jar命令运行 jar包时如何运行外部依赖jar包

java -jar命令运行 jar包时如何运行外部依赖jar包 场景: 打包发不完,运行时。发现一个问题, java java.lang.NoClassDefFoundError: org/apache/commons/lang3/ArrayUtils 显示此,基本表明,没有这个依赖,如果在开发…...

Linux进程信号(一)之信号的入门

文章目录 信号入门1. 生活角度的信号2. 技术应用角度的信号3. 注意4. 信号概念5.用kill -l命令可以察看系统定义的信号列表6. 信号处理常见方式 信号入门 1. 生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也…...

腾讯云MCP数据智能处理:简化数据探索与分析的全流程指南

引言 在当今数据驱动的商业环境中,企业面临着海量数据处理和分析的挑战。腾讯云MCP(Managed Cloud Platform)提供的数据智能处理解决方案,为数据科学家和分析师提供了强大的工具集,能够显著简化数据探索、分析流程,并增强数据科学…...

曝光融合(Exposure Fusion)

一、背景介绍 图像融合算法里面,hdr图像进行融合,拓宽动态范围的操作非常常见。 常用的hdr融合算法通常有两类: 1、不同曝光的ldr图像先进行hdr融合,得到高bit位的hdr图像,再通过tonemaping算法得到结果如图像。 2、不…...

无人机减震模块运行与技术要点分析!

一、减震模块的运行方式 1. 多级减震结构 两级减震设计:采用第一级减震组件(如减震球、锥面减震垫)吸收高频振动,第二级减震组件(如减震环、负重物)进一步过滤低频振动。例如,通过硅胶减震球…...

CVPR2025 | 首个多光谱无人机单目标跟踪大规模数据集与统一框架, 数据可直接下载

论文介绍 题目:MUST: The First Dataset and Unified Framework for Multispectral UAV Single Object Tracking 期刊:IEEE/CVF Computer Vision and Pattern Recognition Conference 论文:https://arxiv.org/abs/2503.17699 数据&#x…...

嵌入式故障码管理系统设计实现

文章目录 前言一、故障码管理系统概述二、核心数据结构设计2.1 故障严重等级定义2.2 模块 ID 定义2.3 故障代码结构2.4 故障记录结构 三、故障管理核心功能实现3.1 初始化功能3.2 故障记录功能3.3 记录查询与清除功能3.4 系统自检功能 四、故障存储实现4.1 Flash 存储实现4.2 R…...

若依框架Consul微服务版本

1、最近使用若依前后端分离框架改造为Consul微服务版本 在这里分享出来供大家参考 # Consul微服务配置参数已经放置/bin/Consul微服务配置目录 仓库地址: gitee:https://gitee.com/zlxls/Ruoyi-Consul-Cloud.git gitcode:https://gitcode.c…...

【风控】用户特征画像体系

一、体系架构概述 1.1 核心价值定位 风控特征画像体系是通过多维度数据融合分析,构建客户风险全景视图的智能化工具。其核心价值体现在: 全周期覆盖:贯穿客户生命周期的营销、贷前、贷中、贷后四大场景立体化刻画:整合基础数据…...

【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言设计一个共享数据中心选择数据模型键值对设计 数据可靠性设计持久化快照 &#xff08…...

数据库--向量化基础

本文包含内容有: 向量化、SIMD的概念及关系SSE,AVX-512八种基础的SIMD操作,并用具体例子解释,给出伪代码。一、快速了解向量化、SIMD 1.1 向量化 向量化是指将原本需要循环处理的多个数据元素,通过一条指令同时处理多个数据,从而减少循环次数,提高计算效率。 传统方式…...

handsome主题美化及优化:10.1.0最新版 - 2

文章目录 前言基础设置优化开启全站 HTTPS添加 GZIP 压缩美化永久链接自定义后台路径启用 Emoji 支持 功能增强每日新闻自动更新文章嵌入外部网页时光机栏目配置自定义音乐播放器音量 自定义CSS配置文章标题居中显示标题背景美化文章版式优化LOGO 扫光特效头像动画效果图片悬停…...

JWT令牌

1. JWT概述 JWT即JSON Web Token,是一个开放标准,用于在各方之间安全地传输信息。并且JWT经过数字签名,安全性高。通俗来说,也就是以JSON形式作为Web应用中的令牌,用于信息传输,在数据传输过程中可以完成数…...

Qwen3技术报告解读

https://github.com/QwenLM/Qwen3/blob/main/Qwen3_Technical_Report.pdf 节前放模型,大晚上的发技术报告。通义,真有你的~ 文章目录 预训练后训练Long-CoT Cold StartReasoning RLThinking Mode FusionGeneral RLStrong-to-Weak Distillation 模型结构…...

RAG-MCP:突破大模型工具调用瓶颈,告别Prompt膨胀

大语言模型(LLM)的浪潮正席卷全球,其强大的自然语言理解、生成和推理能力,为各行各业带来了前所未有的机遇。然而,正如我们在之前的探讨中多次提及,LLM并非万能。它们受限于训练数据的时效性和范围&#xf…...

Flask框架入门与实践

Flask框架入门与实践 Flask是一个轻量级的Python Web框架,以其简洁、灵活和易于上手的特点深受开发者喜爱。本文将带您深入了解Flask的核心概念、基本用法以及实际应用。 什么是Flask? Flask是由Armin Ronacher于2010年开发的微型Web框架。与Django等…...

PD 分离推理的加速大招,百度智能云网络基础设施和通信组件的优化实践

为了适应 PD 分离式推理部署架构,百度智能云从物理网络层面的「4us 端到端低时延」HPN 集群建设,到网络流量层面的设备配置和管理,再到通信组件和算子层面的优化,显著提升了上层推理服务的整体性能。 百度智能云在大规模 PD 分离…...

罗杰斯高频板技术解析:低损耗基材如何定义 5G 通信未来

在 5G 通信与尖端电子技术加速融合的时代,高频 PCB 作为信号传输的核心载体,对材料性能与工艺精度提出了极致要求。猎板 PCB 深耕行业多年,始终以罗杰斯(Rogers)板材为核心介质,构建起从材料适配到精密制造…...

QML 动画控制、顺序动画与并行动画

目录 引言相关阅读基础属性说明工程结构示例代码解析示例1:手动控制动画(ControlledAnimation.qml)示例2:顺序动画(SequentialAnimationDemo.qml)示例3:并行动画(ParallelAnimationD…...

【动态导通电阻】GaN HEMT动态导通电阻的精确测量

2023 年 7 月,瑞士洛桑联邦理工学院的 Hongkeng Zhu 和 Elison Matioli 在《IEEE Transactions on Power Electronics》期刊发表了题为《Accurate Measurement of Dynamic ON-Resistance in GaN Transistors at Steady-State》的文章,基于提出的稳态测量方法,研究了氮化镓(…...

2:OpenCV—加载显示图像

加载和显示图像 从文件和显示加载图像 在本节中&#xff0c;我将向您展示如何使用 OpenCV 库函数从文件加载图像并在窗口中显示图像。 首先&#xff0c;打开C IDE并创建一个新项目。然后&#xff0c;必须为 OpenCV 配置新项目。 #include <iostream> #include <ope…...

Qt控件:交互控件

交互控件 1. QAction核心功能API 1.2 实例应用情况应用场景 1. QAction ##1. 1简介与API QAction 是一个核心类&#xff0c;用于表示应用程序中的一个操作&#xff08;如菜单项、工具栏按钮或快捷键触发的功能&#xff09;。它将操作的逻辑与 UI 表现分离&#xff0c;使代码更…...

在vue3中使用Cesium的保姆教程

1. 软件下载与安装 1. node安装 Vue.js 的开发依赖于 Node.js 环境&#xff0c;因此我们首先需要安装 Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它允许你在服务器端运行 JavaScript 代码&#xff0c;同时也为前端开发提供了强大的工具支…...

zst-2001 下午题-历年真题 试题一到三

试题一 问题一 1 问题一 2 注意每句话中的“给”… 问题一 3 问题二 1 问题二 2 问题二 3 问题三 1 步骤一.看父图的数据流在子图有没有缺失 步骤二.看加工有没有输入输出 步骤三.阅读理解 问题三 2 实体和存储不能划线 问题三 3 试题二 问题一 1 问题一 2 问题一 3 问题二…...

STM32的ADC模块中,**采样时机(Sampling Time)**和**转换时机(Conversion Time),获取数据的时机详解

在STM32的ADC模块中&#xff0c;**采样时机&#xff08;Sampling Time&#xff09;和转换时机&#xff08;Conversion Time&#xff09;**是ADC工作流程中的两个关键阶段&#xff0c;直接影响采样精度和系统实时性。以下是详细解析&#xff1a; 1. 采样时机&#xff08;Samplin…...

iOS音视频解封装分析

首先是进行解封装的简单的配置 /// 解封装配置 class KFDemuxerConfig {// 媒体资源var asset: AVAsset?// 解封装类型&#xff0c;指定是音频、视频或两者都需要var demuxerType: KFMediaType .avinit() {} }然后是实现解封装控制器 import Foundation import CoreMedia i…...

探究电阻分压的带负载能力

我们经常使用两个电阻去分压来获得特定的电压,那么我是两个大阻值电阻分压获得的电压驱动能力强,还是小阻值电阻分压得到的电压驱动能力强呢? 一、电压相同时,电流的大小 下面是两个阻值分压得到的仿真图 电路分析: VCC都是5V,探针1和探针2测到的电压都是1.67V; 根据…...

14、Python时间表示:Unix时间戳、毫秒微秒精度与time模块实战

适合人群&#xff1a;零基础自学者 | 编程小白快速入门 阅读时长&#xff1a;约5分钟 文章目录 一、问题&#xff1a;计算机中的时间的表示、Unix时间点&#xff1f;1、例子1&#xff1a;计算机的“生日”&#xff1a;Unix时间点2、答案&#xff1a;&#xff08;1&#xff09;U…...

PCL 绘制二次曲面

文章目录 一、简介二、实现代码三、实现效果一、简介 这里基于二次曲面的公式: z = a 0 + a 1 x + a 2 y + a...

消息队列与Kafka基础:从概念到集群部署

目录 一、消息队列 1.什么是消息队列 2.消息队列的特征 3.为什么需要消息队列 二、Kafka基础与入门 1.Kafka基本概念 2.Kafka相关术语 3.Kafka拓扑架构 4.Topic与partition 5.Producer生产机制 6.Consumer消费机制 三、Zookeeper概念介绍 1.zookeeper概述 2.zooke…...

计算机指令分类和具体的表示的方式

1.关于计算机的指令系统 下面的这个就是我们的一个简单的计算机里面涉及到的指令&#xff1a; m就是我们的存储器里面的地址&#xff0c;可以理解为memory这个意思&#xff0c;r可以理解为rom这样的单词的首字母&#xff0c;帮助我们去进行这个相关的指令的记忆&#xff0c;不…...

pcie phy-电气层-gen1/2(TX)

S IP物理层讲解 在synopsys IP中对于phy层的内容分离的比较多&#xff1a; cxpl中&#xff1a; u_cx_phy_logical&#xff1a;包含ts序列的解析&#xff08;smlh&#xff09;&#xff1b; pipe层协议的转换&#xff08;rmlh,xmlh)&#xff1b;pipe转dllp包&#xff08;rplh&…...