神经网络激活函数

一、为什么需要激活函数

通俗解释

想象一下你在玩乐高积木。你有各种不同颜色和形状的积木,你的任务是建造一个模型——也许是一辆车、一座房子,或者是一只动物。

如果你只允许每一块积木直接堆叠在另一块上面(想象一下只能垂直或水平地把它们排列在一起),你建造模型的能力会受到限制。就像一个没有激活函数的神经网络,不管你有多少块积木(神经元),你都只能按照一个规则构建东西——直线和矩形。

现在,让我们将乐高玩具中的连接点比作激活函数。突然之间,你可以旋转积木,使它们以精确的角度相互连接。你可以创建弯曲的结构、斜坡以及其他复杂的形状。这就像在神经网络中引入非线性激活函数,它允许你把简单的构件组合成复杂的、非线性的、多功能的结构。有了这种灵活性,你可以建造出更接近现实世界对象的复杂模型,就像一个神经网络可以学习识别复杂的模式和关系。

总结一下,乐高积木中的连接点(激活函数)是构建复杂模型的关键成分,正如神经网络中的激活函数是进行复杂任务的核心组件。没有它们,我们的建造和学习能力会受到严重的限制。

神经网络解释

要理解这个含义,首先需要认识到“线性组合”的概念。在数学中,一组变量的线性组合是指每个变量乘以一个系数并求和后的总和。对于两个变量x和y,它们的线性组合可以表示为ax + by,其中a和b是系数。

在神经网络的上下文中,如果我们没有使用任何激活函数(也称为线性激活函数),则每个神经元的输出只是其输入的加权和,这是一个线性方程。对于简单的单层网络(也就是感知机),如果我们有多个输入x1, x2, x3,…,xn,神经元的输出将是w1x1 + w2x2 + w3x3 + … + wnxn + b,这里的wi是权重,b是偏置项。

现在想象一个有多个这样的层的网络,每一层的输出都是前一层输出的加权和。如果第二层是线性的(即,没有非线性激活函数),那么第二层的输出仍然可以表示为第一层输出的线性组合。即:

第一层: z = W1x + b1
第二层: y = W2
z + b2
将第一层的输出z代入第二层的公式,我们就得到:

y = W2*(W1*x + b1) + b2
这个公式可以简化为:

y = (W2*W1)x + (W2b1) + b2
这仍然是输入x的线性组合,因为我们只做了乘法和加法操作,这里的(W2W1)和(W2b1) + b2是新的权重和偏置项。

如果没有非线性激活函数,这个线性关系将会在所有层中持续下去,无论网络有多少层。

二、激活函数的作用

  • 引入非线性:最核心的作用是引入非线性因素。如果不使用激活函数,无论我们的神经网络有多少层,所有层输出的仍然只能是输入的线性组合,这样的网络叫做线性模型,其表达能力非常有限。通过引入非线性激活函数,神经网络可以学习到更加复杂的特征,进而能够解决更复杂的任务,比如图像识别、语音识别等。

  • 增强模型的表示能力:非线性激活函数使得神经网络能够近似任何非线性函数,这是基于神经网络普遍逼近定理的。这意味着具有至少一个隐藏层和适当激活函数的神经网络可以用任意精度来逼近任何连续函数。

  • 控制激活值的范围:某些激活函数能够将输出值挤压到一个特定范围(如Sigmoid函数的输出范围是(0,1),Tanh是(-1,1))。这对于输出层非常重要,例如对于分类问题,输出层的Sigmoid函数可以将值转换成概率,Softmax激活函数可以用于多类别的输出。

  • 提高计算稳定性和效率:例如,ReLU(Rectified Linear Unit)激活函数能够提供快速的收敛和减少梯度消失的问题(尽管它可能引起梯度爆炸问题)。这类激活函数计算简单,能够大大提高神经网络的训练速度。

  • 允许反向传播:通过激活函数的导数,误差可以从网络的输出层反向传播到输入层,这对于基于梯度下降算法的网络训练是必要的。如果没有可微的激活函数,这个过程无法进行。

三、常见的激活函数

  • Sigmoid:能够将输入压缩到0到1的范围内,常用于二分类问题的最后一层。
  • Tanh (双曲正切):将输入压缩到-1到1的范围内,与Sigmoid类似,但通常表现得更好,因为其输出以0为中心。
  • ReLU (Rectified Linear Unit):将所有的负值归零,同时保留正值,简单高效,但可能导致一些神经元“死亡”。
  • Leaky ReLU、PReLU 和 ELU 等变种试图解决ReLU的一些问题,如“死亡”神经元,从而保持所有神经元的活性。

选择哪种激活函数取决于具体问题和网络架构的需求,通常通过实验来确定最佳选择。

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

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

相关文章

深度学习模型的训练细节

摘要: 深度学习模型训练是复杂且细致操作的过程,涉及多个步骤和技巧。在训练深度学习模型时,中间变量的检查是至关重要的,它可以帮助我们理解模型的学习动态,获得真实的训练过程反馈,及时发现并解决问题。通…

初识C语言——第二十天

do while ()循环 do 循环语句; while(表达式); 句式结构: 执行过程: do while循环的特点: 代码练习: 二分法算法: int main() {int arr[] { 0,1,2,3,4,5,6,7,8,9};int k 7;//查找数字7,在arr这个数组…

80%的产品经理被辞退不是因为能力,而是因为…

新手刚入门做产品经理,对产品经理的工作其实也是没有把握,这是对这份工作不够了解,不知道整个工作的流程,所以会感觉“没把握”,结果就是导致焦虑。 如果你硬着头皮做一遍,知道大概是怎么回事,…

Advanced RAG 07:在RAG系统中进行表格数据处理的新思路

编者按: 目前,检索增强生成(RAG)系统成为了将海量知识赋能于大模型的关键技术之一。然而,如何高效地处理半结构化和非结构化数据,尤其是文档中的表格数据,仍然是 RAG 系统面临的一大难题。 本文作者针对这一…

中国仓储物流装备产业链上最全产品资料大全(目前238家公司产品资料……)...

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 知识星球【智能仓储物流技术研习社】内已经收录了如下中国230多家仓储物流装备和技术相关产业链的公司的产品手册,请星球会员…

Oracle GoldenGate 配置双向同步

Oracle GoldenGate 配置双向同步 一、环境准备 DB版本:19.3 GoldenGate版本:21.3 系统环境配置: mkdir -p /u01/app/ogg_home chmod -R 777 /u01/app/ogg_home chown -R oracle:oinstall /u01/app/ogg_home vi .bash_profile # oracle export CV_ASSUME_DISTID=OEL7 expo…

python-pytorch seq2seq+attention笔记1.0.2

python-pytorch seq2seq+attention笔记1.0.0 1. LSTM模型的数据size2. 关于LSTM的输入数据包含hn和cn时,hn和cn的size3. LSTM参数中默认batch_first4. Attention机制的三种算法5. 模型的编码器6. 模型的解码器7. 最终模型8. 数据的准备9. 遇到的问题10. 完整代码11. 参考链接记…

好文推荐:基于热红外的双源能量平衡(TSEB)模型--从植物到全球尺度的蒸散诊断简史

文献 近日,美国农业部农业研究服务局(USDA-ARS)的科学家们发表了一篇重要的研究论文——“Agricultural and Forest Meteorology” (https://www.sciencedirect.com/journal/agricultural-and-forest-meteorology)&…

智慧公厕系统:改变“上厕所”体验的科技革新

公共厕所是城市建设中不可或缺的基础设施,然而,由于较为落后的管理模式,会常常存在着管理不到位、脏乱差的问题。为了改善公厕的使用体验,智慧公厕系统应运而生,并逐渐成为智慧城市建设的重要组成部分。本文将以智慧公…

AI工具如何简化日常生活?从论文到PPT,AI助手大集合

AI助手大集合,猛戳进来! 在工作和生活中,我经常使用各种各样的人工智能工具,如AI写作软件、AI语音助手、AI绘图工具等。我发现,这些工具能够极大地提高工作效率并简化日常生活。作为一名AI工具的忠实爱好者&#xff0…

Python爬虫——如何使用urllib的HTTP基本库

怎样通过 urllib库 发送 HTTP 请求? urllib库主要由四个模块组成: urllib.request 打开和读取 URLurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于解析 URLurllib.robotparser 用于解析 robots.txt 文件 1. 使用urllib.parse解析URL 使用urlparse(…

【3dmax笔记】022:文件合并、导入、导出

文章目录 一、合并二、导入三、导出四、注意事项一、合并 只能合并 max 文件(高版本能够合并低版本模型,低版本不能合并高版本的模型)。点击【文件】→【导入】→【合并】: 选择要合并的文件,后缀名为3dmax默认的格式,max文件。 二、导入 点击【文件】→【导入】→【导…

等保测评介绍

等保测评,全称为信息安全等级保护测评,是一种依据国家信息安全等级保护制度要求,对信息系统实施安全等级保护管理的过程。这一过程包括对信息系统的全面安全风险评估,目的是发现潜在的安全隐患,并提出相应的安全改进措…

【ZYNQ】Vivado 封装自定义 IP

在 FPGA 开发设计中,IP 核的使用通常是不可缺少的。FPGA IP 核是指一些已经过验证的、可重用的模块或者组件,可以帮助构建更加复杂的系统。本文主要介绍如何使用 Vivado 创建与封装用户自定义 IP 核,并使用创建的 IP 核进行串口回环测试。 目…

为什么只有const-static-枚举/整型才可以类内初始化

在C中,静态数据成员(static member)是类的所有对象共享的一个变量。由于它们不是与类的任何特定对象实例相关联的,因此不能在类的构造函数中初始化它们。静态数据成员的初始化必须在类定义之外进行,除非它们满足特定的…

谷歌I/O 2024大会全面硬刚OpenAI

🦉 AI新闻 🚀 谷歌发布升级版Gemini机器人 竞争OpenAI ChatGPT-4 摘要:谷歌展示了升级版的 Gemini 聊天机器人,其支持实时处理视频和语音输入,并准确回答问题。此次发布时机与 OpenAI 公布 ChatGPT-4o 新模型几乎同步…

pycharm导入项目,创建虚拟环境,下载依赖

1、安装conda,此处省略 2、管理员身份打开CMD命令行,创建虚拟环境 conda create --name env_name python3.7 -y 其中,env_name替换为自己想要的环境名字,python3.7表示指定python版本为3.7,-y意味着遇到询问直接回复…

Redis经典问题:BigKey问题

大家好,我是小米,今天来和大家聊聊Redis中的一个经典问题:BigKey问题。在互联网系统中,我们经常需要保存大量的用户数据,比如用户的个人信息、粉丝列表、发表的微博内容等等。这些数据往往会被存储在Redis这样的缓存系统中,以提高系统的性能和响应速度。但是,在处理这些…

什么样的开放式耳机好用舒服?五款高人气质量绝佳产品力荐!

​随着人们越来越注重个人的身体健康问题,掀起了一股运动浪潮,现在大家都会喜欢跑跑步,运动一下使自己的身体更好,那么在运动时候如果能有音乐听的话,人们的运动状态就能达到更好的水平。鉴于传统入耳式耳机给用户带来…

k8s源码编译失败:Makefile:1: *** 缺失分隔符。 停止。

目录 问题解决 更换Arch或系统 问题解决 编译k8s源码的kubelet时执行make失败:Makefile:1: *** 缺失分隔符。 停止。 首先,查看文件内容 # cat Makefile build/root/Makefile 修改Makefile,给第一行前增加include,如下&…