深度学习笔记六:常见激活函数总结
来源:互联网 发布:鼎捷软件家具行业 编辑:程序博客网 时间:2024/05/03 13:27
一.激活函数概览
基本上,入门深度学习的第一件事情就是了解”神经元”的构造,激活函数算是最基本的一个”部件”了吧.那激活函数到底有什么用呢?为什么需要激活函数?激活函数的定义是什么呢?
下面这篇论文提供了激活函数的定义以及常见的”饱和”的定义,以及对于激活函数的一些思考.大家可以参考一下.
Noisy Activation Functions
引用这篇论文的定义:激活函数就是映射,且函数几乎处处可导.
那为什么需要激活函数呢?一般认为,激活函数的作用是给神经网络加入非线性的因素.激活函数一般都是非线性函数,要是没有了激活函数,那么神经网络难以对于生活中常见的非线性的数据建模.所以,神经网络中激活函数是不可缺少的.
二.常见的激活函数
这里仅仅列出经常见到的,常用的激活函数,更多的新的激活函数类型可以跟踪最新的paper,
这里的激活函数的所有代码及绘图可在我的GitGub找到:
MachineLearningCode/NeuralNet/ActivationFunction/
好了,开始正式总结了.
Ⅰ.sigmoid
老朋友了,但是还是要介绍一下,sigmod算是”曾经”使用最广的激活函数了,简单,良好的非线性映射,但是也有致命的问题,就是梯度消失.所以现代的神经网络架构很少用他了.
Ⅱ.tanh
Ⅲ.ReLU
修正线性单元(Rectified linear unit)
也常常表示为
线性修正单元应当是现在用的最广的激活函数了,要是你不知道用什么激活函数,就用ReLU先试一下吧.
Ⅳ.LReLU,PReLU,RReLU
这三个都是对于ReLU的改进,三个的函数的写法可以近似的认为是一样的.细节上有一些差别.
其中a可以看做是斜率,也就是说,这个激活函数多引进了一个参数.
对于LReLU来说,a是固定的,你可以通过各种验证方式选出一个合适的a值.
PReLU是对于LReLU的改进,可以自适应的学习参数而不是固定的,原论文中建议初始化为0.25.
RReLU的a是一个给定范围内的随机变量,随机选择的,在一定程度上可以起到正则化的作用.
给出一张总结的图
Ⅴ.ELU
Exponential Linear Units的缩写,函数形式为
其中a>0.
右侧的线性部分能够缓解梯度消失,左侧的软饱和能够对于输入变化鲁棒.而且收敛速度更快.
Ⅵ.softplus
Ⅶ.softsign
- 深度学习笔记六:常见激活函数总结
- 深度学习笔记--激活函数:sigmoid,maxout
- 深度学习 激活函数
- 系统学习深度学习(九)--激活函数总结
- 深度学习笔记(三):激活函数和损失函数
- 深度学习/神经神经网络常用激活函数总结
- 【深度学习技术】卷积神经网络常用激活函数总结
- 深度学习总结(二)——激活函数的介绍
- 深度学习笔记7:激活函数层的实现
- 深度学习笔记2:池化 全连接 激活函数 softmax
- AndrewNg神经网络和深度学习笔记-Week3-6激活函数
- 深度学习caffe:激活函数
- 深度学习中激活函数
- 深度学习之激活函数
- 深度学习中的激活函数
- 深度学习常用激活函数
- 深度学习中的激活函数
- Tensorflow深度学习笔记(六)--代价函数
- coreseek实战(一):windows下coreseek的安装与测试
- iPhone的设置中,为何找不到“开发者选项”
- [置顶]yii2 linux安装教程
- 关于https
- Ubuntu14.04下OpenCV2.4.10安装
- 深度学习笔记六:常见激活函数总结
- SyntaxError: inconsistent use of tabs and spaces in indentation
- Mysql配置信息
- spring 配置xml连接数据库,出现 java.lang.NoClassDefFoundError: Lorg/apache/commons/pool/impl/GenericObjectPool
- 3步告别忙累压力大没成绩
- FTP上传中文文件到中文路径
- 实现 Android 沉浸式状态栏 (低版本Android)
- JavaScript_JSON的总结
- HP DL380服务器RAID信息丢失数应该如何进行数据恢复