Deep learning系列(七)激活函数
来源:互联网 发布:安卓应用下载知乎 编辑:程序博客网 时间:2024/06/04 17:44
1. sigmoid激活函数
sigmoid将一个实数输入映射到[0,1]范围内,如下图(左)所示。使用sigmoid作为激活函数存在以下几个问题:
- 梯度饱和。当函数激活值接近于0或者1时,函数的梯度接近于0。在反向传播计算梯度过程中:
δ(l)=(W(l))Tδ(l+1)∗f′(z(L)) ,每层残差接近于0,计算出的梯度也不可避免地接近于0。这样在参数微调过程中,会引起参数弥散问题,传到前几层的梯度已经非常靠近0了,参数几乎不会再更新。 - 函数输出不是以0为中心的。我们更偏向于当激活函数的输入是0时,输出也是0的函数。
因为上面两个问题的存在,导致参数收敛速度很慢,严重影响了训练的效率。因此在设计神经网络时,很少采用sigmoid激活函数。
2. tanh激活函数
tanh函数将一个实数输入映射到[-1,1]范围内,如上图(右)所示。当输入为0时,tanh函数输出为0,符合我们对激活函数的要求。然而,tanh函数也存在梯度饱和问题,导致训练效率低下。
3.Relu激活函数
Relu激活函数(The Rectified Linear Unit)表达式为:
相比sigmoid和tanh函数,Relu激活函数的优点在于:
- 梯度不饱和。梯度计算公式为:
1{x>0} 。因此在反向传播过程中,减轻了梯度弥散的问题,神经网络前几层的参数也可以很快的更新。 - 计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而Relu函数仅需要设置阈值。如果
x<0,f(x)=0 ,如果x>0,f(x)=x 。加快了正向传播的计算速度。
因此,Relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍(如上图(右)所示)。
参考资料:
1. http://cs231n.stanford.edu/syllabus.html
2. Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks. NIPS. 2012: 1097-1105.
1 0
- Deep learning系列(七)激活函数
- Deep learning系列(七)激活函数
- Deep learning系列(七)激活函数
- Deep learning系列(九)目标函数
- Deep Learning(深度学习)学习系列之(七)
- ReLUs deep learning NN 的激活函数
- Deep Learning:正则化(七)
- Deep Learning(深度学习)学习笔记整理系列之(五) ~(七)
- (转)Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Deep Learning(深度学习)学习笔记整理系列(七)
- 64位系统连接数据库:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配的问题
- 在framework或子工程中使用xib
- Windows 2012 R2上搭建IIS管理用户的隔离模式FTP
- springmvc 和 mybatis 的相关配置
- mysql 学习---->字符串、数值处理、日期、查询的逻辑处理、系统相关内容查询、IP地址相关、密码
- Deep learning系列(七)激活函数
- Apktool源码解析——第二篇
- dubbo/dubbox部署资料收集
- 批量修改文件的编码格式-问题来自于用Source Insight打开项目时中文部分出现乱码
- 计算机是以补码表示数字的
- django postgresql中随机取出一条记录的实现
- Git push/pull etc
- 做项目过程中遇到的问题及解决----UIGesture手势与UI控件点击的事件冲突解决
- Android 获取Mac地址