百面算法工程师 | 激活函数 Activate Function

目录

10.1激活函数作用:

10.2 为什么激活函数都是非线性的

10.3 常见激活函数的优缺点及其取值范围

10.4 激活函数问题的汇总

10.4.1 Sigmoid的缺点,以及如何解决

10.4.2 ReLU在零点可导吗,如何进行反向传播

10.4.3 Softmax溢出怎么处理

10.4.4 怎么理解ReLU负半区间也是非线性激活函数

10.4.5 ReLU函数的特点

10.5 如何选择激活函数

10.6 激活函数有哪些性质


 欢迎大家订阅我的专栏一起学习共同进步,主要针对25届应届毕业生

祝大家早日拿到offer! let's go

🚀🚀🚀http://t.csdnimg.cn/dfcH3🚀🚀🚀

 10.1激活函数作用:
  1. 引入非线性性:神经网络的每一层都是由线性变换(如矩阵相乘)和激活函数组成。如果没有激活函数,多层神经网络就会退化成单个线性变换,无法学习复杂的非线性关系。激活函数的非线性特性使得神经网络可以学习和表示更加复杂的函数。
  2. 映射到合适的范围:不同的激活函数可以将神经网络的输出映射到不同的范围内。例如,sigmoid 函数将输出映射到 (0, 1) 区间内,tanh 函数将输出映射到 (-1, 1) 区间内,ReLU 函数将负数映射为 0,而保持正数不变。这样的映射可以使得网络的输出符合特定的要求,例如在分类任务中输出概率值。
  3. 提供非线性导数:在反向传播算法中,梯度下降法用于调整神经网络中的参数以最小化损失函数。激活函数的非线性性质使得网络的损失函数对参数的导数不为零,从而使得梯度下降算法能够进行有效的参数更新。
  4. 增加网络的表达能力:通过合适选择激活函数,可以增加神经网络的表达能力,使其能够更好地适应不同类型的数据和任务。
10.2 为什么激活函数都是非线性的

假若网络中全是线性部件,那么线性的组合还是线性,与单独一个线性分类器无异。做不到用非线性来逼近任意函数。使用非线性激活函数 ,使网络更加强大,可以学习复杂的事物,表示输入输出之间非线性的复杂的任意函数映射。使用非线性激活函数,能够从输入输出之间生成非线性映射。

10.3 常见激活函数的优缺点及其取值范围

激活函数

表达式

值域

优点

缺点

sigmoid

σx=11+e-x

(0, 1)

输出在 0 到 1 之间,适合用于输出层的二分类问题

容易出现梯度消失问题,当输入很大或很小时,梯度接近于 0

tanh

tanhx=ex-e-xex+e-x

(-1, 1)

输出在 -1 到 1 之间,比 sigmoid 函数输出范围更广

仍然存在梯度消失问题,对于大部分负数输入,梯度会非常小

Relu

ReLUx=max0,x

[0, +∞)

计算速度快,收敛速度较快,解决了梯度消失问题

可能存在神经元死亡问题,当输入小于 0 时,梯度为 0

Leaky ReLU

Leaky ReLUx=xif x>0αxotherwise

(-∞, +∞)

解决了 ReLU 函数中神经元死亡问题,避免了零梯度

参数 α的选择可能会影响性能,需手动调节

ReLU

ReLU6x=minmax0,x,6

[0, 6]

输出被限制在 [0, 6] 范围内,有助于稳定训练, 具有简单的表达式,计算速度快

存在神经元死亡问题,当输入小于 0 时,梯度为 0,输出限制在6,可能导致信息丢失

Mish

Mishx=x⋅tanhsoftplusx

(-∞, +∞)

具有更好的平滑性,相对于 ReLU 有更好的梯度特性

计算复杂度较高,可能需要更多的计算资源

Swish

Swishx=xσx

(-∞, +∞)

相对于 ReLU 具有更好的非线性特性,保留了线性函数的优点

相较于 ReLU 更加复杂,可能会增加训练时间和计算成本

P-ReLU

P-ReLUx=xif x>0αxif x0

(-∞, +∞)

参数化 ReLU,通过学习参数 (\alpha) 使得网络更加灵活

需要额外学习参数,增加了模型的复杂度

ELU

ELUx=xif x>0αex-1if x0

(-α, +∞)

相较于 ReLU 有更平滑的负半段,可以缓解梯度消失问题

计算复杂度较高,可能会增加训练时间和计算成本

 公式乱码,在下图中显示

和上表的内容是一样的,但是公式没有乱码

10.4 激活函数问题的汇总
10.4.1 Sigmoid的缺点,以及如何解决

Sigmoid型函数的输出存在均值不为0的情况,并且存在梯度消失与梯度爆炸的问题。(因为函数本身的表达式导致的梯度消失/爆炸)

 解决办法:

 1.在深层网络中使用其他激活函数替代。如ReLU(x)、Leaky ReLU(x)等

 2.在分类问题中,Sigmoid做激活函数时,使用交叉熵损失函数替代均方误差损失函数。

 3.采用正确的权重初始化方法。

 4.加入BN层。

 5.分层训练权重。

10.4.2 ReLU在零点可导吗,如何进行反向传播

不可导。人为将梯度规定为0。当输入小于等于 0 时,将梯度传递到下一层的神经元时,梯度将变为零,从而无法更新参数。这就是所谓的“神经元死亡”问题。

解决办法

Leaky ReLU

10.4.3 Softmax溢出怎么处理

解决办法:https://www.cnblogs.com/guoyaohua/p/8900683.html

10.4.4 怎么理解ReLU负半区间也是非线性激活函数
  1. 单侧抑制;ReLU 函数从图像上看,是一个分段线性函数,把所有的负值都变为 0,而正值不变,这样就成为单侧抑制。因为有了这单侧抑制,才使得神经网络中的神经元也具有了稀疏激活性。
  2. 稀疏激活性:从信号方面,神经元同时只对输入信号的少部分选择性响应,大量信号被刻意屏蔽,这样可以提高学习精度,更好更快地提取稀疏特征。当 x<0 时,ReLU 硬饱和,而当 x>0 时,则不存在饱和问题。ReLU 能够在 x>0 时保持梯度不衰减,从而缓解梯度消失问题
10.4.5 ReLU函数的特点
  1. 在区间变动很大的情况下,ReLU激活函数的导数都会远大于 0,使用 ReLu 激活函数神经网络通常会比使用Sigmoid 或者 tanh 激活函数学习的更快
  2. Sigmoid 和 tanh 函数的导数在正负饱和区的梯度都会接近于 0,会造成梯度弥散,而 ReLU和Leaky ReLU函数大于 0 部分都为常数,不会产生梯度弥散现象。
  3. ReLU 进入负半区的时候,梯度为 0,神经元此时不会训练,产生所谓的稀疏性,而 Leaky ReLu 不会产生这个问题。
10.5 如何选择激活函数
  1. 如果输出是 0、1 值(二分类问题),则输出层选择 Sigmoid 函数,然后其它的所有单元都选择 ReLU函数。
  2. 如果在隐藏层上不确定使用哪个激活函数,那么通常会使用 ReLU激活函数。有时,也会使用 tanh 激活函数,但 Relu 的一个优点是:当是负值的时候,导数等于0。
  3. Sigmoid 激活函数,除了输出层是一个二分类问题基本不会用它。
  4. tanh 激活函数,tanh 是非常优秀的,几乎适合所有场合。
  5. ReLU激活函数,最常用的默认函数,如果不确定用哪个激活函数,就使用 ReLu 或者 Leaky ReLu,再去尝试其他的激活函数。
  6. 如果遇到了一些死的神经元,我们可以使用 Leaky ReLU 函数。
10.6 激活函数有哪些性质
  1. 非线性。
  2. 可微性。 当优化方法是基于梯度的时候,就体现了该性质。
  3. 单调性。当激活函数是单调的时候,单层网络能够保证是凸函数。
  4. f ( x ) ≈ x f(x)≈xf(x)≈x。 当激活函数满足这个性质的时候,如果参数的初始化是随机的较小值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要详细地设置初始值;
  5. 输出值的范围。当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况下,一般需要更小的学习率。

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

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

相关文章

如何解决非法采砂、过度开采的乱象?

非法采砂和过度开采是当今世界面临的重要环境问题之一。这些行为不仅破坏了生态平衡&#xff0c;还对河道安全、水资源保护等产生了严重影响。然而&#xff0c;经过多年的努力&#xff0c;河道采砂管理工作不断加强&#xff0c;全国采砂秩序总体可控。为了更有效地解决这一问题…

linux开发板开机启动向日葵

硬件&#xff1a;orangepi 5 pro 操作系统&#xff1a;ubuntu 20.4 lts 安装向日葵 根据我的实测&#xff0c;arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本&#xff0c;具体安装方式官网下载页面有 允许任意用户连接到 X11 使用root用户登录后打开终端输入一下…

图形界面挂了?教你如何纯命令行下快速安装CentOS 7

在某些特定的系统或软件环境下&#xff0c;如使用 Parallels Desktop 18&#xff08;PD18&#xff09;虚拟化软件安装较老版本的操作系统&#xff08;如 CentOS 7&#xff09;&#xff0c;可能会遇到只能通过命令行进行安装的情况。这通常是由于内核版本与图形安装器的兼容性问…

docker系列7:docker安装ES

目录 传送门 Docker安装ES 确定版本 拉取镜像 执行拉取ES镜像 查看ES镜像 运行ES 创建一个新的docker网络 启动一个Elasticsearch容器 查看运行结果 ES启动内存不足 访问ES 公网访问 传送门 docker系列1&#xff1a;docker安装 docker系列2&#xff1a;阿里云镜…

血的教训之虚拟机重装[包含一系列虚拟机,c++,python,miniob配置]

一切都要从头开始&#xff0c;由于脑袋糊涂&#xff0c;没看到是虚拟机的文件&#xff0c;直接一口气全删掉了&#xff0c;哎&#xff01;&#xff01;数据恢复后发现也不行&#xff0c;磁盘文件还是缺失了一部分&#xff0c;只能重新再来了。 等待ing 看不到按钮&#xff0c;按…

前端CSS基础8(盒子模型(margin、border、padding、content))

前端CSS基础8&#xff08;盒子模型&#xff08;margin、border、padding、content&#xff09;&#xff09; CSS盒子模型CSS中常用的长度单位元素的分类&#xff0c;各个元素的显示模式修改元素的显示模式&#xff08;类型&#xff09;盒子模型的组成部分盒子内容区-contentCSS…

验证线缆(汽车线束、网线、多芯线)破损或断开与正常线缆的区别在哪里?依AEM CV-100 k50测试仪

工厂产线生产的线缆&#xff08;汽车线束、网线、多芯线&#xff09;做成成品&#xff0c;即2端都安装好了模块。在这种情况下如何快速的判定此条线缆是合格的呢&#xff0c;此处的合格为物理层面上的合格&#xff08;不会出现开路、短路&#xff09;&#xff0c;也就是最基本保…

Ansible自动化运维工具主机清单配置

作者主页&#xff1a;点击&#xff01; Ansible专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月24日12点21分 Ansible主机清单文件用于定义要管理的主机及其相关信息。它是Ansible的核心配置文件之一&#xff0c;用于Ansible识别目标主机并与其建立连接。 …

Leetcode_相交链表

✨✨所属专栏&#xff1a;LeetCode刷题专栏✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 题目&#xff1a; 题解&#xff1a; 看到这个题目首先我们要排除链表逆置的想法&#xff0c;如图、因为c1节点只有一个next指针&#xff0c;逆置后不可能同时指向a2和b3节点。 其次有的的同学…

刷代码随想录有感(44):对称二叉树

题干&#xff1a; 代码&#xff1a; class Solution { public:bool compare(TreeNode* left, TreeNode* right){//传入左右子树if(left NULL && right ! NULL) return false;//子else if(left ! NULL && right NULL) return false;//子else if(left NULL &…

CentOS-7安装Mysql并允许其他主机登录

一、通用设置&#xff08;分别在4台虚拟机设置&#xff09; 1、配置主机名 hostnamectl set-hostname --static 主机名2、修改hosts文件 vim /etc/hosts 输入&#xff1a; 192.168.15.129 master 192.168.15.133 node1 192.168.15.134 node2 192.168.15.136 node33、 保持服…

【draw.io的使用心得介绍】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

你的RPCvs佬的RPC

一、课程目标 了解常见系统库的hook了解frida_rpc 二、工具 教程Demo(更新)jadx-guiVS CodejebIDLE 三、课程内容 1.Hook_Libart libart.so: 在 Android 5.0&#xff08;Lollipop&#xff09;及更高版本中&#xff0c;libart.so 是 Android 运行时&#xff08;ART&#x…

LeetCode_链表的回文结构

✨✨所属专栏&#xff1a;LeetCode刷题专栏✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 题目描述&#xff1a; 对于一个链表&#xff0c;请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;判断其是否为回文结构。给定一个链表的头指针A&#xff0c;请返回一个bo…

谷歌、Meta、OpenAI 联同其他行业巨头共同打击 AI 产生的儿童性虐待图像|TodayAI

谷歌、Meta、OpenAI 等全球科技巨头已联合行动&#xff0c;与其他行业领导者共同宣布&#xff0c;将加强措施&#xff0c;防止人工智能技术被用来制造或传播儿童性虐待图像。 为打击儿童性虐待材料&#xff08;CSAM&#xff1a;child sexual abuse material&#xff09;的传播…

wfs 文件存储系统 v1.0.5

前言&#xff1a;wfs 是高性能海量小文件存储系统 &#xff0c;支持Linux&#xff0c;Windows&#xff0c;Macos&#xff0c;FreeBSD等系统&#xff0c; 可以高效地进行文件存储和读取。wfs 支持文件压缩归档&#xff0c;并提供简洁的数据读取方式和文件后台管理和 以及归档文件…

《设计模式之美》第三章 总结

《设计模式之美》总结 第三章 设计原则 3.1 单一职责原则&#xff1a;如何判定某个类的职责是否单一 3.1.1 单一职责原则的定义和解读 定义&#xff1a;一个类或模块只负责完成一个职责&#xff08;功能&#xff09; 含义&#xff1a;不要设计功能大而全的类或模块&#xff…

汽车纵染压制专用液压机比例阀放大器

汽车纵染压制专用液压机比例阀放大器是一种专门用于汽车纵梁拉伸工艺的设备&#xff0c;它也可以用于其他金属薄板的压制成型及校正工艺。该类型的液压机通常具备独立的动力机构和电气系统&#xff0c;采用PLC技术进行控制&#xff0c;以确保操作的准确性和稳定性。除了纵梁拉伸…

【随想录】Day31—第八章 贪心算法 part01

目录 题目1: 455. 分发饼干1- 思路2- 题解⭐分发饼干 ——题解思路 题目2: 摆动序列1- 思路2- 题解⭐摆动序列 ——题解思路 题目3: 最大子数组和1- 思路2- 题解⭐ 最大子数组和 ——题解思路 题目1: 455. 分发饼干 题目链接&#xff1a;455. 分发饼干 1- 思路 贪心的思路&am…

Linux多进程(二)进程通信方式二 消息队列

消息队列是在两个进程之间传递二进制块数据的一种简单有效的方式。每个数据块都有一个特定的类型&#xff0c;接收方可以根据类型来有选择地接收数据&#xff0c;而不一定像管道和命名管道那样必须以先进先出的方式接收数据。 一、创建消息队列 创建一个消息队列或者获取一个…