神经网络 - 激活函数(Sigmoid 型函数)

激活函数在神经元中非常重要的。为了增强网络的表示能力和学习能力,激活函数需要具备以下几点性质:

(1) 连续并可导(允许少数点上不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数.

(2) 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。

(3) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太 小,否则会影响训练的效率和稳定性。

本文介绍在神经网络中常用的激活函数之一:Sigmoid 型函数

一、Sigmoid 型函数

Sigmoid 型函数是指一类 S 型曲线函数,为两端饱和函数(关于饱和函数的概念。上一博文有介绍)。常用的 Sigmoid 型函数有 Logistic 函数Tanh 函数

对于函数 𝑓(𝑥),若 𝑥 → −∞ 时,其导数 𝑓′(𝑥) → 0,则称其为左饱和。

若 𝑥 → +∞ 时,其导数 𝑓′(𝑥) → 0,则称其为右饱和.当同时满足左、右饱和时,就称为两端饱和。

二、Logistic 函数

1、定义

2、特性说明

(1)Logistic 函数可以看成是一个“挤压”函数,把一个实数域的输入“挤压”到 (0, 1)

(2)当输入值在 0 附近时,Sigmoid 型函数近似为线性函数

(3)当输入值靠近两端 时,对输入进行抑制

(4)输入越小,越接近于 0; 输入越大,越接近于 1

和感知器使用的阶跃激活函数相比,Logistic 函数是连续可导的, 其数学性质更好。

因此装备了 Logistic 激活函数的神经元,具有以下 两点性质:

(1)其输出直接可以看作概率分布,使得神经网络可以更好地和统计 学习模型进行结合

(2)其可以看作一个软性门(Soft Gate),用来控制其他神经 元输出信息的数量

3、梯度与训练

Logistic函数的导数具有一个简单的形式:

σ′(z)=σ(z)(1−σ(z)).

这种形式在梯度下降算法中非常有用,因为它使得反向传播中梯度计算简单且高效。同时,当 zzz 处于极端值(很大或很小)时,导数趋近于0,这也会引起梯度消失问题,这一点在设计神经网络时需要注意。

Logistic函数,除了用于神经网络激活函数,还可以用于逻辑回归(这个在Logistic回归的博文中有介绍)

三、Tanh 函数 

Tanh 函数,即双曲正切函数,其数学表达式为

它将任意实数 x 映射到区间 (−1,1)。下面详细说明其性质和理解方式:

1. 基本性质

  • 输出范围
    tanh⁡(x) 的输出在 −1 到 1 之间。当 x 越大时,tanh⁡(x) 趋近于 1;当 xx 越小(即负数绝对值越大)时,tanh⁡(x) 趋近于 −1。

  • 对称性
    tanh⁡(x) 是一个奇函数(关于远点对称),即 tanh⁡(−x)=−tanh⁡(x),这意味着它关于原点对称。

  • 平滑性
    tanh⁡(x) 是连续且可微的,导数为

    这使得它在神经网络中作为激活函数时,能够提供平滑的梯度,有助于梯度传播。

2. 与其他激活函数的比较

  • Logistic 函数

         tanh(𝑥) = 2𝜎(2𝑥) − 1.(从这里可以看出两者之间的转化)

        tanh 函数可以看作放大并平移的 Logistic 函数,其值域是 (−1, 1).

        Tanh 函数的输出是零中心化的(Zero-Centered),而 Logistic 函数的输出恒大于 0。非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。Logistic 函数和 Tanh 函数的形状如下图:

  • 非线性特性
    两者都具有 S 型(sigmoidal)曲线,但由于输出范围不同,tanh⁡(x) 在处理数据时往往能更好地平衡正负信息。

3. 如何理解“附近”及应用

  • 直观理解
    当 x 较小(接近 0)时,tanh⁡(0)=0 且近似于线性函数,因为其导数 1 - tanh^2(0)=1;当 x 较大或较小时,函数逐渐饱和,输出接近 1 或 −1,说明输入的极端值不会导致输出剧烈变化。这种“饱和性”特性在神经网络中既有利于稳定输出,也可能引发梯度消失问题。

  • 实际应用
    在神经网络中,tanh⁡(x)  常作为隐藏层的激活函数,帮助模型引入非线性。由于它的输出是零中心化的,能在一定程度上帮助缓解梯度下降过程中梯度偏移的问题。

4. 举例说明

例子:在神经网络中的应用

这种激活机制帮助神经网络引入非线性特征,使得多个神经元层的组合能够逼近复杂函数。

四、Hard-Logistic 函数

1、Hard-Logistic 函数定义

以 Logistic 函数 𝜎(𝑥) 为例,其导数为 𝜎′(𝑥) = 𝜎(𝑥)(1 − 𝜎(𝑥)).

Logistic 函数在 0 附近的一阶泰勒展开(Taylor expansion)为:

这样 Logistic 函数可以用分段函数 hard-logistic(𝑥) 来近似:

亦即:

2、Hard-Logistic 函数的形状:

 3、如何理解:

五、Hard-Tanh 函数

1、Hard-Tanh 函数定义

tanh 函数在 0 附近的一阶泰勒展开为:

这样 Tanh 函数也可以用分段函数 hard-tanh(𝑥) 来近似:

亦即:

2、Hard-Tanh 函数的形状:

 3、如何理解:

六、“hard”激活函数的应用场景和优势

  • 计算效率
    “Hard”激活函数由于只涉及简单的加减和比较运算,相比于传统的 Sigmoid 或 Tanh,可以大幅减少计算量,适合于对计算资源要求较高的场景(如移动设备、嵌入式系统)。
  • 简单性
    它们的数学表达和梯度形式非常简单,这在理论分析和工程实现中都具有优势。
  • 应用实例
    在一些深度学习网络或强化学习模型中,为了加速训练和推理,可以选择使用 Hard-Tanh 或 Hard-Logistic 作为激活函数,从而在保持性能的同时提升效率。

      总体来说,Hard-Logistic 和 Hard-Tanh 都是为了在某些场景下(如资源受限的环境或需要快速推理的应用中)替代传统平滑激活函数而设计的简化版本,虽然它们牺牲了一定的精细度,但换来了计算上的加速和实现上的简单。

七、附加:tanh(𝑥) = 2𝜎(2𝑥) − 1的推导过程

我们来学习一下双曲正切函数(tanh)和Logistic函数(σ)的推导关系,以加深大家对两个函数的理解和认识。

1. 推导过程

步骤 1:调整Logistic函数的输入和输出范围

Logistic函数的输出范围为 (0,1),而tanh的输出范围为 (−1,1)。需对Logistic函数进行线性变换:

目标形式:tanh⁡(x)=A⋅σ(Bx)+C,

其中 A、B、C 为待定系数。

步骤 2:确定参数 B(缩放输入)

将Logistic函数的输入缩放为 2x,即:

这样做的目的是使Logistic函数的斜率更陡峭,与tanh的形状更接近。

步骤 3:确定参数 A 和 C(调整输出范围)

将 σ(2x) 的输入调整后,进一步通过线性变换将其输出从 (0,1) 映射到 (−1,1):

步骤 4:代数化简

将等式右侧通分:

步骤 5:与tanh的表达式对比

2.关键推导总结

  • 输入缩放:通过将输入 x 放大为 2x,使得Logistic函数 σ(2x) 的斜率与tanh匹配。

  • 输出调整:通过线性变换 2σ(2x)−1,将输出范围从 (0,1)映射到 (−1,1)。

  • 代数恒等式:化简后与tanh的定义式完全一致。

 3.直观理解

  • 几何意义
    tanh是中心对称的S型曲线(关于原点对称),而Logistic函数是右移的S型曲线。通过缩放输入(2x)和调整输出(2σ−1),Logistic函数被“拉伸”并“平移”为tanh。

  • 参数作用

    • B=2:使Logistic函数的斜率加倍,与tanh的陡峭度一致。

    • A=2 和 C=−1:将输出范围从 (0,1)(0,1) 线性映射到 (−1,1)(−1,1)。

通过缩放Logistic函数的输入(2x)和调整输出(2σ−1),可以精确得到双曲正切函数 tanh⁡(x)。这一关系在神经网络中常用于激活函数的转换,尤其在需要中心化输出时(如循环神经网络)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PINN求解固体力学问题——论文加代码

PINN求解固体力学问题——论文加代码 1. 训练2. 可视化论文:Physics-Informed Deep Learning and its Application in Computational Solid and Fluid Mechanics 基本问题: 网格: 1. 训练 # %load Plane_Stress_W-PINNs.py """ Forward Problem for Plan…

ktransformers 上的 DeepSeek-R1 671B open-webui

ktransformers 上的 DeepSeek-R1 671B open-webui 一、下载GGUF模型1. 创建目录2. 魔塔下载 DeepSeek-R1-Q4_K_M3. 安装显卡驱动和cuda4. 显卡 NVIDIA GeForce RTX 4090 二、安装ktransformers1. 安装依赖2. 安装uv工具链3. 下载源码4. 创建python虚拟环境 三、编译ktransforme…

QT:Graphics View的坐标系介绍

在 Qt 的 Graphics View 框架中,存在三种不同的坐标系,分别是 物品坐标系(Item Coordinates)、场景坐标系(Scene Coordinates) 和 视图坐标系(View Coordinates)。这三种坐标系在图形…

医院HIS接入大模型:算力基础设施与训练能力的深度剖析与测算

一、引言 1.1 研究背景与意义 在数字化医疗快速发展的当下,医院信息系统(Hospital Information System,HIS)作为医疗信息化的核心枢纽,承载着患者诊疗信息、医院运营管理等关键数据 ,对提升医疗服务质量、优化医院管理流程起着至关重要的作用。然而,传统 HIS 在面对日…

入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网…

阿里云CDN转https个人测试证书过期更换

网站是http的虚拟主机,微信小程序要求https,所以申请了阿里云CDN和个人测试证书(以前叫免费证书),把http转成https。 但是个人测试证书只有三个月有效期,所以每隔三个月要手动申请更换一次。 在阿里云CDN…

东信营销科技巨额补贴仍由盈转亏:毛利率大幅下滑,现金流告急

《港湾商业观察》施子夫 近期,东信营销科技有限公司(以下简称,东信营销科技)递表港交所,联席保荐机构为海通国际和中银国际。 东信营销科技的国内运营主体为深圳市东信时代信息技术有限公司。尽管期内收入规模有所提…

AOP进阶-04.切入点表达式-@annotation

一.annotation注解 我们在最后一个切入点表达式中要匹配多个无规则的方法,这样的写法有些冗余了。而annotation注解就是来解决这一问题的。 annotation注解使用特定的注解来匹配方法。我们首先自定义一个注解,该注解就相当于一个标签,目标对…

特斯拉 FSD 算法深度剖析:软件层面全解读

一、引言 特斯拉的 FSD(Full Self-Driving)系统作为自动驾驶领域的前沿成果,其软件层面的算法设计至关重要。本文将从软件的角度,深入探讨特斯拉 FSD 所采用的算法,包括感知、规划、控制等多个方面,以期为…

LabVIEW同步数据采集功能

VI通过使用数据采集(DAQ)硬件系统,进行多通道同步采集,实时获取模拟信号数据。它利用外部时钟信号触发数据采集,支持连续采样模式,并将采集到的数据实时显示在波形图上,方便用户进行数据监控和分…

YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合

概述 实时目标检测对于许多实际应用来说已经变得至关重要,而Ultralytics公司开发的YOLO(You Only Look Once,只看一次)系列一直是最先进的模型系列,在速度和准确性之间提供了稳健的平衡。注意力机制的低效阻碍了它们在…

Ubuntu20.04之VNC的安装使用与常见问题

Ubuntu20.04之VNC的安装与使用 安装图形桌面选择安装gnome桌面选择安装xface桌面 VNC-Server安装配置开机自启 VNC Clientroot用户无法登入问题临时方案永久方案 安装图形桌面 Ubuntu20.04主流的图形桌面有gnome和xface两种,两种桌面的安装方式我都会写&#xff0c…

14.二叉搜索树

二叉搜索树 1.概念 ⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树: *若它的左⼦树不为空,则左⼦树上所有结点的值都⼩于等于根结点的值 *若它的右⼦树不为空,则右⼦树上所有结点的值都⼤于等于根结点…

web网络安全---cookie篇

什么是Cookie 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的…

Qt 开源音视频框架模块之QtAV播放器实践

Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架,旨在简化音视频播放和处理。它是一个跨平台的库,支持多种音视频格式,并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…

WPF学习之Prism(二)

前言 学习一下Prism。 1.Prism Prism框架提供了一套丰富的工具、类和模块,帮助开发人员实现以下功能: 模块化:Prism框架支持将应用程序拆分为多个模块,每个模块具有自己的功能和视图。这种模块化的设计使得应用程序更加灵活和…

前端实现rsa加密功能

本文将从web和小程序两个端来实现rsa的加密功能。 一般项目的登录密码、身份证号以及一些用户敏感信息等在传输的时候需要使用加密传输,一般来说,前端只会得到后端给的公钥,而rsa加密,可以用公钥加密,也可以用私钥加密…

VidSketch:具有扩散控制的手绘草图驱动视频生成

浙大提出的VidSketch是第一个能够仅通过任意数量的手绘草图和简单的文本提示来生成高质量视频动画的应用程序。该方法训练是在单个 RTX4090 GPU 上进行的,针对每个动作类别使用一个小型、高质量的数据集。VidSketch方法使所有用户都能使用简洁的文本提示和直观的手绘…

STM32——HAL库开发笔记23(定时器4—输入捕获)(参考来源:b站铁头山羊)

定时器有四个通道,这些通道既可以用来作为输入,又可以作为输出。做输入的时候,可以使用定时器对外部输入的信号的时间参数进行测量;做输出的时候,可以使用定时器向外输出精确定时的方波信号。 一、输入捕获 的基本原理…

Jquery详解

一.Jquery介绍 1.jQuery 是一个快速、简洁的 JavaScript 库,它极大地简化了 HTML 文档遍历、事件处理、动画效果和 AJAX 交互等操作,使开发者能够更轻松地创建动态和交互性强的网页。对原生js的封装,提供了很多时间,调用Api即可,并且对浏览器做了兼容性…