当前位置: 首页 > 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;海外云手机在海外社交媒体运营中究竟扮…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...