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

神经网络 - 激活函数(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)。这一关系在神经网络中常用于激活函数的转换,尤其在需要中心化输出时(如循环神经网络)。

相关文章:

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

激活函数在神经元中非常重要的。为了增强网络的表示能力和学习能力,激活函数需要具备以下几点性质: (1) 连续并可导(允许少数点上不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数. (2) 激活函数及其导函数要尽可能的简单&#xff0…...

阿里云 | 快速在网站上增加一个AI助手

创建智能体应用 如上所示,登录阿里云百炼人工智能业务控制台,创建智能体应用,智能体应用是一个agent,即提供个人或者企业的代理或中间件组件应用,对接阿里云大模型公共平台,为个人或者企业用户提供大模型应…...

【操作系统】处理机调度

处理机调度 一、调度的概念、层次1.1 三个层次1.2 七状态模型 二、调度算法的评价指标2.1 CPU利用率2.2 系统吞吐率2.3 周转时间2.4 等待时间2.5 响应时间 三、进程调度(低级调度)的时机3.1 需要进程调度的情况3.2 不能进程调度的情况3.3 闲逛进程 四、进…...

mysql服务层介绍,NOSQL+SQL接口(nosql介绍),语法分析器,预处理器,优化器(优化的必要性,基于成本的优化器),缓存(弊端)

目录 mysql服务层 介绍 服务管理和公共组件 备份 NOSQL,SQL接口 介绍 nosql Parser模块(语法分析器) 介绍 词法分析 语法分析 示例 预处理器 引入 介绍 优化器 介绍 优化的必要性 基于成本的优化器 缓存 介绍 弊端 mysql服务层 介绍 数据库服务层是整个…...

将DeepSeek接入vscode的N种方法

接入deepseek方法一:cline 步骤1:安装 Visual Studio Code 后,左侧导航栏上点击扩展。 步骤2:搜索 cline,找到插件后点击安装。 步骤3:在大模型下拉菜单中找到deep seek,然后下面的输入框输入你在deepseek申请的api key,就可以用了 让deepseek给我写了一首关于天气的…...

【算法与数据结构】Dijkstra算法求单源最短路径问题

目录 Dijkstra算法 算法简介: 该算法的核心思想: 算法特点: 算法示例演示: 算法实现: 邻接矩阵存图 邻接表存图: 时间复杂度分析: Dijkstra算法 算法简介: Dijkstra算法&am…...

.CSV file input into contact of outlook with gibberish. .csv文件导入outlook, 出现乱码

workaround : 清理excel或者csv文件的格式, 使用手动先输入几个常规字, 然后使用格式刷...

StableDiffusion打包 项目迁移 项目分发 0

StableDiffusion项目迁移 0 先看了几个其他人的本地部署文章和视频,对别人的步骤做记录。(写的很潦草,只是注意一下有什么点需要注意) 虽然秋叶大佬有整合包,但是我是为了项目分发学习的,还是想自己配环境…...

关于Postman自动获取token

在使用postman测试联调接口时,可能每个接口都需要使用此接口生成的令牌做Authorization的Bearer Token验证,最直接的办法可能会是一步一步的点击,如下图: 在Authorization中去选择Bearer Token,然后将获取到的token粘贴…...

LSTM长短期记忆网络-原理分析

1 简介 概念 LSTM(Long Short-Term Memory)也称为长短期记忆网络,是一种改进的循环神经网络(RNN),专门设计用于解决传统RNN的梯度消失问题和长程依赖问题。LSTM通过引入门机制和细胞状态,能够更…...

sql server笔记

创建数据库 use master gocreate database stuuuuu//删除数据库if db_id ($$$) is not nullDrop database [$$$] go//新建表USE [studyTest] GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOCREATE TABLE [dbo].[Table_1]([id] [int] NULL,[name] [varchar](10) NULL ) ON…...

AI Video Composer:基于Qwen2.5-Coder的简易开源视频创作利器

系列篇章💥 No.文章1短视频开源项目MoneyPrinterTurbo:AI副业搞起来,视频制作更轻松!2【FunClip】阿里开源AI视频剪辑神器:全面体验与教程3Tailor:免费开源 AI 视频神器,创作者必备利器4Clappe…...

AI数字人开发,引领科技新潮流

引言 随着人工智能技术的迅猛发展,AI 数字人在影视娱乐、客户服务、教育及医疗等多个领域展现出巨大的潜力。本文旨在为开发者提供一份详细的 AI 数字人系统开发指南,涵盖从基础架构到实现细节的各个方面,包括人物建模、动作生成、语音交互、…...

VoIP之音频3A技术

音频3A技术是改善语音通话质量的三种关键技术的简称,包括声学回声消除(Acoustic Echo Cancellation, AEC)、自动增益控制(Automatic Gain Control, AGC)、自噪声抑制(Automatic Noise Suppression, ANS&…...

[原创]openwebui解决searxng通过接口请求不成功问题

openwebui 对接 searxng 时 无法查询到联网信息,使用bing搜索,每次返回json是正常的 神秘代码: http://172.30.254.200:8080/search?q北京市天气&formatjson&languagezh&time_range&safesearch0&languagezh&locale…...

Jmeter聚合报告导出log文档,Jmeter聚合报告导出到CSV

Jmeter聚合报告导出log文档 在Filename中输入 EKS_perf_log\\${type}_log\\${__P(UNIQUEID,${__time(YMDHMS)})}\all-graph-results-log.csv 可以得到执行的log,文件夹包含时间戳 Jmeter聚合报告导出到CSV 点击Save Table Data,保存到CSV文件中...

mysqldump 参数详解

mysqldump 是一个用于备份 MySQL 数据库的工具。它可以生成一组 SQL 语句,这些语句可以用来重现原始数据库对象定义和表数据。以下是一些常用的 mysqldump 参数及其详细解释: 常用参数 基本参数 --host=host_name, -h host_name: 指定 MySQL 数据库主机地址,默认为 localh…...

DeepSeek R1 简易指南:架构、本地部署和硬件要求

DeepSeek 团队近期发布的DeepSeek-R1技术论文展示了其在增强大语言模型推理能力方面的创新实践。该研究突破性地采用强化学习(Reinforcement Learning)作为核心训练范式,在不依赖大规模监督微调的前提下显著提升了模型的复杂问题求解能力。 …...

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释,结合理论与实际操作说明: 一、三级视图核心概念 数据库的三级视图是 ANSI/SPARC 体系结构的核心思想,MySQL 的实现逻辑如下: …...

[Web 信息收集] Web 信息收集 — 手动收集 IP 信息

关注这个专栏的其他相关笔记:[Web 安全] Web 安全攻防 - 学习手册-CSDN博客 0x01:通过 DNS 服务获取域名对应 IP DNS 即域名系统,用于将域名与 IP 地址相互映射,方便用户访问互联网。对于域名到 IP 的转换过程则可以参考下面这篇…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中&#xff0…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...