目录

激活函数

1. Sigmoid

2. Tanh 函数(双曲正切)

3. ReLU 函数

4. Leaky ReLU (LReLU)

5. Softmax

总结对比表

损失函数选择


激活函数

激活函数是神经网络中每个神经元(节点)的核心组成部分。它接收上一层所有输入的加权和(加上偏置项),并产生该神经元的输出。其主要作用是引入非线性,使得神经网络能够学习和逼近任意复杂的函数关系。如果没有非线性激活函数,无论网络有多少层,最终都等价于一个线性变换(单层感知机),能力极其有限。

1. Sigmoid

  • 公式:f(x) = \sigma(x) = \frac{1}{1 + e^{-x}}

  • 原理: 将输入压缩到 (0, 1) 区间。输出值可以被解释为概率(尤其是在二分类问题的输出层)。它平滑、易于求导。

  • 特征:

    • 输出范围: (0, 1)

    • 单调递增: 函数值随输入增大而增大。

    • S型曲线: 中间近似线性,两端饱和(变化缓慢)。

    • 导数:\sigma'(x)=\sigma(x)\cdot(1-\sigma(x))        最大值为0.25(当x=0时)。

  • 缺点:

    • 梯度消失: 当输入 x 的绝对值很大时(处于饱和区),导数 σ'(x) 趋近于0。在反向传播过程中,梯度会逐层连乘这些接近0的小数,导致深层网络的梯度变得非常小甚至消失,使得网络难以训练(权重更新缓慢或停滞)。

    • 信息丢失:输入100和输入10000经过sigmoid的激活值几乎都是等于 1 的,但是输入的数据却相差 100 倍。

    • 输出非零中心化: 输出值始终大于0。这可能导致后续层的输入全为正(或全为负),使得权重更新时梯度全部朝同一方向(正或负)移动,降低收敛效率(呈“之”字形下降路径)。

    • 计算相对较慢: 涉及指数运算。

  • 函数绘制:

    • x -> -∞ 时,σ(x) -> 0 (左水平渐近线 y=0)。

    • x = 0 时,σ(0) = 0.5

    • x -> +∞ 时,σ(x) -> 1 (右水平渐近线 y=1)。

    • 图像是一条平滑的、从接近0上升到接近1的S形曲线,关于点(0, 0.5)中心对称。导数曲线是一个钟形曲线,在x=0处达到峰值0.25,向两边迅速衰减到0。

2. Tanh 函数(双曲正切)

  • 公式:{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

  • 原理: 将输入压缩到 (-1, 1) 区间。是Sigmoid函数的缩放和平移版本。解决了 Sigmoid 输出均值非零的问题,更适合作为隐藏层激活函数。

  • 特征:

    • 输出范围: (-1, 1)

    • 单调递增: 函数值随输入增大而增大。

    • S型曲线: 中间近似线性,两端饱和。

    • 零中心化: 输出关于原点对称(tanh(-x) = -tanh(x))。这是相比于Sigmoid的主要优势,通常能使后续层的输入具有更理想的均值,有助于加速收敛。

    • 导数: tanh'(x) = 1 - tanh²(x),最大值为1(当x=0时)。

  • 缺点:

    • 梯度消失: 和Sigmoid类似,当 |x| 很大时,导数趋近于0,仍然存在梯度消失问题(虽然比Sigmoid稍好,因为其导数值更大)。

    • 计算相对较慢: 同样涉及指数运算。

  • 函数绘制:

    • x -> -∞ 时,tanh(x) -> -1 (左水平渐近线 y=-1)。

    • x = 0 时,tanh(0) = 0

    • x -> +∞ 时,tanh(x) -> 1 (右水平渐近线 y=1)。

    • 图像是一条平滑的、从接近-1上升到接近1的S形曲线,关于原点(0,0)中心对称。导数曲线是一个钟形曲线,在x=0处达到峰值1,向两边衰减到0。整体形状比Sigmoid更陡峭,饱和区变化更快。

3. ReLU 函数

  • 公式: \text{ReLU}(x) = \max(0, x)

  • 原理: ReLU 是目前最常用的隐藏层激活函数之一,通过简单的线性分段

    \text{ReLU}(x)=\begin{cases}x,&\text{if } x>0\\0,&\text{if }x\leq0\end{cases}

  • 特征:

    • 输出范围: [0, +∞)

    • 计算极其高效: 只需比较和取最大值操作,没有指数等复杂运算。

    • 缓解梯度消失: 在正区间 (x > 0),导数为1,梯度可以无损地反向传播,有效缓解了梯度消失问题,使得深层网络训练成为可能。这是其成功的关键。

    • ReLU 函数的导数是分段函数:
      \text{ReLU}'(x)=\begin{cases}1,&\text{if } x>0\\0,&\text{if }x\leq0\end{cases}

    • 生物学合理性: 更接近生物神经元的稀疏激活特性(只有一部分神经元被激活)。

    • 稀疏激活:x \leq 0  时输出为 0,使网络具有 “稀疏性”(仅部分神经元激活),模拟生物神经元的工作模式。

  • 缺点:

    • 死亡ReLU (Dying ReLU): 在负区间 (x < 0),导数为0。如果一个神经元的加权和输入在训练过程中大部分时间都小于0(例如,学习率过高或负的偏置过大),那么它的梯度在反向传播时始终为0,导致该神经元的权重无法再更新,永远“死亡”(输出恒为0,不再参与训练)。

    • 输出非零中心化: 输出始终 >= 0。

    • x=0 处不可导: 实践中通常将 x=0 处的导数设为0或1(通常设为0)。

  • 函数绘制:

    • x < 0 时,ReLU(x) = 0 (沿x轴负半轴)。

    • x >= 0 时,ReLU(x) = x (沿y=x直线在第一象限)。

    • 图像是一个简单的折线:在原点(0,0)左侧是水平线(y=0),在原点右侧是一条45度角的直线(y=x)。导数图像:在x<0处是y=0的水平线;在x>0处是y=1的水平线;在x=0处不连续(通常画一个空心点)。

4. Leaky ReLU (LReLU)

  • 公式:

    \text{Leaky ReLU}(x)=\begin{cases}x,&\text{if } x>0\\\alpha x,&\text{if } x\leq0\end{cases}

     

    (其中 α 是一个很小的正数常数,如0.01)

  • 原理: 针对标准ReLU的“死亡”问题进行的改进。在负区间给予一个很小的非零斜率 α

  • 特征:

    • 输出范围: (-∞, +∞) (理论上,但负值部分很小)

    • 缓解死亡ReLU: 在负区间有小的梯度 α,(x<0)时输出(\alpha x)(非零),即使输入为负,神经元也有机会更新权重,避免了永久性“死亡”。

    • 计算高效: 和ReLU一样高效。

  • 缺点:

    • 效果依赖 α 需要人工设定或尝试 α 值。虽然通常设0.01有效,但并非最优。

    • x=0 处不可导: 同样的问题。

    • 负区间表现可能不一致: 微小的负斜率可能不足以完全解决某些场景下的问题,或者引入不必要的复杂性。

  • 函数绘制:

    • x >= 0 时,LReLU(x) = x (沿y=x直线在第一象限)。

    • x < 0 时,LReLU(x) = αx (一条斜率为 α 的直线,在第三象限,非常平缓)。

    • 图像在原点右侧与ReLU相同(y=x),在原点左侧是一条斜率很小(接近水平)的直线。导数图像:在x>0处是y=1的水平线;在x<0处是y=α的水平线(非常接近0);在x=0处不连续。

5. Softmax

  • 公式:              \mathrm{Softmax}(z_i)=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}

     

    (其中 z_i 是第i个神经元的输入,K是输出层神经元的个数/类别数)

    给定输入向量 z=[z_1,z_2,…,z_n]

    1.指数变换:对每个 z_n 进行指数变换,得到t = [e^{z_1},e^{z_2},...,e^{z_n}],使z的取值区间从(-\infty,+\infty)  变为  (0,+\infty)

    2.将所有指数变换后的值求和,得到s = e^{z_1} + e^{z_2} + ... + e^{z_n} = \Sigma_{j=1}^ne^{z_j}

    3.将t中每个e^{z_i} 除以归一化因子s,得到概率分布:


    softmax(z) =[\frac{e^{z_1}}{s},\frac{e^{z_2}}{s},...,\frac{e^{z_n}}{s}]=[\frac{e^{z_1}}{\Sigma_{j=1}^ne^{z_j}},\frac{e^{z_2}}{\Sigma_{j=1}^ne^{z_j}},...,\frac{e^{z_n}}{\Sigma_{j=1}^ne^{z_j}}]
     

    即:        \mathrm{Softmax}(z_i)=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}

     

  • 原理: 将多个神经元的输入(通常是一个向量 z = [z1, z2, ..., zK])转换为一个概率分布。每个输出值在 (0, 1) 区间,且所有输出值之和为1,适合作为多分类任务的输出层。

  • 特征:

    • 输出范围: (0, 1)

    • 归一化: 输出总和为1,非常适合表示K个互斥类别的概率分布(多分类问题)。

      \sum_{i=1}^n\text{Softmax}(z_i)=1

    • 放大差异: 输入值中最大的那个,其对应的输出概率会被显著放大(指数效应),较小的输入对应的概率会被压缩。

    • 在实际应用中,Softmax常与交叉熵损失函数Cross-Entropy Loss结合使用,用于多分类问题。在反向传播中,Softmax的导数计算是必需的。

  • 缺点:

    • 仅用于输出层: 通常只在多分类网络的最后一层使用。

    • 梯度消失:当某个输入远大于其他时,其对应的输出趋近于 1,其他趋近于 0,梯度接近 0。

API

torch.nn.functional.softmax

import torch
import torch.nn as nn
​
# 表示4分类,每个样本全连接后得到4个得分,下面示例模拟的是两个样本的得分
input_tensor = torch.tensor([[-1.0, 2.0, -3.0, 4.0], [-2, 3, -3, 9]])
​
softmax = nn.Softmax()
output_tensor = softmax(input_tensor)
# 关闭科学计数法
torch.set_printoptions(sci_mode=False)
print("输入张量:", input_tensor)
print("输出张量:", output_tensor)

输出结果:

输入张量: tensor([[-1.,  2., -3.,  4.],[-2.,  3., -3.,  9.]])
输出张量: tensor([[    0.0059,     0.1184,     0.0008,     0.8749],[    0.0000,     0.0025,     0.0000,     0.9975]])

总结对比表

激活函数公式输出范围优点缺点适用场景函数绘制描述
Sigmoid\sigma(x) = \frac{1}{1 + e^{-x}}(0, 1)平滑,输出可解释为概率,导数易求梯度消失严重,输出非零中心,计算慢二分类输出层,早期隐藏层S形曲线,从(0,0)附近到(0,1)附近,关于(0,0.5)对称
Tanh\frac{e^x - e^{-x}}{e^x + e^{-x}}(-1, 1)零中心化,梯度比Sigmoid稍大仍有梯度消失,计算慢隐藏层(比Sigmoid更常用)S形曲线,从(0,-1)附近到(0,1)附近,关于(0,0)对称
ReLUmax(0, x)[0, +∞)计算极快,有效缓解梯度消失(正区间),生物学启发,实践效果好死亡ReLU问题,输出非零中心,x=0不可导最常用隐藏层 (CNN, FNN)x<0为水平线(y=0),x>=0为45度线(y=x),原点处转折
Leaky ReLU\begin{cases}x,&\text{if } x>0\\\alpha x,&\text{if } x\leq0\end{cases} (α≈0.01)(-∞, +∞)缓解死亡ReLU,计算快效果依赖α,x=0不可导,负斜率可能非最优隐藏层 (ReLU的改进尝试)x>=0同ReLU(y=x),x<0为斜率很小的直线(y=αx)
Softmax\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}(0, 1), Σ=1输出归一化为概率分布,适合多分类仅用于输出层,数值不稳定(需技巧)多分类输出层作用于向量,输出概率向量。最大输入对应最大概率(接近1)

损失函数选择

  • 隐藏层:优先用ReLU,计算快、效果稳。若出现大量 “死神经元”(输出恒为 0),换Leaky ReLU

  • 输出层:

    • 二分类: Sigmoid (输出单个概率)。

    • 多分类: Softmax (输出类别概率分布)。

    • 回归

      • 输出非负(如销量):ReLU

      • 输出可正可负(如温度):线性激活(y=x)Tanh(配合缩放)

    • 循环网络(RNN/LSTM):门控用Sigmoid(控制开关),状态用Tanh(限制范围)。

  • 避免使用: 在深度网络的隐藏层中,通常避免使用Sigmoid(梯度消失问题严重),也较少使用原始Tanh(ReLU族通常更优)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92466.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92466.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92466.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Trae:使用Trae CN爬取 Gitbook 电子书

在以前使用过Cursor&#xff0c;但是后期由于试用资源很少&#xff0c;免费资源用完我就卸载掉啦&#xff0c;最近又需要开展相关工作&#xff0c;因此下载了最新版的Trae。Trae 2.0最近很火&#xff0c;我正好想要爬取某一个Gitbook 电子书&#xff0c;因此尝试使用Trae和Pyth…

嵌入式知识日常问题记录及用法总结(一)

文章目录摘要问题一、内核启动流程1.1 ARM内核上电复位与BootROM执行​启动代码&#xff08;Startup Code&#xff09;执行跳转到用户程序1.2 内存管理问题二、C语言基础2.1 常量指针和指针常量区别2.2.函数指针和指针函数区别2.3 关键字Volatile2.4 队列结构体数据摘要 嵌入式…

使用Navicat备份数据库MySQL、PostGreSQL等

Navicat 支持多种数据库系统&#xff0c;可通过手动或自动方式进行数据备份&#xff0c;整个过程还是相对简单且直观&#xff0c;比自己敲命令行方便多了。一、备份步骤1.1、手动备份1、打开Navicat并连接数据库&#xff1a;首先&#xff0c;启动Navicat并连接到您的MySQL数据库…

Web3: 用ERC-1400革新公司股权激励

大家好&#xff01;今天&#xff0c;我们来聊一个非常酷的话PEG话题&#xff1a;如何利用Web3技术&#xff0c;特别是ERC-1400证券型代币标准&#xff0c;来革新传统的公司股权激励模式。 大家是否想过&#xff0c;派发给员工的期权或限制性股票&#xff08;RSU&#xff09;可以…

【Python 高频 API 速学 ④】

一、为什么是这 4 个&#xff1f; 列表&#xff08;list&#xff09;是 Python 最常用的可变序列&#xff0c; 90 % 的操作可以浓缩成 「增、并、删、排」 四个字&#xff0c; 而这四个字正好对应 append / extend / pop / sort。二、四剑客一览方法作用原地&#xff1f;返回值…

K8S的POD数量限制

#k8s-v1.11.11.查询当前节点的最大pod数kubectl describe nodes | grep pods2.编辑配置文件把单台的pod数量调到150个vim /etc/systemd/system/kubelet.service #添加最大数量--maxPods: 1503.加载配置重启服务systemctl daemon-reload systemctl restart kubelet#k8s-v1.21.41…

OpenAI开源大模型 GPT-OSS 开放权重语言模型解析:技术特性、部署应用及产业影响

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》&#xff08;跟我一起学人工智能&#xff09;【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷…

CSS--后端也有自己的CSS要学

CSS,即Cascading Style Sheets,它描述了网页的表现与展示效果 为了演示CSS,我写了一个简单的index.html 为了使用控制变量法,一开始我先不写style.css文件的内容 右键在默认浏览器里查看页面,看看效果 1-选择器 根据标签名进行匹配,所以也叫元素选择器 页面效果: 根据…

Docker swarm 常用的命令集合

#docker swarm## 初始化单节点Swarm docker swarm init# 部署测试服务 docker service create --name web --publish 8080:80 --replicas 3 nginx:alpine# Manager节点初始化&#xff08;指定IP&#xff09; docker swarm init --advertise-addr 192.168.1.100# 获取加入令牌 M…

231. 2 的幂

Problem: 231. 2 的幂 文章目录思路解题过程复杂度Code思路 2的幂 n 的二进制只有一个1&#xff0c;而 n - 1的二进制则是把 n 的二进制1变0, 0变1。 例&#xff1a;2^24100,34-1011. 解题过程 n & n - 1 0 复杂度 时间复杂度: O(1)O(1)O(1)空间复杂度: O(1)O(1)O(1) Co…

浅尝AI辅助C转Verilog方法

一、常规算法模块的开发流程日常芯片开发工作中&#xff0c;挺多看工作是把C语言转verilog。例如ISP的代码&#xff0c;都很先由算法进行C model的开发&#xff0c;验证完性能后&#xff0c;输出算法原理文档和c代码&#xff1b;数字设计接手&#xff0c;把C语言转换为verilog代…

Redis分布式锁详解:原理、实现与实战案例

目录 1. 什么是分布式锁&#xff1f; 分布式锁的核心要求 2. 基于Redis的分布式锁实现方案 &#xff08;1&#xff09;基础方案&#xff1a;SETNX EXPIRE &#xff08;2&#xff09;优化方案&#xff1a;SET NX PX&#xff08;原子性加锁&#xff09; &#xff08;3&…

【能碳建设1】用AI+开源打造物联网+能碳管理+交易SaaS系统的最短路径实施指南

摘要 本指南为技术小白设计,目标是在最短时间内利用AI工具与开源系统,独立完成一套物联网平台 + 能碳管理平台 + 碳交易系统的SaaS最小可用版本(MVP),并可后续扩展。流程分为目标定义、技术选型、环境搭建、核心功能开发、SaaS化、多租户、上线运维等环节,按天推进,每步…

CVPR中深度学习新范式:通用性、鲁棒性与多模态的创新突破

来gongzhonghao【图灵学术计算机论文辅导】&#xff0c;快速拿捏更多计算机SCI/CCF发文资讯&#xff5e;分享一个深度学习领域正在迅速升温的前沿方向&#xff1a;通用性与鲁棒性的深度神经网络架构创新。随着大模型在视觉、文本乃至多模态任务中的广泛应用&#xff0c;体现出深…

Vue3 学习教程,从入门到精通,Vue 3 + Tailwind CSS 全面知识点与案例详解(31)

Vue 3 Tailwind CSS 全面知识点与案例详解一、Vue 3 核心语法知识点 1. Vue 3 基础 创建 Vue 3 项目 使用 Vite 创建项目&#xff1a;npm create vuelatest # 选择需要的特性&#xff08;如 TypeScript、Vue Router&#xff09;响应式数据 使用 ref 和 reactive&#xff1a;im…

Android中RecyclerView基本使用

一、RecyclerView 核心概念1. 基本组件关系2. 核心组件作用Adapter&#xff1a;数据与视图的桥梁LayoutManager&#xff1a;控制布局方式&#xff08;线性/网格/瀑布流&#xff09;ViewHolder&#xff1a;缓存视图组件ItemDecoration&#xff1a;添加分割线等装饰ItemAnimator&…

A100用transformers推理gpt-oss

A100本地用transformers推理gpt-oss GPT-oss试用 gpt-oss有两个原生配置是目前&#xff08;2025-8-8&#xff09;Ampere系列显卡不支持的&#xff0c;分别是默认的MXFP4量化&#xff0c;以及Flash-attn V3。tranformers推理是比较慢的&#xff0c;可以用于研究模型本身&#x…

虚拟手机号工具使用

背景&#xff1a;注册部分国外应用时需要国外手机号验证&#xff0c;例如在注册cursor时需要国外手机号 解决&#xff1a;使用虚拟手机号网页进行验证 https://temp-number.com/ 选择自己需要的国家 选择一个手机号 复制手机号到自己的app注册页面 并发送消息&#xff0c;然后…

【线程池】压测确定线程池合适的参数

【线程池】压测确定线程池合适的参数【一】案例说明【二】明确线程池核心参数及优化目标【1】线程池核心参数&#xff08;需压测验证的关键参数&#xff09;【2】优化目标【三】压测前准备【1】环境搭建【2】线程池初始配置&#xff08;基于经验值&#xff09;【3】压测工具与监…

GPT OSS 双模型上线,百度百舸全面支持快速部署

GPT OSS 是 OpenAI 推出的重量级开放模型&#xff0c;专为强推理能力、智能体任务及多样化开发场景设计&#xff0c;标志着大模型在开放性与实用性上的重要突破。该系列包含两款高性能模型&#xff1a;参数规模为 117B 的 GPT‑OSS‑120B 和 21B 的 GPT‑OSS‑20B。二者皆采用 …