pytorch学习笔记八:nn网络层——激活函数层

本文详细介绍了深度学习中的激活函数,包括概念、作用以及非线性的重要性。对比了Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、ELU和SELU等常见激活函数的优缺点,探讨了如何选择合适的激活函数。
摘要由CSDN通过智能技术生成

结合pytorch中的激活函数,来总结一下深度学习中的激活函数

一、激活函数的概念和作用

概念:在神经网络中每个神经元节点接受上一层神经元的输出作为本神经元的输入,并将输出值传入到下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐藏层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。

对激活函数的理解:不使用激活函数的话,神经网络的每层都只是做线性变换,多层叠加后还是线性变换。因为线性模型的表达能力通常不够,所以引入激活函数,加入非线性因素,来增强模型的表达能力。

Q:激活函数是如何引进非线性因素的?
A:
1、没有激活函数的神经网络
神经网络中最简单的结构是单层输出的感知机,单层的感知机只有输入层和输出层。下图是一个只有2个输入单元和1个输出单元的简单单层感知机。图中x1、w2代表神经网络的输入神经元受到的刺激,w1、w2代表输入神经元和输出神经元间连接的紧密程度,b代表输出神经元的兴奋阈值,y为输出神经元的输出。我们使用该单层感知机划出一条线将平面分割开,如图所示:
在这里插入图片描述
同理,也可以将多个感知机组合,获得更强的平面分类能力
在这里插入图片描述
再看一个包含隐藏层的感知机:
在这里插入图片描述
上面三种没有激活函数的神经网络的输出都是线性方程的,其实都是在用复杂的线性组合来逼近曲线。
2、带激活函数的神经网络
在神经网络每一层神经元做完线性变换以后,加上一个非线性激励函数对线性变换的结果进行转换,结果显而易见,输出是一个非线性函数了,如图所示:
在这里插入图片描述
拓展到多层神经网络的情况, 和刚刚一样的结构, 加上非线性激励函数之后, 输出就变成了一个复杂的非线性函数了,如图所示:
在这里插入图片描述
总结:加入非线性激励函数后,神经网络就有可能学习到平滑的曲线来分割平面,而不是用复杂的线性组合逼近平滑曲线来分割平面,使神经网络的表示能力更强了,能够更好的拟合目标函数。 这就是为什么要有非线性的激活函数的原

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值