文章目录

    • Softplus
      • 函数+导函数
      • 函数和导函数图像
      • 优缺点
      • PyTorch 中的 Softplus 函数
      • TensorFlow 中的 Softplus 函数

Softplus

函数+导函数

  • Softplus函数
    Softplus⁡(x)=ln⁡(1+ex)\begin{aligned} \operatorname{Softplus}(x) &= \ln \bigl(1 + e^{\,x}\bigr) \end{aligned} Softplus(x)=ln(1+ex)

  • Softplus函数导数
    ddxSoftplus⁡(x)=ddxln⁡⁣(1+ex)=11+ex⋅ex=ex1+ex=ex1+ex⋅e−xe−x=11+e−x=σ(x)\begin{aligned} \frac{d}{dx}\operatorname{Softplus}(x) &=\frac{d}{dx}\ln\!\left(1+e^{x}\right)\\ &=\frac{1}{1+e^{x}}\cdot e^{x}\\ &=\frac{e^{x}}{1+e^{x}}\\ &=\frac{e^{x}}{1+e^{x}} \cdot \frac{e^{-x}}{e^{-x}}\\ &=\frac{1}{1+e^{-x}}\\ &=\sigma(x) \end{aligned} dxdSoftplus(x)=dxdln(1+ex)=1+ex1ex=1+exex=1+exexexex=1+ex1=σ(x)
    其中,σ(x)=11+e−x\sigma(x)=\dfrac{1}{1+e^{-x}}σ(x)=1+ex1 是 sigmoid 函数。Softplus 处处可导,并且导数恰好是 sigmoid。


函数和导函数图像

  • 画图

    import numpy as np
    from matplotlib import pyplot as plt# Softplus 函数
    def softplus(x):return np.log1p(np.exp(x))# Softplus 的导数 = sigmoid
    def softplus_derivative(x):return 1 / (1 + np.exp(-x))# 生成数据
    x = np.linspace(-6, 6, 1000)
    y = softplus(x)
    y1 = softplus_derivative(x)# 绘图
    plt.figure(figsize=(12, 8))
    ax = plt.gca()
    plt.plot(x, y, label='Softplus')
    plt.plot(x, y1, label='Derivative (Sigmoid)')
    plt.title('Softplus and Derivative')# 去边框
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    ax.spines['bottom'].set_position(('data', 0))
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data', 0))plt.legend()
    plt.savefig('./softplus.jpg',dpe=300)
    plt.show()3
    


优缺点

  • Softplus 的优点

    1. 平滑处处可导:Softplus 是 ReLU 的光滑近似,没有折点,避免了 ReLU 在 0 处不可导的问题。
    2. 梯度不消失:对于任意输入,梯度始终为正,并且随输入增大趋近于 1,有效缓解梯度消失。
    3. 解析形式简单:公式简洁,易于实现,且与 sigmoid 有天然联系。
    4. 连续可导:在需要二阶导数或高阶导数的场景(如 Hessian、自然梯度)中更容易处理。
  • Softplus 的缺点

    1. 计算开销:相比 ReLU 的逐位最大值操作,Softplus 需要计算指数和对数,计算量更大。
    2. 输出始终为正:当需要负激活值时(如残差网络中的负值路径),Softplus 无法提供。
    3. 边缘饱和:当输入为很大的负数时,Softplus 会趋于 0,虽然比 sigmoid 缓解,但仍可能带来梯度衰减。
    4. 超参数敏感:在部分任务中需要额外调整初始化或学习率,以抵消其非零均值的副作用。

PyTorch 中的 Softplus 函数

  • 代码

    import torch
    import torch.nn.functional as F# 使用 PyTorch 自带的 Softplus
    sp = F.softplusx = torch.tensor([-2.0, 0.0, 2.0])
    y = sp(x)print("x :", x)
    print("softplus(x):", y)"""输出"""
    x : tensor([-2.,  0.,  2.])
    softplus(x): tensor([0.1269, 0.6931, 2.1269])
    

TensorFlow 中的 Softplus 函数

  • 环境

    python: 3.10.9

    tensorflow: 2.19.0

  • 代码

    import tensorflow as tfsoftplus = tf.keras.activations.softplusx = tf.constant([-2.0, 0.0, 2.0])
    y = softplus(x)print("x :", x.numpy())
    print("softplus(x):", y.numpy())"""输出"""
    x : [-2.  0.  2.]
    softplus(x): [0.12692805 0.6931472  2.126928  ]
    

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

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

相关文章

深度理解 KVM:Linux 内核系统学习的重要角度

📖 推荐阅读:《Yocto项目实战教程:高效定制嵌入式Linux系统》 🎥 更多学习视频请关注 B 站:嵌入式Jerry 深度理解 KVM:Linux 内核系统学习的重要角度 作者:嵌入式 Jerry 一、为什么开发者需要学习 KVM&…

闭包的定义和应用场景

一、闭包是什么? 闭包是指函数可以“记住”并访问它定义时的词法作用域,即使这个函数在其作用域链之外执行。 简单说:函数 A 在函数 B 中被定义,并在函数 B 外部被调用,它依然能访问函数 B 中的变量,这就是…

北京-4年功能测试2年空窗-报培训班学测开-第五十四天

今天交付的成果是,初版简历虽然只写了项目部分,但用了一整天,期间联系了前司组长,拿到了性能测试报告。然后再看压测脚本,突然能看懂了,对服务端日志也能看懂些了,还找到了客户端日志怎么说呢&a…

算法训练营day24 回溯算法③ 93.复原IP地址 、78.子集、 90.子集II

今天继续回溯算法的专题,第三篇博客! 93.复原IP地址 输入:s "25525511135" 输出:["255.255.11.135","255.255.111.35"] 切割字符串为4段,当进行到第四段的时候对第四段字符串进行判断…

jeccg-boot框架实现xls模板导出功能

文章目录一、后端部分二、前端部分三、模板制作一、后端部分 //1、在application-dev.yml文件增加模板路径path :#模板路径saxls: /data/opt/saxls/ //2、控制层写法 public class sabassalController extends JeecgController<sabassalVo, IsabassalService> {Autowired…

LangChain4j入门:Java开发者的AI应用开发指南

&#x1f680; 在AI浪潮席卷全球的今天&#xff0c;Java开发者如何快速上手大语言模型应用开发&#xff1f;LangChain4j为我们提供了完美的解决方案&#xff01; 前言&#xff1a;为什么Java开发者需要LangChain4j&#xff1f; 想象一下&#xff0c;你正在开发一个企业级应用&…

相机光学(五十)——Depth AF

1.什么是Depth AFDepth AF&#xff08;景深自动对焦&#xff09;&#xff0c;也称为 Depth-of-Field AF&#xff08;景深对焦&#xff09; 或 DEP AF&#xff0c;是一种基于景深范围的自动对焦技术&#xff0c;核心目标是&#xff1a;确保从前景到背景的一整段距离都在清晰景深…

Unity 堆栈分析实战指南 C#

Unity 堆栈分析实战指南 提示&#xff1a;内容纯个人编写&#xff0c;欢迎评论点赞&#xff0c;来指正我。 文章目录Unity 堆栈分析实战指南1. 前言2. 什么是堆栈3. Unity 中的堆栈4. 堆栈分析工具5. 如何进行堆栈分析6. 实战案例分析案例 1: 性能瓶颈分析案例 2: 内存泄漏检测…

AE MDX L6 L12 L18 电源手侧操作使用说明

AE MDX L6 L12 L18 电源手侧操作使用说明

Gemini Function Calling 和 Qwen3 Embedding和ReRanker模型

Gemini API 的函数调用&#xff08;Function Calling&#xff09;功能。它解决了传统大语言模型&#xff08;LLM&#xff09;的一个关键局限&#xff1a;LLM 本身是基于训练数据的“知识库”&#xff0c;擅长生成文本和回答问题&#xff0c;但无法直接执行代码、访问实时数据或…

​​VMware Workstation Pro 17.5.0 安装教程 - 详细步骤图解(附下载+激活)​

VMware Workstation Pro 17.5.0 是一款功能强大的虚拟机软件&#xff0c;允许用户在一台计算机上同时运行多个操作系统&#xff08;如 Windows、Linux、macOS&#xff09;&#xff0c;适用于开发、测试、运维及学习环境搭建。本教程提供 ​​详细安装步骤​​&#xff0c;包括 …

端到端神经网络视频编解码器介绍

一、技术演进&#xff1a;从模块优化到全局智能的范式跃迁 传统编解码器的效率天花板&#xff08;1990-2017&#xff09; 架构局限&#xff1a;H.264/HEVC依赖手工设计的运动估计、DCT变换、熵编码模块&#xff0c;各模块独立优化导致全局效率损失。高分辨率瓶颈&#xff1a;4…

Kubernetes (k8s)环境重启Pod方式总结

前言&#xff1a;在 Kubernetes (k8s) 中&#xff0c;没有直接的命令如 kubectl restart pod 来重启 Pod&#xff0c;因为 Pod 的生命周期由控制器&#xff08;如 Deployments、StatefulSets 或 ReplicaSets&#xff09;管理。重启操作本质上是通过删除并重建 Pod 来实现的&…

OOA、OOD 与 OOP:面向对象范式的核心支柱详解

作为软件系统架构的核心范式&#xff0c;面向对象方法贯穿软件开发生命周期。OOA、OOD 和 OOP 分别代表分析、设计和实现三个关键阶段&#xff0c;共同构成一个连贯的工程体系。一、OOA (Object-Oriented Analysis&#xff0c;面向对象分析) 目标&#xff1a;理解问题域&#x…

GBase 8a 与 Spring Boot + MyBatis 整合实战:从环境搭建到CRUD操作

一、引言 在企业级数据管理场景中&#xff0c;GBase数据库凭借其高性能的数据分析能力和对SQL标准的良好兼容性&#xff0c;成为金融、电信等行业的常用选择。本文将详细演示如何将GBase数据库与Spring Boot、MyBatis框架整合&#xff0c;实现高效的数据持久化操作&#xff0c…

功能安全之BIST的基本原理

BIST&#xff08;Built-In Self-Test&#xff0c;内建自测试&#xff09;是一种将测试功能直接集成到集成电路&#xff08;IC&#xff09;或系统内部的设计方法。其基本原理的核心在于&#xff1a;让被测试电路自身&#xff08;或借助少量专用硬件&#xff09;来生成测试激励、…

Linux 程序地址空间

目录 Ⅰ、什么是程序地址空间&#xff1f; Ⅱ、虚拟地址空间是什么样的&#xff1f; 一、虚拟地址空间和页表 1、什么是页表&#xff1f; 2、什么是虚拟地址空间&#xff1f; 3、什么是vm_area_struct? Ⅲ、为什么要用虚拟地址空间&#xff1f; 一、进程的独立性 二、…

【iOS】消息传递和消息转发

文章目录前言一、消息传递&#xff1a;objc_msgSend 的“查字典递归找家长”流程1. 第一步&#xff1a;查“最近调用记录”&#xff08;方法缓存&#xff09;—— 最快即快速查找&#xff01;2. 第二步&#xff1a;翻“自己的字典”&#xff08;类方法列表查找&#xff09;——…

MySQL查询优化与事务实战指南

本节用到的员工信息管理表结构放到资源中&#xff0c;需要的同学自取。本节内容以此表为示例&#xff1a; 面试题&#xff1a;innodb与myisam的区别。 外键&#xff0c;事务 特性InnoDBMyISAM事务支持支持不支持外键支持不支持锁粒度行级锁表级锁索引结构聚簇索引非聚簇索引崩…

Windows 10/11 磁盘清理操作指南:彻底解决系统盘空间不足问题

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#,Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开发…