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

【机器学习】 Sigmoid函数:机器学习中的关键激活函数


鑫宝Code

🌈个人主页: 鑫宝Code
🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础
💫个人格言: "如无必要,勿增实体"


文章目录

  • Sigmoid函数:机器学习中的关键激活函数
    • 1. 引言
    • 2. Sigmoid函数定义
    • 3. Sigmoid函数的图像特性
    • 4. Sigmoid函数的导数
    • 5. Sigmoid函数在机器学习中的应用
      • 5.1 二元分类
      • 5.2 神经网络激活函数
      • 5.3 门控循环单元(GRU)
    • 6. Sigmoid函数的优点
    • 7. Sigmoid函数的缺点
    • 8. Sigmoid函数的替代品
    • 9. 结论

Sigmoid函数:机器学习中的关键激活函数

1. 引言

在机器学习和深度学习领域,激活函数扮演着至关重要的角色。它们为神经网络引入非线性,使得网络能够学习复杂的模式。Sigmoid函数是最早被广泛使用的激活函数之一,至今仍在许多应用中发挥重要作用。本文将深入探讨Sigmoid函数的定义、特性、应用以及优缺点。
在这里插入图片描述

2. Sigmoid函数定义

Sigmoid函数,也称为逻辑函数(Logistic Function),是一种常见的S型函数。其数学表达式为:

S ( x ) = 1 1 + e − x S(x) = \frac{1}{1 + e^{-x}} S(x)=1+ex1

其中,e是自然对数的底数,约等于2.71828。

3. Sigmoid函数的图像特性

Sigmoid函数具有以下几个重要的图像特性:

  1. 函数值域在(0, 1)之间
  2. 在原点(0, 0.5)处对称
  3. 在x趋近于正无穷时,y趋近于1;在x趋近于负无穷时,y趋近于0
  4. 函数曲线呈S型,在中间部分近似线性,两端逐渐平缓

4. Sigmoid函数的导数

Sigmoid函数的导数有一个非常优雅的形式,这也是它在早期神经网络中广泛使用的原因之一。Sigmoid函数的导数可以用函数本身表示:

S ′ ( x ) = S ( x ) ( 1 − S ( x ) ) S'(x) = S(x)(1 - S(x)) S(x)=S(x)(1S(x))

证明如下:

S ′ ( x ) = d d x ( 1 1 + e − x ) = e − x ( 1 + e − x ) 2 = 1 1 + e − x ⋅ e − x 1 + e − x = 1 1 + e − x ⋅ ( 1 − 1 1 + e − x ) = S ( x ) ( 1 − S ( x ) ) \begin{align*} S'(x) &= \frac{d}{dx}\left(\frac{1}{1 + e^{-x}}\right) \\ &= \frac{e^{-x}}{(1 + e^{-x})^2} \\ &= \frac{1}{1 + e^{-x}} \cdot \frac{e^{-x}}{1 + e^{-x}} \\ &= \frac{1}{1 + e^{-x}} \cdot (1 - \frac{1}{1 + e^{-x}}) \\ &= S(x)(1 - S(x)) \end{align*} S(x)=dxd(1+ex1)=(1+ex)2ex=1+ex11+exex=1+ex1(11+ex1)=S(x)(1S(x))

这个简洁的导数形式使得在神经网络的反向传播过程中计算梯度变得非常方便。

5. Sigmoid函数在机器学习中的应用

5.1 二元分类

Sigmoid函数最常见的应用之一是在逻辑回归中用于二元分类。由于Sigmoid函数的输出范围在0到1之间,我们可以将其解释为某一类别的概率。通常,我们设置一个阈值(如0.5),当输出大于阈值时归为一类,小于阈值时归为另一类。

在逻辑回归中,模型可以表示为:

P ( y = 1 ∣ x ) = 1 1 + e − ( β 0 + β 1 x 1 + β 2 x 2 + . . . + β n x n ) P(y=1|x) = \frac{1}{1 + e^{-(\beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_nx_n)}} P(y=1∣x)=1+e(β0+β1x1+β2x2+...+βnxn)1

其中,x是输入特征,β是模型参数。

5.2 神经网络激活函数

在传统的前馈神经网络中,Sigmoid函数常被用作隐藏层和输出层的激活函数。它将神经元的输出压缩到(0, 1)范围内,这种特性使得Sigmoid函数在早期神经网络中非常流行。

对于一个神经元,其输出可以表示为:

y = S ( w x + b ) = 1 1 + e − ( w x + b ) y = S(wx + b) = \frac{1}{1 + e^{-(wx + b)}} y=S(wx+b)=1+e(wx+b)1

其中,w是权重,x是输入,b是偏置。

5.3 门控循环单元(GRU)

在更复杂的神经网络结构中,如门控循环单元(GRU),Sigmoid函数也扮演着重要角色。GRU使用Sigmoid函数来控制信息的流动,具体来说,在更新门和重置门中使用Sigmoid函数。

GRU的更新门和重置门的计算如下:

z t = σ ( W z ⋅ [ h t − 1 , x t ] ) z_t = \sigma(W_z \cdot [h_{t-1}, x_t]) zt=σ(Wz[ht1,xt])
r t = σ ( W r ⋅ [ h t − 1 , x t ] ) r_t = \sigma(W_r \cdot [h_{t-1}, x_t]) rt=σ(Wr[ht1,xt])

其中,σ表示Sigmoid函数,z_t是更新门,r_t是重置门。
在这里插入图片描述

6. Sigmoid函数的优点

  1. 输出范围有界:Sigmoid函数的输出始终在0和1之间,这使得它在某些应用中非常有用,例如在需要将输出解释为概率的情况下。

  2. 平滑和连续:Sigmoid函数是平滑和连续的,这意味着它在整个定义域内都是可微的。这对于基于梯度的优化算法非常重要。

  3. 非线性:Sigmoid函数引入了非线性,使得神经网络能够学习复杂的非线性关系。

  4. 导数简单:Sigmoid函数的导数形式简单,可以用函数本身表示,这在计算梯度时非常方便。

7. Sigmoid函数的缺点

尽管Sigmoid函数有许多优点,但它也存在一些限制:

  1. 梯度消失问题:当输入值很大或很小时,Sigmoid函数的梯度接近于0,这可能导致深层网络中的梯度消失问题。

  2. 输出不是零中心的:Sigmoid函数的输出范围是(0, 1),这意味着输出总是正的。这可能导致后续层的梯度更新出现zigzag现象。

  3. 计算复杂度:Sigmoid函数涉及指数运算,计算复杂度相对较高。

  4. 软饱和性:在输入的绝对值较大时,函数的变化率接近于0,这可能导致学习过程变慢。

8. Sigmoid函数的替代品

由于Sigmoid函数存在一些限制,研究人员提出了一些替代函数:

  1. ReLU(Rectified Linear Unit):
    f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)
    ReLU解决了梯度消失问题,并且计算简单,现在已经成为许多深度学习模型的默认选择。

  2. Tanh函数:

f ( x ) = e x − e − x e x + e − x f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=ex+exexex
Tanh函数的输出范围是(-1, 1),是零中心的,但仍然存在梯度消失问题。

  1. Leaky ReLU:

f ( x ) = { x , if  x > 0 α x , otherwise f(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{otherwise} \end{cases} f(x)={x,αx,if x>0otherwise
其中α是一个小的正常数,通常为0.01。Leaky ReLU解决了ReLU在负值区间梯度为0的问题。

9. 结论

Sigmoid函数在机器学习和深度学习的发展历程中扮演了重要角色。尽管在深度神经网络中已经不再是首选的激活函数,但在某些特定应用中,如二元分类和某些循环神经网络结构中,Sigmoid函数仍然是一个有力的工具。

理解Sigmoid函数的特性、优点和局限性,对于选择合适的激活函数和设计有效的神经网络架构至关重要。作为机器学习从业者,我们应该熟悉各种激活函数,并根据具体问题选择最合适的函数。

在未来,随着神经网络架构和训练技术的不断发展,我们可能会看到更多新型激活函数的出现。然而,Sigmoid函数作为机器学习中的基础概念,其重要性将永远不会被低估。

End

相关文章:

【机器学习】 Sigmoid函数:机器学习中的关键激活函数

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Sigmoid函数:机器学习中的关键激活函数1. 引言2. Sigmoid函数定义3.…...

Vue+Element Plus后台管理主界面搭建实现

​ 续接Django REST Framework&#xff0c;使用Vite构建Vue3的前端项目 1. 后台管理系统主界面框架搭建 后台系统主界面搭建 新建后台管理文件目录 完成后台整体布局 // 1.主界面 index.vue<script setup lang"ts"></script><template><el-…...

JAVA—异常

认识异常&#xff0c;学会从报错信息中发现问题&#xff0c;解决问题。并学会构建自定义异常&#xff0c;提醒编程时注意 目录 1.认识异常 2.自定义异常 1.自定义运行时异常 2.自定义编译时异常 3.异常的处理 1.认识异常 异常就是代表程序出现的问题&#xff0c;用来查询B…...

常见八股面试题:Dubbo 和 Spring Cloud Gateway 有什么区别?

大家好&#xff0c;我是鸭鸭&#xff01; 此答案节选自鸭鸭最近弄的面试刷题神器面试鸭&#xff0c;更多大厂常问面试题&#xff0c;可以点击进行阅读哈&#xff01; 目前这个面试刷题神器刚出&#xff0c;有网页和小程序双端可以阅读&#xff01; 回归面试题&#xff01; …...

k8s分布式存储-ceph

文章目录 Cephdeploy-ceph部署1.系统环境初始化1.1 修改主机名&#xff0c;DNS解析1.2 时间同步1.3 配置apt基础源与ceph源1.4关闭selinux与防火墙1.5 **创建** ceph **集群部署用户** cephadmin1.6分发密钥 2. ceph部署2.1 **安装** ceph 部署工具2.2 **初始化** mon **节点**…...

Redis cluster集群部署

redis搭建集群模式、Cluster模式&#xff08;6节点&#xff0c;3主3从集群模式&#xff0c;添加删除节点&#xff09;_redis cluster节点带数据增减-CSDN博客...

Java泛型的理解

前言 泛型是Java中一个比较重要的特性&#xff0c;是于JDK5引入新特性&#xff0c;其主要目的是为了提供编译时的类型安全检测机制和简化代码。本文主要探讨一下泛型的使用。 假如说没有泛型 假如说没有泛型&#xff0c;可以举一个例子&#xff1a; ArrayList list new Ar…...

Linux 照片图像编辑器

前言 照片图像编辑器是一种软件程序,它允许用户对数字照片或图像进行各种编辑和修改。以下是一些常见的功能及其解释: 裁剪与旋转 : 裁剪:移除图像的某些部分,以改善构图或符合特定尺寸要求。旋转:改变图像的方向,可以校正歪斜的照片或者为了艺术效果而旋转。调整亮度…...

【51单片机仿真】基于51单片机设计的智能六位密码锁(匿*输入/密码修改/警示/保存/恢复/初始密码)源码仿真设计文档演示视频——文末资料下载

基于51单片机设计的智能六位密码锁 演示视频 基于51单片机设计的智能六位密码锁 功能简介 - 能够从键盘中输入密码&#xff0c;并相应地在显示器上显示"*" - 能够判断密码是否正确&#xff0c;正确则开锁&#xff0c;错误则输出相应信息 - 能够实现密码的修改 -…...

【Vue3】组件通信之mitt

【Vue3】组件通信之mitt 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日…...

状态压缩动态规划——状压dp

状压dp&#xff1a;意思是将状态进行压缩&#xff0c;从而更容易地写出状态转移方程 通常做法&#xff1a;将每个状态&#xff08;一个集合&#xff09;用二进制表示&#xff0c;每个位的1就代表着这个编号的元素存在&#xff0c;0就代表着这个编号的元素不存在&#xff0c;如…...

【算法】最短路径算法思路小结

一、基础&#xff1a;二叉树的遍历->图的遍历 提到搜索算法&#xff0c;就不得不说两个最基础的思想&#xff1a; BFS&#xff08;Breadth First Search&#xff09;广度优先搜索 DFS&#xff08;Depth First Search&#xff09;深度优先搜索 刚开始是在二叉树遍历中接触这…...

zabbix7.0TLS-05-快速入门-触发器

文章目录 1 概述2 查看主机的触发器3 添加触发器3.1 触发器配置项介绍3.2 扩展文档3.2.1 关于配置项中每个键值返回值的说明3.2.2 触发器函数文档 4 验证触发器5 问题5.1 查了问题总列表5.2 查看问题详情5.3 更新处理问题5.4 查看已经处理的问题 6 问题恢复 1 概述 监控项用于…...

vue关于双向数据绑定的骚操作

组件传值大家都知道 直接上代码 computed: {optionModel: {get() {return this.selectedWidget.options;},set(newValue) {this.selectedWidget.options newValue;}}} 我们将optionModel传递给子组件 子组件可以直接修改props 来实现双向数据绑定 但是正常来时我们是不能修…...

基于Jeecgboot3.6.3的vue3版本的流程中仿钉钉流程的鼠标拖动功能支持

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、因为原先仿钉钉流程里不能进行鼠标拖动来查看流程&#xff0c;所以根据作者提供的信息进行修改&#xff0c;在hooks下增加下面文件useDraggableScroll.ts import { ref, onMounted, on…...

Docker Compse单机编排

一.Docker Compse 介绍 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose&#xff0c;你可以使用 YAML 文件来配置应用程序的服务、网络和卷&#xff0c;然后使用单个命令创建和启动所有服务。这使得在开发、测试和部署过程中管理多容器应用程…...

“AI+Security”系列第2期(一):对抗!大模型自身安全的攻防博弈

近日&#xff0c;由安全极客、Wisemodel 社区和 InForSec 网络安全研究国际学术论坛联合主办的“AISecurity”系列第 2 期——对抗&#xff01;大模型自身安全的攻防博弈线上活动如期举行。本次活动邀请了君同未来创始人兼 CEO 韩蒙、前阿里云高级安全专家郑瀚、ChaMd5 AI 组负…...

Python Static Typing: 提升代码可靠性与可读性的使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…...

Datawhale多模态赛事(1)

赛事说明&#xff1a;https://tianchi.aliyun.com/competition/entrance/532251/introduction?spma2c22.12281925.0.0.2f307137p8qZmp 学习平台&#xff1a;https://linklearner.com/home 第一天 1.报名赛道学习赛事 https://tianchi.aliyun.com/competition/entrance/53225…...

云手机在海外社交媒体运营中的作用

随着社交媒体的全球普及&#xff0c;海外社交媒体运营成为众多企业与个人提升品牌影响力和扩大市场份额的重要策略。在这一进程中&#xff0c;海外云手机以其独特的功能&#xff0c;为海外社交媒体运营提供了强大的支持。 那么&#xff0c;海外云手机在海外社交媒体运营中究竟扮…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...