【神经网络 基本知识整理】(激活函数) (梯度+梯度下降+梯度消失+梯度爆炸)

news2024/11/15 11:59:00

神经网络 基本知识整理

  • 激活函数
    • sigmoid
    • tanh
    • softmax
    • Relu
  • 梯度
    • 梯度的物理含义
    • 梯度下降
    • 梯度消失and梯度爆炸

激活函数

我们知道神经网络中前一层与后面一层的连接可以用y = wx + b表示,这其实就是一个线性表达,即便模型有无数的隐藏层,简化后依旧是上述的线性表达式,那么模型的拟合能力非常受限。因此引入了激活函数σ,y = σ(wx + b),使得模型能够拟合非线性的问题。常用的激活函数详解可参考👉激活函数详解 ///激活函数详解

sigmoid

sigmoid激活函数表达式是: f ( x ) = 1 1 + e − x f(x) = \frac{1}{1+e^{-x}} f(x)=1+ex1
sigmoid常用于二分类中(输出层而非中间层),因为其能够很好的拟合0~1这个范围内的数。函数图像如下:
在这里插入图片描述
sigmoid函数的导数为: f ′ ( x ) = f ( x ) ∗ ( 1 − f ( x ) ) f'(x) = f(x)*(1-f(x)) f(x)=f(x)(1f(x))
根据图像也能看出其导数在x极大or极小的时候,导数是趋近于0的;即便是x=0时,取其导数的最大值,依旧只有1/4,因此如果将sigmoid作为中间层的激活函数,在利用链式法则反向求导的过程中,很容易导致梯度消失

根据sigmoid激活函数的特点,可以得到对应的优缺点。

优点:

  • 可解释性强:Sigmoid 函数的输出在 0 到 1 之间,可以被解释为概率,特别适用于二分类问题。
  • 平滑性:Sigmoid 函数是连续可导的,因此在梯度下降等优化算法中应用较为方便。
  • 求导方便,不需要额外的计算量。

缺点:

  • 以(0, 0.5)为对称中心,原点不对称,容易改变输出的数据分布;
  • 梯度饱和:在输入较大或较小的情况下,Sigmoid 函数的梯度会非常接近于 0,导致梯度消失问题,影响模型的训练效果;导数取值范围为(0, 0.25],连乘后梯度呈指数级减小,所以当网络加深时,浅层网络梯度容易出现梯度消失;
  • 输出不以 0 为中心:Sigmoid 函数的输出均值不为 0,可能导致在反向传播过程中出现偏移,影响模型的收敛速度;

tanh

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函数是奇函数,关于原点对称,导数为: f ′ ( x ) = 1 − ( f ( x ) 2 ) f'(x) = 1-(f(x)^{2}) f(x)=1(f(x)2)
tanh函数图像如下图所示👇。tanh和sigmoid非常相似,tanh可看作sigmoid放大平移的。
在这里插入图片描述
优点:

  • 输出以 0 为中心:Tanh 函数的输出均值为 0,相比 Sigmoid 函数,Tanh 函数对数据的均值变化更为敏感,有助于模型的训练。
  • 非线性特性:Tanh 函数是非线性的,可以帮助神经网络学习和表示复杂的函数关系。
    缺点:
  • 梯度饱和:与 Sigmoid 函数类似,Tanh 函数在输入较大或较小的情况下,梯度会接近于 0,可能导致梯度消失问题。
  • 计算复杂度:Tanh 函数的计算相对复杂,可能会增加模型的计算成本。

softmax

softmax是sigmoid的拓展,表达式: f ( x i ) = e x i ∑ j = 1 n e x j f(x_{i}) = \frac{e^{x_{i}}}{\sum_{j=1}^{n}e^{x_{j}}} f(xi)=j=1nexjexi
softmax激活函数常用于多分类场景,对最后一层神经网络的输出进行转换,同时常搭配交叉熵损失函数使用: L ( y , y ^ ) = − ∑ j = 1 n y j log ⁡ ( y j ^ ) L(y,\hat{y}) = -\sum_{j=1}^{n}y_{j}\log(\hat{y_{j}}) L(y,y^)=j=1nyjlog(yj^)

优点:

  • 归一化:Softmax 函数可以将输出转化为概率分布,所有输出的和为 1,适用于多分类问题。
  • 平滑性:Softmax 函数的输出相对平滑,有助于模型的训练和收敛。

缺点:

  • 计算复杂度:Softmax 函数的计算相对复杂,尤其在类别数目很大时,可能会增加模型的计算成本。
  • 容易受到异常值影响:在输入较大或较小的情况下,Softmax 函数的输出可能会非常接近 0 或 1,使得模型对异常值比较敏感。

Relu

Relu函数是一个分段函数,其每一段都是线性的,但由于分段使其在全局内是非线性的,音系Relu是一个非线性的函数。表达式: f ( x ) = m a x ( x , 0 ) f(x) = max(x,0) f(x)=max(x,0)
图像:
在这里插入图片描述
Relu两段导数都是固定的常数,因此常用于神经网络的中间层。但是Relu将x<0这一段直接设置为0,很多神经元阶段的输出为0,使得神经元失活。因此有很多Relu的变性,比如Leaky_Relu,在x<0的一段引入很小的斜率。

优点:

  • 非饱和性:相比于 Sigmoid 和 Tanh 函数,ReLU 在正区间上不会饱和,减少了梯度消失问题,有助于训练深层网络。
  • 计算简单:ReLU 函数的计算相对简单,只需判断输入是否大于 0,因此在实际应用中的计算速度较快。
  • ReLU 函数广泛应用于隐藏层,特别是在深度卷积神经网络(CNN)中,有助于加速模型的训练。

缺点:

  • 死亡 ReLU:在训练过程中,部分神经元可能永远不会被激活(输出恒为 0),导致这些神经元对应的权重无法更新,称为“死亡 ReLU”问题。
  • 输出不以 0 为中心:与 Tanh 相比,ReLU 函数的输出不以 0 为中心,可能导致一些问题,如收敛速度较慢。

ReLU 的变体:

  • Leaky ReLU:解决了“死亡 ReLU”问题,引入一个小的斜率(通常很小的斜率值,如0.01),使得负数输入时也有少量的输出。
  • Parametric ReLU (PReLU):与 Leaky ReLU 类似,但斜率是一个可学习的参数,可以通过反向传播进行训练。
  • Randomized Leaky ReLU (RReLU):斜率在训练过程中是随机的,但在测试时取平均值,有一定的正则化效果。
  • Exponential Linear Unit (ELU):引入了负半轴的指数函数,解决了 ReLU 的输出不以 0 为中心的问题,并且对负数输入有非零输出。

梯度

梯度的物理含义

我们在学习y=f(x)这样的一元函数的导数的时候,知道函数在某一点的导数其实就是在该点切线的斜率,反应了函数在该点的变化方向以及变化速率,注意这个方向其实是函数增加的方向
在这里插入图片描述
在空间中一个点有无数个方向,一个多元函数在某一个点也必然有无线多个方向。此时引入了梯度,梯度是多元函数对每一个变元求偏导后组成的偏导向量。多元函数对某一变元求偏导得到的是函数在某坐标轴的变化率,将这些偏导组合得到的梯度就代表多元函数在某一点变化最快的方向(该向量指向的方向)以及变化的速率(向量的模),同样这里的变化是指函数增长,那么反方向就是函数减小:
在这里插入图片描述

梯度下降

机器学习的目标函数/损失函数是关于可训练参数W的多元函数,这个函数在某一点的梯度(这里的某一点就是某一个数据点[(x1,x2,x3,…,xn), y])反应了误差变化的方向与快慢,之后用这个梯度来更新参数W,使得损失函数值减少,直到找到全局最优or局部最优。 用梯度更新参数的过程其实就是梯度下降算法,多层网络从后往前逐层计算梯度的过程是误差反向传播,两者结合训练模型。 梯度下降具体可以用如下式子表示:
在这里插入图片描述
梯度下降是用➖,梯度上升就用➕。因为前面提到梯度是函数增加的方向,我们一般是需要损失函数最小(局部或者全局),因此是沿着梯度的反方向。 这里的W是所有参数组成的向量;α是学习率,学习率过高和过低都不行【过低更新缓慢,时间长且可能局部最优;过高变化太大,可能一直动荡不收敛,可能错过最优点,可能造成梯度爆炸】,可以去了解一下torch里面的优化器optimizer对lr的调整策略👉pytorch自适应学习率调整。

这里需要注意的是,对于每一个数据点都有一个梯度,我们实际是需要将目标函数在所有数据点上的梯度求均值,然后进行一次参数更新的(full-batch)。但训练数据是上万的,一次计算所有数据点的梯度计算量很大,因此在实际操作中会将数据集数据进行分批处理,每次对一个batch的数据点求目标函数的梯度均值,然后进行一次参数更新(mini-batch)。可参考👉mini-batch

梯度消失and梯度爆炸

梯度是根据链式法则,从后往前反向计算的。如果网络太深,前面层对应参数的偏导会极小或者极大,这就是梯度消失和梯度爆炸。

  • 梯度消失:指在反向传播过程中,梯度逐渐变小,最终接近于零。这意味着底层神经元的权重几乎不会被更新,导致网络无法学习到底层特征,从而影响了整个网络的性能。梯度消失通常出现在使用 Sigmoid 或 Tanh 等饱和性激活函数时,因为这些函数在输入较大或较小的情况下梯度接近于零。
  • 梯度爆炸:指梯度变得非常大,甚至超出了计算机可以表示的范围。这会导致参数的更新值非常大,模型的行为变得不稳定,甚至可能无法收敛。
    以实际的例子讨论【参考梯度消失和梯度爆炸】:
    在这里插入图片描述
    要计算误差关于b1这个参数的偏导,通过链式法则得到看上面的式子,假设σ是sigmoid函数,上面分析了sigmoid的导数值在0~0.25之间:
    在这里插入图片描述
  • 随着网络层数的增加,前面层的偏导中会有越来越多的σ’的连乘,导数会越来越小;
  • 如果一开始w初始化很大,使得(σ' * wi)>1,那么同样随着网络层数的增加,(σ’ * wi)连乘使得偏导越来越大。

避免梯度消失or梯度爆炸的方法中,Batch normalization(批标准化)是非常重要的,后续再总结!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十、MySQL主从架构配置

一、资源配置 主库&#xff1a;192.168.134.132 从库&#xff1a;192.168.134.133 从库&#xff1a;192.168.134.134 二、主从同步基本原理&#xff1a; master用户写入数据&#xff0c;会生成event记录到binary log中&#xff0c;slave会从master读取binlog来进行数据同步…

如何将大华dav视频转mp4?一键无损清晰转换~

Digital Audio Video&#xff08;DAV&#xff09;文件格式源于数字监控领域&#xff0c;旨在解决视频监控数据的存储和回放问题。随着数字监控技术的发展&#xff0c;DAV格式逐渐成为监控设备记录视频的标准格式&#xff0c;广泛应用于安防系统、摄像头监控等场景。 MP4文件格式…

Transformer的前世今生 day03(Word2Vec

前情回顾 由上一节&#xff0c;我们可以得到&#xff1a; 任何一个独热编码的词都可以通过Q矩阵得到一个词向量&#xff0c;而词向量有两个优点&#xff1a; 可以改变输入的维度&#xff08;原来是很大的独热编码&#xff0c;但是我们经过一个Q矩阵后&#xff0c;维度就可以控…

【ARM】DSTREAM上面的各个指示灯代表什么意思?

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 对于DStream仿真器上面的指示灯亮灭代表的意义进行分析。 2、 问题场景 主要对于DStream仿真器的使用过程中&#xff0c;不同的情况下面仿真器的指示灯会进行相应的亮灭。了解一下不同指示灯的亮灭所提示的信息…

大模型算命,对比下kimi和ChatGPT,AI离道破天机就差一个你信不信

我不懂算命&#xff0c;但很好奇。 先随便问问kimi&#xff0c;它先通过网络找到了参考&#xff0c;直接就给出了结论&#xff0c;看着有点儿草率&#xff0c;像极了街头算命先生。 给点儿专业书籍让他学习学习&#xff0c;它就开始认真了&#xff0c;看上去有些专业。 试试…

51-32 CVPR’24 | 3DSFLabelling,通过伪自动标注增强 3D 场景流估计

24 年 2 月&#xff0c;鉴智机器人、剑桥大学和上海交通大学联合发布CVPR24工作&#xff0c;3DSFLabelling: Boosting 3D Scene Flow Estimation by Pseudo Auto-labelling。 提出 3D 场景自动标注新框架&#xff0c;将 3D 点云打包成具有不同运动属性的 Boxes&#xff0c;通过…

File文件对象

在计算机系统中&#xff0c;文件是非常重要的存储方式。Files&#xff08;java.nio.file.Files&#xff09;提供了多种方法来处理文件系统中的文件。比直接使用File文件要方便。 Files工具类:读取指定文件中的所有文本 package study1;import java.io.IOException; import ja…

(一)Neo4j下载安装以及初次使用

&#xff08;一&#xff09;下载 官网地址&#xff1a;Neo4j Graph Database & AnamConnect data as its stored with Neo4j. Perform powerful, complex queries at scale and speed with our graph data platform.https://neo4j.com/ &#xff08;二&#xff09;安装并配…

C++Qt学习——QFile、QPainter、QChart

目录 1、QFile&#xff08;文本读写&#xff09;——概念 1.1、拖入三个控件&#xff0c;对pushButton进行水平布局&#xff0c;之后整体做垂直布局 1.2、按住控件&#xff0c;转到槽&#xff0c;写函数 1.3、打开文件控件 A、首先引入以下两个头文件 B、设置点击打开文件控…

搭建 es 集群

一、VMware准备机器 首先准备三台机器 这里我直接使用 VMware 构建三个虚拟机 都是基于 CentOS7 然后创建新用户 部署 es 需要单独创建一个用户&#xff0c;我这里在构建虚拟机的时候直接创建好了 然后将安装包上传 可以使用 rz 命令上传&#xff0c;也可以使用工具上传 工…

Apache Doris 如何基于自增列满足高效字典编码等典型场景需求

自增列&#xff08;auto_increment&#xff09;是数据库中常见的一项功能&#xff0c;它提供一种方便高效的方式为行分配唯一标识符&#xff0c;极大简化数据管理的复杂性。当新行插入到表中时&#xff0c;数据库系统会自动选取自增序列中的下一个可用值&#xff0c;并将其分配…

【路径规划】全局路径规划算法——A*算法(含python实现 | c++实现)

文章目录 参考资料1. 算法简介2. 算法精讲2.1 预处理2.2 开始搜索2.3 继续搜索2.4 确定实际路径 3. 算法总结3.1 算法步骤3.2 伪代码 4. python实现5. c实现 参考资料 Introduction to the A* Algorithm路径规划与轨迹跟踪系列算法Robotic Motion Planning Lectures A星算法详…

【附下载】3Ds Max从安装、配置到入门提高和高级用法

#3Ds Max 一、安装 1.1 安装说明 地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1lwKMbgbE32wCL6PpMv706A?pwddll8 提取码&#xff1a;dll8 –来自百度网盘超级会员V2的分享 安装说明&#xff1a;文件夹里有安装说明 安装解压即可 关键就是将crack文件放到自己…

高架学习笔记之信息安全基础

目录 一、信息安全基础 1.1. 概念 1.2. 信息存储安全 1.3. 网络安全 二、信息安全系统的组成框架 三、信息加解密技术和数字签名 四、访问控制技术 五、信息安全的保障体系与评估方法 5.1. 计算机信息系统安全保护等级 5.2. 安全风险管理 一、信息安全基础 1.1. 概念 …

DEYOv2: Rank Feature with Greedy Matchingfor End-to-End Object Detection

摘要 与前代类似&#xff0c; DEYOv2 采用渐进式推理方法 来加速模型训练并提高性能。该研究深入探讨了一对一匹配在优化器中的局限性&#xff0c;并提出了有效解决该问题的解决方案&#xff0c;如Rank 特征和贪婪匹配 。这种方法使DEYOv2的第三阶段能够最大限度地从第一和第二…

工控MCGS触摸屏Hacking勒索部署

https://github.com/MartinxMax/Mo0n_V1.2 !!不关注点赞收藏,以后没好东西了奥!! 端口扫描-获取信息 $python Mo0n.py -scan x.x.x.0/24 or $nmap -sS -Pn -T4 x.x.x.0/24 -p 127 MCGS编程软件 发现触摸屏受到密码保护 Oops&#xff01;&#xff01;&#xff01; echo /\_…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Circle)

用于绘制圆形的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Circle(options?: {width?: string | number, height?: string | number}) 从API version 9开始&…

Flutter-底部弹出框(Widget层级)

需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时&#xff0c;支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知&#xff0c;就是在界面中可以支持…

Smart Light Random Memory Sprays Retinex 传统图像增强 SLRMSR

文章目录 前言1、Smart Light Random Memory Sprays Retinex概况2、Smart Light Random Memory Sprays Retinex的实现2.1、SLRMSR算法的伪代码2.2、初始化记忆喷雾&#xff08;CreateInitialMemorySpray&#xff09;2.3、更新记忆喷雾 (UpdateMemorySpray)2.4、计算颜色校正因子…

到底什么时候该使用MongoDB

NoSQL是什么 NoSQL &#xff1a; Not Only SQL , 本质也是一种数据库的技术&#xff0c;相对于传统数据库技术&#xff0c;它不会遵循一些约束&#xff0c;比如 &#xff1a; sql 标准、 ACID 属性&#xff0c;表结构等。 NoSQL分类 类型应用场景典型产品Key-value存储缓存&…