深度学习中常用的激活函数详解及对比分析(sigmoid)
Sigmoid函数:
特性:
1.当变量值远离中心轴时,梯度几乎为0,在神经网络的反向传播过程中,链式求导导致经过sigmoid函数之后的梯度
很小,权重值更新较慢
2.计算机执行指数运算较慢
3.sigmoid在压缩数据幅度方面有优势,在深度网络中,在前向传播中,sigmoid可以保证数据幅度在[0,1]内,这样数据幅度稳住了,不会出现数据扩散,不会有太大的失误。
4.定义域(0, 1) 可以表示作概率,或者用于输入的归一化,如Sigmoid交叉熵损失函数。
5.如图像所示其值域在[0,1]之间,函数输出不是0均值的,权重更新效率降低,因为这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响:假设后层神经元的输入都为正(e.g. x>0 elementwise in ),那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。 当然了,如果你是按batch去训练,那么每个batch可能得到不同的符号(正或负),那么相加一下这个问题还是可以缓解。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的 kill gradients 问题相比还是要好很多的。
Tanh函数:
特性:
1.Tanh 网络的收敛速度要比 Sigmoid 快。因为 Tanh 的输出均值为 0,SGD 会更接近 natural gradient(一种二次优化技术),从而降低所需的迭代次数。
2.Tanh 激活函数与sigmoid函数一样也具有软饱和性,没有改变Sigmoid函数的最大问题——由于饱和性产生的梯度消失。
Relu函数(Rectified linear unit):
特性:
1.当输入值小于0时,出现硬饱和,梯度消失为0;
2.解决了梯度消失的问题 :在正区间当输入值大于0时,梯度保持不变,没有sigmoid及Tanh函数的梯度消失的问题。
3.计算速度快,只需要判断输入是否大于0
4.收敛速度远快于sigmoid和tanh
5.输出不是zero-centered
6.Dead ReLU Problem:
Dead ReLU Problem指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: (1) 非常不幸的参数初始化,这种情况比较少见 (2) 学习速率太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。
Leaky ReLU函数
Leaky ReLU是为了解决ReLU函数的Dead ReLU Problem而提出的激活函数。为了解决Dead ReLU Problem,Leaky ReLU提出了将ReLU的前半段设为0.01x0.01x而非0。另外一种直观的想法是基于参数的方法,即Parametric ReLU:
其中α可由back propagation学出来。理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU。
ELU函数
特性:
ELU(Exponential Linear Units)函数也是为解决ReLU存在的问题而提出,显然,ELU有ReLU的基本所有优点,以及:
- 不会有Dead ReLU问题
- 输出的均值接近0,zero-centered
它的一个小问题在于计算量稍大。类似于Leaky ReLU,理论上虽然好于ReLU,但在实际使用中目前并没有好的证据ELU总是优于ReLU。
深度学习中常用的激活函数详解及对比分析(sigmoid)相关推荐
- 深度学习中的gelu激活函数详解
论文:gaussian error linear units (一).什么是激活函数? 激活函数的本质就是给网络模型增加非线性,也就是在wTx+bw^Tx+bwTx+b等线性变换后面加一个非线性变换, ...
- DL之AF:机器学习/深度学习中常用的激活函数(sigmoid、softmax等)简介、应用、计算图实现、代码实现详细攻略
DL之AF:机器学习/深度学习中常用的激活函数(sigmoid.softmax等)简介.应用.计算图实现.代码实现详细攻略 目录 激活函数(Activation functions)相关配图 各个激活 ...
- 深度学习中的正则化技术详解
目录 基本概念 1. 参数范数惩罚 1.1 \(L^2\)正则化 1.2 \(L^1\)正则化 1.3 总结\(L^2\)与\(L^1\)正则化 2. 作为约束的范数惩罚 3. 欠约束问题 4. 数据 ...
- 深度学习中的线性代数知识详解
1. 基础概念 标量(scalar) 一个标量就是一个单独的数,一般用小写的的变量名称表示. 向量(vector) 一个向量就是一列数,这些数是有序排列的: ⎡⎣⎢⎢⎢⎢x1x2...x5⎤⎦⎥⎥⎥⎥ ...
- 8个深度学习中常用的激活函数
激活函数,又称转换函数,是设计神经网络的关键.激活函数在某种意义上是重要的,因为它被用来确定神经网络的输出.它将结果值映射为0到1或-1到1等(取决于函数).激活函数还有另一个名称,称为Squashi ...
- 【基础知识】深度学习中各种归一化方式详解
本文转载自 https://blog.csdn.net/qq_23981335/article/details/106572171 仅作记录学习~ 总结 BN,LN,IN,GN,WS 从学术上解释差异 ...
- Keras深度学习实战(4)——深度学习中常用激活函数和损失函数详解
Keras深度学习实战(4)--深度学习中常用激活函数和损失函数详解 常用激活函数 Sigmoid 激活函数 Tanh 激活函数 ReLU 激活函数 线性激活函数 Softmax 激活函数 损失函数 ...
- 【AI初识境】深度学习中常用的损失函数有哪些?
这是专栏<AI初识境>的第11篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 今天来说说深度学习中常见的损失函数(loss),覆盖分类,回归任务以及生成对抗网络,有了目 ...
- 深度学习中常用的误差方法
深度学习中常用的误差方法有: 标准差(Standard Deviation): 标准差也叫均方差,是方差的算术平方根,反应数据的离散程度 ,标准差越小,数据偏离平均值越小,反之亦然 . 公式为: py ...
最新文章
- python之模块csv之CSV文件的写入(按行写入)
- Java 依赖注入标准(JSR-330)简介
- 小强学Python+OpenCV之-1.4.4掩膜mask及位运算
- 关于分布式锁的面试题都在这里了
- python replace函数 成功 失败_请教下调用python string模块的replace方法出错的原因
- 中大计算机考研爆冷,中山大学计算机“爆冷”,321分排名第二,网友:“锦鲤”附体!...
- 制造业数据分析存在哪些问题
- MODIS植被覆盖度
- ffmpeg转码文件输出rtsp流
- python获取工作目录路径为C:\Users\用户名\AppData\Local\Temp...解决方案
- C++ Concurrency in Action 2nd Edition
- C语言如何获取ipv6地址
- 网络安全学习小结--kali基本工具、webshell、代码审计
- Elasticsearch Ingest-Attachment
- 配置静态路由——默认路由
- 摄像头8mm可以看多远_视频监控摄像头焦距、角度、距离参考值
- PYTHON爬虫爬取
- spring boot框架常用的一些玩意儿
- spss中如何处理极端值、错误值
- kali下mysql重置密码
热门文章
- 2011Google校园招聘笔试题
- ASP.Net_配置文件
- 算法2:邻居好说话:冒泡排序
- [转]Oracle DB 管理ASM实例
- PHP LOG使用心得(2)
- VC6++ output :error executing c:\windows\system32\cmd.exe.
- 安卓下的免费离线地图导航软件(老虎地图)测试及网盘下载
- C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
- [论文阅读] (06) 万字详解什么是生成对抗网络GAN?经典论文及案例普及
- [网络安全自学篇] 五十一.恶意样本分析之HGZ进程和网络行为动态分析及防御