深度学习常用激活函数总结
1 为什么需要激活函数
首先数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是非线性。
不同的激活函数,根据其特点,应用也不同。
Sigmoid和tanh的特点是将输出限制在(0,1)和(-1,1)之间,说明Sigmoid和tanh适合做概率值的处理,例如LSTM中的各种门;
而ReLU就不行,因为ReLU无最大值限制,可能会出现很大值。同样,根据ReLU的特征,Relu适合用于深层网络的训练,而Sigmoid和tanh则不行,因为它们会出现梯度消失。
2 常见的激活函数
1 Sigmoid
sigmoid函数也称为Logistic函数,因为Sigmoid函数可以从Logistic回归(LR)中推理得到,也是LR模型指定的激活函数。
sigmod函数的取值范围在(0, 1)之间,可以将网络的输出映射在这一范围,方便分析。
激活函数 | 表达式 | 导形式 | 取值范围 | 图像 | 适用 |
---|---|---|---|---|---|
Sigmoid | f = 1 1 + e x f = \frac{1}{1+e^x} f=1+ex1 | f ′ = f ( 1 − f ) f'=f(1-f) f′=f(1−f) | (0,1) | 计算概率值 |
优缺点分析:
- 优点:
易于求导,数据符合泊松分布 - 缺点:
- 激活函数计算量大(在正向传播和反向传播中都包含幂运算和除法);
- 反向传播求误差梯度时,求导涉及除法;
- Sigmoid导数取值范围是[0, 0.25],由于神经网络反向传播时的“链式反应”,很容易就会出现梯度消失的情况。
- Sigmoid的输出不是0均值(即zero-centered);这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入,随着网络的加深,会改变数据的原始分布。|
2 Tanh
tanh为双曲正切函数,其英文读作Hyperbolic Tangent。tanh和 sigmoid 相似,都属于饱和激活函数,区别在于输出值范围由 (0,1) 变为了 (-1,1),可以把 tanh 函数看做是 sigmoid 向下平移和拉伸后的结果。
激活函数 | 表达式 | 导形式 | 取值范围 | 图像 | 适用 |
---|---|---|---|---|---|
tanh | f = e x − e − x e x + e − x f = \frac{e^x-e^{-x}}{e^x+e^{-x}} f=ex+e−xex−e−x | f ′ = 2 1 + e − 2 x − 1 f'=\frac{2}{1+e^{-2x}}-1 f′=1+e−2x2−1 | (-1,1) |
Tanh的特点
- 优点
- tanh的输出范围时(-1, 1),解决了Sigmoid函数的不是zero-centered输出问题;
- 缺点
- 幂运算的问题仍然存在;
- tanh导数范围在(0, 1)之间,相比sigmoid的(0, 0.25),梯度消失得到缓解,但仍然存在。
3 Relu及其变体(2012 AlexNet)
由于以上激活函数存在的梯度消失问题,所以2012年提出了整流线性单元(Relu)。
激活函数 | 表达式 | 导形式 | 取值范围 | 图像 | 适用 |
---|---|---|---|---|---|
Relu | f = m a x ( 0 , x ) f =max(0,x) f=max(0,x) | f ′ = 1 , 0 f'=1, 0 f′=1,0 | [0,1) | 避免了梯度消失,适用于深度网络 | |
P R e l u ( a i 变量 ) / / L e a k y R e l u ( a i = 0.01 ) PRelu(a_i变量)//LeakyRelu(a_i=0.01) PRelu(ai变量)//LeakyRelu(ai=0.01) | f ( x ) = { a i x , x < 0 x , x > = 0 f(x)=\left\{\begin{aligned}a_ix, x<0 \\x,x>=0\end{aligned}\right. f(x)={aix,x<0x,x>=0 | f ′ ( x ) = { a i , x < 0 1 , x > = 0 f'(x)=\left\{\begin{aligned}a_i, x<0 \\1,x>=0\end{aligned}\right. f′(x)={ai,x<01,x>=0 | (-1,1) | 改善Relu的0梯度,为一个很小的负值,防止神经元死亡 | |
RRelu | y = { x , x ≥ 0 a ( e x − 1 ) , x < 0 y=\left\{\begin{array}{lc}x, & x \geq 0 \\ a\left(e^{x}-1\right), & x<0\end{array}\right. y={x,a(ex−1),x≥0x<0 | (-1,1) | 在负数部分的ai是从一个均匀的分布U(I,u)中随机抽取的数值 |
总结:
Leaky ReLU中的为常数,一般设置 0.01。这个函数通常比 Relu 激活函数效果要好,但是效果不是很稳定,所以在实际中 Leaky ReLu 使用的并不多。
PRelu(参数化修正线性单元) 中作为一个可学习的参数,会在训练的过程中进行更新。
RReLU(随机纠正线性单元)也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。
4 Softmax
Softmax函数是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为K的任意实向量,Softmax函数可以将其压缩为长度为K,值在[ 0 , 1 ] 范围内,并且向量中元素的总和为1的实向量。
Softmax函数的分母结合了原始输出值的所有因子,这意味着Softmax函数获得的各种概率彼此相关。
为何叫做softmax,适合max函数比较得到的,max只会返回一个最大值,而忽略了其余值,softmax的方式就略显soft,按照归一化的方式保留每一个较小的值。
s o f t m a x ( x ) = e x p ( x i ) ∑ i e x p ( x i ) softmax(x) = \frac{exp(x_i)}{\sum_{i}exp(x_i)} softmax(x)=∑iexp(xi)exp(xi)
Softmax激活函数的特点:
- 在零点不可微。
- 负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元,梯度消失。
深度学习常用激活函数总结相关推荐
- 深度学习常用激活函数
在感知器模型.神经网络模型.深度学习模型中均会看见激活函数的声影.激活函数又被称为转移函数.激励函数.传输函数或限幅函数,其作用就是将可能的无限域变换到一指定的有限范围内输出,这类似于生物神经元具有的 ...
- 趣谈深度学习核心----激活函数
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 当你在苦扒图像处理方法得时候 他在用深度学习 当你在干瞪切片像素得 ...
- 深度学习(二)——深度学习常用术语解释, Neural Network Zoo, CNN, Autoencoder
Dropout(续) 除了Dropout之外,还有DropConnect.两者原理上类似,后者只隐藏神经元之间的连接. 总的来说,Dropout类似于机器学习中的L1.L2规则化等增加稀疏性的算法,也 ...
- 自动驾驶深度学习常用中英文对照表
自动驾驶深度学习常用中英文对照表 A B C D E F G H I J K L M N O P Q R S T U V W Z A 英文 中文 词性 activation 激活值 n,名词 acti ...
- DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)
DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...
- 深度学习常用性能评价指标
深度学习常用性能评价指标 前言 基于准确度的指标 基于排名的指标 基于图数据的指标 前言 深度学习性能指标是用于评价深度学习模型性能的依据,是设计模型的重要依据. 基于准确度的指标 对于模型而言仅统计 ...
- 深度学习常用python库学习笔记
深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...
- 深度学习常用评价指标
版权声明:本文为CSDN博主「ZONG_XP」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/zong59 ...
- Paper:机器学习、深度学习常用的国内/国外引用(References)论文参考文献集合(建议收藏,持续更新)
Paper:机器学习.深度学习常用的国内/国外引用(References)论文参考文献集合(建议收藏,持续更新) References 1.国外格式 [1] D. E. Rumelhart, G. E ...
最新文章
- 利用棋盘格重新校正摄像头,求取Apriltag取向
- vs2017python找不到包_关于Python在VS2017版中编译C源代码出现的各种问题解决方法...
- 小米菲的Tableau学习日记01:Tableau学习资料、安装及学生版申请
- 两台电脑服务器文件同步,多台电脑怎么实现数据同步
- AIDA64 Extreme Edition(硬件检测)多国语言绿色特别版
- Tomcat——通过.bat批处理程序重启Tomcat
- python爬虫豆瓣网的模拟登录实现
- 威富通对账单下载并且解析为对象列表展示
- 【python爬虫】反反爬之破解js加密--入门篇:谷歌学术镜像搜索(scmor.com)
- 搜狗浏览器怎么翻译英文网页
- 百度404.html,百度标准死链(404页面)官方文档全解析
- 用Html实现世纪佳缘交友注册页面是什么体验?
- Silverlight 结构
- Spring自定义参数解析器
- 第十六周学习周报20181224-20181230
- 最长匹配括号子序列问题
- odoo11在win10环境搭建
- c语言blackjack设计思路,blackjack基本策略.doc
- 用MATLAB进行余弦信号频谱分析
- java许愿墙_许愿墙的实现